From aa54a2bb321920b8e0c06842eb5b0697ddbae0d4 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Wed, 15 Nov 2023 08:34:22 +0800 Subject: [PATCH 01/86] chore: chmod 755 for bin/asinit (#2796) --- bin/asinit.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 bin/asinit.js diff --git a/bin/asinit.js b/bin/asinit.js old mode 100644 new mode 100755 From 4f15024d3066c36e4c02ddc0bad91c24d5faf1ba Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Wed, 15 Nov 2023 08:45:52 +0800 Subject: [PATCH 02/86] fix: add diagnose when initializing field in interface (#2797) --- src/diagnosticMessages.json | 1 + src/program.ts | 4 ++++ tests/compiler/interface-with-initializer.json | 7 +++++++ tests/compiler/interface-with-initializer.ts | 9 +++++++++ 4 files changed, 21 insertions(+) create mode 100644 tests/compiler/interface-with-initializer.json create mode 100644 tests/compiler/interface-with-initializer.ts diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index e15946207a..3ff9e9f162 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -119,6 +119,7 @@ "Decorators are not valid here.": 1206, "'abstract' modifier can only appear on a class, method, or property declaration.": 1242, "Method '{0}' cannot have an implementation because it is marked abstract.": 1245, + "An interface property cannot have an initializer.": 1246, "A definite assignment assertion '!' is not permitted in this context.": 1255, "A class may only extend another class.": 1311, "A parameter property cannot be declared using a rest parameter.": 1317, diff --git a/src/program.ts b/src/program.ts index 1f9849eec2..3174be4875 100644 --- a/src/program.ts +++ b/src/program.ts @@ -2671,6 +2671,10 @@ export class Program extends DiagnosticEmitter { /** Parent interface. */ parent: InterfacePrototype ): void { + let initializer = declaration.initializer; + if (initializer) { + this.error(DiagnosticCode.An_interface_property_cannot_have_an_initializer, initializer.range); + } let typeNode = declaration.type; if (!typeNode) typeNode = Node.createOmittedType(declaration.name.range.atEnd); this.initializeProperty( diff --git a/tests/compiler/interface-with-initializer.json b/tests/compiler/interface-with-initializer.json new file mode 100644 index 0000000000..be54c01a3f --- /dev/null +++ b/tests/compiler/interface-with-initializer.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS1246: An interface property cannot have an initializer." + ] +} diff --git a/tests/compiler/interface-with-initializer.ts b/tests/compiler/interface-with-initializer.ts new file mode 100644 index 0000000000..c1d5689042 --- /dev/null +++ b/tests/compiler/interface-with-initializer.ts @@ -0,0 +1,9 @@ +interface I { + v: string = ""; +} + +class C implements I { + v: string = ""; +} + +new C(); From 53aab48ea85df7bca835df2187bbf65b2f750de0 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 17 Nov 2023 13:40:47 +0800 Subject: [PATCH 03/86] fix: handle nest tostack in shadowstack pass (#2792) --- src/passes/shadowstack.ts | 15 +++++++++------ tests/compiler/resolve-unary.debug.wat | 8 ++------ tests/compiler/resolve-unary.release.wat | 8 -------- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/passes/shadowstack.ts b/src/passes/shadowstack.ts index 4d08e39971..d34997ed08 100644 --- a/src/passes/shadowstack.ts +++ b/src/passes/shadowstack.ts @@ -159,18 +159,21 @@ type TempMap = Map; /** Attempts to match the `__tostack(value)` pattern. Returns `value` if a match, otherwise `0`. */ function matchPattern(module: Module, expr: ExpressionRef): ExpressionRef { - if ( + let isFound = false; + while ( _BinaryenExpressionGetId(expr) == ExpressionId.Call && module.readStringCached(_BinaryenCallGetTarget(expr)) == BuiltinNames.tostack ) { assert(_BinaryenCallGetNumOperands(expr) == 1); - return _BinaryenCallGetOperandAt(expr, 0); + expr = _BinaryenCallGetOperandAt(expr, 0); + isFound = true; } - return 0; + if (!isFound) return 0; + return expr; } /** Tests whether a `value` matched by `matchTostack` needs a slot. */ -function needsSlot(module: Module, value: ExpressionRef): bool { +function needsSlot(value: ExpressionRef): bool { switch (_BinaryenExpressionGetId(value)) { // no need to stack null pointers case ExpressionId.Const: return !isConstZero(value); @@ -344,7 +347,7 @@ export class ShadowStackPass extends Pass { let operand = operands[i]; let match = matchPattern(module, operand); if (!match) continue; - if (!needsSlot(module, match)) { + if (!needsSlot(match)) { operands[i] = match; continue; } @@ -434,7 +437,7 @@ export class ShadowStackPass extends Pass { let value = _BinaryenLocalSetGetValue(localSet); let match = matchPattern(module, value); if (!match) return; - if (!needsSlot(module, match)) { + if (!needsSlot(match)) { _BinaryenLocalSetSetValue(localSet, match); return; } diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index 1eff1a8a06..f22d05a02b 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -3753,10 +3753,8 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - local.tee $6 - i32.store + local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 @@ -3789,10 +3787,8 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - local.tee $6 - i32.store + local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index 97dd0c9459..1998ea2c48 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -2626,10 +2626,6 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $resolve-unary/bar - local.tee $1 - i32.store - local.get $0 - local.get $1 i32.store offset=12 local.get $0 i32.const 3680 @@ -2655,10 +2651,6 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $resolve-unary/bar - local.tee $1 - i32.store - local.get $0 - local.get $1 i32.store offset=12 local.get $0 i32.const 3712 From 5ee17becc369c9b43f91814e09ccbe7447ff554c Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 17 Nov 2023 13:42:51 +0800 Subject: [PATCH 04/86] fix: diagnose correct class name when resolving class member fails (#2799) --- src/resolver.ts | 48 ++++++++++++++++---------------- tests/compiler/class-errors.json | 9 ++++++ tests/compiler/class-errors.ts | 7 +++++ 3 files changed, 40 insertions(+), 24 deletions(-) create mode 100644 tests/compiler/class-errors.json create mode 100644 tests/compiler/class-errors.ts diff --git a/src/resolver.ts b/src/resolver.ts index ca05a3424b..b1c2504521 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -1440,8 +1440,10 @@ export class Resolver extends DiagnosticEmitter { case ElementKind.InterfacePrototype: case ElementKind.Class: case ElementKind.Interface: { + let classLikeTarget = target; + let findBase = false; do { - let member = target.getMember(propertyName); + let member = classLikeTarget.getMember(propertyName); if (member) { if (member.kind == ElementKind.PropertyPrototype) { let propertyInstance = this.resolveProperty(member, reportMode); @@ -1458,34 +1460,32 @@ export class Resolver extends DiagnosticEmitter { this.currentElementExpression = null; return member; // instance FIELD, static GLOBAL, FUNCTION_PROTOTYPE, PROPERTY... } - // traverse inherited static members on the base prototype if target is a class prototype - if ( - target.kind == ElementKind.ClassPrototype || - target.kind == ElementKind.InterfacePrototype - ) { - let classPrototype = target; - let basePrototype = classPrototype.basePrototype; - if (basePrototype) { - target = basePrototype; - } else { + findBase = false; + switch (classLikeTarget.kind) { + case ElementKind.ClassPrototype: + case ElementKind.InterfacePrototype: { + // traverse inherited static members on the base prototype if target is a class prototype + let classPrototype = classLikeTarget; + let basePrototype = classPrototype.basePrototype; + if (basePrototype) { + findBase = true; + classLikeTarget = basePrototype; + } break; } - // traverse inherited instance members on the base class if target is a class instance - } else if ( - target.kind == ElementKind.Class || - target.kind == ElementKind.Interface - ) { - let classInstance = target; - let baseInstance = classInstance.base; - if (baseInstance) { - target = baseInstance; - } else { + case ElementKind.Class: + case ElementKind.Interface: { + // traverse inherited instance members on the base class if target is a class instance + let classInstance = classLikeTarget; + let baseInstance = classInstance.base; + if (baseInstance) { + findBase = true; + classLikeTarget = baseInstance; + } break; } - } else { - break; } - } while (true); + } while (findBase); break; } default: { // enums or other namespace-like elements diff --git a/tests/compiler/class-errors.json b/tests/compiler/class-errors.json new file mode 100644 index 0000000000..d852107478 --- /dev/null +++ b/tests/compiler/class-errors.json @@ -0,0 +1,9 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS2304: Cannot find name 'T'.", + "TS2339: Property 'v' does not exist on type 'class-errors/A'.", + "EOF" + ] +} diff --git a/tests/compiler/class-errors.ts b/tests/compiler/class-errors.ts new file mode 100644 index 0000000000..ff71b03088 --- /dev/null +++ b/tests/compiler/class-errors.ts @@ -0,0 +1,7 @@ +class A { + v: T; +} + +new A().v; + +ERROR("EOF"); From 41f395a013a5007fa314ba6e0b7ed8a539ed2c95 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 17 Nov 2023 13:43:33 +0800 Subject: [PATCH 05/86] fix: add diagnose when getter is not as accessible as the setter (#2801) --- src/diagnosticMessages.json | 2 +- src/program.ts | 18 ++++++++++++++++++ src/resolver.ts | 22 +--------------------- tests/compiler/getter-setter-errors.json | 8 ++++++++ tests/compiler/getter-setter-errors.ts | 16 ++++++++++++++++ 5 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 tests/compiler/getter-setter-errors.json create mode 100644 tests/compiler/getter-setter-errors.ts diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index 3ff9e9f162..3cc11f3825 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -151,7 +151,6 @@ "Operator '{0}' cannot be applied to types '{1}' and '{2}'.": 2365, "A 'super' call must be the first statement in the constructor.": 2376, "Constructors for derived classes must contain a 'super' call.": 2377, - "Getter and setter accessors do not agree in visibility.": 2379, "'get' and 'set' accessor must have the same type.": 2380, "Overload signatures must all be public, private or protected.": 2385, "Constructor implementation is missing.": 2390, @@ -200,6 +199,7 @@ "Duplicate property '{0}'.": 2718, "Property '{0}' is missing in type '{1}' but required in type '{2}'.": 2741, "Type '{0}' has no call signatures.": 2757, + "Get accessor '{0}' must be at least as accessible as the setter.": 2808, "This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.": 4117, "File '{0}' not found.": 6054, diff --git a/src/program.ts b/src/program.ts index 3174be4875..febeb1227c 100644 --- a/src/program.ts +++ b/src/program.ts @@ -3088,6 +3088,13 @@ export abstract class Element { return (this.flags & vis) == (other.flags & vis); } + visibilityNoLessThan(other: Element): bool { + if (this.isPublic) return true; // public is a most frequent case + if (this.is(CommonFlags.Private)) return other.is(CommonFlags.Private); + if (this.is(CommonFlags.Protected)) return other.isAny(CommonFlags.Private | CommonFlags.Protected); + return assert(false); + } + /** Tests if this element is bound to a class. */ get isBound(): bool { let parent = this.parent; @@ -4174,6 +4181,17 @@ export class Property extends VariableLikeElement { get isField(): bool { return this.prototype.isField; } + + checkVisibility(diag: DiagnosticEmitter): void { + let propertyGetter = this.getterInstance; + let propertySetter = this.setterInstance; + if (propertyGetter && propertySetter && !propertyGetter.visibilityNoLessThan(propertySetter)) { + diag.errorRelated( + DiagnosticCode.Get_accessor_0_must_be_at_least_as_accessible_as_the_setter, + propertyGetter.identifierNode.range, propertySetter.identifierNode.range, propertyGetter.identifierNode.text + ); + } + } } /** A resolved index signature. */ diff --git a/src/resolver.ts b/src/resolver.ts index b1c2504521..d6177806bd 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -3384,7 +3384,6 @@ export class Resolver extends DiagnosticEmitter { // Resolve instance members let prototype = instance.prototype; let instanceMemberPrototypes = prototype.instanceMembers; - let properties = new Array(); if (instanceMemberPrototypes) { // TODO: for (let member of instanceMemberPrototypes.values()) { for (let _values = Map_values(instanceMemberPrototypes), i = 0, k = _values.length; i < k; ++i) { @@ -3464,26 +3463,6 @@ export class Resolver extends DiagnosticEmitter { } } - // Check that property getters and setters match - for (let i = 0, k = properties.length; i < k; ++i) { - let property = properties[i]; - let propertyGetter = property.getterInstance; - if (!propertyGetter) { - this.error( - DiagnosticCode.Property_0_only_has_a_setter_and_is_missing_a_getter, - property.identifierNode.range, property.name - ); - } else { - let propertySetter = property.setterInstance; - if (propertySetter && !propertyGetter.visibilityEquals(propertySetter)) { - this.errorRelated( - DiagnosticCode.Getter_and_setter_accessors_do_not_agree_in_visibility, - propertyGetter.identifierNode.range, propertySetter.identifierNode.range - ); - } - } - } - if (instance.kind != ElementKind.Interface) { // Check that all required members are implemented @@ -3707,6 +3686,7 @@ export class Resolver extends DiagnosticEmitter { } } } + instance.checkVisibility(this); return instance; } diff --git a/tests/compiler/getter-setter-errors.json b/tests/compiler/getter-setter-errors.json new file mode 100644 index 0000000000..81e016bde0 --- /dev/null +++ b/tests/compiler/getter-setter-errors.json @@ -0,0 +1,8 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS2808: Get accessor 'm2' must be at least as accessible as the setter.", + "EOF" + ] +} diff --git a/tests/compiler/getter-setter-errors.ts b/tests/compiler/getter-setter-errors.ts new file mode 100644 index 0000000000..dd2b191127 --- /dev/null +++ b/tests/compiler/getter-setter-errors.ts @@ -0,0 +1,16 @@ +class GetSetWithoutDifferenceVisibility { + public get m1(): i32 { + return 1; + } + private set m1(v: i32) {} + + private get m2(): i32 { + return 1; + } + public set m2(v: i32) {} +} + +new GetSetWithoutDifferenceVisibility().m1; // m1 is valid +new GetSetWithoutDifferenceVisibility().m2; // m2 is invalid + +ERROR("EOF"); From 5dec4a3a82c97f3a80c86a60f49167b18267a7e5 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 17 Nov 2023 15:53:00 +0800 Subject: [PATCH 06/86] fix: string field with false value in `asconfig.js` (#2802) Co-authored-by: Zhenya.Liu --- package.json | 3 ++- tests/cli/options.js | 39 +++++++++++++++++++++++---------------- util/options.js | 1 + 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 38e4f49ab1..c35597e8c6 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "build": "node scripts/build", "watch": "node scripts/build --watch", "coverage": "npx c8 -- npm test", - "test": "npm run test:parser && npm run test:compiler -- --parallel && npm run test:browser && npm run test:asconfig && npm run test:transform", + "test": "npm run test:parser && npm run test:compiler -- --parallel && npm run test:browser && npm run test:asconfig && npm run test:transform && npm run test:cli", "test:parser": "node --enable-source-maps tests/parser", "test:compiler": "node --enable-source-maps --no-warnings tests/compiler", "test:browser": "node --enable-source-maps tests/browser", @@ -85,6 +85,7 @@ "test:transform": "npm run test:transform:esm && npm run test:transform:cjs", "test:transform:esm": "node bin/asc tests/compiler/empty --transform ./tests/transform/index.js --noEmit && node bin/asc tests/compiler/empty --transform ./tests/transform/simple.js --noEmit", "test:transform:cjs": "node bin/asc tests/compiler/empty --transform ./tests/transform/cjs/index.js --noEmit && node bin/asc tests/compiler/empty --transform ./tests/transform/cjs/simple.js --noEmit", + "test:cli": "node tests/cli/options.js", "asbuild": "npm run asbuild:debug && npm run asbuild:release", "asbuild:debug": "node bin/asc --config src/asconfig.json --target debug", "asbuild:release": "node bin/asc --config src/asconfig.json --target release", diff --git a/tests/cli/options.js b/tests/cli/options.js index 637aae3493..1eed2763ce 100644 --- a/tests/cli/options.js +++ b/tests/cli/options.js @@ -2,18 +2,21 @@ import assert from "assert"; import * as optionsUtil from "../../util/options.js"; const config = { - "enable": { - "type": "S", - "mutuallyExclusive": "disable" + enable: { + type: "S", + mutuallyExclusive: "disable", }, - "disable": { - "type": "S", - "mutuallyExclusive": "enable" + disable: { + type: "S", + mutuallyExclusive: "enable", + }, + other: { + type: "S", + default: ["x"], + }, + bool_input_for_string: { + type: "s", }, - "other": { - "type": "S", - "default": ["x"] - } }; // Present in both should concat @@ -33,17 +36,21 @@ assert.deepStrictEqual(merged.enable, ["c"]); assert.deepStrictEqual(merged.disable, ["a", "b"]); // Populating defaults should work after the fact -optionsUtil.addDefaults(config, merged = {}); +optionsUtil.addDefaults(config, (merged = {})); assert.deepStrictEqual(merged.other, ["x"]); -optionsUtil.addDefaults(config, merged = { other: ["y"] }); +optionsUtil.addDefaults(config, (merged = { other: ["y"] })); assert.deepStrictEqual(merged.other, ["y"]); +// String test +assert.deepStrictEqual(merged.bool_input_for_string, undefined); +merged = optionsUtil.merge(config, {}, { bool_input_for_string: false }); +assert.deepStrictEqual(merged.bool_input_for_string, undefined); +merged = optionsUtil.merge(config, {}, { bool_input_for_string: true }); +assert.deepStrictEqual(merged.bool_input_for_string, ""); + // Complete usage test -let result = optionsUtil.parse([ - "--enable", "a", - "--disable", "b", -], config, false); +let result = optionsUtil.parse(["--enable", "a", "--disable", "b"], config, false); merged = optionsUtil.merge(config, result.options, { enable: ["b", "c"] }); merged = optionsUtil.merge(config, merged, { disable: ["a", "d"] }); diff --git a/util/options.js b/util/options.js index d0633b19e2..7b1c2de69a 100644 --- a/util/options.js +++ b/util/options.js @@ -150,6 +150,7 @@ function sanitizeValue(value, type) { case "f": return Number(value) || 0; case "s": { if (value === true) return ""; + if (value === false) return null; return String(value); } case "I": { From d142ac807ac8d565f39d6f8300f6fd7b2a4d5e6b Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Sun, 19 Nov 2023 20:08:14 -0800 Subject: [PATCH 07/86] fix: Improve date parsing (fractional seconds, UTC offsets) (#2803) --- NOTICE | 1 + std/assembly/date.ts | 59 +- tests/compiler/std/date.debug.wat | 5338 ++++++++++++++++----------- tests/compiler/std/date.release.wat | 3222 +++++++++------- tests/compiler/std/date.ts | 42 +- 5 files changed, 5128 insertions(+), 3534 deletions(-) diff --git a/NOTICE b/NOTICE index 4962c2400e..adca27c800 100644 --- a/NOTICE +++ b/NOTICE @@ -56,6 +56,7 @@ under the licensing terms detailed in LICENSE: * Abdul Rauf * Bach Le * Xinquan Xu +* Matt Johnson-Pint Portions of this software are derived from third-party works licensed under the following terms: diff --git a/std/assembly/date.ts b/std/assembly/date.ts index 5d77fdcbde..2f847e1786 100644 --- a/std/assembly/date.ts +++ b/std/assembly/date.ts @@ -52,7 +52,8 @@ export class Date { hour: i32 = 0, min: i32 = 0, sec: i32 = 0, - ms: i32 = 0; + ms: i32 = 0, + offsetMs: i32 = 0; let dateString = dateTimeString; let posT = dateTimeString.indexOf("T"); @@ -61,37 +62,67 @@ export class Date { let timeString: string; dateString = dateTimeString.substring(0, posT); timeString = dateTimeString.substring(posT + 1); - // parse the HH-MM-SS component + + // might end with an offset ("Z", "+05:30", "-08:00", etc.) + for (let i = timeString.length - 1; i >= 0; i--) { + let c = timeString.charCodeAt(i); + if (c == 90) { // Z + timeString = timeString.substring(0, i); + break; + } else if (c == 43 || c == 45) { // + or - + if (i == timeString.length - 1) { + throw new RangeError(E_INVALIDDATE); + } + + let posColon = timeString.indexOf(":", i + 1); + if (~posColon) { + let offsetHours = i32.parse(timeString.substring(i + 1, posColon)); + let offsetMinutes = i32.parse(timeString.substring(posColon + 1)); + offsetMs = (offsetHours * 60 + offsetMinutes) * MILLIS_PER_MINUTE; + } else { + let offsetHours = i32.parse(timeString.substring(i + 1)); + offsetMs = offsetHours * MILLIS_PER_HOUR; + } + + if (c == 45) offsetMs = -offsetMs; // negative offset + timeString = timeString.substring(0, i); + break; + } + } + + // parse the HH:MM:SS component let timeParts = timeString.split(":"); let len = timeParts.length; if (len <= 1) throw new RangeError(E_INVALIDDATE); - hour = I32.parseInt(timeParts[0]); - min = I32.parseInt(timeParts[1]); + hour = i32.parse(timeParts[0]); + min = i32.parse(timeParts[1]); if (len >= 3) { - let secAndMs = timeParts[2]; - let posDot = secAndMs.indexOf("."); + let secAndFrac = timeParts[2]; + let posDot = secAndFrac.indexOf("."); if (~posDot) { - // includes milliseconds - sec = I32.parseInt(secAndMs.substring(0, posDot)); - ms = I32.parseInt(secAndMs.substring(posDot + 1)); + // includes fractional seconds (truncate to milliseconds) + sec = i32.parse(secAndFrac.substring(0, posDot)); + ms = i32.parse(secAndFrac.substr(posDot + 1, 3).padEnd(3, "0")); } else { - sec = I32.parseInt(secAndMs); + sec = i32.parse(secAndFrac); } } } + // parse the YYYY-MM-DD component let parts = dateString.split("-"); - let year = I32.parseInt(parts[0]); + let year = i32.parse(parts[0]); let month = 1, day = 1; let len = parts.length; if (len >= 2) { - month = I32.parseInt(parts[1]); + month = i32.parse(parts[1]); if (len >= 3) { - day = I32.parseInt(parts[2]); + day = i32.parse(parts[2]); } } - return new Date(epochMillis(year, month, day, hour, min, sec, ms)); + + return new Date(epochMillis(year, month, day, hour, min, sec, ms) - offsetMs); } constructor(private epochMillis: i64) { diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 38f16b3ed2..dd23468444 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -43,10 +43,10 @@ (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/rt/__rtti_base i32 (i32.const 6768)) - (global $~lib/memory/__data_end i32 (i32.const 6804)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 39572)) - (global $~lib/memory/__heap_base i32 (i32.const 39572)) + (global $~lib/rt/__rtti_base i32 (i32.const 7408)) + (global $~lib/memory/__data_end i32 (i32.const 7444)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 40212)) + (global $~lib/memory/__heap_base i32 (i32.const 40212)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00D\00a\00t\00e\00\00\00\00\00") @@ -149,16 +149,24 @@ (data $97 (i32.const 6012) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00\00\00\00\00\00\00") (data $98 (i32.const 6076) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $99 (i32.const 6156) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $100 (i32.const 6236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\000\00\00\00\00\00") - (data $101 (i32.const 6268) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\001\00\00\00\00\00") - (data $102 (i32.const 6300) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\009\007\006\00\00\00\00\00") - (data $103 (i32.const 6332) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $104 (i32.const 6380) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $105 (i32.const 6444) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") - (data $106 (i32.const 6524) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\003\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") - (data $107 (i32.const 6604) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00") - (data $108 (i32.const 6684) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z\00\00\00\00\00\00\00") - (data $109 (i32.const 6768) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t\00\00") + (data $100 (i32.const 6236) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00-\000\008\00:\000\000\00\00\00") + (data $101 (i32.const 6316) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00+\000\005\00:\003\000\00\00\00") + (data $102 (i32.const 6396) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00") + (data $103 (i32.const 6460) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00Z\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $104 (i32.const 6540) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\008\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00+\000\000\00:\000\000\00\00\00\00\00") + (data $105 (i32.const 6620) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\004\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00\00\00\00\00\00\00\00\00") + (data $106 (i32.const 6700) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00Z\00\00\00\00\00\00\00") + (data $107 (i32.const 6780) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00@\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00+\000\000\00:\000\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $108 (i32.const 6876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\000\00\00\00\00\00") + (data $109 (i32.const 6908) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\000\000\000\001\00\00\00\00\00") + (data $110 (i32.const 6940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\009\007\006\00\00\00\00\00") + (data $111 (i32.const 6972) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $112 (i32.const 7020) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $113 (i32.const 7084) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") + (data $114 (i32.const 7164) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\003\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z\00\00\00\00\00\00\00") + (data $115 (i32.const 7244) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z\00\00\00\00\00\00\00") + (data $116 (i32.const 7324) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z\00\00\00\00\00\00\00") + (data $117 (i32.const 7408) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -3487,77 +3495,6 @@ i32.load return ) - (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) - (local $oldObj i32) - (local $newPtr i32) - (local $4 i32) - (local $5 i32) - local.get $oldPtr - i32.const 20 - i32.sub - local.set $oldObj - local.get $size - local.get $oldObj - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $oldObj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $oldPtr - return - end - local.get $size - local.get $oldObj - call $~lib/rt/itcms/Object#get:rtId - call $~lib/rt/itcms/__new - local.set $newPtr - local.get $newPtr - local.get $oldPtr - local.get $size - local.tee $4 - local.get $oldObj - call $~lib/rt/itcms/Object#get:rtSize - local.tee $5 - local.get $4 - local.get $5 - i32.lt_u - select - memory.copy - local.get $newPtr - return - ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (param $this i32) (param $length_ i32) - local.get $this - local.get $length_ - i32.store offset=12 - ) - (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) (func $~lib/util/string/isSpace (param $c i32) (result i32) (local $1 i32) local.get $c @@ -3645,6 +3582,77 @@ i32.const 0 return ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) + (local $oldObj i32) + (local $newPtr i32) + (local $4 i32) + (local $5 i32) + local.get $oldPtr + i32.const 20 + i32.sub + local.set $oldObj + local.get $size + local.get $oldObj + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $oldObj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $oldPtr + return + end + local.get $size + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtId + call $~lib/rt/itcms/__new + local.set $newPtr + local.get $newPtr + local.get $oldPtr + local.get $size + local.tee $4 + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtSize + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + memory.copy + local.get $newPtr + return + ) + (func $~lib/array/Array<~lib/string/String>#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 368 @@ -3814,8 +3822,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 39600 - i32.const 39648 + i32.const 40240 + i32.const 40288 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3879,7 +3887,7 @@ if i32.const 32 i32.const 80 - i32.const 100 + i32.const 131 i32.const 35 call $~lib/builtins/abort unreachable @@ -3933,7 +3941,7 @@ if i32.const 32 i32.const 80 - i32.const 112 + i32.const 143 i32.const 28 call $~lib/builtins/abort unreachable @@ -6528,18 +6536,59 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) - (local $oldCapacity i32) - (local $oldData i32) + (func $~lib/string/String#charCodeAt (param $this i32) (param $pos 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 + local.get $pos + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/string/String#get:length + i32.ge_u + if + i32.const -1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $this + local.get $pos + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/util/string/strtol (param $str i32) (param $radix i32) (result i32) + (local $len i32) + (local $ptr i32) + (local $code i32) + (local $sign i32) (local $6 i32) - (local $7 i32) - (local $newCapacity i32) + (local $num i32) + (local $initial i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $newData i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6548,715 +6597,351 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $array - local.set $14 + local.get $str + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $10 i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - local.set $oldCapacity - local.get $newSize - local.get $oldCapacity - local.get $alignLog2 - i32.shr_u - i32.gt_u + local.get $10 + call $~lib/string/String#get:length + local.set $len + local.get $len + i32.eqz if - local.get $newSize - i32.const 1073741820 - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - i32.const 5760 - i32.const 5712 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $array - local.set $14 + i32.const 0 + drop + i32.const 0 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $oldData - local.get $newSize - local.tee $6 - i32.const 8 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_u - select - local.get $alignLog2 - i32.shl - local.set $newCapacity - local.get $canGrow - if - local.get $oldCapacity + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $str + local.set $ptr + local.get $ptr + i32.load16_u + local.set $code + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len i32.const 1 - i32.shl - local.tee $9 - i32.const 1073741820 - local.tee $10 - local.get $9 - local.get $10 - i32.lt_u - select - local.tee $11 - local.get $newCapacity - local.tee $12 - local.get $11 - local.get $12 - i32.gt_u - select - local.set $newCapacity + i32.sub + local.set $len + br $while-continue|0 end - local.get $oldData - local.get $newCapacity - call $~lib/rt/itcms/__renew - local.set $newData - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $newData - local.get $oldData - i32.ne + end + i32.const 1 + local.set $sign + local.get $code + i32.const 45 + i32.eq + if (result i32) + i32.const 1 + else + local.get $code + i32.const 43 + i32.eq + end + if + local.get $len + i32.const 1 + i32.sub + local.tee $len + i32.eqz if - local.get $array - local.get $newData - i32.store - local.get $array - local.get $newData - i32.store offset=4 - local.get $array - local.get $newData i32.const 0 - call $~lib/rt/itcms/__link + drop + i32.const 0 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return end - local.get $array - local.get $newCapacity - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#__set (param $this i32) (param $index i32) (param $value 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 - local.get $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array<~lib/string/String>#get:length_ - i32.ge_u - if - local.get $index - i32.const 0 - i32.lt_s + local.get $code + i32.const 45 + i32.eq if - i32.const 368 - i32.const 5712 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + i32.const -1 + local.set $sign end - local.get $this - local.get $index - i32.const 1 - i32.add + local.get $ptr i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $index - i32.const 1 i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ + local.tee $ptr + i32.load16_u + local.set $code end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - local.get $value - i32.store - i32.const 1 - drop - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#push (param $this i32) (param $value i32) (result i32) - (local $oldLen i32) - (local $len i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array<~lib/string/String>#get:length_ - local.set $oldLen - local.get $oldLen - i32.const 1 - i32.add - local.set $len - local.get $this - local.get $len - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - i32.const 1 - drop - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.get $oldLen - i32.const 2 - i32.shl - i32.add - local.get $value - i32.store - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $len - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $len - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - ) - (func $~lib/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $length i32) - (local $sepLen i32) - (local $7 i32) - (local $8 i32) - (local $result i32) - (local $resultStart i32) - (local $i i32) - (local $charStr i32) - (local $result|13 i32) - (local $result|14 i32) - (local $end i32) - (local $start i32) - (local $i|17 i32) - (local $len i32) - (local $out i32) - (local $len|20 i32) - (local $out|21 i32) - (local $22 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - local.get $limit - i32.eqz - if - i32.const 0 - i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return - end - local.get $separator - i32.const 0 - i32.eq + local.get $radix if - global.get $~lib/memory/__stack_pointer - i32.const 1 + local.get $radix i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $this - call $~lib/array/Array<~lib/string/String>#__set - local.get $3 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return - end - local.get $this - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/string/String#get:length - local.set $length - local.get $separator - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/string/String#get:length - local.set $sepLen - local.get $limit - i32.const 0 - i32.lt_s - if - global.get $~lib/builtins/i32.MAX_VALUE - local.set $limit - end - local.get $sepLen - i32.eqz - if - local.get $length - i32.eqz + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $radix + i32.const 36 + i32.gt_s + end if i32.const 0 - i32.const 2 - i32.const 6 + drop i32.const 0 - call $~lib/rt/__newArray - local.set $22 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $10 return end - local.get $length - local.tee $7 - local.get $limit - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - local.set $length - global.get $~lib/memory/__stack_pointer - local.get $length - i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.tee $result - i32.store offset=12 - local.get $result - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.set $resultStart - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $length - i32.lt_s + local.get $radix + i32.const 16 + i32.eq + if + local.get $len + i32.const 2 + i32.gt_s + if (result i32) + local.get $code + i32.const 48 + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $ptr + i32.load16_u offset=2 + i32.const 32 + i32.or + i32.const 120 + i32.eq + else + i32.const 0 + end if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $charStr - i32.store offset=16 - local.get $charStr - local.get $this - local.get $i - i32.const 1 - i32.shl + local.get $ptr + i32.const 4 i32.add - i32.load16_u - i32.store16 - local.get $resultStart - local.get $i + local.set $ptr + local.get $len i32.const 2 - i32.shl - i32.add - local.get $charStr - i32.store - local.get $result - local.get $charStr - i32.const 1 - call $~lib/rt/itcms/__link - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.sub + local.set $len end end - local.get $result - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return else - local.get $length - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 + local.get $code + i32.const 48 + i32.eq + if (result i32) + local.get $len i32.const 2 - i32.const 6 + i32.gt_s + else i32.const 0 - call $~lib/rt/__newArray - local.tee $result|13 - i32.store offset=20 - local.get $result|13 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/array/Array<~lib/string/String>#get:dataStart - i32.const 2432 - i32.store - local.get $result|13 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return end - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.tee $result|14 - i32.store offset=24 - i32.const 0 - local.set $end - i32.const 0 - local.set $start - i32.const 0 - local.set $i|17 - loop $while-continue|1 - local.get $this - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $separator - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - local.get $start - call $~lib/string/String#indexOf - local.tee $end - i32.const -1 - i32.xor if - local.get $end - local.get $start - i32.sub - local.set $len - local.get $len - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=32 - local.get $out - local.get $this - local.get $start - i32.const 1 - i32.shl + block $break|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $ptr + i32.load16_u offset=2 + i32.const 32 + i32.or + local.set $6 + local.get $6 + i32.const 98 + i32.eq + br_if $case0|1 + local.get $6 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $6 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + i32.const 2 + local.set $radix + br $break|1 + end + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + i32.const 8 + local.set $radix + br $break|1 + end + local.get $ptr + i32.const 4 i32.add + local.set $ptr local.get $len - i32.const 1 - i32.shl - memory.copy - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $out - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - i32.const 2432 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop + i32.const 2 + i32.sub + local.set $len + i32.const 16 + local.set $radix + br $break|1 end - local.get $i|17 + end + local.get $radix + i32.eqz + if + i32.const 10 + local.set $radix + end + end + i32.const 0 + local.set $num + local.get $len + i32.const 1 + i32.sub + local.set $initial + block $while-break|2 + loop $while-continue|2 + local.get $len + local.tee $9 i32.const 1 - i32.add - local.tee $i|17 - local.get $limit - i32.eq + i32.sub + local.set $len + local.get $9 if - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 + local.get $ptr + i32.load16_u + local.set $code + local.get $code + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if + local.get $code + i32.const 48 + i32.sub + local.set $code + else + local.get $code + i32.const 65 + i32.sub + i32.const 90 + i32.const 65 + i32.sub + i32.le_u + if + local.get $code + i32.const 65 + i32.const 10 + i32.sub + i32.sub + local.set $code + else + local.get $code + i32.const 97 + i32.sub + i32.const 122 + i32.const 97 + i32.sub + i32.le_u + if + local.get $code + i32.const 97 + i32.const 10 + i32.sub + i32.sub + local.set $code + end + end + end + local.get $code + local.get $radix + i32.ge_u + if + local.get $initial + local.get $len + i32.eq + if + i32.const 0 + drop + i32.const 0 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + br $while-break|2 + end + local.get $num + local.get $radix + i32.mul + local.get $code i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return + local.set $num + local.get $ptr + i32.const 2 + i32.add + local.set $ptr + br $while-continue|2 end - local.get $end - local.get $sepLen - i32.add - local.set $start - br $while-continue|1 end end - local.get $start - i32.eqz - if - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $this - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return - end - local.get $length - local.get $start - i32.sub - local.set $len|20 - local.get $len|20 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $len|20 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out|21 - i32.store offset=36 - local.get $out|21 - local.get $this - local.get $start - i32.const 1 - i32.shl - i32.add - local.get $len|20 - i32.const 1 - i32.shl - memory.copy - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $out|21 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - i32.const 2432 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop - end - local.get $result|14 - local.set $22 + local.get $sign + local.get $num + i32.mul + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $10 return ) - (func $~lib/string/String#split@varargs (param $this i32) (param $separator i32) (param $limit i32) (result 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 - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $separator - end - global.get $~lib/builtins/i32.MAX_VALUE - local.set $limit - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $separator - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $limit - call $~lib/string/String#split - 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/array/Array<~lib/string/String>#get:length (param $this i32) (result i32) - (local $1 i32) + (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) + (local $oldCapacity i32) + (local $oldData i32) + (local $6 i32) + (local $7 i32) + (local $newCapacity i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $newData i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7265,32 +6950,115 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $this - local.set $1 + local.get $array + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $14 i32.store - local.get $1 - call $~lib/array/Array<~lib/string/String>#get:length_ - local.set $1 + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + local.set $oldCapacity + local.get $newSize + local.get $oldCapacity + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + local.get $newSize + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 5760 + i32.const 5712 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $oldData + local.get $newSize + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $alignLog2 + i32.shl + local.set $newCapacity + local.get $canGrow + if + local.get $oldCapacity + i32.const 1 + i32.shl + local.tee $9 + i32.const 1073741820 + local.tee $10 + local.get $9 + local.get $10 + i32.lt_u + select + local.tee $11 + local.get $newCapacity + local.tee $12 + local.get $11 + local.get $12 + i32.gt_u + select + local.set $newCapacity + end + local.get $oldData + local.get $newCapacity + call $~lib/rt/itcms/__renew + local.set $newData + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $newData + local.get $oldData + i32.ne + if + local.get $array + local.get $newData + i32.store + local.get $array + local.get $newData + i32.store offset=4 + local.get $array + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $array + local.get $newCapacity + i32.store offset=8 + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - return ) - (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) + (func $~lib/array/Array<~lib/string/String>#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $index local.get $this local.set $3 @@ -7301,62 +7069,63 @@ call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if - i32.const 368 - i32.const 5712 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 368 + i32.const 5712 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array<~lib/string/String>#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 call $~lib/array/Array<~lib/string/String>#get:dataStart local.get $index i32.const 2 i32.shl i32.add - i32.load - local.tee $value - i32.store offset=4 + local.get $value + i32.store i32.const 1 drop - i32.const 0 - i32.eqz - drop - local.get $value - i32.eqz - if - i32.const 5808 - i32.const 5712 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end + local.get $this local.get $value - local.set $3 + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $~lib/util/string/strtol (param $str i32) (param $radix i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#push (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) (local $len i32) - (local $ptr i32) - (local $code i32) - (local $sign i32) - (local $6 i32) - (local $num i32) - (local $initial i32) - (local $9 i32) - (local $10 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7365,363 +7134,849 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $str - local.set $10 + local.get $this + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $4 i32.store - local.get $10 - call $~lib/string/String#get:length + local.get $4 + call $~lib/array/Array<~lib/string/String>#get:length_ + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $~lib/array/Array<~lib/string/String>#set:length_ local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $length i32) + (local $sepLen i32) + (local $7 i32) + (local $8 i32) + (local $result i32) + (local $resultStart i32) + (local $i i32) + (local $charStr i32) + (local $result|13 i32) + (local $result|14 i32) + (local $end i32) + (local $start i32) + (local $i|17 i32) + (local $len i32) + (local $out i32) + (local $len|20 i32) + (local $out|21 i32) + (local $22 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + local.get $limit i32.eqz if i32.const 0 - drop + i32.const 2 + i32.const 6 i32.const 0 - local.set $10 + call $~lib/rt/__newArray + local.set $22 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $22 return end - local.get $str - local.set $ptr - local.get $ptr - i32.load16_u - local.set $code - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 - end - end - i32.const 1 - local.set $sign - local.get $code - i32.const 45 + local.get $separator + i32.const 0 i32.eq - if (result i32) + if + global.get $~lib/memory/__stack_pointer i32.const 1 - else - local.get $code - i32.const 43 - i32.eq + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $this + call $~lib/array/Array<~lib/string/String>#__set + local.get $3 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + end + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + call $~lib/string/String#get:length + local.set $length + local.get $separator + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + call $~lib/string/String#get:length + local.set $sepLen + local.get $limit + i32.const 0 + i32.lt_s + if + global.get $~lib/builtins/i32.MAX_VALUE + local.set $limit end + local.get $sepLen + i32.eqz if - local.get $len - i32.const 1 - i32.sub - local.tee $len + local.get $length i32.eqz if i32.const 0 - drop + i32.const 2 + i32.const 6 i32.const 0 - local.set $10 + call $~lib/rt/__newArray + local.set $22 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $22 return end - local.get $code - i32.const 45 - i32.eq - if - i32.const -1 - local.set $sign - end - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - end - local.get $radix - if - local.get $radix - i32.const 2 + local.get $length + local.tee $7 + local.get $limit + local.tee $8 + local.get $7 + local.get $8 i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s + select + local.set $length + global.get $~lib/memory/__stack_pointer + local.get $length + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $result + i32.store offset=12 + local.get $result + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.set $resultStart + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $length + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $charStr + i32.store offset=16 + local.get $charStr + local.get $this + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $resultStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $charStr + i32.store + local.get $result + local.get $charStr + i32.const 1 + call $~lib/rt/itcms/__link + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end + local.get $result + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + else + local.get $length + i32.eqz if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 6 i32.const 0 - drop - i32.const 0 - local.set $10 + call $~lib/rt/__newArray + local.tee $result|13 + i32.store offset=20 + local.get $result|13 + local.set $22 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $22 + i32.store offset=8 + local.get $22 + call $~lib/array/Array<~lib/string/String>#get:dataStart + i32.const 2432 + i32.store + local.get $result|13 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $22 return end - local.get $radix - i32.const 16 - i32.eq + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $result|14 + i32.store offset=24 + i32.const 0 + local.set $end + i32.const 0 + local.set $start + i32.const 0 + local.set $i|17 + loop $while-continue|1 + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + local.get $separator + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + local.get $start + call $~lib/string/String#indexOf + local.tee $end + i32.const -1 + i32.xor if + local.get $end + local.get $start + i32.sub + local.set $len local.get $len - i32.const 2 + i32.const 0 i32.gt_s - if (result i32) - local.get $code - i32.const 48 - i32.eq - else - i32.const 0 - end - if (result i32) - local.get $ptr - i32.load16_u offset=2 - i32.const 32 - i32.or - i32.const 120 - i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $len + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=32 + local.get $out + local.get $this + local.get $start + i32.const 1 + i32.shl + i32.add + local.get $len + i32.const 1 + i32.shl + memory.copy + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + local.get $out + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop else - i32.const 0 + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + i32.const 2432 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop end + local.get $i|17 + i32.const 1 + i32.add + local.tee $i|17 + local.get $limit + i32.eq if - local.get $ptr - i32.const 4 + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len + global.set $~lib/memory/__stack_pointer + local.get $22 + return end + local.get $end + local.get $sepLen + i32.add + local.set $start + br $while-continue|1 end + end + local.get $start + i32.eqz + if + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + end + local.get $length + local.get $start + i32.sub + local.set $len|20 + local.get $len|20 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $len|20 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out|21 + i32.store offset=36 + local.get $out|21 + local.get $this + local.get $start + i32.const 1 + i32.shl + i32.add + local.get $len|20 + i32.const 1 + i32.shl + memory.copy + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + local.get $out|21 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop else - local.get $code - i32.const 48 - i32.eq - if (result i32) - local.get $len - i32.const 2 - i32.gt_s - else - i32.const 0 - end - if - block $break|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $ptr - i32.load16_u offset=2 - i32.const 32 - i32.or - local.set $6 - local.get $6 - i32.const 98 - i32.eq - br_if $case0|1 - local.get $6 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $6 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - i32.const 2 - local.set $radix - br $break|1 - end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - i32.const 8 - local.set $radix - br $break|1 + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + i32.const 2432 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + ) + (func $~lib/string/String#split@varargs (param $this i32) (param $separator i32) (param $limit i32) (result 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 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - i32.const 16 - local.set $radix - br $break|1 + unreachable end + i32.const 0 + local.set $separator end - local.get $radix - i32.eqz - if - i32.const 10 - local.set $radix - end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $limit end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $separator + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $limit + call $~lib/string/String#split + 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/array/Array<~lib/string/String>#get:length (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 - local.set $num - local.get $len + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/string/String>#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) + (local $value 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 + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length_ + i32.ge_u + if + i32.const 368 + i32.const 5712 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 5808 + i32.const 5712 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/string/String#substr (param $this i32) (param $start i32) (param $length i32) (result i32) + (local $intStart i32) + (local $end i32) + (local $len i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $size i32) + (local $out i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.set $initial - block $while-break|2 - loop $while-continue|2 - local.get $len - local.tee $9 - i32.const 1 - i32.sub - local.set $len - local.get $9 - if - local.get $ptr - i32.load16_u - local.set $code - local.get $code - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if - local.get $code - i32.const 48 - i32.sub - local.set $code - else - local.get $code - i32.const 65 - i32.sub - i32.const 90 - i32.const 65 - i32.sub - i32.le_u - if - local.get $code - i32.const 65 - i32.const 10 - i32.sub - i32.sub - local.set $code - else - local.get $code - i32.const 97 - i32.sub - i32.const 122 - i32.const 97 - i32.sub - i32.le_u - if - local.get $code - i32.const 97 - i32.const 10 - i32.sub - i32.sub - local.set $code - end - end - end - local.get $code - local.get $radix - i32.ge_u - if - local.get $initial - local.get $len - i32.eq - if - i32.const 0 - drop - i32.const 0 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return - end - br $while-break|2 - end - local.get $num - local.get $radix - i32.mul - local.get $code - i32.add - local.set $num - local.get $ptr - i32.const 2 - i32.add - local.set $ptr - br $while-continue|2 - end - end + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $start + local.set $intStart + local.get $length + local.set $end + local.get $this + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/string/String#get:length + local.set $len + local.get $intStart + i32.const 0 + i32.lt_s + if + local.get $len + local.get $intStart + i32.add + local.tee $6 + i32.const 0 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_s + select + local.set $intStart + end + local.get $end + local.tee $8 + i32.const 0 + local.tee $9 + local.get $8 + local.get $9 + i32.gt_s + select + local.tee $10 + local.get $len + local.get $intStart + i32.sub + local.tee $11 + local.get $10 + local.get $11 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $size + local.get $size + i32.const 0 + i32.le_s + if + i32.const 2432 + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $14 + return end - local.get $sign - local.get $num - i32.mul - local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $intStart + i32.const 1 + i32.shl + i32.add + local.get $size + memory.copy + local.get $out + local.set $14 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $14 return ) - (func $~lib/number/I32.parseInt (param $value i32) (param $radix i32) (result i32) - (local $2 i32) + (func $~lib/string/String#padEnd (param $this i32) (param $length i32) (param $pad i32) (result i32) + (local $thisSize i32) + (local $targetSize i32) + (local $padSize i32) + (local $appendSize i32) + (local $out i32) + (local $repeatCount i32) + (local $restBase i32) + (local $restSize i32) + (local $11 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 + i64.const 0 + i64.store + local.get $this + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $11 i32.store - local.get $value - local.set $2 + local.get $11 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $length + i32.const 1 + i32.shl + local.set $targetSize + local.get $pad + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $11 i32.store - local.get $2 - local.get $radix - call $~lib/util/string/strtol - local.set $2 + local.get $11 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $padSize + local.get $targetSize + local.get $thisSize + i32.lt_u + if (result i32) + i32.const 1 + else + local.get $padSize + i32.eqz + end + if + local.get $this + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return + end + local.get $targetSize + local.get $thisSize + i32.sub + local.set $appendSize global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $targetSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $appendSize + local.get $padSize + i32.gt_u + if + local.get $appendSize + i32.const 2 + i32.sub + local.get $padSize + i32.div_u + local.set $repeatCount + local.get $repeatCount + local.get $padSize + i32.mul + local.set $restBase + local.get $appendSize + local.get $restBase + i32.sub + local.set $restSize + local.get $out + local.get $thisSize + i32.add + local.get $pad + local.get $padSize + local.get $repeatCount + call $~lib/memory/memory.repeat + local.get $out + local.get $thisSize + i32.add + local.get $restBase + i32.add + local.get $pad + local.get $restSize + memory.copy + else + local.get $out + local.get $thisSize + i32.add + local.get $pad + local.get $appendSize + memory.copy + end + local.get $out + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $11 return ) (func $~lib/date/Date.fromString (param $dateTimeString i32) (result i32) @@ -7729,34 +7984,63 @@ (local $min i32) (local $sec i32) (local $ms i32) + (local $offsetMs i32) (local $dateString i32) (local $posT i32) (local $timeString i32) + (local $i i32) + (local $c i32) + (local $posColon i32) + (local $value i32) + (local $radix i32) + (local $offsetHours i32) + (local $value|15 i32) + (local $radix|16 i32) + (local $offsetMinutes i32) + (local $value|18 i32) + (local $radix|19 i32) + (local $offsetHours|20 i32) (local $timeParts i32) (local $len i32) - (local $secAndMs i32) + (local $value|23 i32) + (local $radix|24 i32) + (local $value|25 i32) + (local $radix|26 i32) + (local $secAndFrac i32) (local $posDot i32) + (local $value|29 i32) + (local $radix|30 i32) + (local $value|31 i32) + (local $radix|32 i32) + (local $value|33 i32) + (local $radix|34 i32) (local $parts i32) + (local $value|36 i32) + (local $radix|37 i32) (local $year i32) (local $month i32) (local $day i32) - (local $len|16 i32) - (local $17 i32) + (local $len|41 i32) + (local $value|42 i32) + (local $radix|43 i32) + (local $value|44 i32) + (local $radix|45 i32) + (local $46 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 76 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 28 + i32.const 76 memory.fill local.get $dateTimeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 call $~lib/string/String#get:length i32.eqz if @@ -7775,22 +8059,24 @@ local.set $sec i32.const 0 local.set $ms + i32.const 0 + local.set $offsetMs global.get $~lib/memory/__stack_pointer local.get $dateTimeString local.tee $dateString i32.store offset=4 local.get $dateTimeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 2464 - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store offset=8 - local.get $17 + local.get $46 i32.const 0 call $~lib/string/String#indexOf local.set $posT @@ -7800,11 +8086,11 @@ if global.get $~lib/memory/__stack_pointer local.get $dateTimeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 0 local.get $posT call $~lib/string/String#substring @@ -7812,11 +8098,11 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $dateTimeString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 local.get $posT i32.const 1 i32.add @@ -7826,75 +8112,321 @@ call $~lib/string/String#substring@varargs local.tee $timeString i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $timeString - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 2496 - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String#split@varargs - local.tee $timeParts - i32.store offset=16 - local.get $timeParts - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 - call $~lib/array/Array<~lib/string/String>#get:length - local.set $len - local.get $len + local.get $46 + call $~lib/string/String#get:length i32.const 1 - i32.le_s - if - i32.const 32 - i32.const 80 - i32.const 67 - i32.const 21 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $i + block $for-break0 + loop $for-loop|0 + local.get $i + i32.const 0 + i32.ge_s + if + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $i + call $~lib/string/String#charCodeAt + local.set $c + local.get $c + i32.const 90 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + local.get $i + call $~lib/string/String#substring + local.tee $timeString + i32.store offset=12 + br $for-break0 + else + local.get $c + i32.const 43 + i32.eq + if (result i32) + i32.const 1 + else + local.get $c + i32.const 45 + i32.eq + end + if + local.get $i + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + call $~lib/string/String#get:length + i32.const 1 + i32.sub + i32.eq + if + i32.const 32 + i32.const 80 + i32.const 74 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 2496 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store offset=8 + local.get $46 + local.get $i + i32.const 1 + i32.add + call $~lib/string/String#indexOf + local.set $posColon + local.get $posColon + i32.const -1 + i32.xor + if + block $~lib/builtins/i32.parse|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $i + i32.const 1 + i32.add + local.get $posColon + call $~lib/string/String#substring + local.tee $value + i32.store offset=16 + i32.const 0 + local.set $radix + local.get $value + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.0 + end + local.set $offsetHours + block $~lib/builtins/i32.parse|inlined.1 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $posColon + i32.const 1 + i32.add + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs + local.tee $value|15 + i32.store offset=20 + i32.const 0 + local.set $radix|16 + local.get $value|15 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|16 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.1 + end + local.set $offsetMinutes + local.get $offsetHours + i32.const 60 + i32.mul + local.get $offsetMinutes + i32.add + i32.const 60000 + i32.mul + local.set $offsetMs + else + block $~lib/builtins/i32.parse|inlined.2 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $i + i32.const 1 + i32.add + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs + local.tee $value|18 + i32.store offset=24 + i32.const 0 + local.set $radix|19 + local.get $value|18 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|19 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.2 + end + local.set $offsetHours|20 + local.get $offsetHours|20 + i32.const 3600000 + i32.mul + local.set $offsetMs + end + local.get $c + i32.const 45 + i32.eq + if + i32.const 0 + local.get $offsetMs + i32.sub + local.set $offsetMs + end + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + local.get $i + call $~lib/string/String#substring + local.tee $timeString + i32.store offset=12 + br $for-break0 + end + end + local.get $i + i32.const 1 + i32.sub + local.set $i + br $for-loop|0 + end + end end - local.get $timeParts - local.set $17 global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $17 + local.get $timeString + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt - local.set $hour - local.get $timeParts - local.set $17 + local.get $46 + i32.const 2496 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store offset=8 - local.get $17 + local.get $46 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $17 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#split@varargs + local.tee $timeParts + i32.store offset=28 + local.get $timeParts + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + local.get $46 + call $~lib/array/Array<~lib/string/String>#get:length + local.set $len + local.get $len + i32.const 1 + i32.le_s + if + i32.const 32 + i32.const 80 + i32.const 96 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + block $~lib/builtins/i32.parse|inlined.3 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeParts + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $value|23 + i32.store offset=32 + i32.const 0 + local.set $radix|24 + local.get $value|23 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|24 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.3 + end + local.set $hour + block $~lib/builtins/i32.parse|inlined.4 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeParts + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $value|25 + i32.store offset=36 + i32.const 0 + local.set $radix|26 + local.get $value|25 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|26 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.4 + end local.set $min local.get $len i32.const 3 @@ -7902,27 +8434,27 @@ if global.get $~lib/memory/__stack_pointer local.get $timeParts - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $secAndMs - i32.store offset=20 - local.get $secAndMs - local.set $17 + local.tee $secAndFrac + i32.store offset=40 + local.get $secAndFrac + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 2528 - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store offset=8 - local.get $17 + local.get $46 i32.const 0 call $~lib/string/String#indexOf local.set $posDot @@ -7930,143 +8462,208 @@ i32.const -1 i32.xor if - local.get $secAndMs - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 0 - local.get $posDot - call $~lib/string/String#substring - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + block $~lib/builtins/i32.parse|inlined.5 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $secAndFrac + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + local.get $posDot + call $~lib/string/String#substring + local.tee $value|29 + i32.store offset=44 + i32.const 0 + local.set $radix|30 + local.get $value|29 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|30 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.5 + end local.set $sec - local.get $secAndMs - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - local.get $posDot - i32.const 1 - i32.add - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String#substring@varargs - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + block $~lib/builtins/i32.parse|inlined.6 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $secAndFrac + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store offset=48 + local.get $46 + local.get $posDot + i32.const 1 + i32.add + i32.const 3 + call $~lib/string/String#substr + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 3 + i32.const 848 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store offset=8 + local.get $46 + call $~lib/string/String#padEnd + local.tee $value|31 + i32.store offset=52 + i32.const 0 + local.set $radix|32 + local.get $value|31 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|32 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.6 + end local.set $ms else - local.get $secAndMs - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + block $~lib/builtins/i32.parse|inlined.7 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $secAndFrac + local.tee $value|33 + i32.store offset=56 + i32.const 0 + local.set $radix|34 + local.get $value|33 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|34 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.7 + end local.set $sec end end end global.get $~lib/memory/__stack_pointer local.get $dateString - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 i32.const 592 - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store offset=8 - local.get $17 + local.get $46 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $parts - i32.store offset=24 - local.get $parts - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + i32.store offset=60 + block $~lib/builtins/i32.parse|inlined.8 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $parts + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $value|36 + i32.store offset=64 + i32.const 0 + local.set $radix|37 + local.get $value|36 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|37 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.8 + end local.set $year i32.const 1 local.set $month i32.const 1 local.set $day local.get $parts - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 + local.get $46 call $~lib/array/Array<~lib/string/String>#get:length - local.set $len|16 - local.get $len|16 + local.set $len|41 + local.get $len|41 i32.const 2 i32.ge_s if - local.get $parts - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $17 - global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt - local.set $month - local.get $len|16 - i32.const 3 - i32.ge_s - if + block $~lib/builtins/i32.parse|inlined.9 (result i32) + global.get $~lib/memory/__stack_pointer local.get $parts - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 - i32.store offset=8 - local.get $17 - i32.const 2 + local.get $46 + i32.store + local.get $46 + i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $17 + local.tee $value|42 + i32.store offset=68 + i32.const 0 + local.set $radix|43 + local.get $value|42 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $46 i32.store - local.get $17 - i32.const 0 - call $~lib/number/I32.parseInt + local.get $46 + local.get $radix|43 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.9 + end + local.set $month + local.get $len|41 + i32.const 3 + i32.ge_s + if + block $~lib/builtins/i32.parse|inlined.10 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $parts + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $value|44 + i32.store offset=72 + i32.const 0 + local.set $radix|45 + local.get $value|44 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|45 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.10 + end local.set $day end end @@ -8079,13 +8676,16 @@ local.get $sec local.get $ms call $~lib/date/epochMillis + local.get $offsetMs + i64.extend_i32_s + i64.sub call $~lib/date/Date#constructor - local.set $17 + local.set $46 global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 76 i32.add global.set $~lib/memory/__stack_pointer - local.get $17 + local.get $46 return ) (func $start:std/date @@ -8246,14 +8846,22 @@ (local $154 i32) (local $155 i32) (local $156 i32) - global.get $~lib/memory/__stack_pointer - i32.const 408 + (local $157 i32) + (local $158 i32) + (local $159 i32) + (local $160 i32) + (local $161 i32) + (local $162 i32) + (local $163 i32) + (local $164 i32) + global.get $~lib/memory/__stack_pointer + i32.const 440 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 408 + i32.const 440 memory.fill block $~lib/date/Date.UTC|inlined.0 (result i64) i32.const 1970 @@ -8748,11 +9356,11 @@ local.tee $58 i32.store offset=4 local.get $58 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.0 end @@ -8768,11 +9376,11 @@ unreachable end local.get $57 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 local.get $56 i64.const 1 i64.add @@ -8784,11 +9392,11 @@ local.tee $59 i32.store offset=12 local.get $59 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.1 end @@ -8817,11 +9425,11 @@ local.tee $61 i32.store offset=20 local.get $61 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.0 end @@ -8842,11 +9450,11 @@ local.tee $62 i32.store offset=24 local.get $62 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -8869,11 +9477,11 @@ local.tee $63 i32.store offset=28 local.get $63 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.0 end @@ -8889,11 +9497,11 @@ unreachable end local.get $60 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCHours i32.const 22 i32.eq @@ -8907,11 +9515,11 @@ unreachable end local.get $60 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMinutes i32.const 9 i32.eq @@ -8925,11 +9533,11 @@ unreachable end local.get $60 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCSeconds i32.const 43 i32.eq @@ -8943,11 +9551,11 @@ unreachable end local.get $60 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 706 i32.eq @@ -8972,11 +9580,11 @@ local.tee $65 i32.store offset=36 local.get $65 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.1 end @@ -8997,11 +9605,11 @@ local.tee $66 i32.store offset=40 local.get $66 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -9024,11 +9632,11 @@ local.tee $67 i32.store offset=44 local.get $67 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.1 end @@ -9044,11 +9652,11 @@ unreachable end local.get $64 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCHours i32.const 1 i32.eq @@ -9062,11 +9670,11 @@ unreachable end local.get $64 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMinutes i32.const 3 i32.eq @@ -9080,11 +9688,11 @@ unreachable end local.get $64 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCSeconds i32.const 11 i32.eq @@ -9098,11 +9706,11 @@ unreachable end local.get $64 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 274 i32.eq @@ -9122,11 +9730,11 @@ local.tee $68 i32.store offset=48 local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 984 i32.eq @@ -9140,19 +9748,19 @@ unreachable end local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 12 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 12 i32.eq @@ -9166,19 +9774,19 @@ unreachable end local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 568 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 568 i32.eq @@ -9192,11 +9800,11 @@ unreachable end local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 0 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.2 (result i64) @@ -9205,11 +9813,11 @@ local.tee $69 i32.store offset=52 local.get $69 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.2 end @@ -9225,11 +9833,11 @@ unreachable end local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 999 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.3 (result i64) @@ -9238,11 +9846,11 @@ local.tee $70 i32.store offset=56 local.get $70 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.3 end @@ -9258,19 +9866,19 @@ unreachable end local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2000 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 0 i32.eq @@ -9289,11 +9897,11 @@ local.tee $71 i32.store offset=60 local.get $71 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.4 end @@ -9309,19 +9917,19 @@ unreachable end local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const -2000 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 0 i32.eq @@ -9340,11 +9948,11 @@ local.tee $72 i32.store offset=64 local.get $72 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.5 end @@ -9366,11 +9974,11 @@ local.tee $73 i32.store offset=68 local.get $73 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCSeconds i32.const 31 i32.eq @@ -9384,19 +9992,19 @@ unreachable end local.get $73 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 12 call $~lib/date/Date#setUTCSeconds local.get $73 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCSeconds i32.const 12 i32.eq @@ -9410,19 +10018,19 @@ unreachable end local.get $73 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 50 call $~lib/date/Date#setUTCSeconds local.get $73 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCSeconds i32.const 50 i32.eq @@ -9436,11 +10044,11 @@ unreachable end local.get $73 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 0 call $~lib/date/Date#setUTCSeconds block $~lib/date/Date#getTime|inlined.6 (result i64) @@ -9449,11 +10057,11 @@ local.tee $74 i32.store offset=72 local.get $74 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.6 end @@ -9469,11 +10077,11 @@ unreachable end local.get $73 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 59 call $~lib/date/Date#setUTCSeconds block $~lib/date/Date#getTime|inlined.7 (result i64) @@ -9482,11 +10090,11 @@ local.tee $75 i32.store offset=76 local.get $75 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.7 end @@ -9508,11 +10116,11 @@ local.tee $76 i32.store offset=80 local.get $76 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMinutes i32.const 45 i32.eq @@ -9526,19 +10134,19 @@ unreachable end local.get $76 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 12 call $~lib/date/Date#setUTCMinutes local.get $76 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMinutes i32.const 12 i32.eq @@ -9552,19 +10160,19 @@ unreachable end local.get $76 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 50 call $~lib/date/Date#setUTCMinutes local.get $76 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMinutes i32.const 50 i32.eq @@ -9578,11 +10186,11 @@ unreachable end local.get $76 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 0 call $~lib/date/Date#setUTCMinutes block $~lib/date/Date#getTime|inlined.8 (result i64) @@ -9591,11 +10199,11 @@ local.tee $77 i32.store offset=84 local.get $77 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.8 end @@ -9611,11 +10219,11 @@ unreachable end local.get $76 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 59 call $~lib/date/Date#setUTCMinutes block $~lib/date/Date#getTime|inlined.9 (result i64) @@ -9624,11 +10232,11 @@ local.tee $78 i32.store offset=88 local.get $78 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.9 end @@ -9650,11 +10258,11 @@ local.tee $79 i32.store offset=92 local.get $79 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCHours i32.const 17 i32.eq @@ -9668,19 +10276,19 @@ unreachable end local.get $79 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 12 call $~lib/date/Date#setUTCHours local.get $79 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCHours i32.const 12 i32.eq @@ -9694,19 +10302,19 @@ unreachable end local.get $79 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2 call $~lib/date/Date#setUTCHours local.get $79 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCHours i32.const 2 i32.eq @@ -9720,11 +10328,11 @@ unreachable end local.get $79 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 0 call $~lib/date/Date#setUTCHours block $~lib/date/Date#getTime|inlined.10 (result i64) @@ -9733,11 +10341,11 @@ local.tee $80 i32.store offset=96 local.get $80 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.10 end @@ -9753,11 +10361,11 @@ unreachable end local.get $79 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 23 call $~lib/date/Date#setUTCHours block $~lib/date/Date#getTime|inlined.11 (result i64) @@ -9766,11 +10374,11 @@ local.tee $81 i32.store offset=100 local.get $81 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.11 end @@ -9797,11 +10405,11 @@ local.tee $83 i32.store offset=108 local.get $83 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.2 end @@ -9822,11 +10430,11 @@ local.tee $84 i32.store offset=112 local.get $84 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -9844,11 +10452,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 12 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getUTCDate|inlined.2 (result i32) @@ -9857,11 +10465,11 @@ local.tee $85 i32.store offset=116 local.get $85 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.2 end @@ -9877,11 +10485,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getUTCDate|inlined.3 (result i32) @@ -9890,11 +10498,11 @@ local.tee $86 i32.store offset=120 local.get $86 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.3 end @@ -9910,62 +10518,62 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 30 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 31 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2024 call $~lib/date/Date#setUTCFullYear local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 1 i32.const 1 global.set $~argumentsLength @@ -9977,11 +10585,11 @@ local.tee $87 i32.store offset=124 local.get $87 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -9999,27 +10607,27 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 29 call $~lib/date/Date#setUTCDate local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 1 i32.const 1 global.set $~argumentsLength @@ -10031,11 +10639,11 @@ local.tee $88 i32.store offset=128 local.get $88 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.12 end @@ -10056,11 +10664,11 @@ local.tee $89 i32.store offset=132 local.get $89 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10083,11 +10691,11 @@ local.tee $90 i32.store offset=136 local.get $90 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.4 end @@ -10103,11 +10711,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMinutes i32.const 3 i32.eq @@ -10121,11 +10729,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCSeconds i32.const 11 i32.eq @@ -10139,11 +10747,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 274 i32.eq @@ -10163,11 +10771,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 20 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.13 (result i64) @@ -10176,11 +10784,11 @@ local.tee $91 i32.store offset=140 local.get $91 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.13 end @@ -10196,11 +10804,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 1 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.14 (result i64) @@ -10209,11 +10817,11 @@ local.tee $92 i32.store offset=144 local.get $92 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.14 end @@ -10229,11 +10837,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 1000 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.15 (result i64) @@ -10242,11 +10850,11 @@ local.tee $93 i32.store offset=148 local.get $93 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.15 end @@ -10262,11 +10870,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 60 i32.const 60 i32.mul @@ -10279,11 +10887,11 @@ local.tee $94 i32.store offset=152 local.get $94 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.16 end @@ -10299,11 +10907,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 60 i32.const 60 i32.mul @@ -10318,11 +10926,11 @@ local.tee $95 i32.store offset=156 local.get $95 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.17 end @@ -10338,11 +10946,11 @@ unreachable end local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 60 i32.const 60 i32.mul @@ -10357,11 +10965,11 @@ local.tee $96 i32.store offset=160 local.get $96 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.18 end @@ -10383,11 +10991,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const -2208 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.19 (result i64) @@ -10396,11 +11004,11 @@ local.tee $97 i32.store offset=164 local.get $97 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.19 end @@ -10422,11 +11030,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2208 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.20 (result i64) @@ -10435,11 +11043,11 @@ local.tee $98 i32.store offset=168 local.get $98 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.20 end @@ -10462,25 +11070,25 @@ local.tee $99 i32.store offset=172 local.get $99 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year local.get $99 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month local.get $99 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.0 @@ -10506,25 +11114,25 @@ local.tee $100 i32.store offset=176 local.get $100 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year local.get $100 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month local.get $100 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.1 @@ -10552,25 +11160,25 @@ local.tee $101 i32.store offset=180 local.get $101 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year local.get $101 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month local.get $101 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.2 @@ -10596,25 +11204,25 @@ local.tee $102 i32.store offset=184 local.get $102 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year local.get $102 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month local.get $102 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.3 @@ -10638,25 +11246,25 @@ local.tee $103 i32.store offset=188 local.get $103 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year local.get $103 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month local.get $103 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.4 @@ -10682,25 +11290,25 @@ local.tee $104 i32.store offset=192 local.get $104 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year local.get $104 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month local.get $104 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.5 @@ -10728,25 +11336,25 @@ local.tee $105 i32.store offset=196 local.get $105 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year local.get $105 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month local.get $105 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.6 @@ -10772,25 +11380,25 @@ local.tee $106 i32.store offset=200 local.get $106 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year local.get $106 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month local.get $106 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.7 @@ -10818,11 +11426,11 @@ local.tee $108 i32.store offset=208 local.get $108 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10840,11 +11448,11 @@ unreachable end local.get $107 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 10 i32.const 1 global.set $~argumentsLength @@ -10856,11 +11464,11 @@ local.tee $109 i32.store offset=212 local.get $109 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10878,11 +11486,11 @@ unreachable end local.get $107 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -10894,11 +11502,11 @@ local.tee $110 i32.store offset=216 local.get $110 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10921,11 +11529,11 @@ local.tee $111 i32.store offset=220 local.get $111 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.21 end @@ -10941,11 +11549,11 @@ unreachable end local.get $107 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 0 i32.const 1 global.set $~argumentsLength @@ -10957,11 +11565,11 @@ local.tee $112 i32.store offset=224 local.get $112 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.22 end @@ -10977,11 +11585,11 @@ unreachable end local.get $107 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 11 i32.const 1 global.set $~argumentsLength @@ -10993,11 +11601,11 @@ local.tee $113 i32.store offset=228 local.get $113 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.23 end @@ -11013,11 +11621,11 @@ unreachable end local.get $107 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const -1 i32.const 1 global.set $~argumentsLength @@ -11029,11 +11637,11 @@ local.tee $114 i32.store offset=232 local.get $114 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -11056,11 +11664,11 @@ local.tee $115 i32.store offset=236 local.get $115 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.24 end @@ -11076,11 +11684,11 @@ unreachable end local.get $107 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 12 i32.const 1 global.set $~argumentsLength @@ -11092,11 +11700,11 @@ local.tee $116 i32.store offset=240 local.get $116 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -11119,11 +11727,11 @@ local.tee $117 i32.store offset=244 local.get $117 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.25 end @@ -11150,11 +11758,11 @@ local.tee $119 i32.store offset=252 local.get $119 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.3 end @@ -11170,11 +11778,11 @@ unreachable end local.get $118 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 1976 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.4 (result i32) @@ -11183,11 +11791,11 @@ local.tee $120 i32.store offset=256 local.get $120 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.4 end @@ -11203,11 +11811,11 @@ unreachable end local.get $118 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 20212 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.5 (result i32) @@ -11216,11 +11824,11 @@ local.tee $121 i32.store offset=260 local.get $121 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.5 end @@ -11236,11 +11844,11 @@ unreachable end local.get $118 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 71 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.6 (result i32) @@ -11249,11 +11857,11 @@ local.tee $122 i32.store offset=264 local.get $122 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.6 end @@ -11275,23 +11883,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2672 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11311,23 +11919,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2752 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11345,23 +11953,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2832 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11379,23 +11987,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2912 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11413,23 +12021,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 2992 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11447,23 +12055,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 3072 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11481,23 +12089,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 3152 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11515,23 +12123,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 3232 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11549,23 +12157,23 @@ local.tee $123 i32.store offset=268 local.get $123 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 3312 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11583,23 +12191,23 @@ local.tee $124 i32.store offset=280 local.get $124 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toDateString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 4240 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11617,23 +12225,23 @@ local.tee $124 i32.store offset=280 local.get $124 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toDateString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 4304 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11651,23 +12259,23 @@ local.tee $124 i32.store offset=280 local.get $124 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toDateString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 4368 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11685,23 +12293,23 @@ local.tee $125 i32.store offset=284 local.get $125 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toTimeString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 4480 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11719,23 +12327,23 @@ local.tee $125 i32.store offset=284 local.get $125 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toTimeString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 4528 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11753,23 +12361,23 @@ local.tee $126 i32.store offset=288 local.get $126 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toUTCString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 5424 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11787,23 +12395,23 @@ local.tee $126 i32.store offset=288 local.get $126 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toUTCString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 5504 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11821,196 +12429,476 @@ local.tee $126 i32.store offset=288 local.get $126 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toUTCString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 i32.const 5584 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 284 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5664 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date.fromString + local.tee $127 + i32.store offset=292 + block $~lib/date/Date#getTime|inlined.26 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $127 + local.tee $128 + i32.store offset=296 + local.get $128 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.26 + end + i64.const 192067200000 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5936 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date.fromString + local.tee $127 + i32.store offset=292 + block $~lib/date/Date#getTime|inlined.27 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $127 + local.tee $129 + i32.store offset=300 + local.get $129 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.27 + end + i64.const 192067200000 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 293 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5984 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date.fromString + local.tee $127 + i32.store offset=292 + block $~lib/date/Date#getTime|inlined.28 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $127 + local.tee $130 + i32.store offset=304 + local.get $130 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.28 + end + i64.const 11860387200000 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6032 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date.fromString + local.tee $127 + i32.store offset=292 + block $~lib/date/Date#getTime|inlined.29 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $127 + local.tee $131 + i32.store offset=308 + local.get $131 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.29 + end + i64.const 192112496000 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 299 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6096 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date.fromString + local.tee $127 + i32.store offset=292 + block $~lib/date/Date#getTime|inlined.30 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $127 + local.tee $132 + i32.store offset=312 + local.get $132 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.30 + end + i64.const 192112496456 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6176 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date.fromString + local.tee $127 + i32.store offset=292 + block $~lib/date/Date#getTime|inlined.31 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $127 + local.tee $133 + i32.store offset=316 + local.get $133 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.31 + end + i64.const 192112496456 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 307 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6256 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date.fromString + local.tee $127 + i32.store offset=292 + block $~lib/date/Date#getTime|inlined.32 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $127 + local.tee $134 + i32.store offset=320 + local.get $134 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.32 + end + i64.const 192141296456 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 311 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6336 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date.fromString + local.tee $127 + i32.store offset=292 + block $~lib/date/Date#getTime|inlined.33 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $127 + local.tee $135 + i32.store offset=324 + local.get $135 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 + i32.store offset=8 + local.get $164 + call $~lib/date/Date#get:epochMillis + br $~lib/date/Date#getTime|inlined.33 + end + i64.const 192092696456 + i64.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 315 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5664 - local.set $156 + i32.const 6416 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.26 (result i64) + block $~lib/date/Date#getTime|inlined.34 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $128 - i32.store offset=296 - local.get $128 - local.set $156 + local.tee $136 + i32.store offset=328 + local.get $136 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.26 + br $~lib/date/Date#getTime|inlined.34 end - i64.const 192067200000 + i64.const 192112496450 i64.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 291 + i32.const 319 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5936 - local.set $156 + i32.const 6480 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.27 (result i64) + block $~lib/date/Date#getTime|inlined.35 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $129 - i32.store offset=300 - local.get $129 - local.set $156 + local.tee $137 + i32.store offset=332 + local.get $137 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.27 + br $~lib/date/Date#getTime|inlined.35 end - i64.const 192067200000 + i64.const 192112496450 i64.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 293 + i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 5984 - local.set $156 + i32.const 6560 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.28 (result i64) + block $~lib/date/Date#getTime|inlined.36 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $130 - i32.store offset=304 - local.get $130 - local.set $156 + local.tee $138 + i32.store offset=336 + local.get $138 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.28 + br $~lib/date/Date#getTime|inlined.36 end - i64.const 11860387200000 + i64.const 192112496450 i64.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 295 + i32.const 327 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6032 - local.set $156 + i32.const 6640 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.29 (result i64) + block $~lib/date/Date#getTime|inlined.37 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $131 - i32.store offset=308 - local.get $131 - local.set $156 + local.tee $139 + i32.store offset=340 + local.get $139 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.29 + br $~lib/date/Date#getTime|inlined.37 end - i64.const 192112496000 + i64.const 192112496456 i64.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 299 + i32.const 331 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6096 - local.set $156 + i32.const 6720 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.30 (result i64) + block $~lib/date/Date#getTime|inlined.38 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $132 - i32.store offset=312 - local.get $132 - local.set $156 + local.tee $140 + i32.store offset=344 + local.get $140 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.30 + br $~lib/date/Date#getTime|inlined.38 end i64.const 192112496456 i64.eq @@ -12018,34 +12906,34 @@ if i32.const 0 i32.const 128 - i32.const 303 + i32.const 335 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6176 - local.set $156 + i32.const 6800 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.31 (result i64) + block $~lib/date/Date#getTime|inlined.39 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $133 - i32.store offset=316 - local.get $133 - local.set $156 + local.tee $141 + i32.store offset=348 + local.get $141 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.31 + br $~lib/date/Date#getTime|inlined.39 end i64.const 192112496456 i64.eq @@ -12053,34 +12941,34 @@ if i32.const 0 i32.const 128 - i32.const 307 + i32.const 339 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6256 - local.set $156 + i32.const 6896 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.32 (result i64) + block $~lib/date/Date#getTime|inlined.40 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $134 - i32.store offset=320 - local.get $134 - local.set $156 + local.tee $142 + i32.store offset=352 + local.get $142 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.32 + br $~lib/date/Date#getTime|inlined.40 end i64.const -62167219200000 i64.eq @@ -12088,34 +12976,34 @@ if i32.const 0 i32.const 128 - i32.const 310 + i32.const 342 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6288 - local.set $156 + i32.const 6928 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.33 (result i64) + block $~lib/date/Date#getTime|inlined.41 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $135 - i32.store offset=324 - local.get $135 - local.set $156 + local.tee $143 + i32.store offset=356 + local.get $143 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.33 + br $~lib/date/Date#getTime|inlined.41 end i64.const -62135596800000 i64.eq @@ -12123,34 +13011,34 @@ if i32.const 0 i32.const 128 - i32.const 313 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6320 - local.set $156 + i32.const 6960 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.34 (result i64) + block $~lib/date/Date#getTime|inlined.42 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $136 - i32.store offset=328 - local.get $136 - local.set $156 + local.tee $144 + i32.store offset=360 + local.get $144 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.34 + br $~lib/date/Date#getTime|inlined.42 end i64.const 189302400000 i64.eq @@ -12158,34 +13046,34 @@ if i32.const 0 i32.const 128 - i32.const 316 + i32.const 348 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6352 - local.set $156 + i32.const 6992 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.35 (result i64) + block $~lib/date/Date#getTime|inlined.43 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $137 - i32.store offset=332 - local.get $137 - local.set $156 + local.tee $145 + i32.store offset=364 + local.get $145 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.35 + br $~lib/date/Date#getTime|inlined.43 end i64.const 191980800000 i64.eq @@ -12193,34 +13081,34 @@ if i32.const 0 i32.const 128 - i32.const 319 + i32.const 351 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 5664 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.36 (result i64) + block $~lib/date/Date#getTime|inlined.44 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $138 - i32.store offset=336 - local.get $138 - local.set $156 + local.tee $146 + i32.store offset=368 + local.get $146 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.36 + br $~lib/date/Date#getTime|inlined.44 end i64.const 192067200000 i64.eq @@ -12228,34 +13116,34 @@ if i32.const 0 i32.const 128 - i32.const 322 + i32.const 354 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 6400 - local.set $156 + i32.const 7040 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.37 (result i64) + block $~lib/date/Date#getTime|inlined.45 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $139 - i32.store offset=340 - local.get $139 - local.set $156 + local.tee $147 + i32.store offset=372 + local.get $147 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.37 + br $~lib/date/Date#getTime|inlined.45 end i64.const 192112440000 i64.eq @@ -12263,34 +13151,34 @@ if i32.const 0 i32.const 128 - i32.const 325 + i32.const 357 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 6032 - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date.fromString local.tee $127 i32.store offset=292 - block $~lib/date/Date#getTime|inlined.38 (result i64) + block $~lib/date/Date#getTime|inlined.46 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 - local.tee $140 - i32.store offset=344 - local.get $140 - local.set $156 + local.tee $148 + i32.store offset=376 + local.get $148 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.38 + br $~lib/date/Date#getTime|inlined.46 end i64.const 192112496000 i64.eq @@ -12298,7 +13186,7 @@ if i32.const 0 i32.const 128 - i32.const 328 + i32.const 360 i32.const 3 call $~lib/builtins/abort unreachable @@ -12307,27 +13195,27 @@ i32.const 0 i64.const -8640000000000000 call $~lib/date/Date#constructor - local.tee $141 - i32.store offset=348 + local.tee $149 + i32.store offset=380 global.get $~lib/memory/__stack_pointer i32.const 0 i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $142 - i32.store offset=352 - block $~lib/date/Date#getTime|inlined.39 (result i64) + local.tee $150 + i32.store offset=384 + block $~lib/date/Date#getTime|inlined.47 (result i64) global.get $~lib/memory/__stack_pointer - local.get $141 - local.tee $143 - i32.store offset=356 - local.get $143 - local.set $156 + local.get $149 + local.tee $151 + i32.store offset=388 + local.get $151 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.39 + br $~lib/date/Date#getTime|inlined.47 end i64.const -8640000000000000 i64.eq @@ -12335,24 +13223,24 @@ if i32.const 0 i32.const 128 - i32.const 346 + i32.const 378 i32.const 3 call $~lib/builtins/abort unreachable end - block $~lib/date/Date#getTime|inlined.40 (result i64) + block $~lib/date/Date#getTime|inlined.48 (result i64) global.get $~lib/memory/__stack_pointer - local.get $142 - local.tee $144 - i32.store offset=360 - local.get $144 - local.set $156 + local.get $150 + local.tee $152 + i32.store offset=392 + local.get $152 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:epochMillis - br $~lib/date/Date#getTime|inlined.40 + br $~lib/date/Date#getTime|inlined.48 end i64.const 8640000000000000 i64.eq @@ -12360,22 +13248,22 @@ if i32.const 0 i32.const 128 - i32.const 347 + i32.const 379 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCFullYear|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer - local.get $141 - local.tee $145 - i32.store offset=364 - local.get $145 - local.set $156 + local.get $149 + local.tee $153 + i32.store offset=396 + local.get $153 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.7 end @@ -12385,22 +13273,22 @@ if i32.const 0 i32.const 128 - i32.const 349 + i32.const 381 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCFullYear|inlined.8 (result i32) global.get $~lib/memory/__stack_pointer - local.get $142 - local.tee $146 - i32.store offset=368 - local.get $146 - local.set $156 + local.get $150 + local.tee $154 + i32.store offset=400 + local.get $154 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.8 end @@ -12410,22 +13298,22 @@ if i32.const 0 i32.const 128 - i32.const 350 + i32.const 382 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.10 (result i32) global.get $~lib/memory/__stack_pointer - local.get $141 - local.tee $147 - i32.store offset=372 - local.get $147 - local.set $156 + local.get $149 + local.tee $155 + i32.store offset=404 + local.get $155 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -12437,22 +13325,22 @@ if i32.const 0 i32.const 128 - i32.const 352 + i32.const 384 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.11 (result i32) global.get $~lib/memory/__stack_pointer - local.get $142 - local.tee $148 - i32.store offset=376 - local.get $148 - local.set $156 - global.get $~lib/memory/__stack_pointer + local.get $150 + local.tee $156 + i32.store offset=408 local.get $156 + local.set $164 + global.get $~lib/memory/__stack_pointer + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -12464,22 +13352,22 @@ if i32.const 0 i32.const 128 - i32.const 353 + i32.const 385 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer - local.get $141 - local.tee $149 - i32.store offset=380 local.get $149 - local.set $156 + local.tee $157 + i32.store offset=412 + local.get $157 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.5 end @@ -12489,22 +13377,22 @@ if i32.const 0 i32.const 128 - i32.const 355 + i32.const 387 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer - local.get $142 - local.tee $150 - i32.store offset=384 local.get $150 - local.set $156 + local.tee $158 + i32.store offset=416 + local.get $158 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.6 end @@ -12514,63 +13402,63 @@ if i32.const 0 i32.const 128 - i32.const 356 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $141 - local.set $156 + local.get $149 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 - i32.const 6464 - local.set $156 + local.get $164 + i32.const 7104 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 358 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $142 - local.set $156 + local.get $150 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 - i32.const 6544 - local.set $156 + local.get $164 + i32.const 7184 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 359 + i32.const 391 i32.const 3 call $~lib/builtins/abort unreachable @@ -12581,27 +13469,27 @@ i64.const 1 i64.sub call $~lib/date/Date#constructor - local.tee $151 - i32.store offset=388 + local.tee $159 + i32.store offset=420 global.get $~lib/memory/__stack_pointer i32.const 0 i64.const -8640000000000000 i64.const 1 i64.add call $~lib/date/Date#constructor - local.tee $152 - i32.store offset=392 + local.tee $160 + i32.store offset=424 block $~lib/date/Date#getUTCFullYear|inlined.9 (result i32) global.get $~lib/memory/__stack_pointer - local.get $152 - local.tee $153 - i32.store offset=396 - local.get $153 - local.set $156 + local.get $160 + local.tee $161 + i32.store offset=428 + local.get $161 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.9 end @@ -12611,22 +13499,22 @@ if i32.const 0 i32.const 128 - i32.const 364 + i32.const 396 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.12 (result i32) global.get $~lib/memory/__stack_pointer - local.get $152 - local.tee $154 - i32.store offset=400 - local.get $154 - local.set $156 + local.get $160 + local.tee $162 + i32.store offset=432 + local.get $162 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -12638,22 +13526,22 @@ if i32.const 0 i32.const 128 - i32.const 365 + i32.const 397 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer - local.get $152 - local.tee $155 - i32.store offset=404 - local.get $155 - local.set $156 + local.get $160 + local.tee $163 + i32.store offset=436 + local.get $163 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.7 end @@ -12663,17 +13551,17 @@ if i32.const 0 i32.const 128 - i32.const 366 + i32.const 398 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $160 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCHours i32.const 0 i32.eq @@ -12681,17 +13569,17 @@ if i32.const 0 i32.const 128 - i32.const 367 + i32.const 399 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $160 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMinutes i32.const 0 i32.eq @@ -12699,17 +13587,17 @@ if i32.const 0 i32.const 128 - i32.const 368 + i32.const 400 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $160 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCSeconds i32.const 0 i32.eq @@ -12717,17 +13605,17 @@ if i32.const 0 i32.const 128 - i32.const 369 + i32.const 401 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $160 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 + local.get $164 call $~lib/date/Date#getUTCMilliseconds i32.const 1 i32.eq @@ -12735,69 +13623,69 @@ if i32.const 0 i32.const 128 - i32.const 370 + i32.const 402 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $151 - local.set $156 + local.get $159 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 - i32.const 6624 - local.set $156 + local.get $164 + i32.const 7264 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 372 + i32.const 404 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $152 - local.set $156 + local.get $160 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=276 - local.get $156 + local.get $164 call $~lib/date/Date#toISOString - local.set $156 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=8 - local.get $156 - i32.const 6704 - local.set $156 + local.get $164 + i32.const 7344 + local.set $164 global.get $~lib/memory/__stack_pointer - local.get $156 + local.get $164 i32.store offset=272 - local.get $156 + local.get $164 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 373 + i32.const 405 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 408 + i32.const 440 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 4ce5b2a67f..31d3fa0a0d 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -28,7 +28,7 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 40596)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 41236)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) ",") @@ -220,25 +220,41 @@ (data $98.1 (i32.const 7112) "\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006") (data $99 (i32.const 7180) "L") (data $99.1 (i32.const 7192) "\02\00\00\000\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00Z") - (data $100 (i32.const 7260) "\1c") - (data $100.1 (i32.const 7272) "\02\00\00\00\08\00\00\000\000\000\000") - (data $101 (i32.const 7292) "\1c") - (data $101.1 (i32.const 7304) "\02\00\00\00\08\00\00\000\000\000\001") - (data $102 (i32.const 7324) "\1c") - (data $102.1 (i32.const 7336) "\02\00\00\00\08\00\00\001\009\007\006") - (data $103 (i32.const 7356) ",") - (data $103.1 (i32.const 7368) "\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002") - (data $104 (i32.const 7404) "<") - (data $104.1 (i32.const 7416) "\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004") - (data $105 (i32.const 7468) "L") - (data $105.1 (i32.const 7480) "\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") - (data $106 (i32.const 7548) "L") - (data $106.1 (i32.const 7560) "\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\003\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") - (data $107 (i32.const 7628) "L") - (data $107.1 (i32.const 7640) "\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z") - (data $108 (i32.const 7708) "L") - (data $108.1 (i32.const 7720) "\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z") - (data $109 (i32.const 7792) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t") + (data $100 (i32.const 7260) "L") + (data $100.1 (i32.const 7272) "\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00-\000\008\00:\000\000") + (data $101 (i32.const 7340) "L") + (data $101.1 (i32.const 7352) "\02\00\00\00:\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\00+\000\005\00:\003\000") + (data $102 (i32.const 7420) "<") + (data $102.1 (i32.const 7432) "\02\00\00\00,\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005") + (data $103 (i32.const 7484) "L") + (data $103.1 (i32.const 7496) "\02\00\00\00.\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00Z") + (data $104 (i32.const 7564) "L") + (data $104.1 (i32.const 7576) "\02\00\00\008\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\00+\000\000\00:\000\000") + (data $105 (i32.const 7644) "L") + (data $105.1 (i32.const 7656) "\02\00\00\004\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009") + (data $106 (i32.const 7724) "L") + (data $106.1 (i32.const 7736) "\02\00\00\006\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00Z") + (data $107 (i32.const 7804) "\\") + (data $107.1 (i32.const 7816) "\02\00\00\00@\00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004\00:\005\006\00.\004\005\006\007\008\009\00+\000\000\00:\000\000") + (data $108 (i32.const 7900) "\1c") + (data $108.1 (i32.const 7912) "\02\00\00\00\08\00\00\000\000\000\000") + (data $109 (i32.const 7932) "\1c") + (data $109.1 (i32.const 7944) "\02\00\00\00\08\00\00\000\000\000\001") + (data $110 (i32.const 7964) "\1c") + (data $110.1 (i32.const 7976) "\02\00\00\00\08\00\00\001\009\007\006") + (data $111 (i32.const 7996) ",") + (data $111.1 (i32.const 8008) "\02\00\00\00\0e\00\00\001\009\007\006\00-\000\002") + (data $112 (i32.const 8044) "<") + (data $112.1 (i32.const 8056) "\02\00\00\00 \00\00\001\009\007\006\00-\000\002\00-\000\002\00T\001\002\00:\003\004") + (data $113 (i32.const 8108) "L") + (data $113.1 (i32.const 8120) "\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") + (data $114 (i32.const 8188) "L") + (data $114.1 (i32.const 8200) "\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\003\00T\000\000\00:\000\000\00:\000\000\00.\000\000\000\00Z") + (data $115 (i32.const 8268) "L") + (data $115.1 (i32.const 8280) "\02\00\00\006\00\00\00+\002\007\005\007\006\000\00-\000\009\00-\001\002\00T\002\003\00:\005\009\00:\005\009\00.\009\009\009\00Z") + (data $116 (i32.const 8348) "L") + (data $116.1 (i32.const 8360) "\02\00\00\006\00\00\00-\002\007\001\008\002\001\00-\000\004\00-\002\000\00T\000\000\00:\000\000\00:\000\000\00.\000\000\001\00Z") + (data $117 (i32.const 8432) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/date/epochMillis (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i64) @@ -488,7 +504,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$359 + block $__inlined_func$~lib/rt/itcms/Object#unlink$376 local.get $0 i32.load offset=4 i32.const -4 @@ -500,7 +516,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 40596 + i32.const 41236 i32.lt_u i32.and i32.eqz @@ -512,7 +528,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$359 + br $__inlined_func$~lib/rt/itcms/Object#unlink$376 end local.get $0 i32.load offset=8 @@ -549,7 +565,7 @@ i32.const 1 else local.get $1 - i32.const 7792 + i32.const 8432 i32.load i32.gt_u if @@ -563,7 +579,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 7796 + i32.const 8436 i32.add i32.load i32.const 32 @@ -1147,10 +1163,10 @@ if unreachable end - i32.const 40608 + i32.const 41248 i32.const 0 i32.store - i32.const 42176 + i32.const 42816 i32.const 0 i32.store loop $for-loop|0 @@ -1161,7 +1177,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 40608 + i32.const 41248 i32.add i32.const 0 i32.store offset=4 @@ -1179,7 +1195,7 @@ i32.add i32.const 2 i32.shl - i32.const 40608 + i32.const 41248 i32.add i32.const 0 i32.store offset=96 @@ -1197,14 +1213,14 @@ br $for-loop|0 end end - i32.const 40608 - i32.const 42180 + i32.const 41248 + i32.const 42820 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 40608 + i32.const 41248 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1289,7 +1305,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 40596 + i32.const 41236 i32.lt_u if local.get $0 @@ -1385,7 +1401,7 @@ unreachable end local.get $0 - i32.const 40596 + i32.const 41236 i32.lt_u if local.get $0 @@ -1408,7 +1424,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 40596 + i32.const 41236 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -2000,11 +2016,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2425,7 +2441,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2474,7 +2490,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -2484,8 +2500,8 @@ end unreachable end - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2519,11 +2535,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2574,7 +2590,7 @@ if i32.const 1056 i32.const 1104 - i32.const 100 + i32.const 131 i32.const 35 call $~lib/builtins/abort unreachable @@ -2611,11 +2627,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2634,7 +2650,7 @@ if i32.const 1056 i32.const 1104 - i32.const 112 + i32.const 143 i32.const 28 call $~lib/builtins/abort unreachable @@ -2678,11 +2694,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2724,11 +2740,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2770,11 +2786,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2816,11 +2832,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2860,11 +2876,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2908,11 +2924,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2958,11 +2974,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3008,11 +3024,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3059,11 +3075,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3129,7 +3145,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3161,7 +3177,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3211,8 +3227,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3227,11 +3243,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3300,7 +3316,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3320,7 +3336,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3340,7 +3356,7 @@ local.get $5 i32.const 1872 i32.store - block $__inlined_func$~lib/string/String#padStart$367 + block $__inlined_func$~lib/string/String#padStart$384 i32.const 1868 i32.load i32.const -2 @@ -3359,7 +3375,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#padStart$367 + br $__inlined_func$~lib/string/String#padStart$384 end global.get $~lib/memory/__stack_pointer local.get $6 @@ -3435,8 +3451,8 @@ local.get $0 return end - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3454,11 +3470,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3673,11 +3689,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3724,7 +3740,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3772,14 +3788,14 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$368 (result i32) + block $__inlined_func$~lib/string/String#concat$385 (result i32) local.get $1 local.get $3 i32.store @@ -3791,7 +3807,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -3828,7 +3844,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 - br $__inlined_func$~lib/string/String#concat$368 + br $__inlined_func$~lib/string/String#concat$385 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -4055,8 +4071,8 @@ local.get $0 return end - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4070,11 +4086,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4164,11 +4180,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4427,11 +4443,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4549,11 +4565,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4891,11 +4907,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5009,11 +5025,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5127,11 +5143,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5167,662 +5183,456 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) + (func $~lib/util/string/strtol (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) 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 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 - local.get $0 - i32.store local.get $1 local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 6784 - i32.const 6736 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.store + block $folding-inner0 local.get $0 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$350 - i32.const 1073741820 - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $3 - local.get $0 - i32.load - local.tee $2 - i32.const 20 - i32.sub - local.tee $4 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $folding-inner0 + local.get $0 + local.tee $2 + i32.load16_u + local.set $0 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$164 (result i32) + local.get $0 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $0 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $0 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$164 + drop + i32.const 1 + local.get $0 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$164 + drop + block $break|0 + block $case0|0 + local.get $0 + i32.const 5760 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8232 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8233 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8239 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8287 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 12288 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 65279 + i32.eq + br_if $case0|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$164 + end + i32.const 0 + end if - local.get $4 - local.get $3 - i32.store offset=16 local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + local.set $0 + local.get $1 + i32.const 1 + i32.sub local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$350 + br $while-continue|0 end - local.get $3 - local.get $4 - i32.load offset=12 - call $~lib/rt/itcms/__new + end + i32.const 1 + local.set $4 + local.get $0 + i32.const 45 + i32.eq + local.tee $6 + local.get $0 + i32.const 43 + i32.eq + i32.or + if (result i32) + local.get $1 + i32.const 1 + i32.sub local.tee $1 - local.get $2 - local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_u + i32.eqz + br_if $folding-inner0 + i32.const -1 + i32.const 1 + local.get $6 select - memory.copy + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + else + local.get $0 end + i32.const 48 + i32.eq local.get $1 - local.get $2 - i32.ne + i32.const 2 + i32.gt_s + i32.and if - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - end - local.get $0 - local.get $3 - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - local.get $2 - i32.eqz - br_if $folding-inner1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store + block $break|1 + block $case2|1 + block $case1|1 local.get $2 - i32.load offset=12 - i32.eqz + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $0 + i32.const 98 + i32.ne if - local.get $2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 1 - i32.store offset=12 + local.get $0 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $0 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.load offset=4 - local.get $0 - i32.store local.get $2 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner2 + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 2 + local.set $3 + br $break|1 end - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $7 - local.get $6 - local.get $1 - i32.store offset=8 - i32.const 2147483647 local.get $2 - local.get $2 - i32.const 0 - i32.lt_s - select + i32.const 4 + i32.add local.set $2 local.get $1 - i32.const 20 + i32.const 2 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 + local.set $1 + i32.const 8 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 16 + local.set $3 + end + end + local.get $3 + i32.const 10 + local.get $3 + select + local.set $6 + local.get $1 + i32.const 1 + i32.sub + local.set $7 + loop $while-continue|2 + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + if + block $while-break|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 + i32.sub + local.tee $0 + i32.const 10 + i32.ge_u if - local.get $7 - i32.eqz - if - local.get $6 - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - i32.const 3456 - i32.store - br $folding-inner2 + local.get $3 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $3 + i32.const 55 + i32.sub + else + local.get $3 + i32.const 87 + i32.sub + local.get $3 + local.get $3 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select end - else - local.get $7 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $2 - local.get $2 + local.set $0 + end + local.get $0 + local.get $6 + i32.ge_u + if + local.get $1 local.get $7 - i32.gt_s - select - local.tee $3 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $5 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - br $folding-inner2 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/__newArray - local.tee $8 - i32.store offset=24 - loop $while-continue|1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=28 - local.get $0 - local.get $1 - local.get $3 - call $~lib/string/String#indexOf - local.tee $9 - i32.const -1 - i32.xor - if - local.get $9 - local.get $3 - i32.sub - local.tee $6 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - local.tee $10 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=32 - local.get $6 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $10 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=28 - local.get $8 - local.get $6 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $8 - i32.store offset=8 - local.get $3 - i32.const 3456 - i32.store offset=28 - local.get $8 - i32.const 3456 - call $~lib/array/Array<~lib/string/String>#push - end - local.get $4 - i32.const 1 - i32.add - local.tee $4 - local.get $2 - i32.eq - br_if $folding-inner3 - local.get $5 - local.get $9 - i32.add - local.set $3 - br $while-continue|1 - end - end - local.get $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $8 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=28 - local.get $8 - local.get $0 - call $~lib/array/Array<~lib/string/String>#push - br $folding-inner3 - end - local.get $7 - local.get $3 - i32.sub - local.tee $1 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=36 - local.get $2 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $8 - local.get $2 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $8 - i32.store offset=8 - local.get $0 - i32.const 3456 - i32.store offset=28 - local.get $8 - i32.const 3456 - call $~lib/array/Array<~lib/string/String>#push + i32.eq + br_if $folding-inner0 + br $while-break|2 end - global.get $~lib/memory/__stack_pointer - i32.const 40 + local.get $5 + local.get $6 + i32.mul + local.get $0 i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|2 end - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 0 - call $~lib/rt/__newArray - local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 + local.get $5 + i32.mul return end global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + i32.const 0 ) - (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const 2147483647 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $2 + i32.const 0 i32.store - local.get $3 - local.get $1 - i32.store offset=4 + local.get $2 local.get $0 + i32.store local.get $1 - local.get $2 - call $~lib/string/String#split - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#get:length (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 7828 - i32.lt_s + i32.load offset=8 + local.tee $2 + i32.const 2 + i32.shr_u + i32.gt_u if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 6784 + i32.const 6736 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$363 + i32.const 1073741820 + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $3 + local.get $0 + i32.load + local.tee $2 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $4 + local.get $3 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$363 + end + local.get $3 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $2 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_u + select + memory.copy + end + local.get $1 + local.get $2 + i32.ne + if + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $3 + i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - local.get $1 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5830,408 +5640,476 @@ end global.get $~lib/memory/__stack_pointer local.tee $2 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $2 local.get $0 i32.store - local.get $1 + local.get $0 local.get $0 i32.load offset=12 - i32.ge_u - if - i32.const 1392 - i32.const 6736 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer local.tee $2 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add - i32.load - local.tee $0 - i32.store offset=4 + local.get $1 + i32.store local.get $0 - i32.eqz - if - i32.const 6832 - i32.const 6736 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/util/string/strtol (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7828 - i32.lt_s - if - i32.const 40624 - i32.const 40672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.store - block $folding-inner0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - i32.eqz - br_if $folding-inner0 - local.get $0 - local.tee $2 - i32.load16_u - local.set $0 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$183 (result i32) - local.get $0 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $0 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $0 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$183 - drop - i32.const 1 - local.get $0 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$183 - drop - block $break|0 - block $case0|0 - local.get $0 - i32.const 5760 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8232 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8233 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8239 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8287 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 12288 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 65279 - i32.eq - br_if $case0|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$183 - end - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 - end - end - i32.const 1 - local.set $4 - local.get $0 - i32.const 45 - i32.eq - local.tee $6 - local.get $0 - i32.const 43 - i32.eq - i32.or - if (result i32) - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.eqz - br_if $folding-inner0 - i32.const -1 - i32.const 1 - local.get $6 - select - local.set $4 - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - else - local.get $0 - end - i32.const 48 - i32.eq - local.get $1 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + local.get $2 + i32.eqz + br_if $folding-inner1 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/rt/__newArray + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $0 - i32.const 98 - i32.ne + i32.load offset=4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $2 + i32.store + local.get $2 + i32.load offset=12 + i32.eqz if - local.get $0 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $0 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 + local.get $2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + i32.store offset=12 end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.get $0 + i32.store local.get $2 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 2 - local.set $3 - br $break|1 + global.set $~lib/memory/__stack_pointer + br $folding-inner2 end + global.get $~lib/memory/__stack_pointer + local.tee $6 + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $7 + local.get $6 + local.get $1 + i32.store offset=8 + i32.const 2147483647 local.get $2 - i32.const 4 - i32.add + local.get $2 + i32.const 0 + i32.lt_s + select local.set $2 local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 8 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 16 - local.set $3 - end - end - local.get $3 - i32.const 10 - local.get $3 - select - local.set $6 - local.get $1 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - if - block $while-break|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 + i32.const 20 i32.sub - local.tee $0 - i32.const 10 - i32.ge_u - if - local.get $3 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $3 - i32.const 55 - i32.sub - else - local.get $3 - i32.const 87 - i32.sub - local.get $3 - local.get $3 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - end - local.set $0 - end - local.get $0 - local.get $6 - i32.ge_u + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 if - local.get $1 local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 + i32.eqz + if + local.get $6 + i32.const 1 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.load offset=4 + i32.const 3456 + i32.store + br $folding-inner2 + end + else + local.get $7 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $7 + local.get $2 + local.get $2 + local.get $7 + i32.gt_s + select + local.tee $3 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=16 + local.get $5 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + br $folding-inner2 end - local.get $5 - local.get $6 - i32.mul - local.get $0 - i32.add - local.set $5 - local.get $2 - i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/__newArray + local.tee $8 + i32.store offset=24 + loop $while-continue|1 + global.get $~lib/memory/__stack_pointer + local.tee $6 + local.get $0 + i32.store offset=8 + local.get $6 + local.get $1 + i32.store offset=28 + local.get $0 + local.get $1 + local.get $3 + call $~lib/string/String#indexOf + local.tee $9 + i32.const -1 + i32.xor + if + local.get $9 + local.get $3 + i32.sub + local.tee $6 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + local.tee $10 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=32 + local.get $6 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $10 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=28 + local.get $8 + local.get $6 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $8 + i32.store offset=8 + local.get $3 + i32.const 3456 + i32.store offset=28 + local.get $8 + i32.const 3456 + call $~lib/array/Array<~lib/string/String>#push + end + local.get $4 + i32.const 1 + i32.add + local.tee $4 + local.get $2 + i32.eq + br_if $folding-inner3 + local.get $5 + local.get $9 + i32.add + local.set $3 + br $while-continue|1 + end + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $8 + i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=28 + local.get $8 + local.get $0 + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner3 + end + local.get $7 + local.get $3 + i32.sub + local.tee $1 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=36 + local.get $2 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=28 + local.get $8 + local.get $2 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $8 + i32.store offset=8 + local.get $0 + i32.const 3456 + i32.store offset=28 + local.get $8 + i32.const 3456 + call $~lib/array/Array<~lib/string/String>#push + end + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add - local.set $2 - br $while-continue|2 + global.set $~lib/memory/__stack_pointer + local.get $8 + return end + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 0 + call $~lib/rt/__newArray + local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i32.mul + local.get $2 return end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $8 ) - (func $~lib/number/I32.parseInt (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $0 i32.store + local.get $3 + local.get $1 + i32.store offset=4 local.get $0 - call $~lib/util/string/strtol + local.get $1 + local.get $2 + call $~lib/string/String#split local.set $0 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/date/Date.fromString (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6240,282 +6118,830 @@ global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 - i32.const 28 - memory.fill + i32.store local.get $1 local.get $0 i32.store local.get $0 - i32.const 20 + i32.load offset=12 + local.set $0 + local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.eqz + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s if - i32.const 1056 - i32.const 1104 - i32.const 50 - i32.const 33 + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 + i64.const 0 + i64.store + local.get $2 local.get $0 - i32.store offset=4 + i32.store local.get $1 local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1392 + i32.const 6736 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 i32.store + local.get $2 + local.get $0 + i32.load offset=4 local.get $1 - i32.const 3488 - i32.store offset=8 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 local.get $0 - local.tee $1 - i32.const 3488 - i32.const 0 - call $~lib/string/String#indexOf - local.tee $6 - i32.const -1 - i32.xor + i32.eqz if + i32.const 6832 + i32.const 6736 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/date/Date.fromString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 76 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.const 76 + memory.fill + local.get $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 - local.get $6 - call $~lib/string/String#substring + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.eqz + if + i32.const 1056 + i32.const 1104 + i32.const 50 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.tee $1 + local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store - i32.const 1 - global.set $~argumentsLength + local.get $1 + i32.const 3488 + i32.store offset=8 + local.get $0 + local.tee $1 + i32.const 3488 + i32.const 0 + call $~lib/string/String#indexOf + local.tee $2 + i32.const -1 + i32.xor + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + local.get $2 + call $~lib/string/String#substring + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|0 + local.get $3 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + local.get $0 + i32.store + block $__inlined_func$~lib/string/String#charCodeAt$386 + local.get $3 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ge_u + if + local.get $2 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + br $__inlined_func$~lib/string/String#charCodeAt$386 + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + block $for-break0 + local.get $2 + i32.const 90 + i32.eq + br_if $for-break0 + local.get $2 + i32.const 45 + i32.eq + local.get $2 + i32.const 43 + i32.eq + i32.or + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + i32.eq + if + i32.const 1056 + i32.const 1104 + i32.const 74 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + i32.store + local.get $4 + i32.const 3520 + i32.store offset=8 + i32.const 0 + local.get $0 + i32.const 3520 + local.get $3 + i32.const 1 + i32.add + local.tee $4 + call $~lib/string/String#indexOf + local.tee $7 + i32.const -1 + i32.xor + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + local.get $7 + call $~lib/string/String#substring + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/util/string/strtol + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $7 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/util/string/strtol + local.get $4 + i32.const 60 + i32.mul + i32.add + i32.const 60000 + i32.mul + else + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $4 + local.get $0 + local.get $3 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $4 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/util/string/strtol + i32.const 3600000 + i32.mul + end + local.tee $4 + i32.sub + local.get $4 + local.get $2 + i32.const 45 + i32.eq + select + local.set $4 + br $for-break0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $for-loop|0 + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.const 0 + local.get $3 + call $~lib/string/String#substring + local.tee $0 + i32.store offset=12 + end + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 3520 + i32.store offset=8 + i32.const 1 + global.set $~argumentsLength + local.get $2 + local.get $0 + i32.const 3520 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.tee $2 + i32.const 1 + i32.le_s + if + i32.const 1056 + i32.const 1104 + i32.const 96 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $3 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/util/string/strtol + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $7 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/util/string/strtol + local.set $7 + local.get $2 + i32.const 3 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $2 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3552 + i32.store offset=8 + local.get $2 + i32.const 3552 + i32.const 0 + call $~lib/string/String#indexOf + local.tee $0 + i32.const -1 + i32.xor + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + local.get $0 + call $~lib/string/String#substring + local.tee $6 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/util/string/strtol + local.set $6 + global.get $~lib/memory/__stack_pointer + local.set $9 + block $__inlined_func$~lib/string/String#substr$387 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=48 + local.get $0 + i32.const 1 + i32.add + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $8 + i64.const 0 + i64.store + local.get $8 + local.get $2 + i32.store + i32.const 3 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $8 + local.get $0 + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $8 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + end + local.get $0 + i32.sub + local.tee $8 + local.get $8 + i32.const 3 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $8 + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + br $__inlined_func$~lib/string/String#substr$387 + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store offset=4 + local.get $10 + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $8 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 1872 + i32.store offset=8 + local.get $2 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $10 + local.get $2 + i32.const 1872 + i32.store + block $__inlined_func$~lib/string/String#padEnd$388 + i32.const 1868 + i32.load + i32.const -2 + i32.and + local.tee $8 + i32.eqz + local.get $10 + i32.const 6 + i32.gt_u + i32.or + if + local.get $2 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#padEnd$388 + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $10 + memory.copy + i32.const 6 + local.get $10 + i32.sub + local.tee $0 + local.get $8 + i32.gt_u + if + local.get $0 + local.get $0 + i32.const 2 + i32.sub + local.get $8 + i32.div_u + local.get $8 + i32.mul + local.tee $0 + i32.sub + local.set $11 + local.get $2 + local.get $10 + i32.add + local.set $12 + loop $while-continue|0 + local.get $0 + local.get $5 + i32.gt_u + if + local.get $5 + local.get $12 + i32.add + i32.const 1872 + local.get $8 + memory.copy + local.get $5 + local.get $8 + i32.add + local.set $5 + br $while-continue|0 + end + end + local.get $2 + local.get $10 + i32.add + local.get $0 + i32.add + i32.const 1872 + local.get $11 + memory.copy + else + local.get $2 + local.get $10 + i32.add + i32.const 1872 + local.get $0 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 + end + local.get $9 + local.get $0 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/util/string/strtol + local.set $5 + else + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $2 + i32.store offset=56 + local.get $0 + local.get $2 + i32.store + local.get $2 + call $~lib/util/string/strtol + local.set $6 + end + end + end global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.const 1 - i32.add - call $~lib/string/String#substring@varargs local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3520 + local.get $0 + i32.const 1616 i32.store offset=8 i32.const 1 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 3520 + local.get $1 + i32.const 1616 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=16 + i32.store offset=60 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - call $~lib/array/Array<~lib/string/String>#get:length - local.tee $6 - i32.const 1 - i32.le_s - if - i32.const 1056 - i32.const 1104 - i32.const 67 - i32.const 21 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $3 + local.tee $1 + i32.store offset=64 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store - local.get $3 - call $~lib/number/I32.parseInt - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + local.get $1 + call $~lib/util/string/strtol + local.set $2 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store - local.get $4 - call $~lib/number/I32.parseInt - local.set $4 - local.get $6 - i32.const 3 + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.tee $8 + i32.const 2 i32.ge_s - if + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 + i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 - i32.store offset=20 + local.tee $1 + i32.store offset=68 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3552 - i32.store offset=8 - local.get $0 - i32.const 3552 - i32.const 0 - call $~lib/string/String#indexOf - local.tee $6 - i32.const -1 - i32.xor - if + local.get $1 + call $~lib/util/string/strtol + local.set $1 + local.get $8 + i32.const 3 + i32.ge_s + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $6 - call $~lib/string/String#substring - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 i32.store - local.get $2 - call $~lib/number/I32.parseInt - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - i32.const 1 - global.set $~argumentsLength - local.get $0 - local.get $6 - i32.const 1 - i32.add - call $~lib/string/String#substring@varargs - local.set $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/number/I32.parseInt - local.set $5 + call $~lib/util/string/strtol else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/number/I32.parseInt - local.set $2 + i32.const 1 end - end - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store - local.get $0 - i32.const 1616 - i32.store offset=8 - i32.const 1 - global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 1616 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/number/I32.parseInt - local.set $7 - i32.const 1 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array<~lib/string/String>#get:length - local.tee $6 - i32.const 2 - i32.ge_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/number/I32.parseInt - local.set $1 - local.get $6 - i32.const 3 - i32.ge_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/number/I32.parseInt else i32.const 1 end - else - i32.const 1 + local.set $0 + local.get $2 + local.get $1 + local.get $0 + local.get $3 + local.get $7 + local.get $6 + local.get $5 + call $~lib/date/epochMillis + local.get $4 + i64.extend_i32_s + i64.sub + call $~lib/date/Date#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 76 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.set $0 - local.get $7 - local.get $1 - local.get $0 - local.get $3 - local.get $4 - local.get $2 - local.get $5 - call $~lib/date/epochMillis - call $~lib/date/Date#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $start:std/date (local $0 i32) @@ -6523,15 +6949,15 @@ (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 408 + i32.const 440 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6539,7 +6965,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 408 + i32.const 440 memory.fill block $folding-inner0 i32.const 1970 @@ -6734,7 +7160,7 @@ memory.size i32.const 16 i32.shl - i32.const 40596 + i32.const 41236 i32.sub i32.const 1 i32.shr_u @@ -9723,22 +10149,22 @@ i32.store offset=8 local.get $0 i64.load offset=16 - i64.const -62167219200000 + i64.const 192141296456 i64.ne if i32.const 0 i32.const 1152 - i32.const 310 + i32.const 311 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 7312 + i32.const 7360 i32.store offset=8 local.get $0 - i32.const 7312 + i32.const 7360 call $~lib/date/Date.fromString local.tee $0 i32.store offset=292 @@ -9750,22 +10176,22 @@ i32.store offset=8 local.get $0 i64.load offset=16 - i64.const -62135596800000 + i64.const 192092696456 i64.ne if i32.const 0 i32.const 1152 - i32.const 313 + i32.const 315 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 7344 + i32.const 7440 i32.store offset=8 local.get $0 - i32.const 7344 + i32.const 7440 call $~lib/date/Date.fromString local.tee $0 i32.store offset=292 @@ -9777,22 +10203,22 @@ i32.store offset=8 local.get $0 i64.load offset=16 - i64.const 189302400000 + i64.const 192112496450 i64.ne if i32.const 0 i32.const 1152 - i32.const 316 + i32.const 319 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 7376 + i32.const 7504 i32.store offset=8 local.get $0 - i32.const 7376 + i32.const 7504 call $~lib/date/Date.fromString local.tee $0 i32.store offset=292 @@ -9804,12 +10230,228 @@ i32.store offset=8 local.get $0 i64.load offset=16 + i64.const 192112496450 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 323 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 7584 + i32.store offset=8 + local.get $0 + i32.const 7584 + call $~lib/date/Date.fromString + local.tee $0 + i32.store offset=292 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=336 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 192112496450 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 327 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 7664 + i32.store offset=8 + local.get $0 + i32.const 7664 + call $~lib/date/Date.fromString + local.tee $0 + i32.store offset=292 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=340 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 192112496456 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 331 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 7744 + i32.store offset=8 + local.get $0 + i32.const 7744 + call $~lib/date/Date.fromString + local.tee $0 + i32.store offset=292 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=344 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 192112496456 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 335 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 7824 + i32.store offset=8 + local.get $0 + i32.const 7824 + call $~lib/date/Date.fromString + local.tee $0 + i32.store offset=292 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=348 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 192112496456 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 339 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 7920 + i32.store offset=8 + local.get $0 + i32.const 7920 + call $~lib/date/Date.fromString + local.tee $0 + i32.store offset=292 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=352 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const -62167219200000 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 342 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 7952 + i32.store offset=8 + local.get $0 + i32.const 7952 + call $~lib/date/Date.fromString + local.tee $0 + i32.store offset=292 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=356 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const -62135596800000 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 345 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 7984 + i32.store offset=8 + local.get $0 + i32.const 7984 + call $~lib/date/Date.fromString + local.tee $0 + i32.store offset=292 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=360 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 + i64.const 189302400000 + i64.ne + if + i32.const 0 + i32.const 1152 + i32.const 348 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 8016 + i32.store offset=8 + local.get $0 + i32.const 8016 + call $~lib/date/Date.fromString + local.tee $0 + i32.store offset=292 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=364 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i64.load offset=16 i64.const 191980800000 i64.ne if i32.const 0 i32.const 1152 - i32.const 319 + i32.const 351 i32.const 3 call $~lib/builtins/abort unreachable @@ -9825,7 +10467,7 @@ i32.store offset=292 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=336 + i32.store offset=368 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9836,23 +10478,23 @@ if i32.const 0 i32.const 1152 - i32.const 322 + i32.const 354 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 7424 + i32.const 8064 i32.store offset=8 local.get $0 - i32.const 7424 + i32.const 8064 call $~lib/date/Date.fromString local.tee $0 i32.store offset=292 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=340 + i32.store offset=372 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9863,7 +10505,7 @@ if i32.const 0 i32.const 1152 - i32.const 325 + i32.const 357 i32.const 3 call $~lib/builtins/abort unreachable @@ -9879,7 +10521,7 @@ i32.store offset=292 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=344 + i32.store offset=376 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9890,7 +10532,7 @@ if i32.const 0 i32.const 1152 - i32.const 328 + i32.const 360 i32.const 3 call $~lib/builtins/abort unreachable @@ -9899,15 +10541,15 @@ i64.const -8640000000000000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=348 + i32.store offset=380 global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor local.tee $2 - i32.store offset=352 + i32.store offset=384 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=356 + i32.store offset=388 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9918,7 +10560,7 @@ if i32.const 0 i32.const 1152 - i32.const 346 + i32.const 378 i32.const 3 call $~lib/builtins/abort unreachable @@ -9926,7 +10568,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $2 - i32.store offset=360 + i32.store offset=392 local.get $3 local.get $2 i32.store offset=8 @@ -9937,7 +10579,7 @@ if i32.const 0 i32.const 1152 - i32.const 347 + i32.const 379 i32.const 3 call $~lib/builtins/abort unreachable @@ -9945,7 +10587,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $0 - i32.store offset=364 + i32.store offset=396 local.get $3 local.get $0 i32.store offset=8 @@ -9956,7 +10598,7 @@ if i32.const 0 i32.const 1152 - i32.const 349 + i32.const 381 i32.const 3 call $~lib/builtins/abort unreachable @@ -9964,7 +10606,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $2 - i32.store offset=368 + i32.store offset=400 local.get $3 local.get $2 i32.store offset=8 @@ -9975,7 +10617,7 @@ if i32.const 0 i32.const 1152 - i32.const 350 + i32.const 382 i32.const 3 call $~lib/builtins/abort unreachable @@ -9983,7 +10625,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $0 - i32.store offset=372 + i32.store offset=404 local.get $3 local.get $0 i32.store offset=8 @@ -9994,7 +10636,7 @@ if i32.const 0 i32.const 1152 - i32.const 352 + i32.const 384 i32.const 3 call $~lib/builtins/abort unreachable @@ -10002,7 +10644,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $2 - i32.store offset=376 + i32.store offset=408 local.get $3 local.get $2 i32.store offset=8 @@ -10013,7 +10655,7 @@ if i32.const 0 i32.const 1152 - i32.const 353 + i32.const 385 i32.const 3 call $~lib/builtins/abort unreachable @@ -10021,7 +10663,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $0 - i32.store offset=380 + i32.store offset=412 local.get $3 local.get $0 i32.store offset=8 @@ -10032,7 +10674,7 @@ if i32.const 0 i32.const 1152 - i32.const 355 + i32.const 387 i32.const 3 call $~lib/builtins/abort unreachable @@ -10040,7 +10682,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $2 - i32.store offset=384 + i32.store offset=416 local.get $3 local.get $2 i32.store offset=8 @@ -10051,7 +10693,7 @@ if i32.const 0 i32.const 1152 - i32.const 356 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable @@ -10066,16 +10708,16 @@ local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7488 + i32.const 8128 i32.store offset=272 local.get $0 - i32.const 7488 + i32.const 8128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 358 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable @@ -10090,16 +10732,16 @@ local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7568 + i32.const 8208 i32.store offset=272 local.get $0 - i32.const 7568 + i32.const 8208 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 359 + i32.const 391 i32.const 3 call $~lib/builtins/abort unreachable @@ -10108,15 +10750,15 @@ i64.const 8639999999999999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=388 + i32.store offset=420 global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 call $~lib/date/Date#constructor local.tee $2 - i32.store offset=392 + i32.store offset=424 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=396 + i32.store offset=428 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10127,7 +10769,7 @@ if i32.const 0 i32.const 1152 - i32.const 364 + i32.const 396 i32.const 3 call $~lib/builtins/abort unreachable @@ -10135,7 +10777,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $2 - i32.store offset=400 + i32.store offset=432 local.get $3 local.get $2 i32.store offset=8 @@ -10146,7 +10788,7 @@ if i32.const 0 i32.const 1152 - i32.const 365 + i32.const 397 i32.const 3 call $~lib/builtins/abort unreachable @@ -10154,7 +10796,7 @@ global.get $~lib/memory/__stack_pointer local.tee $3 local.get $2 - i32.store offset=404 + i32.store offset=436 local.get $3 local.get $2 i32.store offset=8 @@ -10165,7 +10807,7 @@ if i32.const 0 i32.const 1152 - i32.const 366 + i32.const 398 i32.const 3 call $~lib/builtins/abort unreachable @@ -10178,7 +10820,7 @@ if i32.const 0 i32.const 1152 - i32.const 367 + i32.const 399 i32.const 3 call $~lib/builtins/abort unreachable @@ -10191,7 +10833,7 @@ if i32.const 0 i32.const 1152 - i32.const 368 + i32.const 400 i32.const 3 call $~lib/builtins/abort unreachable @@ -10204,7 +10846,7 @@ if i32.const 0 i32.const 1152 - i32.const 369 + i32.const 401 i32.const 3 call $~lib/builtins/abort unreachable @@ -10219,7 +10861,7 @@ if i32.const 0 i32.const 1152 - i32.const 370 + i32.const 402 i32.const 3 call $~lib/builtins/abort unreachable @@ -10234,16 +10876,16 @@ local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7648 + i32.const 8288 i32.store offset=272 local.get $0 - i32.const 7648 + i32.const 8288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 372 + i32.const 404 i32.const 3 call $~lib/builtins/abort unreachable @@ -10258,22 +10900,22 @@ local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 8368 i32.store offset=272 local.get $0 - i32.const 7728 + i32.const 8368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1152 - i32.const 373 + i32.const 405 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 408 + i32.const 440 i32.add global.set $~lib/memory/__stack_pointer return @@ -10294,11 +10936,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7828 + i32.const 8468 i32.lt_s if - i32.const 40624 - i32.const 40672 + i32.const 41264 + i32.const 41312 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/date.ts b/tests/compiler/std/date.ts index c2152d8aa4..8fddc31121 100644 --- a/tests/compiler/std/date.ts +++ b/tests/compiler/std/date.ts @@ -295,17 +295,49 @@ assert(date.getTime() == 11860387200000); // supports year / month / day / hour / minute / second - date = Date.fromString("1976-02-02T12:34:56"); // still use Z suffix + date = Date.fromString("1976-02-02T12:34:56"); assert(date.getTime() == 192112496000); // supports milliseconds - date = Date.fromString("1976-02-02T12:34:56.456"); // still use Z suffix + date = Date.fromString("1976-02-02T12:34:56.456"); assert(date.getTime() == 192112496456); - // supports 'Z' suffix + // supports 'Z' suffix (UTC) date = Date.fromString("1976-02-02T12:34:56.456Z"); assert(date.getTime() == 192112496456); + // supports negative offset from UTC + date = Date.fromString("1976-02-02T12:34:56.456-08:00"); + assert(date.getTime() == 192141296456); + + // supports positive offset from UTC + date = Date.fromString("1976-02-02T12:34:56.456+05:30"); + assert(date.getTime() == 192092696456); + + // allows fewer than 3 decimal places + date = Date.fromString("1976-02-02T12:34:56.45"); + assert(date.getTime() == 192112496450); + + // allows fewer than 3 decimal places (with Z) + date = Date.fromString("1976-02-02T12:34:56.45Z"); + assert(date.getTime() == 192112496450); + + // allows fewer than 3 decimal places (with offset) + date = Date.fromString("1976-02-02T12:34:56.45+00:00"); + assert(date.getTime() == 192112496450); + + // truncates more than 3 decimal places + date = Date.fromString("1976-02-02T12:34:56.456789"); + assert(date.getTime() == 192112496456); + + // truncates more than 3 decimal places (with Z) + date = Date.fromString("1976-02-02T12:34:56.456789Z"); + assert(date.getTime() == 192112496456); + + // truncates more than 3 decimal places (with offset) + date = Date.fromString("1976-02-02T12:34:56.456789+00:00"); + assert(date.getTime() == 192112496456); + date = Date.fromString("0000"); assert(date.getTime() == -62167219200000); @@ -321,10 +353,10 @@ date = Date.fromString("1976-02-02"); assert(date.getTime() == 192067200000); - date = Date.fromString("1976-02-02T12:34"); // still use Z suffix + date = Date.fromString("1976-02-02T12:34"); assert(date.getTime() == 192112440000); - date = Date.fromString("1976-02-02T12:34:56"); // still use Z suffix + date = Date.fromString("1976-02-02T12:34:56"); assert(date.getTime() == 192112496000); // date = Date.fromString('0Z'); From 153def698d7341629f294f774f16c20c8a053d85 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Tue, 21 Nov 2023 17:21:05 +0800 Subject: [PATCH 08/86] fix: diagnose when accessing setter only property (#2800) Co-authored-by: CountBleck --- src/resolver.ts | 13 ++++++++++++- tests/compiler/getter-setter-errors.json | 1 + tests/compiler/getter-setter-errors.ts | 6 +++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/resolver.ts b/src/resolver.ts index d6177806bd..349cd47d5e 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -1363,7 +1363,18 @@ export class Resolver extends DiagnosticEmitter { } case ElementKind.Property: { // someInstance.prop let propertyInstance = target; - let getterInstance = assert(propertyInstance.getterInstance); // must have a getter + let getterInstance = propertyInstance.getterInstance; + if (!getterInstance) { + // In TS, getters without setters return `undefined`. Since AS doesn't have + // undefined, we instead diagnose it at compile time, but this isn't + // compatible with TS. + let setterInstance = assert(propertyInstance.setterInstance); + this.errorRelated( + DiagnosticCode.Property_0_only_has_a_setter_and_is_missing_a_getter, + targetNode.range, setterInstance.declaration.range, propertyInstance.name + ); + return null; + } let type = getterInstance.signature.returnType; let classReference = type.getClassOrWrapper(this.program); if (!classReference) { diff --git a/tests/compiler/getter-setter-errors.json b/tests/compiler/getter-setter-errors.json index 81e016bde0..21c80b71ce 100644 --- a/tests/compiler/getter-setter-errors.json +++ b/tests/compiler/getter-setter-errors.json @@ -2,6 +2,7 @@ "asc_flags": [ ], "stderr": [ + "AS229: Property 'm' only has a setter and is missing a getter.", "TS2808: Get accessor 'm2' must be at least as accessible as the setter.", "EOF" ] diff --git a/tests/compiler/getter-setter-errors.ts b/tests/compiler/getter-setter-errors.ts index dd2b191127..c714d2f843 100644 --- a/tests/compiler/getter-setter-errors.ts +++ b/tests/compiler/getter-setter-errors.ts @@ -1,3 +1,8 @@ +class UseNonExistedGetter { + set m(v: string) {} +} +new UseNonExistedGetter().m.toString(); + class GetSetWithoutDifferenceVisibility { public get m1(): i32 { return 1; @@ -9,7 +14,6 @@ class GetSetWithoutDifferenceVisibility { } public set m2(v: i32) {} } - new GetSetWithoutDifferenceVisibility().m1; // m1 is valid new GetSetWithoutDifferenceVisibility().m2; // m2 is invalid From 1e0466ef94fa5cacd0984e4f31a0087de51538a8 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Thu, 23 Nov 2023 20:34:52 +0800 Subject: [PATCH 09/86] feat: implement scoped type alias (#2806) --- src/compiler.ts | 52 ++-- src/flow.ts | 37 ++- src/program.ts | 6 +- src/resolver.ts | 76 ++++-- tests/compiler/typealias-errors.json | 7 + tests/compiler/typealias-errors.ts | 4 + tests/compiler/typealias.debug.wat | 370 ++++++++++++++++++++++++++- tests/compiler/typealias.release.wat | 282 +++++++++++++++++++- tests/compiler/typealias.ts | 26 ++ 9 files changed, 802 insertions(+), 58 deletions(-) create mode 100644 tests/compiler/typealias-errors.json create mode 100644 tests/compiler/typealias-errors.ts diff --git a/src/compiler.ts b/src/compiler.ts index 6508090626..3e721dd4b2 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -93,7 +93,8 @@ import { PropertyPrototype, IndexSignature, File, - mangleInternalName + mangleInternalName, + TypeDefinition } from "./program"; import { @@ -180,7 +181,8 @@ import { findDecorator, isTypeOmitted, - Source + Source, + TypeDeclaration } from "./ast"; import { @@ -1156,7 +1158,7 @@ export class Compiler extends DiagnosticEmitter { // Resolve type if annotated if (typeNode) { - let resolvedType = this.resolver.resolveType(typeNode, global.parent); // reports + let resolvedType = this.resolver.resolveType(typeNode, null, global.parent); // reports if (!resolvedType) { global.set(CommonFlags.Errored); pendingElements.delete(global); @@ -2238,13 +2240,7 @@ export class Compiler extends DiagnosticEmitter { break; } case NodeKind.TypeDeclaration: { - // TODO: integrate inner type declaration into flow - this.error( - DiagnosticCode.Not_implemented_0, - statement.range, - "Inner type alias" - ); - stmt = module.unreachable(); + stmt = this.compileTypeDeclaration(statement); break; } case NodeKind.Module: { @@ -2305,6 +2301,24 @@ export class Compiler extends DiagnosticEmitter { return this.module.flatten(stmts); } + private compileTypeDeclaration(statement: TypeDeclaration): ExpressionRef { + let flow = this.currentFlow; + let name = statement.name.text; + let existedTypeAlias = flow.lookupScopedTypeAlias(name); + if (existedTypeAlias) { + this.errorRelated( + DiagnosticCode.Duplicate_identifier_0, + statement.range, + existedTypeAlias.declaration.range, + name + ); + return this.module.unreachable(); + } + let element = new TypeDefinition(name, flow.sourceFunction, statement, DecoratorFlags.None); + flow.addScopedTypeAlias(name, element); + return this.module.nop(); + } + private compileBreakStatement( statement: BreakStatement ): ExpressionRef { @@ -2962,7 +2976,7 @@ export class Compiler extends DiagnosticEmitter { let initializerNode = declaration.initializer; if (typeNode) { type = resolver.resolveType( // reports - typeNode, + typeNode, flow, flow.sourceFunction, cloneMap(flow.contextualTypeArguments) ); @@ -3729,7 +3743,7 @@ export class Compiler extends DiagnosticEmitter { case AssertionKind.As: { let flow = this.currentFlow; let toType = this.resolver.resolveType( // reports - assert(expression.toType), + assert(expression.toType), flow, flow.sourceFunction, cloneMap(flow.contextualTypeArguments) ); @@ -6162,6 +6176,7 @@ export class Compiler extends DiagnosticEmitter { typeArguments = this.resolver.resolveTypeArguments( assert(typeParameterNodes), typeArgumentNodes, + this.currentFlow, this.currentFlow.sourceFunction.parent, cloneMap(this.currentFlow.contextualTypeArguments), // don't update expression @@ -7085,7 +7100,7 @@ export class Compiler extends DiagnosticEmitter { let parameterNode = parameterNodes[i]; if (!isTypeOmitted(parameterNode.type)) { let resolvedType = this.resolver.resolveType( - parameterNode.type, + parameterNode.type, flow, sourceFunction.parent, contextualTypeArguments ); @@ -7105,7 +7120,7 @@ export class Compiler extends DiagnosticEmitter { let returnType = contextualSignature.returnType; if (!isTypeOmitted(signatureNode.returnType)) { let resolvedType = this.resolver.resolveType( - signatureNode.returnType, + signatureNode.returnType, flow, sourceFunction.parent, contextualTypeArguments ); @@ -7135,7 +7150,7 @@ export class Compiler extends DiagnosticEmitter { return module.unreachable(); } let resolvedType = this.resolver.resolveType( - thisTypeNode, + thisTypeNode, flow, sourceFunction.parent, contextualTypeArguments ); @@ -7522,7 +7537,7 @@ export class Compiler extends DiagnosticEmitter { if (isType.kind == NodeKind.NamedType) { let namedType = isType; if (!(namedType.isNullable || namedType.hasTypeArguments)) { - let element = this.resolver.resolveTypeName(namedType.name, flow.sourceFunction, ReportMode.Swallow); + let element = this.resolver.resolveTypeName(namedType.name, flow, flow.sourceFunction, ReportMode.Swallow); if (element && element.kind == ElementKind.ClassPrototype) { let prototype = element; if (prototype.is(CommonFlags.Generic)) { @@ -7534,7 +7549,7 @@ export class Compiler extends DiagnosticEmitter { // Fall back to `instanceof TYPE` let expectedType = this.resolver.resolveType( - expression.isType, + expression.isType, flow, flow.sourceFunction, cloneMap(flow.contextualTypeArguments) ); @@ -8686,7 +8701,7 @@ export class Compiler extends DiagnosticEmitter { let flow = this.currentFlow; // obtain the class being instantiated - let target = this.resolver.resolveTypeName(expression.typeName, flow.sourceFunction); + let target = this.resolver.resolveTypeName(expression.typeName, flow, flow.sourceFunction); if (!target) return module.unreachable(); if (target.kind != ElementKind.ClassPrototype) { this.error( @@ -8722,6 +8737,7 @@ export class Compiler extends DiagnosticEmitter { classInstance = this.resolver.resolveClassInclTypeArguments( classPrototype, typeArguments, + flow, flow.sourceFunction.parent, // relative to caller cloneMap(flow.contextualTypeArguments), expression diff --git a/src/flow.ts b/src/flow.ts index 3f4838ab3d..d481a61fc9 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -31,7 +31,8 @@ import { TypedElement, mangleInternalName, Property, - PropertyPrototype + PropertyPrototype, + TypeDefinition } from "./program"; import { @@ -250,6 +251,8 @@ export class Flow { breakLabel: string | null = null; /** Scoped local variables. */ scopedLocals: Map | null = null; + /** Scoped type alias. */ + scopedTypeAlias: Map | null = null; /** Local flags. */ localFlags: LocalFlags[] = []; /** Field flags on `this`. Constructors only. */ @@ -405,6 +408,38 @@ export class Flow { falseFlows.set(condExpr, falseFlow); } + addScopedTypeAlias(name: string, definition: TypeDefinition): void { + let scopedTypeAlias = this.scopedTypeAlias; + if (!scopedTypeAlias) this.scopedTypeAlias = scopedTypeAlias = new Map(); + scopedTypeAlias.set(name, definition); + } + + lookupScopedTypeAlias(name: string): TypeDefinition | null { + let current: Flow | null = this; + do { + let scopedTypeAlias = current.scopedTypeAlias; + if (scopedTypeAlias && scopedTypeAlias.has(name)) { + return assert(scopedTypeAlias.get(name)); + } + current = current.parent; + } while (current); + return null; + } + + lookupTypeAlias(name: string): TypeDefinition | null { + let definition: TypeDefinition | null = null; + if (definition = this.lookupScopedTypeAlias(name)) return definition; + + let sourceParent = this.sourceFunction.parent; + if (sourceParent.kind == ElementKind.Function) { + // lookup parent function. + let parentFunction = sourceParent; + return parentFunction.flow.lookupTypeAlias(name); + } + + return null; + } + /** Gets a free temporary local of the specified type. */ getTempLocal(type: Type): Local { let local = this.targetFunction.addLocal(type); diff --git a/src/program.ts b/src/program.ts index febeb1227c..3f9044e2d9 100644 --- a/src/program.ts +++ b/src/program.ts @@ -1308,7 +1308,7 @@ export class Program extends DiagnosticEmitter { for (let i = 0, k = queuedExtends.length; i < k; ++i) { let thisPrototype = queuedExtends[i]; let extendsNode = assert(thisPrototype.extendsNode); // must be present if in queuedExtends - let baseElement = resolver.resolveTypeName(extendsNode.name, thisPrototype.parent); + let baseElement = resolver.resolveTypeName(extendsNode.name, null, thisPrototype.parent); if (!baseElement) continue; if (thisPrototype.kind == ElementKind.ClassPrototype) { if (baseElement.kind == ElementKind.ClassPrototype) { @@ -1405,7 +1405,7 @@ export class Program extends DiagnosticEmitter { let implementsNodes = assert(thisPrototype.implementsNodes); // must be present if in queuedImplements for (let j = 0, l = implementsNodes.length; j < l; ++j) { let implementsNode = implementsNodes[j]; - let interfaceElement = resolver.resolveTypeName(implementsNode.name, thisPrototype.parent); + let interfaceElement = resolver.resolveTypeName(implementsNode.name, null, thisPrototype.parent); if (!interfaceElement) continue; if (interfaceElement.kind == ElementKind.InterfacePrototype) { let interfacePrototype = interfaceElement; @@ -3383,7 +3383,7 @@ export class TypeDefinition extends TypedElement { constructor( /** Simple name. */ name: string, - /** Parent element, usually a file or namespace. */ + /** Parent element. */ parent: Element, /** Declaration reference. */ declaration: TypeDeclaration, diff --git a/src/resolver.ts b/src/resolver.ts index 349cd47d5e..d0837282e9 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -142,6 +142,8 @@ export class Resolver extends DiagnosticEmitter { resolveType( /** The type to resolve. */ node: TypeNode, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -160,21 +162,11 @@ export class Resolver extends DiagnosticEmitter { let resolved: Type | null = null; switch (node.kind) { case NodeKind.NamedType: { - resolved = this.resolveNamedType( - node, - ctxElement, - ctxTypes, - reportMode - ); + resolved = this.resolveNamedType(node, flow, ctxElement, ctxTypes, reportMode); break; } case NodeKind.FunctionType: { - resolved = this.resolveFunctionType( - node, - ctxElement, - ctxTypes, - reportMode - ); + resolved = this.resolveFunctionType(node, flow, ctxElement, ctxTypes, reportMode); break; } default: assert(false); @@ -187,6 +179,8 @@ export class Resolver extends DiagnosticEmitter { private resolveNamedType( /** The type to resolve. */ node: NamedTypeNode, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -225,7 +219,7 @@ export class Resolver extends DiagnosticEmitter { } // Look up in context - let element = this.resolveTypeName(nameNode, ctxElement, reportMode); + let element = this.resolveTypeName(nameNode, flow, ctxElement, reportMode); if (!element) return null; // Use shadow type if present (i.e. namespace sharing a type) @@ -264,6 +258,7 @@ export class Resolver extends DiagnosticEmitter { let instance = this.resolveClassInclTypeArguments( element, typeArgumentNodes, + flow, ctxElement, cloneMap(ctxTypes), // don't inherit node, @@ -318,6 +313,7 @@ export class Resolver extends DiagnosticEmitter { typeArguments = this.resolveTypeArguments( typeParameterNodes, typeArgumentNodes, + flow, ctxElement, ctxTypes = cloneMap(ctxTypes), // update node, @@ -332,6 +328,7 @@ export class Resolver extends DiagnosticEmitter { } let type = this.resolveType( typeDefinition.typeNode, + flow, element, ctxTypes, reportMode @@ -361,6 +358,8 @@ export class Resolver extends DiagnosticEmitter { private resolveFunctionType( /** The type to resolve. */ node: FunctionTypeNode, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -373,6 +372,7 @@ export class Resolver extends DiagnosticEmitter { if (explicitThisType) { thisType = this.resolveType( explicitThisType, + flow, ctxElement, ctxTypes, reportMode @@ -409,6 +409,7 @@ export class Resolver extends DiagnosticEmitter { } let parameterType = this.resolveType( parameterTypeNode, + flow, ctxElement, ctxTypes, reportMode @@ -429,6 +430,7 @@ export class Resolver extends DiagnosticEmitter { } else { returnType = this.resolveType( returnTypeNode, + flow, ctxElement, ctxTypes, reportMode @@ -451,7 +453,7 @@ export class Resolver extends DiagnosticEmitter { ): Type | null { const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); + let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); if (!typeArgument) return null; switch (typeArgument.kind) { case TypeKind.I8: @@ -486,7 +488,7 @@ export class Resolver extends DiagnosticEmitter { ): Type | null { const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); + let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); if (!typeArgument) return null; let classReference = typeArgument.classReference; if (!classReference) { @@ -530,7 +532,7 @@ export class Resolver extends DiagnosticEmitter { ): Type | null { const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); + let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); if (!typeArgument) return null; let classReference = typeArgument.getClassOrWrapper(this.program); if (classReference) { @@ -558,7 +560,7 @@ export class Resolver extends DiagnosticEmitter { ): Type | null { const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); + let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); if (!typeArgument) return null; let signatureReference = typeArgument.getSignature(); if (signatureReference) return signatureReference.returnType; @@ -583,7 +585,7 @@ export class Resolver extends DiagnosticEmitter { ): Type | null { const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, ctxElement, ctxTypes, reportMode); + let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); if (!typeArgument) return null; if (!typeArgument.isNullableReference) return typeArgument; return typeArgument.nonNullableType; @@ -593,12 +595,16 @@ export class Resolver extends DiagnosticEmitter { resolveTypeName( /** The type name to resolve. */ node: TypeName, + /** The flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Element | null { - let element = ctxElement.lookup(node.identifier.text, true); + let element: Element | null = null; + if (flow) element = flow.lookupTypeAlias(node.identifier.text); + if (!element) element = ctxElement.lookup(node.identifier.text, true); if (!element) { if (reportMode == ReportMode.Report) { this.error( @@ -632,6 +638,8 @@ export class Resolver extends DiagnosticEmitter { typeParameters: TypeParameterNode[], /** Type argument nodes provided. */ typeArgumentNodes: TypeNode[] | null, + /** Flow */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. Updated in place with the new set of contextual types. */ @@ -641,9 +649,8 @@ export class Resolver extends DiagnosticEmitter { /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Type[] | null { - var - minParameterCount = 0, - maxParameterCount = 0; + let minParameterCount = 0; + let maxParameterCount = 0; for (let i = 0, k = typeParameters.length; i < k; ++i) { if (!typeParameters[i].defaultType) ++minParameterCount; ++maxParameterCount; @@ -672,12 +679,14 @@ export class Resolver extends DiagnosticEmitter { let type = i < argumentCount ? this.resolveType( // reports typeArgumentNodes![i], + flow, ctxElement, oldCtxTypes, // update reportMode ) : this.resolveType( // reports assert(typeParameters[i].defaultType), + flow, ctxElement, cloneMap(ctxTypes), // don't update reportMode @@ -796,6 +805,7 @@ export class Resolver extends DiagnosticEmitter { } let resolvedDefaultType = this.resolveType( defaultType, + null, prototype, defaultTypeContextualTypeArguments, reportMode @@ -846,7 +856,7 @@ export class Resolver extends DiagnosticEmitter { if (typeArgumentNodes && typeArgumentNodes.length > 0) { // foo(bar: Array) let classReference = type.classReference; if (classReference) { - let classPrototype = this.resolveTypeName(namedTypeNode.name, ctxElement); + let classPrototype = this.resolveTypeName(namedTypeNode.name, null, ctxElement); if (!classPrototype || classPrototype.kind != ElementKind.ClassPrototype) return; if (classReference.prototype == classPrototype) { let typeArguments = classReference.typeArguments; @@ -1306,7 +1316,7 @@ export class Resolver extends DiagnosticEmitter { if (global.is(CommonFlags.Resolved)) return true; let typeNode = global.typeNode; let type = typeNode - ? this.resolveType(typeNode, global.parent, null, reportMode) + ? this.resolveType(typeNode, null, global.parent, null, reportMode) : this.resolveExpression( assert(global.initializerNode), global.file.startFunction.flow, @@ -1424,7 +1434,7 @@ export class Resolver extends DiagnosticEmitter { let shadowType = target.shadowType; if (shadowType) { if (!shadowType.is(CommonFlags.Resolved)) { - let resolvedType = this.resolveType(shadowType.typeNode, shadowType.parent, null, reportMode); + let resolvedType = this.resolveType(shadowType.typeNode, null, shadowType.parent, null, reportMode); if (resolvedType) shadowType.setType(resolvedType); } let classReference = shadowType.type.classReference; @@ -1708,6 +1718,7 @@ export class Resolver extends DiagnosticEmitter { case AssertionKind.Prefix: { let type = this.resolveType( assert(node.toType), // must be set if not NONNULL + null, ctxFlow.sourceFunction, ctxFlow.contextualTypeArguments, reportMode @@ -1764,6 +1775,7 @@ export class Resolver extends DiagnosticEmitter { case AssertionKind.Prefix: { return this.resolveType( assert(node.toType), + null, ctxFlow.sourceFunction, ctxFlow.contextualTypeArguments, reportMode @@ -2659,12 +2671,13 @@ export class Resolver extends DiagnosticEmitter { /** How to proceed with eventual diagnostics. */ reportMode: ReportMode = ReportMode.Report ): Element | null { - let element = this.resolveTypeName(node.typeName, ctxFlow.sourceFunction, reportMode); + let element = this.resolveTypeName(node.typeName, ctxFlow, ctxFlow.sourceFunction, reportMode); if (!element) return null; if (element.kind == ElementKind.ClassPrototype) { return this.resolveClassInclTypeArguments( element, node.typeArguments, + ctxFlow, ctxFlow.sourceFunction, cloneMap(ctxFlow.contextualTypeArguments), node, @@ -2744,7 +2757,7 @@ export class Resolver extends DiagnosticEmitter { const declaration = node.declaration; const signature = declaration.signature; const body = declaration.body; - let functionType = this.resolveType(signature, ctxFlow.sourceFunction, ctxFlow.contextualTypeArguments, reportMode); + let functionType = this.resolveType(signature, null, ctxFlow.sourceFunction, ctxFlow.contextualTypeArguments, reportMode); if ( functionType && declaration.arrowKind != ArrowKind.None && @@ -2843,6 +2856,7 @@ export class Resolver extends DiagnosticEmitter { if (explicitThisType) { thisType = this.resolveType( explicitThisType, + null, prototype.parent, // relative to function ctxTypes, reportMode @@ -2876,6 +2890,7 @@ export class Resolver extends DiagnosticEmitter { } let parameterType = this.resolveType( typeNode, + null, prototype.parent, // relative to function ctxTypes, reportMode @@ -2912,6 +2927,7 @@ export class Resolver extends DiagnosticEmitter { } let type = this.resolveType( typeNode, + null, prototype.parent, // relative to function ctxTypes, reportMode @@ -3026,6 +3042,7 @@ export class Resolver extends DiagnosticEmitter { resolvedTypeArguments = this.resolveTypeArguments( // reports assert(prototype.typeParameterNodes), typeArgumentNodes, + null, ctxElement, ctxTypes, // update reportNode, @@ -3174,6 +3191,7 @@ export class Resolver extends DiagnosticEmitter { let base = this.resolveClassInclTypeArguments( basePrototype, extendsNode.typeArguments, + null, prototype.parent, // relative to derived class cloneMap(ctxTypes), // don't inherit extendsNode, @@ -3214,6 +3232,7 @@ export class Resolver extends DiagnosticEmitter { let iface = this.resolveClassInclTypeArguments( interfacePrototype, implementsNode.typeArguments, + null, prototype.parent, cloneMap(ctxTypes), implementsNode, @@ -3610,6 +3629,8 @@ export class Resolver extends DiagnosticEmitter { prototype: ClassPrototype, /** Type arguments provided to be resolved. */ typeArgumentNodes: TypeNode[] | null, + /** Flow of {@link typeArgumentNodes} */ + flow: Flow | null, /** Contextual element. */ ctxElement: Element, /** Contextual types, i.e. `T`. */ @@ -3626,6 +3647,7 @@ export class Resolver extends DiagnosticEmitter { resolvedTypeArguments = this.resolveTypeArguments( // reports assert(prototype.typeParameterNodes), // must be present if generic typeArgumentNodes, + flow, ctxElement, ctxTypes, // update reportNode, diff --git a/tests/compiler/typealias-errors.json b/tests/compiler/typealias-errors.json new file mode 100644 index 0000000000..91a3ef17ac --- /dev/null +++ b/tests/compiler/typealias-errors.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS2300: Duplicate identifier 'A'." + ] +} diff --git a/tests/compiler/typealias-errors.ts b/tests/compiler/typealias-errors.ts new file mode 100644 index 0000000000..988e058572 --- /dev/null +++ b/tests/compiler/typealias-errors.ts @@ -0,0 +1,4 @@ +export function DuplicateTypeAlias(): void { + type A = i32; + type A = i32; +} diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 0e5a48657b..9c6d493f68 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -1,15 +1,371 @@ (module - (type $0 (func (param i32) (result i32))) - (global $~lib/memory/__data_end i32 (i32.const 8)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32776)) - (global $~lib/memory/__heap_base i32 (i32.const 32776)) - (memory $0 0) - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) + (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)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 156)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32924)) + (global $~lib/memory/__heap_base i32 (i32.const 32924)) + (memory $0 1) + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00i\006\004\00\00\00\00\00\00\00") + (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00t\00y\00p\00e\00a\00l\00i\00a\00s\00.\00t\00s\00\00\00\00\00") + (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00f\006\004\00\00\00\00\00\00\00") + (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $typealias/outer_function~inner_function) (export "alias" (func $typealias/alias)) (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) + (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) + (local $ptr1 i32) + (local $ptr2 i32) + (local $7 i32) + (local $a i32) + (local $b i32) + local.get $str1 + local.get $index1 + i32.const 1 + i32.shl + i32.add + local.set $ptr1 + local.get $str2 + local.get $index2 + i32.const 1 + i32.shl + i32.add + local.set $ptr2 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $len + i32.const 4 + i32.ge_u + if (result i32) + local.get $ptr1 + i32.const 7 + i32.and + local.get $ptr2 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $ptr1 + i64.load + local.get $ptr2 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $ptr1 + i32.const 8 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 8 + i32.add + local.set $ptr2 + local.get $len + i32.const 4 + i32.sub + local.set $len + local.get $len + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 + end + end + i32.const 0 + return + ) + (func $typealias/generic_type_alias + i32.const 5 + i32.const 5 + i32.eq + drop + ) + (func $typealias/alias_in_type_arguments + i32.const 6 + i32.const 6 + i32.eq + drop + ) + (func $start:typealias + call $typealias/outer_function + call $typealias/generic_type_alias + call $typealias/alias_in_type_arguments + ) (func $typealias/alias (param $a i32) (result i32) local.get $a return ) + (func $~start + call $start:typealias + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 32944 + i32.const 32992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 + local.get $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $typealias/outer_function~inner_function + (local $alias f64) + (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 + f64.const 1 + local.set $alias + i32.const 112 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 112 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $typealias/outer_function + (local $alias i64) + (local $inner_function i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i64.const 1 + local.set $alias + i32.const 32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 32 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 144 + local.tee $inner_function + i32.store offset=8 + local.get $inner_function + drop + i32.const 0 + global.set $~argumentsLength + local.get $inner_function + i32.load + call_indirect (type $0) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) ) diff --git a/tests/compiler/typealias.release.wat b/tests/compiler/typealias.release.wat index 1056cb7250..3b7cdfe076 100644 --- a/tests/compiler/typealias.release.wat +++ b/tests/compiler/typealias.release.wat @@ -1,9 +1,287 @@ (module - (type $0 (func (param i32) (result i32))) - (memory $0 0) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33948)) + (memory $0 1) + (data $0 (i32.const 1036) "\1c") + (data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\00i\006\004") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\02\00\00\00\18\00\00\00t\00y\00p\00e\00a\00l\00i\00a\00s\00.\00t\00s") + (data $2 (i32.const 1116) "\1c") + (data $2.1 (i32.const 1128) "\02\00\00\00\06\00\00\00f\006\004") + (data $3 (i32.const 1148) "\1c") + (data $3.1 (i32.const 1160) "\04\00\00\00\08\00\00\00\01") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $typealias/outer_function~inner_function) (export "alias" (func $typealias/alias)) (export "memory" (memory $0)) + (start $~start) (func $typealias/alias (param $0 i32) (result i32) local.get $0 ) + (func $~start + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1180 + i32.lt_s + if + i32.const 33968 + i32.const 34016 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + i32.store offset=4 + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store offset=8 + i32.const 1168 + i32.load + call_indirect (type $0) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1180 + i32.lt_s + if + i32.const 33968 + i32.const 34016 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + local.get $2 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.tee $2 + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + local.get $2 + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + local.get $4 + local.get $0 + i32.store + local.get $0 + local.set $2 + local.get $4 + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$5 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $typealias/outer_function~inner_function + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1180 + i32.lt_s + if + i32.const 33968 + i32.const 34016 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 1136 + i32.store + local.get $0 + i32.const 1136 + i32.store offset=4 + i32.const 1136 + i32.const 1136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) ) diff --git a/tests/compiler/typealias.ts b/tests/compiler/typealias.ts index b6b1449047..a28013ffa6 100644 --- a/tests/compiler/typealias.ts +++ b/tests/compiler/typealias.ts @@ -6,3 +6,29 @@ export type alias = i32; export function alias(a: alias): alias { return a; } + +function outer_function(): void { + type alias = i64; + let alias: alias = 1; + assert(nameof(alias) == nameof()); + function inner_function(): void { + type alias = f64; + let alias: alias = 1; + assert(nameof(alias) == nameof()); + } + inner_function(); +} +outer_function(); + +function generic_type_alias(): void { + type V = Array; + assert(idof>() == idof>()); +} +generic_type_alias(); + + +function alias_in_type_arguments(): void { + type alias = i64; + assert(idof>() == idof>()); +} +alias_in_type_arguments(); From dc547a8fdc13575e8541fb61363c9a2cd19be2dc Mon Sep 17 00:00:00 2001 From: CountBleck Date: Sun, 14 Jan 2024 15:13:27 -0800 Subject: [PATCH 10/86] Update Binaryen (#2811) This version of binaryen.js has the requisite 4 GiB max memory change. Fixes #2810. --- package-lock.json | 14 +- package.json | 2 +- src/glue/binaryen.js | 1 + src/module.ts | 97 +- tests/compiler/NonNullable.release.wat | 40 +- tests/compiler/assert-nonnull.release.wat | 122 +- tests/compiler/assignment-chain.release.wat | 60 +- tests/compiler/bindings/esm.release.wat | 436 +- .../bindings/noExportRuntime.release.wat | 49 +- tests/compiler/bindings/raw.release.wat | 436 +- tests/compiler/builtins.release.wat | 89 +- tests/compiler/call-super.release.wat | 114 +- tests/compiler/cast.debug.wat | 324 +- tests/compiler/class-extends.release.wat | 15 +- tests/compiler/class-implements.release.wat | 138 +- .../compiler/class-overloading-cast.debug.wat | 40 +- .../class-overloading-cast.release.wat | 138 +- tests/compiler/class-overloading.release.wat | 234 +- .../class-static-function.release.wat | 4 +- tests/compiler/class.release.wat | 103 +- tests/compiler/comma.release.wat | 3 +- tests/compiler/constructor.release.wat | 118 +- tests/compiler/do.release.wat | 28 +- tests/compiler/duplicate-fields.release.wat | 73 +- .../compiler/empty-exportruntime.release.wat | 10 +- tests/compiler/empty-new.release.wat | 10 +- .../exportstar-rereexport.release.wat | 28 +- .../extends-baseaggregate.release.wat | 152 +- tests/compiler/extends-recursive.release.wat | 30 +- tests/compiler/features/threads.debug.wat | 2 +- tests/compiler/features/threads.release.wat | 2 +- .../compiler/field-initialization.release.wat | 311 +- tests/compiler/field.release.wat | 40 +- tests/compiler/for.release.wat | 28 +- tests/compiler/function-call.release.wat | 28 +- .../compiler/function-expression.release.wat | 74 +- tests/compiler/getter-call.release.wat | 33 +- tests/compiler/infer-array.release.wat | 90 +- tests/compiler/infer-generic.debug.wat | 8 +- tests/compiler/infer-generic.release.wat | 73 +- tests/compiler/inlining.release.wat | 47 +- tests/compiler/instanceof.debug.wat | 416 +- tests/compiler/instanceof.release.wat | 317 +- tests/compiler/issues/1095.release.wat | 42 +- tests/compiler/issues/1225.release.wat | 75 +- tests/compiler/issues/1699.release.wat | 187 +- tests/compiler/issues/1714.debug.wat | 16 +- tests/compiler/issues/1714.release.wat | 11 +- tests/compiler/issues/2166.release.wat | 64 +- tests/compiler/issues/2322/index.release.wat | 27 +- tests/compiler/issues/2622.release.wat | 27 +- tests/compiler/logical.release.wat | 46 +- tests/compiler/managed-cast.release.wat | 85 +- tests/compiler/new.release.wat | 42 +- tests/compiler/object-literal.release.wat | 192 +- .../optional-typeparameters.debug.wat | 30 +- .../optional-typeparameters.release.wat | 58 +- tests/compiler/possibly-null.release.wat | 40 +- tests/compiler/reexport.release.wat | 27 +- tests/compiler/rereexport.release.wat | 28 +- tests/compiler/resolve-access.release.wat | 136 +- tests/compiler/resolve-binary.release.wat | 339 +- .../resolve-elementaccess.release.wat | 205 +- .../resolve-function-expression.release.wat | 32 +- .../compiler/resolve-localortype.release.wat | 9 +- tests/compiler/resolve-nested.release.wat | 8 +- tests/compiler/resolve-new.release.wat | 22 +- .../resolve-propertyaccess.release.wat | 73 +- tests/compiler/resolve-ternary.release.wat | 31 +- tests/compiler/resolve-unary.release.wat | 160 +- tests/compiler/return-unreachable.release.wat | 64 +- tests/compiler/return.release.wat | 4 +- tests/compiler/rt/finalize.release.wat | 24 +- tests/compiler/rt/flags.debug.wat | 44 +- tests/compiler/rt/issue-2719.release.wat | 25 +- .../rt/runtime-incremental-export.release.wat | 10 +- .../rt/runtime-stub-export.release.wat | 3 +- tests/compiler/simd.release.wat | 83 +- tests/compiler/std/array-access.release.wat | 75 +- tests/compiler/std/array-literal.release.wat | 83 +- tests/compiler/std/array.release.wat | 4923 ++-- tests/compiler/std/arraybuffer.release.wat | 154 +- tests/compiler/std/console.release.wat | 36 +- tests/compiler/std/dataview.release.wat | 750 +- tests/compiler/std/date.release.wat | 1051 +- tests/compiler/std/hash.release.wat | 5 +- tests/compiler/std/map.debug.wat | 4790 ++-- tests/compiler/std/map.release.wat | 6096 +++-- tests/compiler/std/math.release.wat | 36 +- tests/compiler/std/new.release.wat | 43 +- .../std/operator-overloading.release.wat | 961 +- tests/compiler/std/pointer.release.wat | 3 +- tests/compiler/std/set.release.wat | 2616 +-- tests/compiler/std/static-array.release.wat | 96 +- tests/compiler/std/staticarray.release.wat | 918 +- .../std/string-casemapping.release.wat | 135 +- .../compiler/std/string-encoding.release.wat | 214 +- tests/compiler/std/string-nonnull.release.wat | 23 +- tests/compiler/std/string.release.wat | 2275 +- tests/compiler/std/symbol.debug.wat | 406 +- tests/compiler/std/symbol.release.wat | 509 +- tests/compiler/std/trace.release.wat | 4 +- tests/compiler/std/typedarray.debug.wat | 1698 +- tests/compiler/std/typedarray.release.wat | 19346 ++++++++-------- tests/compiler/std/uri.release.wat | 42 +- tests/compiler/super-inline.release.wat | 39 +- tests/compiler/tablebase.release.wat | 4 +- tests/compiler/templateliteral.release.wat | 263 +- tests/compiler/ternary.release.wat | 5 +- tests/compiler/throw.release.wat | 29 +- tests/compiler/typealias.release.wat | 25 +- tests/compiler/typeof.release.wat | 110 +- tests/compiler/unicode-identifier.debug.wat | 12 +- tests/compiler/unicode-identifier.release.wat | 12 +- tests/compiler/while.release.wat | 28 +- 115 files changed, 25257 insertions(+), 29204 deletions(-) diff --git a/package-lock.json b/package-lock.json index db21ae7902..3c0924a072 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "116.0.0-nightly.20231102", + "binaryen": "116.0.0-nightly.20240114", "long": "^5.2.1" }, "bin": { @@ -872,9 +872,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "116.0.0-nightly.20231102", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20231102.tgz", - "integrity": "sha512-aPU9tlKdw/gcXx6u4PxtDgOtGjg/ZKnYdk23ctYb70GxZgPhWnGWmnBt01aV5dt5yFFo2V4rbB7SzpSFhViFQA==", + "version": "116.0.0-nightly.20240114", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20240114.tgz", + "integrity": "sha512-0GZrojJnuhoe+hiwji7QFaL3tBlJoA+KFUN7ouYSDGZLSo9CKM8swQX8n/UcbR0d1VuZKU+nhogNzv423JEu5A==", "bin": { "wasm-opt": "bin/wasm-opt", "wasm2js": "bin/wasm2js" @@ -2905,9 +2905,9 @@ "dev": true }, "binaryen": { - "version": "116.0.0-nightly.20231102", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20231102.tgz", - "integrity": "sha512-aPU9tlKdw/gcXx6u4PxtDgOtGjg/ZKnYdk23ctYb70GxZgPhWnGWmnBt01aV5dt5yFFo2V4rbB7SzpSFhViFQA==" + "version": "116.0.0-nightly.20240114", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20240114.tgz", + "integrity": "sha512-0GZrojJnuhoe+hiwji7QFaL3tBlJoA+KFUN7ouYSDGZLSo9CKM8swQX8n/UcbR0d1VuZKU+nhogNzv423JEu5A==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index c35597e8c6..4d414afdde 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "116.0.0-nightly.20231102", + "binaryen": "116.0.0-nightly.20240114", "long": "^5.2.1" }, "devDependencies": { diff --git a/src/glue/binaryen.js b/src/glue/binaryen.js index f28c35d280..91493cbc8d 100644 --- a/src/glue/binaryen.js +++ b/src/glue/binaryen.js @@ -35,6 +35,7 @@ export const { _BinaryenHeapTypeI31, _BinaryenHeapTypeStruct, _BinaryenHeapTypeArray, + // _BinaryenHeapTypeExn, _BinaryenHeapTypeString, _BinaryenHeapTypeStringviewWTF8, _BinaryenHeapTypeStringviewWTF16, diff --git a/src/module.ts b/src/module.ts index 55b2af6014..92d8ea9e48 100644 --- a/src/module.ts +++ b/src/module.ts @@ -109,13 +109,14 @@ export namespace HeapTypeRef { export const I31: HeapTypeRef = 4 /* _BinaryenHeapTypeI31 */; export const Struct: HeapTypeRef = 5 /* _BinaryenHeapTypeStruct */; export const Array: HeapTypeRef = 6 /* _BinaryenHeapTypeArray */; - export const String: HeapTypeRef = 7 /* _BinaryenHeapTypeString */; - export const StringviewWTF8: HeapTypeRef = 8 /* _BinaryenHeapTypeStringviewWTF8 */; - export const StringviewWTF16: HeapTypeRef = 9 /* _BinaryenHeapTypeStringviewWTF16 */; - export const StringviewIter: HeapTypeRef = 10 /* _BinaryenHeapTypeStringviewIter */; - export const None: HeapTypeRef = 11 /* _BinaryenHeapTypeNone */; - export const Noextern: HeapTypeRef = 12 /* _BinaryenHeapTypeNoext */; - export const Nofunc: HeapTypeRef = 13 /* _BinaryenHeapTypeNofunc */; + export const Exn: HeapTypeRef = 7 /* TODO: BinaryenHeapTypeExn */; + export const String: HeapTypeRef = 8 /* _BinaryenHeapTypeString */; + export const StringviewWTF8: HeapTypeRef = 9 /* _BinaryenHeapTypeStringviewWTF8 */; + export const StringviewWTF16: HeapTypeRef = 10 /* _BinaryenHeapTypeStringviewWTF16 */; + export const StringviewIter: HeapTypeRef = 11 /* _BinaryenHeapTypeStringviewIter */; + export const None: HeapTypeRef = 12 /* _BinaryenHeapTypeNone */; + export const Noextern: HeapTypeRef = 13 /* _BinaryenHeapTypeNoext */; + export const Nofunc: HeapTypeRef = 14 /* _BinaryenHeapTypeNofunc */; export function isBottom(ht: HeapTypeRef): bool { return binaryen._BinaryenHeapTypeIsBottom(ht); @@ -275,44 +276,50 @@ export const enum ExpressionId { TableSet = 46 /* _BinaryenTableSetId */, TableSize = 47 /* _BinaryenTableSizeId */, TableGrow = 48 /* _BinaryenTableGrowId */, - Try = 50 /* _BinaryenTryId */, - Throw = 51 /* _BinaryenThrowId */, - Rethrow = 52 /* _BinaryenRethrowId */, - TupleMake = 53 /* _BinaryenTupleMakeId */, - TupleExtract = 54 /* _BinaryenTupleExtractId */, - RefI31 = 55 /* _BinaryenRefI31Id */, - I31Get = 56 /* _BinaryenI31GetId */, - CallRef = 57 /* _BinaryenCallRefId */, - RefTest = 58 /* _BinaryenRefTestId */, - RefCast = 59 /* _BinaryenRefCastId */, - BrOn = 60 /* _BinaryenBrOnId */, - StructNew = 61 /* _BinaryenStructNewId */, - StructGet = 62 /* _BinaryenStructGetId */, - StructSet = 63 /* _BinaryenStructSetId */, - ArrayNew = 64 /* _BinaryenArrayNewId */, - ArrayNewSeg = 64 /* TODO_BinaryenArraySegId */, - ArrayNewFixed = 67 /* _BinaryenArrayNewFixedId */, - ArrayGet = 68 /* _BinaryenArrayGetId */, - ArraySet = 69 /* _BinaryenArraySetId */, - ArrayLen = 70 /* _BinaryenArrayLenId */, - ArrayCopy = 71 /* _BinaryenArrayCopyId */, - ArrayFill = 72 /* _BinaryenArrayFillId */, - ArrayInitData = 73 /* _BinaryenArrayInitDataId */, - ArrayInitElem = 74 /* _BinaryenArrayInitElemId */, - RefAs = 75 /* _BinaryenRefAsId */, - StringNew = 76 /* _BinaryenStringNewId */, - StringConst = 77 /* _BinaryenStringConstId */, - StringMeasure = 78 /* _BinaryenStringMeasureId */, - StringEncode = 79 /* _BinaryenStringEncodeId */, - StringConcat = 80 /* _BinaryenStringConcatId */, - StringEq = 81 /* _BinaryenStringEqId */, - StringAs = 82 /* _BinaryenStringAsId */, - StringWTF8Advance = 83 /* _BinaryenStringWTF8AdvanceId */, - StringWTF16Get = 84 /* _BinaryenStringWTF16GetId */, - StringIterNext = 85 /* _BinaryenStringIterNextId */, - StringIterMove = 86 /* _BinaryenStringIterMoveId */, - StringSliceWTF = 87 /* _BinaryenStringSliceWTFId */, - StringSliceIter = 88 /* _BinaryenStringSliceIterId */ + TableFill = 49 /* _BinaryenTableFillId */, + TableCopy = 50 /* _BinaryenTableCopyId */, + Try = 51 /* _BinaryenTryId */, + TryTable = 52 /* _BinaryenTryTableId */, + Throw = 53 /* _BinaryenThrowId */, + Rethrow = 54 /* _BinaryenRethrowId */, + ThrowRef = 55 /* _BinaryenThrowRefId */, + TupleMake = 56 /* _BinaryenTupleMakeId */, + TupleExtract = 57 /* _BinaryenTupleExtractId */, + RefI31 = 58 /* _BinaryenRefI31Id */, + I31Get = 59 /* _BinaryenI31GetId */, + CallRef = 60 /* _BinaryenCallRefId */, + RefTest = 61 /* _BinaryenRefTestId */, + RefCast = 62 /* _BinaryenRefCastId */, + BrOn = 63 /* _BinaryenBrOnId */, + StructNew = 64 /* _BinaryenStructNewId */, + StructGet = 65 /* _BinaryenStructGetId */, + StructSet = 66 /* _BinaryenStructSetId */, + ArrayNew = 67 /* _BinaryenArrayNewId */, + ArrayNewData = 68 /* _BinaryenArrayNewDataId */, + ArrayNewElem = 69 /* _BinaryenArrayNewElemId */, + ArrayNewFixed = 70 /* _BinaryenArrayNewFixedId */, + ArrayGet = 71 /* _BinaryenArrayGetId */, + ArraySet = 72 /* _BinaryenArraySetId */, + ArrayLen = 73 /* _BinaryenArrayLenId */, + ArrayCopy = 74 /* _BinaryenArrayCopyId */, + ArrayFill = 75 /* _BinaryenArrayFillId */, + ArrayInitData = 76 /* _BinaryenArrayInitDataId */, + ArrayInitElem = 77 /* _BinaryenArrayInitElemId */, + RefAs = 78 /* _BinaryenRefAsId */, + StringNew = 79 /* _BinaryenStringNewId */, + StringConst = 80 /* _BinaryenStringConstId */, + StringMeasure = 81 /* _BinaryenStringMeasureId */, + StringEncode = 82 /* _BinaryenStringEncodeId */, + StringConcat = 83 /* _BinaryenStringConcatId */, + StringEq = 84 /* _BinaryenStringEqId */, + StringAs = 85 /* _BinaryenStringAsId */, + StringWTF8Advance = 86 /* _BinaryenStringWTF8AdvanceId */, + StringWTF16Get = 87 /* _BinaryenStringWTF16GetId */, + StringIterNext = 88 /* _BinaryenStringIterNextId */, + StringIterMove = 89 /* _BinaryenStringIterMoveId */, + StringSliceWTF = 90 /* _BinaryenStringSliceWTFId */, + StringSliceIter = 91 /* _BinaryenStringSliceIterId */, + ResumeId = 92 /* _BinaryenResumeId */ } /** Binaryen external kind constants. */ diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index 348860fd96..4fc5bbd20c 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -21,7 +21,6 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -32,16 +31,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -57,10 +55,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1136 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store offset=4 i32.const 1136 @@ -76,10 +73,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store offset=4 i32.const 1168 @@ -95,10 +91,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1248 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1248 i32.store call $NonNullable/assertNonNull<~lib/string/String> @@ -114,10 +109,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1248 i32.store call $~lib/string/String.__ne @@ -165,14 +159,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -187,8 +180,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -198,7 +189,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -210,12 +201,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -327,13 +318,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1248 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=4 i32.const 1248 @@ -348,7 +338,6 @@ local.get $0 ) (func $NonNullable/assertNonNull<~lib/string/String> - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -365,10 +354,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1248 i32.store call $~lib/string/String.__ne diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index ef7f534196..753e1c59a8 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -30,7 +30,6 @@ (export "testObjFn" (func $export:assert-nonnull/testObjFn)) (export "testObjRet" (func $export:assert-nonnull/testObjRet)) (func $~lib/array/Array#__get (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -47,10 +46,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -65,23 +63,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 i32.load local.tee $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $export:assert-nonnull/testVar (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -92,10 +88,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -104,10 +99,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -139,7 +133,6 @@ unreachable ) (func $export:assert-nonnull/testObj (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -150,10 +143,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -162,10 +154,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -179,13 +170,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -204,7 +194,6 @@ unreachable ) (func $export:assert-nonnull/testProp (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -215,10 +204,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -227,13 +215,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load local.tee $0 @@ -267,7 +254,6 @@ unreachable ) (func $export:assert-nonnull/testArr (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -278,10 +264,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -290,10 +275,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -307,10 +291,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -319,10 +302,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -337,10 +319,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 i32.load @@ -379,7 +360,6 @@ unreachable ) (func $export:assert-nonnull/testElem (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -390,10 +370,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -402,13 +381,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/array/Array#__get local.tee $0 @@ -454,10 +432,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer @@ -466,20 +443,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/array/Array#__get local.tee $0 @@ -536,10 +514,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer @@ -548,20 +525,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/array/Array#__get local.tee $0 @@ -606,7 +584,6 @@ unreachable ) (func $export:assert-nonnull/testFn (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -617,10 +594,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -629,10 +605,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -670,10 +645,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -682,12 +656,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 local.get $0 i32.eqz if @@ -715,7 +690,6 @@ unreachable ) (func $export:assert-nonnull/testRet (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -727,10 +701,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -739,10 +712,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -769,7 +741,6 @@ unreachable ) (func $export:assert-nonnull/testObjFn (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -780,10 +751,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -792,13 +762,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.tee $0 @@ -827,7 +796,6 @@ unreachable ) (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -839,10 +807,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -851,16 +818,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.tee $0 diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index f7c0cdbab6..1af7a549b8 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -1074,11 +1074,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1263,8 +1262,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1627,7 +1625,6 @@ (func $assignment-chain/normal_assignment_chain (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1638,13 +1635,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1653,21 +1651,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 call $~lib/object/Object#constructor local.tee $1 i32.store @@ -1716,7 +1712,6 @@ unreachable ) (func $assignment-chain/B#set:y (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1733,13 +1728,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1748,13 +1742,13 @@ i32.const 1 i32.add i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 f64.const 1 f64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1762,7 +1756,6 @@ (func $assignment-chain/setter_assignment_chain (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1773,13 +1766,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1788,21 +1782,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 call $~lib/object/Object#constructor local.tee $1 i32.store @@ -1883,7 +1875,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1900,13 +1891,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index b99d7d1e01..67cb217984 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -1194,11 +1194,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1383,8 +1382,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1669,7 +1667,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1679,8 +1676,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1689,6 +1684,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1729,10 +1726,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 15 call $~lib/rt/itcms/__new @@ -1929,10 +1925,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1972,16 +1967,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2071,7 +2065,6 @@ global.set $~argumentsLength ) (func $~start - (local $0 i32) global.get $~started if return @@ -2094,10 +2087,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1152 i32.store i32.const 1152 @@ -2159,7 +2151,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2170,16 +2161,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2188,16 +2178,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2206,10 +2195,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2219,7 +2207,7 @@ i32.const -2 i32.and local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store block $__inlined_func$~lib/string/String#concat$280 @@ -2232,10 +2220,10 @@ local.tee $4 local.get $3 i32.add - local.tee $5 + local.tee $2 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2244,7 +2232,7 @@ br $__inlined_func$~lib/string/String#concat$280 end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 2 call $~lib/rt/itcms/__new local.tee $2 @@ -2283,7 +2271,6 @@ unreachable ) (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2300,10 +2287,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2311,14 +2297,13 @@ i32.const 1 i32.shr_u local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2335,10 +2320,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2346,14 +2330,13 @@ i32.const 2 i32.shr_u local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2370,10 +2353,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2391,7 +2373,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -2402,7 +2383,7 @@ i32.add local.get $2 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2424,15 +2405,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $2 local.get $0 call $~lib/typedarray/Int16Array#get:length local.set $5 @@ -2456,20 +2438,20 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $6 + local.set $6 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -2478,16 +2460,15 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $2 i32.eqz if - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -2531,35 +2512,35 @@ local.get $5 i32.const 3 i32.shl - local.tee $5 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=12 local.get $2 - local.get $7 + local.get $5 i32.store local.get $2 - local.get $7 + local.get $5 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - local.get $7 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - local.get $5 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -2603,10 +2584,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -2624,7 +2604,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store local.get $0 @@ -2634,14 +2613,14 @@ i32.shl i32.add i32.load16_s - local.set $6 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 local.get $3 - local.get $6 + local.get $5 i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set local.get $3 @@ -2685,10 +2664,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -2706,7 +2684,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $1 i32.store local.get $1 @@ -2717,7 +2694,7 @@ i32.add f32.load local.set $4 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2748,7 +2725,6 @@ unreachable ) (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2765,10 +2741,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2801,7 +2776,6 @@ local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2818,10 +2792,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2841,7 +2814,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -2851,13 +2823,12 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2874,23 +2845,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2907,10 +2876,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2926,7 +2894,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -2937,7 +2904,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2963,10 +2930,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3094,10 +3060,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3130,7 +3095,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -3141,13 +3105,12 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3164,10 +3127,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3183,10 +3145,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -3230,10 +3191,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3300,13 +3260,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3315,29 +3274,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.set $4 - local.get $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.const 20 i32.sub i32.load offset=16 - local.tee $2 - local.get $4 + local.tee $4 + local.get $2 i32.add local.set $5 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3374,13 +3334,13 @@ i32.store offset=4 local.get $5 local.get $0 - local.get $4 + local.get $2 memory.copy - local.get $4 + local.get $2 local.get $5 i32.add local.get $1 - local.get $2 + local.get $4 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3401,7 +3361,6 @@ unreachable ) (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3418,10 +3377,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -3435,7 +3393,6 @@ local.get $0 ) (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3446,13 +3403,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3461,10 +3417,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 block $1of1 @@ -3484,10 +3439,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 @@ -3513,7 +3467,6 @@ unreachable ) (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3530,10 +3483,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -3550,7 +3502,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3561,14 +3512,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 block $__inlined_func$bindings/esm/staticarrayFunction$2 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3578,13 +3528,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3594,7 +3545,7 @@ i32.const 2 i32.shr_u local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $4 @@ -3606,7 +3557,7 @@ i32.shr_u i32.add local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3645,7 +3596,6 @@ i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $2 @@ -3657,10 +3607,10 @@ i32.shr_u i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $4 @@ -3680,7 +3630,6 @@ local.set $2 loop $for-loop|1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $1 i32.store local.get $2 @@ -3692,10 +3641,10 @@ i32.shr_u i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $2 @@ -3706,12 +3655,12 @@ i32.const 2 i32.shr_u i32.add - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $4 - local.get $5 + local.get $3 local.get $1 local.get $2 call $~lib/staticarray/StaticArray#__get @@ -3748,7 +3697,6 @@ unreachable ) (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3765,10 +3713,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3790,13 +3737,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3805,15 +3751,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $0 call $~lib/array/Array#get:length local.set $4 @@ -3835,13 +3782,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 11 call $~lib/rt/itcms/__new @@ -4037,13 +3983,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -4052,15 +3997,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $0 call $~lib/array/Array#get:length local.set $4 @@ -4082,13 +4028,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 12 call $~lib/rt/itcms/__new @@ -4281,7 +4226,6 @@ (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4292,13 +4236,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -4306,16 +4249,13 @@ i32.const 2276 i32.lt_s br_if $folding-inner1 - local.get $0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4327,20 +4267,20 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 68 i32.const 13 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4349,17 +4289,16 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $0 + local.get $2 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -4367,113 +4306,113 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store16 offset=2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store16 offset=18 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i64.const 0 i64.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=40 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 f32.const 0 f32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 f64.const 0 f64.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=56 - local.get $0 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=60 - local.get $0 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=64 - local.get $0 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link @@ -4481,51 +4420,50 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 br $__inlined_func$bindings/esm/PlainObject#constructor$5 end br $folding-inner1 end - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load8_s - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 - local.get $4 + local.get $2 + local.get $3 local.get $1 i32.load8_s i32.add i32.store8 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load16_s offset=2 - local.set $2 - local.get $3 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $2 + local.get $0 local.get $1 i32.load16_s offset=2 i32.add i32.store16 offset=2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -4533,7 +4471,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 return end i32.const 35072 @@ -4544,7 +4482,6 @@ unreachable ) (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4561,13 +4498,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index ae70539bb7..7eeb250556 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1127,11 +1127,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1316,8 +1315,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1585,7 +1583,6 @@ local.get $1 ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1602,7 +1599,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1619,7 +1615,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1707,16 +1703,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1831,10 +1826,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 1 call $~lib/rt/itcms/__new @@ -1855,20 +1849,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -1877,16 +1871,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -1915,22 +1908,22 @@ i32.const 0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 local.get $0 - local.get $2 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#set:buffer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -1942,7 +1935,7 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1962,7 +1955,6 @@ end ) (func $export:bindings/noExportRuntime/takesNonPlainObject (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1979,10 +1971,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index 4bb5843896..baa08f6833 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -1194,11 +1194,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1383,8 +1382,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1669,7 +1667,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1679,8 +1676,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1689,6 +1684,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1729,10 +1726,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 15 call $~lib/rt/itcms/__new @@ -1929,10 +1925,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1972,16 +1967,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2071,7 +2065,6 @@ global.set $~argumentsLength ) (func $~start - (local $0 i32) global.get $~started if return @@ -2094,10 +2087,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1152 i32.store i32.const 1152 @@ -2159,7 +2151,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2170,16 +2161,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2188,16 +2178,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2206,10 +2195,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2219,7 +2207,7 @@ i32.const -2 i32.and local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store block $__inlined_func$~lib/string/String#concat$281 @@ -2232,10 +2220,10 @@ local.tee $4 local.get $3 i32.add - local.tee $5 + local.tee $2 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2244,7 +2232,7 @@ br $__inlined_func$~lib/string/String#concat$281 end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 2 call $~lib/rt/itcms/__new local.tee $2 @@ -2283,7 +2271,6 @@ unreachable ) (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2300,10 +2287,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2311,14 +2297,13 @@ i32.const 1 i32.shr_u local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2335,10 +2320,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2346,14 +2330,13 @@ i32.const 2 i32.shr_u local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2370,10 +2353,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2391,7 +2373,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -2402,7 +2383,7 @@ i32.add local.get $2 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2424,15 +2405,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $2 local.get $0 call $~lib/typedarray/Int16Array#get:length local.set $5 @@ -2456,20 +2438,20 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $6 + local.set $6 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -2478,16 +2460,15 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $2 i32.eqz if - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -2531,35 +2512,35 @@ local.get $5 i32.const 3 i32.shl - local.tee $5 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=12 local.get $2 - local.get $7 + local.get $5 i32.store local.get $2 - local.get $7 + local.get $5 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - local.get $7 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - local.get $5 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -2603,10 +2584,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -2624,7 +2604,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store local.get $0 @@ -2634,14 +2613,14 @@ i32.shl i32.add i32.load16_s - local.set $6 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 local.get $3 - local.get $6 + local.get $5 i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set local.get $3 @@ -2685,10 +2664,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -2706,7 +2684,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $1 i32.store local.get $1 @@ -2717,7 +2694,7 @@ i32.add f32.load local.set $4 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2748,7 +2725,6 @@ unreachable ) (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2765,10 +2741,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2801,7 +2776,6 @@ local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2818,10 +2792,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2841,7 +2814,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -2851,13 +2823,12 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2874,23 +2845,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2907,10 +2876,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2926,7 +2894,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -2937,7 +2904,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2963,10 +2930,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3094,10 +3060,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3130,7 +3095,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -3141,13 +3105,12 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3164,10 +3127,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3183,10 +3145,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -3230,10 +3191,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3300,13 +3260,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3315,29 +3274,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.set $4 - local.get $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.const 20 i32.sub i32.load offset=16 - local.tee $2 - local.get $4 + local.tee $4 + local.get $2 i32.add local.set $5 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3374,13 +3334,13 @@ i32.store offset=4 local.get $5 local.get $0 - local.get $4 + local.get $2 memory.copy - local.get $4 + local.get $2 local.get $5 i32.add local.get $1 - local.get $2 + local.get $4 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3401,7 +3361,6 @@ unreachable ) (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3418,10 +3377,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -3435,7 +3393,6 @@ local.get $0 ) (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3446,13 +3403,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3461,10 +3417,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 block $1of1 @@ -3484,10 +3439,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 @@ -3513,7 +3467,6 @@ unreachable ) (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3530,10 +3483,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -3550,7 +3502,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3561,14 +3512,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 block $__inlined_func$bindings/esm/staticarrayFunction$2 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3578,13 +3528,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3594,7 +3545,7 @@ i32.const 2 i32.shr_u local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $4 @@ -3606,7 +3557,7 @@ i32.shr_u i32.add local.set $4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3645,7 +3596,6 @@ i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $2 @@ -3657,10 +3607,10 @@ i32.shr_u i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $4 @@ -3680,7 +3630,6 @@ local.set $2 loop $for-loop|1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $1 i32.store local.get $2 @@ -3692,10 +3641,10 @@ i32.shr_u i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $2 @@ -3706,12 +3655,12 @@ i32.const 2 i32.shr_u i32.add - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $4 - local.get $5 + local.get $3 local.get $1 local.get $2 call $~lib/staticarray/StaticArray#__get @@ -3748,7 +3697,6 @@ unreachable ) (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3765,10 +3713,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3790,13 +3737,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3805,15 +3751,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $0 call $~lib/array/Array#get:length local.set $4 @@ -3835,13 +3782,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 11 call $~lib/rt/itcms/__new @@ -4037,13 +3983,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -4052,15 +3997,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $0 call $~lib/array/Array#get:length local.set $4 @@ -4082,13 +4028,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 12 call $~lib/rt/itcms/__new @@ -4281,7 +4226,6 @@ (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4292,13 +4236,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -4306,16 +4249,13 @@ i32.const 2276 i32.lt_s br_if $folding-inner1 - local.get $0 - local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4327,20 +4267,20 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 68 i32.const 13 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4349,17 +4289,16 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $0 + local.get $2 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -4367,113 +4306,113 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store16 offset=2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store16 offset=18 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i64.const 0 i64.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=40 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 f32.const 0 f32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 f64.const 0 f64.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=56 - local.get $0 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=60 - local.get $0 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=64 - local.get $0 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link @@ -4481,51 +4420,50 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 br $__inlined_func$bindings/esm/PlainObject#constructor$5 end br $folding-inner1 end - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store offset=4 - local.get $3 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load8_s - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 - local.get $4 + local.get $2 + local.get $3 local.get $1 i32.load8_s i32.add i32.store8 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load16_s offset=2 - local.set $2 - local.get $3 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $2 + local.get $0 local.get $1 i32.load16_s offset=2 i32.add i32.store16 offset=2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -4533,7 +4471,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 return end i32.const 35072 @@ -4544,7 +4482,6 @@ unreachable ) (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4561,13 +4498,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index 28d046b18c..fa7c2b22ee 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -103,14 +103,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -125,8 +124,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -136,7 +133,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -148,12 +145,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -248,7 +245,6 @@ i32.const 0 ) (func $start:builtins - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -265,10 +261,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 1 @@ -656,13 +651,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -678,19 +672,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1200 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1200 i32.store offset=4 i32.const 1200 @@ -786,10 +779,9 @@ f64.const 52 call $~lib/builtins/trace global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1376 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1376 i32.store offset=4 i32.const 1376 @@ -805,10 +797,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1376 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1376 i32.store offset=4 i32.const 1376 @@ -824,10 +815,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1424 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1424 i32.store offset=4 i32.const 1424 @@ -843,10 +833,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1456 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store offset=4 i32.const 1456 @@ -862,10 +851,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1488 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 i32.const 1488 @@ -881,10 +869,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1520 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 i32.const 1520 @@ -900,10 +887,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1552 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1552 i32.store offset=4 i32.const 1552 @@ -919,10 +905,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1584 i32.store offset=4 i32.const 1584 @@ -938,10 +923,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store offset=4 i32.const 1616 @@ -957,10 +941,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1648 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1648 i32.store offset=4 i32.const 1648 @@ -976,10 +959,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1680 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1680 i32.store offset=4 i32.const 1680 @@ -995,10 +977,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1712 @@ -1014,10 +995,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1744 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1744 i32.store offset=4 i32.const 1744 @@ -1033,10 +1013,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1776 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1776 i32.store offset=4 i32.const 1776 @@ -1052,10 +1031,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 i32.const 1808 @@ -1071,10 +1049,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1840 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1840 i32.store offset=4 i32.const 1840 @@ -1090,10 +1067,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1872 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=4 i32.const 1872 @@ -1109,10 +1085,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1904 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1904 i32.store offset=4 i32.const 1904 @@ -1128,10 +1103,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1456 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store offset=4 i32.const 1456 @@ -1147,10 +1121,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1376 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1376 i32.store offset=4 i32.const 1376 diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index 35171b786e..7cd486f260 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1070,11 +1070,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1259,8 +1258,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1531,7 +1529,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) memory.size i32.const 16 i32.shl @@ -1574,10 +1571,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1586,26 +1584,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1614,13 +1612,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new @@ -1628,13 +1625,12 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1736,10 +1732,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1748,26 +1745,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1776,13 +1773,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 call $~lib/rt/itcms/__new @@ -1790,10 +1786,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1891,10 +1886,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1903,20 +1899,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1925,13 +1921,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 9 call $~lib/rt/itcms/__new @@ -1939,13 +1934,12 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -2023,10 +2017,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2035,20 +2030,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2057,13 +2052,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 11 call $~lib/rt/itcms/__new @@ -2071,10 +2065,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2148,10 +2141,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2160,20 +2154,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2182,13 +2176,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 13 call $~lib/rt/itcms/__new @@ -2196,13 +2189,12 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2328,7 +2320,6 @@ call $start:call-super ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2345,13 +2336,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/cast.debug.wat b/tests/compiler/cast.debug.wat index 2800488edc..3a7ae38bce 100644 --- a/tests/compiler/cast.debug.wat +++ b/tests/compiler/cast.debug.wat @@ -12,21 +12,21 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend8_s @@ -34,7 +34,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend8_s @@ -42,7 +42,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend8_s @@ -50,7 +50,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend8_s @@ -58,7 +58,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.extend8_s @@ -67,7 +67,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.extend8_s @@ -76,28 +76,28 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 255 @@ -106,7 +106,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 255 @@ -115,7 +115,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 255 @@ -124,7 +124,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 255 @@ -133,7 +133,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 255 @@ -143,7 +143,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 255 @@ -153,42 +153,42 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend16_s @@ -196,7 +196,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.extend16_s @@ -204,7 +204,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.extend16_s @@ -213,7 +213,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.extend16_s @@ -222,42 +222,42 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 65535 @@ -266,7 +266,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 65535 @@ -275,7 +275,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 65535 @@ -285,7 +285,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 65535 @@ -295,56 +295,56 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i64.extend_i32_s @@ -352,7 +352,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i64.extend_i32_s @@ -360,56 +360,56 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i64.extend_i32_u @@ -417,7 +417,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i64.extend_i32_u @@ -425,14 +425,14 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -440,7 +440,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -448,7 +448,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -456,7 +456,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -464,7 +464,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -472,7 +472,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -480,21 +480,21 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i64) + (func $"cast/test" (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i64) + (func $"cast/test" (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i64.const 0 @@ -503,7 +503,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -511,7 +511,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -519,7 +519,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -527,7 +527,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -535,7 +535,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -543,7 +543,7 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i32.wrap_i64 @@ -551,21 +551,21 @@ local.get $y return ) - (func $cast/test (param $x i64) (result i64) + (func $"cast/test" (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i64) + (func $"cast/test" (param $x i64) (result i64) (local $y i64) local.get $x local.set $y local.get $y return ) - (func $cast/test (param $x i64) (result i32) + (func $"cast/test" (param $x i64) (result i32) (local $y i32) local.get $x i64.const 0 @@ -574,7 +574,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -583,7 +583,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -592,7 +592,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -601,7 +601,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -610,7 +610,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -619,7 +619,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x i32.const 0 @@ -628,7 +628,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 0 @@ -638,7 +638,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i64) + (func $"cast/test" (param $x i32) (result i64) (local $y i64) local.get $x i32.const 0 @@ -648,7 +648,7 @@ local.get $y return ) - (func $cast/test (param $x i32) (result i32) + (func $"cast/test" (param $x i32) (result i32) (local $y i32) local.get $x local.set $y @@ -657,247 +657,247 @@ ) (func $start:cast i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i64.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop i32.const 0 - call $cast/test + call $"cast/test" drop ) (func $~start diff --git a/tests/compiler/class-extends.release.wat b/tests/compiler/class-extends.release.wat index 91954a1585..5ff350f382 100644 --- a/tests/compiler/class-extends.release.wat +++ b/tests/compiler/class-extends.release.wat @@ -7,7 +7,6 @@ (export "memory" (memory $0)) (export "test" (func $export:class-extends/test)) (func $export:class-extends/test (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -18,10 +17,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30,34 +28,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load drop - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load16_s offset=4 drop - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 3 i32.store16 offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index e253112e6b..a8a05184e7 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -1119,11 +1119,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1308,8 +1307,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1619,7 +1617,6 @@ unreachable ) (func $class-implements/I2#set:foo@override (param $0 i32) (param $1 i32) - (local $2 i32) block $folding-inner0 block $default block $case5 @@ -1659,16 +1656,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1793,7 +1789,6 @@ call $start:class-implements ) (func $class-implements/D#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1810,13 +1805,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 8 call $~lib/rt/itcms/__new @@ -1824,10 +1818,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1840,7 +1833,6 @@ ) (func $class-implements/F#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1857,20 +1849,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-implements/D#constructor local.tee $0 @@ -1882,7 +1872,6 @@ local.get $0 ) (func $class-implements/A2#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1899,13 +1888,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 14 call $~lib/rt/itcms/__new @@ -1913,10 +1901,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1934,7 +1921,6 @@ local.get $0 ) (func $class-implements/B2#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1951,13 +1937,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 18 call $~lib/rt/itcms/__new @@ -1965,10 +1950,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1986,7 +1970,6 @@ local.get $0 ) (func $class-implements/B2#get:foo (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2003,23 +1986,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $class-implements/B3#get:foo (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2036,16 +2017,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2054,7 +2034,6 @@ (func $start:class-implements (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -2065,7 +2044,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 28 memory.fill @@ -2101,7 +2079,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2110,20 +2088,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2146,20 +2122,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2168,13 +2144,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 7 call $~lib/rt/itcms/__new @@ -2182,10 +2157,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2244,20 +2218,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-implements/D#constructor local.tee $0 @@ -2385,20 +2357,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2523,7 +2493,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2532,20 +2503,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 16 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $class-implements/A2#constructor local.tee $1 @@ -2630,7 +2599,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2639,20 +2609,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 17 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $class-implements/A2#constructor local.tee $1 @@ -2808,7 +2776,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2817,20 +2786,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 19 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $class-implements/B2#constructor local.tee $1 @@ -2915,7 +2882,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2924,20 +2892,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 20 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $class-implements/B2#constructor local.tee $1 @@ -3035,7 +3001,6 @@ unreachable ) (func $class-implements/B3#set:foo (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3052,22 +3017,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3084,13 +3047,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index e73494ed95..86441b6a1b 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -2376,7 +2376,7 @@ i32.const 0 return ) - (func $class-overloading-cast/B#foo (param $this i32) (param $a i32) (result i32) + (func $"class-overloading-cast/B#foo" (param $this i32) (param $a i32) (result i32) i32.const 464 return ) @@ -2392,11 +2392,11 @@ i32.const 608 return ) - (func $class-overloading-cast/B#foo (param $this i32) (param $a i32) (result i32) + (func $"class-overloading-cast/B#foo" (param $this i32) (param $a i32) (result i32) i32.const 464 return ) - (func $class-overloading-cast/B#foo (param $this i32) (param $a f64) (result i32) + (func $"class-overloading-cast/B#foo" (param $this i32) (param $a f64) (result i32) i32.const 464 return ) @@ -2422,12 +2422,12 @@ end local.get $0 local.get $1 - call $class-overloading-cast/B#foo + call $"class-overloading-cast/B#foo" return end local.get $0 local.get $1 - call $class-overloading-cast/B#foo + call $"class-overloading-cast/B#foo" return end local.get $0 @@ -2451,7 +2451,7 @@ end local.get $0 local.get $1 - call $class-overloading-cast/B#foo + call $"class-overloading-cast/B#foo" return end local.get $0 @@ -2525,15 +2525,15 @@ (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid block $class-overloading-cast/A - block $class-overloading-cast/B + block $"class-overloading-cast/B" block $class-overloading-cast/D block $class-overloading-cast/A<~lib/string/String> block $class-overloading-cast/C block $class-overloading-cast/A - block $class-overloading-cast/B - block $class-overloading-cast/B + block $"class-overloading-cast/B" + block $"class-overloading-cast/B" block $class-overloading-cast/A - block $class-overloading-cast/B + block $"class-overloading-cast/B" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -2542,7 +2542,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/B $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $class-overloading-cast/B $class-overloading-cast/A $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"class-overloading-cast/B" $class-overloading-cast/A $"class-overloading-cast/B" $"class-overloading-cast/B" $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $"class-overloading-cast/B" $class-overloading-cast/A $invalid end return end @@ -2637,7 +2637,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading-cast/B#constructor (param $this i32) (result i32) + (func $"class-overloading-cast/B#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2675,7 +2675,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading-cast/B#constructor (param $this i32) (result i32) + (func $"class-overloading-cast/B#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2751,7 +2751,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading-cast/B#constructor (param $this i32) (result i32) + (func $"class-overloading-cast/B#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2999,7 +2999,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $class-overloading-cast/B#constructor (param $this i32) (result i32) + (func $"class-overloading-cast/B#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3064,7 +3064,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $class-overloading-cast/B#constructor + call $"class-overloading-cast/B#constructor" local.tee $this i32.store local.get $this @@ -3106,13 +3106,13 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 - call $class-overloading-cast/B#constructor + call $"class-overloading-cast/B#constructor" global.set $class-overloading-cast/v i32.const 0 - call $class-overloading-cast/B#constructor + call $"class-overloading-cast/B#constructor" global.set $class-overloading-cast/v2 i32.const 0 - call $class-overloading-cast/B#constructor + call $"class-overloading-cast/B#constructor" global.set $class-overloading-cast/v3 global.get $class-overloading-cast/v local.set $0 @@ -3150,7 +3150,7 @@ i32.store offset=8 local.get $0 i32.const 1 - call $class-overloading-cast/B#foo + call $"class-overloading-cast/B#foo" 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 1ac11532a6..3b6a73a719 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1107,11 +1107,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1213,8 +1212,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1412,15 +1410,15 @@ (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $class-overloading-cast/A - block $class-overloading-cast/B + block $"class-overloading-cast/B" block $class-overloading-cast/D block $class-overloading-cast/A<~lib/string/String> block $class-overloading-cast/C block $class-overloading-cast/A - block $class-overloading-cast/B - block $class-overloading-cast/B + block $"class-overloading-cast/B" + block $"class-overloading-cast/B" block $class-overloading-cast/A - block $class-overloading-cast/B + block $"class-overloading-cast/B" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -1429,7 +1427,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/B $class-overloading-cast/B $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $class-overloading-cast/B $class-overloading-cast/A $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"class-overloading-cast/B" $class-overloading-cast/A $"class-overloading-cast/B" $"class-overloading-cast/B" $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $"class-overloading-cast/B" $class-overloading-cast/A $invalid end return end @@ -1478,7 +1476,6 @@ call $start:class-overloading-cast ) (func $class-overloading-cast/A#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1495,23 +1492,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1543,14 +1538,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1565,8 +1559,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -1576,7 +1568,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -1588,12 +1580,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -1691,7 +1683,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1702,10 +1693,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 memory.size @@ -1740,7 +1730,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1749,19 +1739,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading-cast/A#constructor local.tee $0 @@ -1781,19 +1769,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading-cast/A#constructor local.tee $0 @@ -1813,19 +1799,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1834,23 +1820,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1916,13 +1900,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading-cast/v2 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 i32.const 1488 @@ -1937,14 +1920,14 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer block $__inlined_func$class-overloading-cast/A#foo@override$137 (result i32) global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading-cast/v3 - local.tee $1 + local.tee $0 i32.store offset=8 i32.const 1488 - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load @@ -1954,14 +1937,12 @@ drop i32.const 1456 end - local.set $1 - local.get $0 - local.get $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1982,19 +1963,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2003,23 +1984,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2068,22 +2047,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading-cast/c - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1600 i32.store offset=12 - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load drop - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store offset=4 i32.const 1456 @@ -2107,19 +2085,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2128,23 +2106,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2153,23 +2131,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 13 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2227,7 +2203,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2244,13 +2219,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index bd6ade0aaf..c389b02f92 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1129,11 +1129,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1235,8 +1234,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1541,7 +1539,6 @@ ) (func $class-overloading/B#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1552,23 +1549,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1577,23 +1574,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1640,14 +1635,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1662,8 +1656,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -1673,7 +1665,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -1685,12 +1677,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -1785,7 +1777,6 @@ i32.const 0 ) (func $class-overloading/C#a (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1802,18 +1793,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 1520 global.set $class-overloading/which - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 i32.const 1520 @@ -1836,7 +1826,6 @@ global.set $~lib/memory/__stack_pointer ) (func $class-overloading/D#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1853,23 +1842,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading/B#constructor local.tee $0 @@ -1881,7 +1868,6 @@ local.get $0 ) (func $class-overloading/E#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1898,23 +1884,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading/D#constructor local.tee $0 @@ -1928,7 +1912,6 @@ (func $start:class-overloading (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2036,14 +2019,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2090,14 +2072,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2144,14 +2125,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2172,19 +2152,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading/B#constructor local.tee $0 @@ -2225,15 +2203,14 @@ i32.const 1056 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2251,15 +2228,14 @@ i32.const 1056 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2275,15 +2251,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2363,14 +2338,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2417,14 +2391,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2469,14 +2442,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2553,14 +2525,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2607,14 +2578,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2659,14 +2629,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2687,19 +2656,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $class-overloading/E#constructor local.tee $0 @@ -2772,14 +2739,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1648 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2826,14 +2792,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1648 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2880,14 +2845,13 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1648 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2908,19 +2872,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2965,14 +2927,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1680 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1680 call $~lib/string/String.__eq i32.eqz @@ -2993,19 +2954,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -3050,14 +3009,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1712 call $~lib/string/String.__eq i32.eqz @@ -3078,19 +3036,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3099,23 +3057,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 14 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -3154,10 +3110,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3166,19 +3121,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3187,23 +3142,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 17 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -3231,10 +3184,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3282,7 +3234,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3299,13 +3250,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/class-static-function.release.wat b/tests/compiler/class-static-function.release.wat index e8a4c3c3ca..10a8811e24 100644 --- a/tests/compiler/class-static-function.release.wat +++ b/tests/compiler/class-static-function.release.wat @@ -17,7 +17,6 @@ i32.const 42 ) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -34,10 +33,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 710aef17f0..77e0ddac27 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -1080,11 +1080,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1269,8 +1268,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1538,7 +1536,6 @@ local.get $1 ) (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1555,7 +1552,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1572,7 +1568,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1608,23 +1604,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1633,13 +1629,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1665,73 +1660,72 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 32 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $1 + i32.store offset=12 local.get $2 + local.get $1 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 32 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -1739,10 +1733,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer i32.const 12 @@ -1758,7 +1752,6 @@ unreachable ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner0 block $invalid block $~lib/array/Array @@ -1796,10 +1789,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1856,7 +1848,6 @@ global.set $~lib/rt/itcms/fromSpace ) (func $export:class/test (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1867,10 +1858,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1879,55 +1869,54 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load drop - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load16_s offset=4 drop - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load8_s offset=6 drop - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 2 i32.store16 offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 3 i32.store8 offset=6 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/comma.release.wat b/tests/compiler/comma.release.wat index 3e05eea00a..bf36eae36e 100644 --- a/tests/compiler/comma.release.wat +++ b/tests/compiler/comma.release.wat @@ -84,10 +84,9 @@ loop $for-loop|0 local.get $0 global.get $comma/a - local.tee $1 i32.lt_s if - local.get $1 + global.get $comma/a i32.const 1 i32.sub global.set $comma/a diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index ca81fa3733..f754d4909d 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1133,11 +1133,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1322,8 +1321,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1658,7 +1656,6 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1669,7 +1666,6 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store memory.size @@ -1704,7 +1700,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1713,10 +1709,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new @@ -1737,23 +1732,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1768,23 +1761,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1799,29 +1790,27 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1836,20 +1825,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1869,20 +1856,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1908,20 +1893,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1947,10 +1930,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 12 call $~lib/rt/itcms/__new @@ -1968,10 +1950,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 13 call $~lib/rt/itcms/__new @@ -2026,53 +2007,51 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 15 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $2 - local.get $1 + local.get $0 i32.load offset=8 i32.add i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.ne @@ -2085,9 +2064,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.ne @@ -2100,9 +2079,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.load i32.const 3 i32.ne @@ -2118,7 +2097,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $constructor/ctorFieldInitOrder global.get $~lib/memory/__stack_pointer global.get $constructor/ctorFieldInitOrder @@ -2183,7 +2162,6 @@ ) (func $constructor/CtorFieldInitWithoutConstructor#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2200,23 +2178,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 14 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2244,7 +2220,6 @@ local.get $0 ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2261,13 +2236,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 59a6b45e99..0078d1c8a8 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1069,11 +1069,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1175,8 +1174,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1669,12 +1667,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer call $do/Ref#constructor i32.store loop $do-loop|09 @@ -1729,12 +1726,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store i32.const 0 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer call $do/Ref#constructor local.tee $1 i32.store @@ -1859,7 +1855,6 @@ (func $do/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1870,19 +1865,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1891,13 +1886,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index adac54bdc2..6aff8c65a7 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -1087,11 +1087,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1276,8 +1275,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1545,7 +1543,6 @@ local.get $1 ) (func $duplicate-fields/A2#set:bar (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1562,7 +1559,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1579,7 +1575,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1659,7 +1655,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1670,7 +1665,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store memory.size @@ -1705,7 +1699,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1714,26 +1708,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1742,13 +1736,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new @@ -1756,19 +1749,18 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 10 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1812,29 +1804,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 local.get $1 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 i32.const 1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1850,13 +1840,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 8 call $~lib/rt/itcms/__new @@ -1885,16 +1874,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 6 call $~lib/rt/itcms/__new @@ -1968,20 +1956,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1990,13 +1978,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 10 call $~lib/rt/itcms/__new @@ -2004,10 +1991,11 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2016,13 +2004,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index 4e5d52200a..6372bb77d3 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -1088,11 +1088,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1277,8 +1276,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index 6b99e2fa8c..1d975a97eb 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -1066,11 +1066,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1172,14 +1171,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 + global.get $~lib/rt/itcms/total 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 diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index eb1d1cc17c..c16cf9f6b4 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1100,11 +1100,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1206,8 +1205,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1448,10 +1446,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1568,7 +1565,6 @@ ) (func $exports/Car#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1585,34 +1581,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $exports/Car#get:numDoors (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1629,16 +1622,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index 83ddca752b..a0bc28bb44 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1091,11 +1091,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1280,8 +1279,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1566,7 +1564,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1576,8 +1573,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1586,6 +1581,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1628,16 +1625,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1743,7 +1739,6 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store memory.size @@ -1778,10 +1773,10 @@ i32.store i32.const 1504 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1790,20 +1785,20 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 7 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $5 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1812,24 +1807,24 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $6 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.const 5 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $5 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1838,45 +1833,44 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $5 + local.get $6 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $0 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 f64.const 0 f64.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=16 - local.get $5 + local.get $6 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link @@ -1884,15 +1878,15 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1903,19 +1897,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store i32.const 1180 i32.load - local.tee $4 + local.tee $5 i32.const 1 i32.add - local.tee $3 - local.set $0 + local.tee $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1925,21 +1918,20 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - local.get $0 + local.get $2 i32.const 1176 i32.load - local.tee $1 + local.tee $0 i32.const 2 i32.shr_u i32.gt_u if - local.get $0 + local.get $2 i32.const 268435455 i32.gt_u if @@ -1955,18 +1947,18 @@ i32.store block $__inlined_func$~lib/rt/itcms/__renew$136 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 i32.const 8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.const 8 i32.le_u select @@ -1977,13 +1969,13 @@ local.get $1 i32.lt_u select - local.tee $2 + local.tee $3 i32.const 1168 i32.load - local.tee $1 + local.tee $0 i32.const 20 i32.sub - local.tee $6 + local.tee $2 i32.load i32.const -4 i32.and @@ -1991,26 +1983,26 @@ i32.sub i32.le_u if - local.get $6 local.get $2 + local.get $3 i32.store offset=16 - local.get $1 - local.set $0 + local.get $0 + local.set $1 br $__inlined_func$~lib/rt/itcms/__renew$136 end + local.get $3 local.get $2 - local.get $6 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $0 - local.get $1 + local.tee $1 + local.get $0 + local.get $3 local.get $2 - local.get $6 i32.load offset=16 - local.tee $6 + local.tee $2 local.get $2 - local.get $6 - i32.lt_u + local.get $3 + i32.gt_u select memory.copy end @@ -2019,18 +2011,18 @@ i32.ne if i32.const 1168 - local.get $0 + local.get $1 i32.store i32.const 1172 - local.get $0 + local.get $1 i32.store i32.const 1168 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link end i32.const 1176 - local.get $2 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -2042,21 +2034,21 @@ i32.store i32.const 1172 i32.load - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add - local.get $5 + local.get $6 i32.store i32.const 1168 - local.get $5 + local.get $6 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store i32.const 1180 - local.get $3 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index d1bc04b223..95652de9f5 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -1067,11 +1067,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1256,8 +1255,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1556,7 +1554,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) block $__inlined_func$start:extends-recursive$4 memory.size i32.const 16 @@ -1600,20 +1597,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1622,13 +1619,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new @@ -1636,10 +1632,11 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1648,13 +1645,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/features/threads.debug.wat b/tests/compiler/features/threads.debug.wat index 17de349d94..b3b7038f39 100644 --- a/tests/compiler/features/threads.debug.wat +++ b/tests/compiler/features/threads.debug.wat @@ -4,7 +4,7 @@ (global $~lib/memory/__data_end i32 (i32.const 8)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32776)) (global $~lib/memory/__heap_base i32 (i32.const 32776)) - (memory $0 (shared 1 10)) + (memory $0 1 10 shared) (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) diff --git a/tests/compiler/features/threads.release.wat b/tests/compiler/features/threads.release.wat index d6fed43d29..679c863058 100644 --- a/tests/compiler/features/threads.release.wat +++ b/tests/compiler/features/threads.release.wat @@ -1,6 +1,6 @@ (module (type $0 (func)) - (memory $0 (shared 1 10)) + (memory $0 1 10 shared) (export "memory" (memory $0)) (start $~start) (func $features/threads/testAtomic diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index de29586aa0..1d7d656f3a 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1091,11 +1091,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1280,8 +1279,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1549,7 +1547,6 @@ local.get $1 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 i32.eqz if @@ -1566,7 +1563,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1583,7 +1579,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1706,16 +1702,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 19 call $~lib/rt/itcms/__new @@ -1723,10 +1718,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1752,7 +1746,6 @@ local.get $0 ) (func $field-initialization/SomeObject#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1769,13 +1762,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 21 call $~lib/rt/itcms/__new @@ -1783,10 +1775,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1833,14 +1824,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1855,8 +1845,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -1866,7 +1854,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -1878,12 +1866,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -1979,7 +1967,6 @@ ) (func $field-initialization/SomeOtherObject#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1996,20 +1983,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 22 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2033,7 +2018,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 148 i32.sub @@ -2044,7 +2028,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 148 memory.fill @@ -2080,7 +2063,9 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2089,20 +2074,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2136,7 +2119,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2145,20 +2129,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2190,7 +2172,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2199,23 +2182,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2256,7 +2237,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2265,23 +2247,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2322,7 +2302,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2331,20 +2312,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 8 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2379,7 +2358,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2388,23 +2368,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 9 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2425,7 +2403,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2434,23 +2413,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 10 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 i32.const 1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2473,7 +2450,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2482,29 +2460,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 11 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 i32.const 1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2527,7 +2503,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2536,13 +2513,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 12 call $~lib/rt/itcms/__new @@ -2584,7 +2560,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2593,13 +2570,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 13 call $~lib/rt/itcms/__new @@ -2651,12 +2627,12 @@ end global.get $~lib/memory/__stack_pointer call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -2667,43 +2643,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 14 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $2 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store - local.get $3 - local.get $1 + local.get $2 + local.get $0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $2 - local.get $3 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.load i32.ne if @@ -2715,7 +2689,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2724,10 +2699,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 15 call $~lib/rt/itcms/__new @@ -2763,7 +2737,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2772,13 +2747,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 16 call $~lib/rt/itcms/__new @@ -2820,7 +2794,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2829,13 +2804,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 17 call $~lib/rt/itcms/__new @@ -2886,7 +2860,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2895,20 +2870,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 18 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $field-initialization/Inherit_Base#constructor local.tee $1 @@ -2935,7 +2908,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2944,20 +2918,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 20 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $field-initialization/Inherit_Base#constructor local.tee $1 @@ -2984,7 +2956,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 @@ -3012,10 +2985,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=80 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 @@ -3033,7 +3005,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 @@ -3066,10 +3039,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=80 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 @@ -3087,7 +3059,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 @@ -3124,18 +3097,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=100 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1648 i32.store offset=80 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -3148,7 +3120,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 @@ -3190,18 +3163,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=100 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1680 i32.store offset=80 - local.get $1 + local.get $0 i32.const 1680 call $~lib/string/String.__eq i32.eqz @@ -3214,7 +3186,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 i32.store offset=112 @@ -3253,10 +3226,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=80 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 @@ -3274,18 +3246,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=100 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=80 - local.get $1 + local.get $0 i32.const 1712 call $~lib/string/String.__eq i32.eqz @@ -3298,7 +3269,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 i32.store offset=120 @@ -3351,18 +3323,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=100 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1744 i32.store offset=80 - local.get $2 + local.get $0 i32.const 1744 call $~lib/string/String.__eq i32.eqz @@ -3375,18 +3346,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=100 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1776 i32.store offset=80 - local.get $1 + local.get $0 i32.const 1776 call $~lib/string/String.__eq i32.eqz @@ -3399,7 +3369,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3408,13 +3379,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 23 call $~lib/rt/itcms/__new @@ -3465,7 +3435,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 24 call $~lib/rt/itcms/__new @@ -3503,7 +3474,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 25 call $~lib/rt/itcms/__new @@ -3563,7 +3535,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3580,13 +3551,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -3617,10 +3587,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 1 call $~lib/rt/itcms/__new diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 0401d3159f..4efb7bbd51 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -1074,11 +1074,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1263,8 +1262,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1532,7 +1530,6 @@ local.get $1 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 i32.eqz if @@ -1549,7 +1546,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1566,7 +1562,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1634,10 +1630,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -1646,23 +1643,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1671,13 +1668,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1703,9 +1699,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $2 i32.const 0 i32.const 1 call $~lib/rt/itcms/__new @@ -1837,16 +1834,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index cc3a2dc0f2..d6b3fb5e06 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1069,11 +1069,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1175,8 +1174,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1653,12 +1651,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer call $for/Ref#constructor local.tee $0 i32.store @@ -1716,12 +1713,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer call $for/Ref#constructor i32.store global.get $~lib/memory/__stack_pointer @@ -1855,7 +1851,6 @@ (func $for/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1866,19 +1861,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1887,13 +1882,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 3cc492ff52..56a60fbf1f 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -1107,11 +1107,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1213,8 +1212,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1415,7 +1413,6 @@ i32.const 3 ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner0 block $invalid block $function-call/Foo @@ -1464,10 +1461,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1481,7 +1477,6 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1576,19 +1571,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1597,13 +1592,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1613,7 +1607,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index a04dbf3bd6..da44972113 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -1137,11 +1137,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1243,8 +1242,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1439,7 +1437,6 @@ local.get $0 ) (func $function-expression/semanticallyAnonymous - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1456,19 +1453,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2064 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner1 block $folding-inner0 block $invalid @@ -1505,10 +1500,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1699,10 +1693,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1504 i32.load call_indirect (type $0) @@ -1735,13 +1728,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1568 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1568 i32.load call_indirect (type $0) @@ -1806,16 +1798,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 2032 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -1824,21 +1817,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 2032 i32.store offset=8 local.get $1 @@ -1855,22 +1846,21 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 i32.const 2016 i32.load i32.const 3 i32.and i32.eq if - local.get $2 - i32.eqz local.get $1 i32.const 20 i32.sub i32.load offset=4 i32.const 3 i32.and - local.tee $2 + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if i32.const 2012 @@ -1879,7 +1869,7 @@ global.get $~lib/rt/itcms/state i32.const 1 i32.eq - local.get $2 + local.get $0 i32.const 3 i32.eq i32.and @@ -1893,7 +1883,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -1939,7 +1929,6 @@ unreachable ) (func $start:function-expression~anonymous|7 (result i32) - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1956,20 +1945,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1472 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 1472 ) (func $function-expression/testLocal~anonymous|0 (result i32) - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1986,20 +1973,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 1536 ) (func $function-expression/testField~anonymous|0 (result i32) - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2016,13 +2001,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2000 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 25a60f2d25..3c2bec13dc 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -1072,11 +1072,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1178,8 +1177,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1378,7 +1376,6 @@ i32.const 42 ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $invalid block $~lib/function/Function<%28%29=>i32> block $getter-call/C @@ -1425,10 +1422,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1480,7 +1476,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1491,10 +1486,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1503,19 +1499,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1524,13 +1520,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1540,7 +1535,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index ecee0428ae..48e8f1344f 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -1113,11 +1113,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1302,8 +1301,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1588,7 +1586,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1598,8 +1595,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1608,6 +1603,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1677,10 +1674,9 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1701,16 +1697,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1762,7 +1757,6 @@ call $start:infer-array ) (func $~lib/array/Array#__get (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1779,10 +1773,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1797,20 +1790,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load offset=4 i32.load drop - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1827,10 +1818,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1845,20 +1835,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load offset=4 f64.load drop - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1875,10 +1863,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1894,7 +1881,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -1905,14 +1891,13 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1929,10 +1914,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1948,7 +1932,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -1959,7 +1942,7 @@ i32.add f32.load drop - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1967,7 +1950,6 @@ (func $infer-array/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1978,20 +1960,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2000,13 +1982,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2050,10 +2031,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2086,10 +2066,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -2234,7 +2213,6 @@ unreachable ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2251,10 +2229,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2270,10 +2247,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -2282,7 +2258,7 @@ i32.add i32.load i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2302,7 +2278,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 112 memory.fill @@ -2338,7 +2313,7 @@ i32.store i32.const 1376 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 i32.const 4 @@ -2692,10 +2667,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -2710,10 +2684,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 i32.load @@ -2765,9 +2738,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $4 local.get $0 local.get $1 i32.shl diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index cdc37e9784..a2399cf78b 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -2311,11 +2311,11 @@ local.get $fn return ) - (func $infer-generic/inferEncapsulatedFunction (param $fn i32) (result i32) + (func $"infer-generic/inferEncapsulatedFunction" (param $fn i32) (result i32) local.get $fn return ) - (func $infer-generic/inferEncapsulatedFunctionMixed (param $fn i32) (result i32) + (func $"infer-generic/inferEncapsulatedFunctionMixed" (param $fn i32) (result i32) local.get $fn return ) @@ -2797,7 +2797,7 @@ local.get $1 i32.store local.get $1 - call $infer-generic/inferEncapsulatedFunction + call $"infer-generic/inferEncapsulatedFunction" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2822,7 +2822,7 @@ local.get $1 i32.store local.get $1 - call $infer-generic/inferEncapsulatedFunctionMixed + call $"infer-generic/inferEncapsulatedFunctionMixed" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index 81329a11e9..a76738b5c8 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1096,11 +1096,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1285,8 +1284,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1557,7 +1555,6 @@ local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner1 block $folding-inner0 block $invalid @@ -1597,10 +1594,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1625,10 +1621,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1653,7 +1648,6 @@ (local $2 f32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1664,19 +1658,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1152 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1200 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1685,32 +1678,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1152 i32.store i32.const 1164 i32.load - local.set $4 + local.set $3 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 1152 i32.store local.get $1 - local.get $4 + local.get $3 i32.const 1164 i32.load - local.tee $5 + local.tee $4 + local.get $3 local.get $4 - local.get $5 i32.lt_s select i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1152 i32.store offset=4 i32.const 1156 @@ -1721,7 +1712,7 @@ i32.add f32.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1152 i32.store local.get $0 @@ -1786,20 +1777,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1808,13 +1799,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1864,7 +1854,6 @@ unreachable ) (func $export:infer-generic/test2 (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1875,10 +1864,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1887,13 +1875,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1912,7 +1899,6 @@ unreachable ) (func $export:infer-generic/inferAssert (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1923,10 +1909,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1935,10 +1920,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1952,13 +1936,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load drop - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index f695ea475d..d8ff242546 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1082,11 +1082,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1271,8 +1270,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1543,7 +1541,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1562,10 +1559,9 @@ call_indirect (type $2) drop global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 123 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 123 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -1613,38 +1609,40 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 3 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 7 call $~lib/rt/itcms/__new @@ -1652,37 +1650,36 @@ i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 4 i32.store offset=12 - local.get $3 + local.get $1 local.get $0 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1756,7 +1753,6 @@ unreachable ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $invalid block $inlining/Baz block $inlining/Bar @@ -1803,10 +1799,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index 8178be7265..79d6b3b7cb 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -2291,47 +2291,47 @@ i32.const 0 return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/W> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/W>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2376,7 +2376,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2421,7 +2421,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2466,7 +2466,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2511,7 +2511,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2556,7 +2556,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2601,7 +2601,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2646,7 +2646,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID> (param $value i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID>" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2691,53 +2691,53 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2781,7 +2781,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2825,7 +2825,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2870,7 +2870,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2915,17 +2915,17 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -2969,7 +2969,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3014,22 +3014,22 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3073,7 +3073,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3117,7 +3117,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3161,7 +3161,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3205,19 +3205,19 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3262,7 +3262,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3307,7 +3307,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3352,7 +3352,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3397,17 +3397,17 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3451,7 +3451,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $value i32) + (func $"instanceof/assertDynamicFalse" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3495,13 +3495,13 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3546,7 +3546,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3591,83 +3591,83 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticTrue (param $value i32) + (func $"instanceof/assertStaticTrue" (param $value i32) i32.const 1 drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertStaticFalse (param $value i32) + (func $"instanceof/assertStaticFalse" (param $value i32) i32.const 0 i32.eqz drop return ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3712,7 +3712,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3757,7 +3757,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3802,7 +3802,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3847,7 +3847,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3892,7 +3892,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3937,7 +3937,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -3982,7 +3982,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -4027,7 +4027,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -4072,7 +4072,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue (param $value i32) + (func $"instanceof/assertDynamicTrue" (param $value i32) (local $1 i32) (local $check i32) global.get $~lib/memory/__stack_pointer @@ -6086,924 +6086,924 @@ local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/W> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/W>" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA>" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC>" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IA>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IB>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/IC>" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/ID>" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/w local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticTrue + call $"instanceof/assertStaticTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertStaticFalse + call $"instanceof/assertStaticFalse" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/x local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/y local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $instanceof/z local.set $21 global.get $~lib/memory/__stack_pointer local.get $21 i32.store local.get $21 - call $instanceof/assertDynamicTrue + call $"instanceof/assertDynamicTrue" global.get $~lib/memory/__stack_pointer i32.const 88 i32.add diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index 353f1e0dce..17c9936fff 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -1174,11 +1174,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1280,8 +1279,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1476,8 +1474,7 @@ memory.fill local.get $0 ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> (param $0 i32) - (local $1 i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1494,10 +1491,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1535,8 +1531,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> (param $0 i32) - (local $1 i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1553,10 +1548,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1597,8 +1591,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> (param $0 i32) - (local $1 i32) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1615,10 +1608,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1646,8 +1638,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $0 i32) - (local $1 i32) + (func $"instanceof/assertDynamicFalse" (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1664,10 +1655,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1707,8 +1697,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $instanceof/assertDynamicFalse (param $0 i32) - (local $1 i32) + (func $"instanceof/assertDynamicFalse" (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1725,10 +1714,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1848,7 +1836,6 @@ call $start:instanceof ) (func $instanceof/A#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1865,23 +1852,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1893,7 +1878,6 @@ local.get $0 ) (func $instanceof/Animal#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1910,23 +1894,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1938,7 +1920,6 @@ local.get $0 ) (func $instanceof/Cat#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1955,23 +1936,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/Animal#constructor local.tee $0 @@ -1984,7 +1963,6 @@ ) (func $instanceof/BlackCat#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2001,19 +1979,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/Cat#constructor local.tee $0 @@ -2025,7 +2001,6 @@ local.get $0 ) (func $instanceof/X#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2042,23 +2017,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2070,7 +2043,6 @@ local.get $0 ) (func $instanceof/Y#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2087,23 +2059,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 19 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/X#constructor local.tee $0 @@ -2117,8 +2087,6 @@ (func $start:instanceof (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 88 i32.sub @@ -2176,19 +2144,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/A#constructor local.tee $0 @@ -2208,19 +2174,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/A#constructor local.tee $0 @@ -2248,10 +2212,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $instanceof/a local.tee $0 i32.store @@ -2311,19 +2274,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2332,23 +2295,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2375,19 +2336,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2396,23 +2357,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2898,25 +2857,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store offset=64 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=68 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=72 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=76 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=80 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=84 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2925,19 +2883,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2963,19 +2919,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 22 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $instanceof/Y#constructor local.tee $0 @@ -2988,52 +2942,49 @@ global.set $instanceof/z global.get $~lib/memory/__stack_pointer global.get $instanceof/w - local.tee $1 i32.store global.get $~lib/memory/__stack_pointer global.get $instanceof/x - local.tee $2 i32.store global.get $~lib/memory/__stack_pointer global.get $instanceof/y - local.tee $3 i32.store global.get $~lib/memory/__stack_pointer global.get $instanceof/z - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $instanceof/x i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $instanceof/x i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $instanceof/y i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $instanceof/y i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $instanceof/y i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + global.get $instanceof/y i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/z i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/z i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/z i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/z i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + global.get $instanceof/w + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3044,15 +2995,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load @@ -3079,109 +3029,108 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/w - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/w i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/w i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $instanceof/w i32.store global.get $~lib/memory/__stack_pointer global.get $instanceof/x @@ -3200,13 +3149,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/y i32.store @@ -3215,13 +3164,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3230,13 +3179,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y i32.store @@ -3248,7 +3197,7 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3260,7 +3209,7 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3275,25 +3224,25 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x i32.store @@ -3305,25 +3254,25 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y i32.store @@ -3335,25 +3284,25 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3371,13 +3320,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicFalse + call $"instanceof/assertDynamicFalse" global.get $~lib/memory/__stack_pointer global.get $instanceof/x i32.store @@ -3392,13 +3341,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y i32.store @@ -3413,13 +3362,13 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z i32.store @@ -3503,109 +3452,109 @@ local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/x local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/y local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer global.get $instanceof/z local.tee $0 i32.store local.get $0 - call $instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z> + call $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" global.get $~lib/memory/__stack_pointer i32.const 88 i32.add @@ -3620,7 +3569,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3637,13 +3585,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 27b353fae1..59a7187755 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1077,11 +1077,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1266,8 +1265,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1535,7 +1533,6 @@ local.get $1 ) (func $issues/1095/Foo#set:bar (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1552,7 +1549,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1569,7 +1565,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1622,7 +1618,6 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1633,7 +1628,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store memory.size @@ -1668,7 +1662,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -1677,23 +1671,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1702,13 +1696,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1719,7 +1712,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1747,19 +1740,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load local.tee $1 diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index dcd7eef4ba..454dc7a7a0 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1078,11 +1078,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1184,8 +1183,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1414,7 +1412,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) memory.size i32.const 16 i32.shl @@ -1463,56 +1460,54 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=8 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $issues/1225/x call $issues/1225/normal i32.const 4 @@ -1574,7 +1569,6 @@ ) (func $issues/1225/normal (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1591,25 +1585,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $issues/1225/x - local.tee $1 + local.tee $0 i32.store - local.get $1 - i32.load - local.set $1 local.get $0 + i32.load + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) (func $issues/1225/viaThis (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1626,20 +1618,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $issues/1225/x - local.tee $1 + local.tee $0 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) ) diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 7678c94ffd..0bcdd37e25 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -1084,11 +1084,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1273,8 +1272,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1559,7 +1557,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1569,8 +1566,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1579,6 +1574,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1605,7 +1602,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) memory.size i32.const 16 i32.shl @@ -1648,11 +1644,11 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 28 memory.fill global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -1661,129 +1657,125 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 32 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=12 + local.get $0 local.get $2 - local.get $3 i32.store + local.get $0 local.get $2 - local.get $3 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 + local.get $0 local.get $2 - local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 32 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 + local.get $0 i32.store offset=4 - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=20 - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=12 call $issues/1699/MultiAssignmentTest#constructor - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 local.get $2 + i32.store offset=16 + local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=12 - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $2 + i32.store offset=8 + local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 + local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1792,63 +1784,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer call $issues/1699/MultiAssignmentTest#constructor - local.tee $1 + local.tee $2 i32.store offset=24 - local.get $0 + local.get $1 i32.const 1 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $2 + i32.store offset=8 local.get $0 local.get $1 + local.get $2 call $~lib/array/Array#__set end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get - local.get $0 + local.get $1 i32.ne if i32.const 0 @@ -1859,19 +1850,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get - local.get $0 + local.get $1 i32.eq if i32.const 0 @@ -1944,16 +1935,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2002,7 +1992,6 @@ (func $issues/1699/MultiAssignmentTest#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2013,20 +2002,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2035,13 +2024,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2091,10 +2079,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2127,10 +2114,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -2275,7 +2261,6 @@ unreachable ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2292,10 +2277,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2311,10 +2295,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index 7ccfdfbbfa..acce532285 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -20,28 +20,28 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $issues/1714/a_i64_i32 (result i32) + (func $"issues/1714/a_i64_i32" (result i32) i32.const 8 i32.const 4 i32.eq return ) - (func $issues/1714/foo (result i32) - call $issues/1714/a_i64_i32 + (func $"issues/1714/foo" (result i32) + call $"issues/1714/a_i64_i32" i32.const 1 i32.eq return ) - (func $issues/1714/bar (result i32) + (func $"issues/1714/bar" (result i32) i32.const 0 drop i32.const 80 return ) - (func $issues/1714/bar (result i32) + (func $"issues/1714/bar" (result i32) i32.const 1 drop - call $issues/1714/bar + call $"issues/1714/bar" return ) (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) @@ -283,7 +283,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - call $issues/1714/foo + call $"issues/1714/foo" i32.const 0 i32.eq i32.eqz @@ -295,7 +295,7 @@ call $~lib/builtins/abort unreachable end - call $issues/1714/bar + call $"issues/1714/bar" local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 diff --git a/tests/compiler/issues/1714.release.wat b/tests/compiler/issues/1714.release.wat index dffa79b61a..36448f1d18 100644 --- a/tests/compiler/issues/1714.release.wat +++ b/tests/compiler/issues/1714.release.wat @@ -11,7 +11,6 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -22,16 +21,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1104 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1104 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -40,10 +38,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 71c0dc2f57..05a0ac6baa 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -1078,11 +1078,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1184,8 +1183,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1419,7 +1417,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1430,7 +1427,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store memory.size @@ -1465,7 +1461,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -1474,13 +1470,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1489,19 +1486,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1510,13 +1507,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1551,13 +1547,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 i32.const 1488 @@ -1573,10 +1568,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1568 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1568 i32.store offset=4 i32.const 1568 @@ -1608,22 +1602,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 1568 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1568 i32.store offset=8 i32.const 1568 @@ -1657,13 +1649,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 i32.const 1488 @@ -1716,14 +1707,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1738,8 +1728,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -1749,7 +1737,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -1761,12 +1749,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index 115d5e9f2e..a33403cbc1 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1068,11 +1068,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1257,8 +1256,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1594,7 +1592,6 @@ (func $issues/2322/index/test (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1605,10 +1602,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1617,20 +1613,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1639,13 +1635,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -1656,7 +1651,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index 87a0afac0f..2a8c6bd0e0 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -1107,11 +1107,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1213,8 +1212,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1446,7 +1444,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) block $__inlined_func$start:issues/2622$1 memory.size i32.const 16 @@ -1490,19 +1487,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1524,19 +1519,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1560,7 +1553,6 @@ end ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1577,13 +1569,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 6e888c9cb0..6bd42c186f 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1083,11 +1083,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1189,8 +1188,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1428,7 +1426,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) block $__inlined_func$start:logical global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1513,19 +1510,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $logical/A#constructor local.tee $0 @@ -1545,19 +1540,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $logical/A#constructor local.tee $0 @@ -1572,7 +1565,7 @@ global.get $logical/b local.tee $0 i32.store - local.get $0 + global.get $logical/b local.get $0 global.get $logical/c local.get $0 @@ -1591,11 +1584,10 @@ local.tee $0 i32.store global.get $logical/c - local.tee $1 + global.get $logical/c local.get $0 local.get $0 select - local.get $1 i32.ne if i32.const 0 @@ -1621,7 +1613,6 @@ ) (func $logical/Obj#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1638,19 +1629,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1662,7 +1651,6 @@ local.get $0 ) (func $logical/A#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1679,23 +1667,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1707,7 +1693,6 @@ local.get $0 ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1724,13 +1709,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 4db7c019f8..79b3669b1f 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1073,11 +1073,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1179,8 +1178,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1471,13 +1469,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1495,10 +1492,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -1512,10 +1508,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1547,11 +1542,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store block $__inlined_func$~instanceof|managed-cast/Cat$85 (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const 0 @@ -1575,10 +1569,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1596,21 +1589,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 block $__inlined_func$~instanceof|managed-cast/Cat$88 (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $1 local.get $0 - if (result i32) - local.get $0 - else + i32.eqz + if i32.const 1456 i32.const 1584 i32.const 36 @@ -1618,6 +1610,8 @@ call $~lib/builtins/abort unreachable end + local.get $1 + local.get $0 i32.store offset=8 i32.const 0 local.get $0 @@ -1640,10 +1634,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -1661,14 +1654,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.set $1 block $__inlined_func$~instanceof|managed-cast/Cat$91 (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 0 @@ -1718,15 +1712,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 local.get $0 if local.get $0 @@ -1812,7 +1807,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1823,19 +1817,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1844,23 +1838,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1869,13 +1863,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1910,7 +1903,6 @@ unreachable ) (func $managed-cast/testUpcastToNullable (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1927,15 +1919,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 end diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index 04863f286f..1828d48d23 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -1109,11 +1109,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1215,8 +1214,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1553,7 +1551,6 @@ ) (func $new/Ref#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1570,19 +1567,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1594,7 +1589,6 @@ local.get $0 ) (func $new/Gen#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1611,23 +1605,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1640,7 +1632,6 @@ ) (func $new/ns.Ref#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1657,19 +1648,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1682,7 +1671,6 @@ ) (func $new/GenExt#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1699,19 +1687,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $new/Gen#constructor local.tee $0 @@ -1723,7 +1709,6 @@ local.get $0 ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1740,13 +1725,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index 540986a9d3..cc215c26e8 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -181,7 +181,6 @@ i32.store offset=8 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 i32.eqz if @@ -198,7 +197,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -215,7 +213,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1149,11 +1147,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1540,14 +1537,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1734,14 +1730,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1756,8 +1751,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -1767,7 +1760,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -1779,12 +1772,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -1879,7 +1872,6 @@ i32.const 0 ) (func $object-literal/testOmittedTypes (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1896,10 +1888,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2098,7 +2089,6 @@ ) (func $object-literal/testOmittedFoo (param $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2115,24 +2105,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load - local.tee $2 + local.tee $1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1664 call $~lib/string/String.__eq i32.eqz @@ -2145,18 +2134,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1696 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1696 call $~lib/string/String.__eq i32.eqz @@ -2169,10 +2157,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $1 @@ -2190,10 +2177,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=12 local.tee $1 @@ -2211,10 +2197,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=16 local.tee $1 @@ -2232,10 +2217,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=20 local.tee $1 @@ -2253,10 +2237,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=24 local.tee $1 @@ -2274,10 +2257,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=28 local.tee $1 @@ -2333,7 +2315,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -2344,7 +2325,6 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 28 memory.fill @@ -2380,7 +2360,9 @@ i32.store i32.const 1392 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2389,20 +2371,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 4 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2459,13 +2439,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -2481,18 +2460,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -2518,20 +2496,19 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 123 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2540,10 +2517,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 5 @@ -2556,31 +2532,31 @@ i32.const 5 i32.gt_u select - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.le_s select i32.const 1 i32.shl - local.set $4 + local.set $3 block $__inlined_func$~lib/string/String#substring$208 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.ge_s select i32.const 1 i32.shl - local.tee $5 - local.get $4 + local.tee $4 + local.get $3 i32.sub - local.tee $1 + local.tee $2 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2588,9 +2564,9 @@ local.set $0 br $__inlined_func$~lib/string/String#substring$208 end - local.get $4 + local.get $3 i32.eqz - local.get $5 + local.get $4 local.get $0 i32.const 1 i32.shl @@ -2606,16 +2582,16 @@ br $__inlined_func$~lib/string/String#substring$208 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 call $~lib/rt/itcms/__new local.tee $0 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.const 1056 i32.add - local.get $1 + local.get $2 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2623,13 +2599,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2640,7 +2615,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $2 + local.get $1 i32.load i32.const 123 i32.ne @@ -2653,15 +2628,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.load offset=4 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1600 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1600 call $~lib/string/String.__eq i32.eqz @@ -2673,7 +2647,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2689,20 +2663,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 65 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2855,20 +2827,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/object/Object#constructor local.tee $1 @@ -2934,13 +2904,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -2954,18 +2923,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1632 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1632 call $~lib/string/String.__eq i32.eqz @@ -3006,23 +2974,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 40 i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -3198,7 +3164,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3215,13 +3180,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index 23b59ab8ef..f74a3d0ef3 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -47,11 +47,11 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $optional-typeparameters/testConcrete (param $a i32) (result i32) + (func $"optional-typeparameters/testConcrete" (param $a i32) (result i32) local.get $a return ) - (func $optional-typeparameters/testDerived (param $a i32) (result i32) + (func $"optional-typeparameters/testDerived" (param $a i32) (result i32) local.get $a return ) @@ -2255,13 +2255,13 @@ local.get $ptr return ) - (func $optional-typeparameters/TestConcrete#test (param $this i32) (param $a i32) (param $b i32) (result i32) + (func $"optional-typeparameters/TestConcrete#test" (param $this i32) (param $a i32) (param $b i32) (result i32) local.get $a local.get $b i32.add return ) - (func $optional-typeparameters/TestDerived#test (param $this i32) (param $a f64) (param $b f64) (result f64) + (func $"optional-typeparameters/TestDerived#test" (param $this i32) (param $a f64) (param $b f64) (result f64) local.get $a local.get $b f64.add @@ -2351,8 +2351,8 @@ block $optional-typeparameters/TestMethodDerived2 block $~lib/array/Array<~lib/string/String> block $optional-typeparameters/TestMethodDerived<~lib/string/String> - block $optional-typeparameters/TestDerived - block $optional-typeparameters/TestConcrete + block $"optional-typeparameters/TestDerived" + block $"optional-typeparameters/TestConcrete" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -2361,7 +2361,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $optional-typeparameters/TestConcrete $optional-typeparameters/TestDerived $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"optional-typeparameters/TestConcrete" $"optional-typeparameters/TestDerived" $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid end return end @@ -2405,7 +2405,7 @@ unreachable end ) - (func $optional-typeparameters/TestConcrete#constructor (param $this i32) (result i32) + (func $"optional-typeparameters/TestConcrete#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2443,7 +2443,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $optional-typeparameters/TestDerived#constructor (param $this i32) (result i32) + (func $"optional-typeparameters/TestDerived#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2590,10 +2590,10 @@ i64.const 0 i64.store i32.const 1 - call $optional-typeparameters/testConcrete + call $"optional-typeparameters/testConcrete" drop i32.const 2 - call $optional-typeparameters/testDerived + call $"optional-typeparameters/testDerived" drop memory.size i32.const 16 @@ -2613,7 +2613,7 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 - call $optional-typeparameters/TestConcrete#constructor + call $"optional-typeparameters/TestConcrete#constructor" global.set $optional-typeparameters/tConcrete global.get $optional-typeparameters/tConcrete local.set $0 @@ -2623,10 +2623,10 @@ local.get $0 i32.const 1 i32.const 2 - call $optional-typeparameters/TestConcrete#test + call $"optional-typeparameters/TestConcrete#test" drop i32.const 0 - call $optional-typeparameters/TestDerived#constructor + call $"optional-typeparameters/TestDerived#constructor" global.set $optional-typeparameters/tDerived global.get $optional-typeparameters/tDerived local.set $0 @@ -2636,7 +2636,7 @@ local.get $0 f64.const 1 f64.const 2 - call $optional-typeparameters/TestDerived#test + call $"optional-typeparameters/TestDerived#test" drop i32.const 0 call $optional-typeparameters/TestMethodDerived<~lib/string/String>#constructor diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index 3b0c029c9b..9c4eecb2ab 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1095,11 +1095,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1201,8 +1200,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1405,8 +1403,8 @@ block $optional-typeparameters/TestMethodDerived2 block $~lib/array/Array<~lib/string/String> block $optional-typeparameters/TestMethodDerived<~lib/string/String> - block $optional-typeparameters/TestDerived - block $optional-typeparameters/TestConcrete + block $"optional-typeparameters/TestDerived" + block $"optional-typeparameters/TestConcrete" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -1415,7 +1413,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $optional-typeparameters/TestConcrete $optional-typeparameters/TestDerived $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"optional-typeparameters/TestConcrete" $"optional-typeparameters/TestDerived" $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid end return end @@ -1454,16 +1452,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1510,7 +1507,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1521,7 +1517,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store memory.size @@ -1556,7 +1551,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1565,19 +1560,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1600,19 +1593,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1635,19 +1626,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1670,19 +1659,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -1709,13 +1696,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1733,7 +1719,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1750,13 +1735,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/possibly-null.release.wat b/tests/compiler/possibly-null.release.wat index 95511ae52c..1d99cdc390 100644 --- a/tests/compiler/possibly-null.release.wat +++ b/tests/compiler/possibly-null.release.wat @@ -25,7 +25,6 @@ (export "testAssign" (func $export:possibly-null/testAssign)) (export "testNeverNull" (func $export:possibly-null/testTrue)) (func $export:possibly-null/testTrue (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -42,10 +41,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -83,7 +81,6 @@ global.set $~lib/memory/__stack_pointer ) (func $export:possibly-null/testWhile2 (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -94,13 +91,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -139,7 +135,6 @@ unreachable ) (func $export:possibly-null/testWhile3 (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -150,13 +145,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -199,7 +193,6 @@ unreachable ) (func $export:possibly-null/testLogicalAnd (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -210,10 +203,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -222,12 +214,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store end @@ -249,7 +240,6 @@ unreachable ) (func $export:possibly-null/testLogicalAndMulti (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -266,19 +256,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) (func $export:possibly-null/testAssign (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -289,13 +277,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -304,13 +291,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index 18730c09fb..aa9a780b2d 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1102,11 +1102,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1208,8 +1207,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1444,7 +1442,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1455,7 +1452,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store memory.size @@ -1490,7 +1486,7 @@ i32.store i32.const 1392 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1499,27 +1495,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1538,16 +1532,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index c9abba4c80..b57ed1cc78 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1100,11 +1100,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1206,8 +1205,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1447,10 +1445,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1566,7 +1563,6 @@ ) (func $exports/Car#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1583,34 +1579,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $exports/Car#get:numDoors (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1627,16 +1620,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 405880f946..61d868fd17 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -1095,11 +1095,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1284,8 +1283,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1677,14 +1675,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/utoa64$73 local.get $0 i64.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1908,7 +1905,6 @@ local.get $2 ) (func $~lib/array/Array~visit (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1925,10 +1921,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2017,8 +2012,8 @@ ) (func $resolve-access/arrayAccess (result i32) (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2032,10 +2027,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2044,28 +2040,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 i32.const 8 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.const 1056 i64.load align=1 i64.store align=1 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.store i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 + local.tee $3 + local.get $4 i32.store - local.get $3 + local.get $4 if - local.get $2 + local.get $3 i32.eqz if i32.const 0 @@ -2076,8 +2073,7 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $4 - local.get $3 + local.get $4 i32.const 20 i32.sub local.tee $5 @@ -2086,15 +2082,15 @@ i32.and i32.eq if - local.get $4 - i32.eqz - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=4 i32.const 3 i32.and - local.tee $4 + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $5 @@ -2103,7 +2099,7 @@ global.get $~lib/rt/itcms/state i32.const 1 i32.eq - local.get $4 + local.get $1 i32.const 3 i32.eq i32.and @@ -2114,13 +2110,13 @@ end end end - local.get $2 local.get $3 + local.get $4 i32.store offset=4 - local.get $2 + local.get $3 i32.const 8 i32.store offset=8 - local.get $2 + local.get $3 i32.const 1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2128,10 +2124,10 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2142,13 +2138,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store - local.get $2 + local.get $3 i32.load offset=12 i32.eqz if @@ -2160,18 +2155,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $3 i32.store - local.get $2 + local.get $3 i32.load offset=4 i64.load - local.set $1 - local.get $0 + 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 call $~lib/number/U64#toString local.set $0 global.get $~lib/memory/__stack_pointer @@ -2191,7 +2185,6 @@ (func $resolve-access/Container#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2202,20 +2195,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2224,13 +2217,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2282,10 +2274,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer call $resolve-access/Container#constructor local.tee $0 i32.store @@ -2322,10 +2313,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer call $resolve-access/Container#constructor local.tee $0 i32.store @@ -2347,17 +2337,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i64.load i32.wrap_i64 - local.set $1 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2370,14 +2359,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store block $__inlined_func$~lib/util/number/utoa32$74 - local.get $1 + local.get $2 i32.eqz if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2386,53 +2374,53 @@ br $__inlined_func$~lib/util/number/utoa32$74 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 2 @@ -2440,8 +2428,8 @@ local.tee $0 i32.store local.get $0 - local.get $1 local.get $2 + local.get $1 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index 700bc011aa..f82a4d1b73 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -1300,11 +1300,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1489,8 +1488,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1881,14 +1879,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32$74 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2938,14 +2935,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2960,8 +2956,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -2971,7 +2965,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -2983,12 +2977,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -3084,7 +3078,6 @@ ) (func $resolve-binary/Bar#constructor (result i32) (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3101,20 +3094,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -3127,7 +3118,6 @@ ) (func $start:resolve-binary (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -3138,14 +3128,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -3161,10 +3150,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 i32.const 1088 @@ -3180,10 +3168,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -3199,10 +3186,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 i32.const 1088 @@ -3218,10 +3204,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 i32.const 1088 @@ -3237,10 +3222,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -3293,10 +3277,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3319,10 +3302,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3345,10 +3327,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3371,10 +3352,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3392,10 +3372,9 @@ call $~lib/number/F64#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10720 i32.store offset=4 local.get $0 @@ -3418,10 +3397,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3444,10 +3422,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3470,10 +3447,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10752 i32.store offset=4 local.get $0 @@ -3496,10 +3472,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3522,10 +3497,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3548,10 +3522,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3574,10 +3547,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10784 i32.store offset=4 local.get $0 @@ -3600,10 +3572,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3622,10 +3593,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10784 i32.store offset=4 local.get $0 @@ -3644,10 +3614,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10816 i32.store offset=4 local.get $0 @@ -3666,10 +3635,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3688,10 +3656,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3710,10 +3677,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3732,10 +3698,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10752 i32.store offset=4 local.get $0 @@ -3753,10 +3718,9 @@ call $~lib/number/F64#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10720 i32.store offset=4 local.get $0 @@ -3774,10 +3738,9 @@ call $~lib/number/F64#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10720 i32.store offset=4 local.get $0 @@ -3796,10 +3759,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10752 i32.store offset=4 local.get $0 @@ -3818,10 +3780,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3840,10 +3801,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10784 i32.store offset=4 local.get $0 @@ -3862,10 +3822,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3884,10 +3843,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10784 i32.store offset=4 local.get $0 @@ -3906,10 +3864,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3928,10 +3885,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -3950,10 +3906,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1376 i32.store offset=4 local.get $0 @@ -3972,10 +3927,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -3994,10 +3948,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -4021,20 +3974,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -4047,10 +3998,9 @@ global.set $resolve-binary/foo global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $resolve-binary/foo i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 10848 @@ -4074,20 +4024,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store offset=4 i32.const 10880 @@ -4103,20 +4051,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10912 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10912 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10912 i32.store offset=4 i32.const 10912 @@ -4132,20 +4078,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10944 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10944 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10944 i32.store offset=4 i32.const 10944 @@ -4161,20 +4105,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10976 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10976 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10976 i32.store offset=4 i32.const 10976 @@ -4190,20 +4132,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=4 i32.const 11008 @@ -4219,20 +4159,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11040 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11040 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11040 i32.store offset=4 i32.const 11040 @@ -4248,20 +4186,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11072 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11072 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11072 i32.store offset=4 i32.const 11072 @@ -4277,20 +4213,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11104 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11104 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11104 i32.store offset=4 i32.const 11104 @@ -4306,20 +4240,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11136 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11136 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11136 i32.store offset=4 i32.const 11136 @@ -4335,20 +4267,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11168 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11168 i32.store offset=4 i32.const 11168 @@ -4364,20 +4294,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 i32.store offset=12 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/foo i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11200 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11200 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11200 i32.store offset=4 i32.const 11200 @@ -4397,21 +4325,20 @@ call $resolve-binary/Bar#constructor global.set $resolve-binary/bar2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/bar i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $resolve-binary/bar2 - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $1 - global.set $resolve-binary/bar local.get $0 + global.set $resolve-binary/bar + global.get $~lib/memory/__stack_pointer global.get $resolve-binary/bar local.tee $0 i32.store + global.get $resolve-binary/bar2 local.get $0 - local.get $1 i32.ne if i32.const 0 @@ -4441,20 +4368,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -4467,18 +4392,40 @@ global.set $resolve-binary/baz global.get $~lib/memory/__stack_pointer global.get $resolve-binary/baz - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/baz + local.tee $0 + i32.store + global.get $resolve-binary/baz local.get $0 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 366 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $resolve-binary/baz i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + global.get $resolve-binary/baz + local.tee $0 i32.store - local.get $1 + global.get $resolve-binary/baz local.get $0 - i32.store + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 372 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -4493,7 +4440,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4510,13 +4456,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index e9e60b898b..4d1e0cba3a 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -1147,11 +1147,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1336,8 +1335,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1605,7 +1603,6 @@ local.get $1 ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1622,7 +1619,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1639,7 +1635,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -2521,10 +2517,10 @@ (local $1 i64) (local $2 i32) (local $3 i64) - (local $4 i64) + (local $4 i32) (local $5 i64) (local $6 i64) - (local $7 i32) + (local $7 i64) (local $8 i32) (local $9 i32) (local $10 i64) @@ -2552,9 +2548,9 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $7 + local.tee $4 i32.const 1 - local.get $7 + local.get $4 select i32.const 1075 i32.sub @@ -2564,7 +2560,7 @@ local.get $1 i64.const 4503599627370495 i64.and - local.get $7 + local.get $4 i32.const 0 i32.ne i64.extend_i32_u @@ -2579,11 +2575,11 @@ local.tee $3 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $9 i32.sub - local.set $9 + local.set $4 local.get $3 - local.get $7 + local.get $9 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -2593,25 +2589,24 @@ i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $9 i64.extend_i32_s i64.shl i64.const 1 i64.sub local.get $8 - local.get $7 - i32.sub local.get $9 i32.sub + local.get $4 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $9 + local.get $4 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -2620,8 +2615,8 @@ f64.add local.tee $0 i32.trunc_sat_f64_s - local.tee $8 - local.get $8 + local.tee $4 + local.get $4 f64.convert_i32_s local.get $0 f64.ne @@ -2630,18 +2625,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $8 + local.tee $4 i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $8 i32.const 1832 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $8 + local.get $4 i32.const 1 i32.shl i32.const 2528 @@ -2655,7 +2650,7 @@ local.tee $1 i64.const 4294967295 i64.and - local.set $4 + local.set $5 global.get $~lib/util/number/_frc_pow local.tee $10 i64.const 4294967295 @@ -2666,13 +2661,13 @@ i64.shr_u local.tee $1 i64.mul - local.get $4 + local.get $5 local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $5 + local.set $6 global.get $~lib/util/number/_frc_plus local.tee $3 i64.const 4294967295 @@ -2690,7 +2685,7 @@ i64.const 32 i64.shr_u i64.add - local.set $6 + local.set $7 global.get $~lib/util/number/_frc_minus local.tee $13 i64.const 4294967295 @@ -2720,14 +2715,14 @@ i64.shr_u local.tee $1 i64.mul - local.get $5 + local.get $6 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $4 - i64.mul local.get $5 + i64.mul + local.get $6 i64.const 4294967295 i64.and i64.add @@ -2739,14 +2734,14 @@ local.get $1 local.get $3 i64.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i64.add local.get $1 local.get $12 i64.mul - local.get $6 + local.get $7 i64.const 4294967295 i64.and i64.add @@ -2758,8 +2753,8 @@ i64.const 1 i64.sub local.tee $3 - local.get $7 global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub @@ -2815,7 +2810,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store block $__inlined_func$~lib/util/number/dtoa$77 @@ -2825,7 +2819,7 @@ f64.const 0 f64.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2905,7 +2899,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store block $__inlined_func$~lib/util/number/utoa32$79 @@ -2915,7 +2908,7 @@ local.tee $1 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3001,16 +2994,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -3052,31 +3044,31 @@ i32.const 2 local.get $1 i32.shl - local.tee $1 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 local.get $0 - local.get $2 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#set:buffer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -3085,7 +3077,6 @@ local.get $0 ) (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3102,10 +3093,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3123,7 +3113,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -3134,14 +3123,13 @@ i32.add local.get $2 f32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) (local $2 f32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3158,10 +3146,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3179,7 +3166,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -3190,7 +3176,7 @@ i32.add f32.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3217,14 +3203,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -3239,8 +3224,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -3250,7 +3233,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -3262,12 +3245,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -3362,7 +3345,6 @@ i32.const 0 ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3379,10 +3361,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3398,7 +3379,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -3407,13 +3387,12 @@ i32.add local.get $2 i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3430,10 +3409,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3449,7 +3427,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -3458,7 +3435,7 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3467,7 +3444,6 @@ (func $start:resolve-elementaccess (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -3478,7 +3454,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 24 memory.fill @@ -3514,7 +3489,7 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3523,20 +3498,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -3619,17 +3592,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-elementaccess/arr - local.tee $1 + local.tee $0 i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-elementaccess/arr + local.tee $1 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 local.get $1 i32.const 0 @@ -3638,9 +3611,9 @@ f32.add call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get call $~lib/number/F32#toString @@ -3664,14 +3637,14 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $resolve-elementaccess/arr local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $1 - i32.store - local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 local.get $1 i32.const 0 @@ -3705,20 +3678,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3727,13 +3700,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new @@ -3741,10 +3713,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -3834,17 +3805,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-elementaccess/buf - local.tee $1 + local.tee $0 i32.store offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $resolve-elementaccess/buf + local.tee $1 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 local.get $1 i32.const 0 @@ -3853,9 +3824,9 @@ i32.add call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get call $~lib/number/U8#toString @@ -3879,14 +3850,14 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $resolve-elementaccess/buf local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $1 - i32.store - local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 local.get $1 i32.const 0 diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index 47359abe56..b4a7f27f3c 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1110,11 +1110,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1275,14 +1274,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32$73 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1398,14 +1396,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1786,7 +1783,6 @@ local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $invalid block $~lib/function/Function<%28i32%29=>i32> block $~lib/arraybuffer/ArrayBufferView @@ -1830,10 +1826,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1933,14 +1928,13 @@ call $~lib/number/I32#toString local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $5 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=4 block $__inlined_func$~lib/string/String.__eq$1 (result i32) - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1949,14 +1943,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store local.get $5 i32.const 3408 i32.eq if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1968,7 +1961,6 @@ i32.eqz br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $5 i32.store local.get $5 @@ -1978,7 +1970,7 @@ i32.const 1 i32.shr_u local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store local.get $1 @@ -1988,12 +1980,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $5 i32.store i32.const 3408 local.set $3 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=4 i32.const 1 diff --git a/tests/compiler/resolve-localortype.release.wat b/tests/compiler/resolve-localortype.release.wat index 26ca9589ab..7fe06f9905 100644 --- a/tests/compiler/resolve-localortype.release.wat +++ b/tests/compiler/resolve-localortype.release.wat @@ -7,7 +7,6 @@ (export "memory" (memory $0)) (export "test" (func $export:resolve-localortype/test)) (func $export:resolve-localortype/test (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -18,10 +17,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30,13 +28,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-nested.release.wat b/tests/compiler/resolve-nested.release.wat index 4ef6b545fd..76459d8f80 100644 --- a/tests/compiler/resolve-nested.release.wat +++ b/tests/compiler/resolve-nested.release.wat @@ -7,7 +7,6 @@ (export "memory" (memory $0)) (export "outer" (func $export:resolve-nested/outer)) (func $export:resolve-nested/outer (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -24,16 +23,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index 47c76ab67c..d5630d2d1f 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1074,11 +1074,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1180,8 +1179,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1475,7 +1473,6 @@ (func $resolve-new/Foo#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1486,19 +1483,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1507,13 +1504,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index c2b15003a8..3767d16019 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -1109,11 +1109,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1298,8 +1297,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1588,14 +1586,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32$73 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1844,14 +1841,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1866,8 +1862,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -1877,7 +1871,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -1889,12 +1883,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -1992,7 +1986,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -2003,10 +1996,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 memory.size @@ -2066,10 +2058,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=4 local.get $0 @@ -2088,10 +2079,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=4 local.get $0 @@ -2110,10 +2100,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=4 local.get $0 @@ -2132,10 +2121,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=4 local.get $0 @@ -2154,10 +2142,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=4 local.get $0 @@ -2176,10 +2163,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=4 local.get $0 @@ -2198,10 +2184,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=4 local.get $0 @@ -2220,10 +2205,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=4 local.get $0 @@ -2242,10 +2226,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=4 local.get $0 @@ -2261,7 +2244,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2270,20 +2254,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2292,13 +2276,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2309,7 +2292,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2322,7 +2305,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 68686f15c7..9637f6a402 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -1115,11 +1115,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1304,14 +1303,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -2432,7 +2430,6 @@ i32.const 5 ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $invalid block $~lib/function/Function<%28i32%29=>i32> block $~lib/arraybuffer/ArrayBufferView @@ -2476,10 +2473,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2554,10 +2550,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/rt/itcms/__new local.tee $0 @@ -2719,10 +2714,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 4464 i32.store offset=4 local.get $0 @@ -2813,14 +2807,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2835,8 +2828,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -2846,7 +2837,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -2858,12 +2849,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index 1998ea2c48..379afd054b 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -1135,11 +1135,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1324,8 +1323,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1614,14 +1612,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32$73 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1815,7 +1812,6 @@ local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $invalid block $~lib/function/Function<%28%29=>void> block $resolve-unary/Bar @@ -1865,10 +1861,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1906,14 +1901,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1928,8 +1922,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -1939,7 +1931,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -1951,12 +1943,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -2052,7 +2044,6 @@ ) (func $start:resolve-unary (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -2123,10 +2114,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3328 i32.store offset=4 local.get $0 @@ -2149,10 +2139,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -2175,10 +2164,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3328 i32.store offset=4 local.get $0 @@ -2194,17 +2182,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3424 i32.const 3392 global.get $resolve-unary/a select - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3424 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3424 call $~lib/string/String.__eq i32.eqz @@ -2217,17 +2204,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3392 i32.const 3424 global.get $resolve-unary/a select - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3392 call $~lib/string/String.__eq i32.eqz @@ -2245,10 +2231,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=4 local.get $0 @@ -2272,10 +2257,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3328 i32.store offset=4 local.get $0 @@ -2299,10 +2283,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store offset=4 local.get $0 @@ -2326,20 +2309,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2375,16 +2356,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=4 i32.const 3520 @@ -2400,13 +2380,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 - global.set $resolve-unary/foo local.get $0 + global.set $resolve-unary/foo + global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $0 i32.store @@ -2422,13 +2401,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 - global.set $resolve-unary/foo local.get $0 + global.set $resolve-unary/foo + global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $0 i32.store @@ -2444,16 +2422,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3552 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3552 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3552 i32.store offset=4 i32.const 3552 @@ -2469,16 +2446,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3584 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3584 i32.store offset=4 i32.const 3584 @@ -2494,20 +2470,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - local.tee $1 + local.tee $0 i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 global.set $resolve-unary/foo + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store global.get $resolve-unary/foo - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -2518,20 +2493,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo - local.tee $1 + local.tee $0 i32.store offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 global.set $resolve-unary/foo + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store global.get $resolve-unary/foo - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -2550,20 +2524,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/object/Object#constructor local.tee $0 @@ -2599,16 +2571,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/bar i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3648 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3648 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3648 i32.store offset=4 i32.const 3648 @@ -2624,16 +2595,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/bar i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3680 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3680 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3680 i32.store offset=4 i32.const 3680 @@ -2649,16 +2619,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/bar i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3712 i32.store offset=4 i32.const 3712 @@ -2674,16 +2643,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3744 i32.store i32.const 3740 i32.load drop - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer @@ -2697,7 +2665,6 @@ unreachable ) (func $~lib/object/Object#constructor (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2714,13 +2681,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index c2b30c2ce8..0331dc96e8 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -1079,11 +1079,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1268,8 +1267,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1537,7 +1535,6 @@ local.get $1 ) (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1554,7 +1551,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1571,7 +1567,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1606,10 +1602,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -1618,40 +1615,39 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -1661,38 +1657,38 @@ local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $2 + local.get $0 local.get $1 call $~lib/array/Array#set:buffer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 400 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 100 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 + local.get $0 i32.store unreachable end @@ -1704,7 +1700,6 @@ unreachable ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $invalid block $~lib/array/Array block $~lib/arraybuffer/ArrayBufferView @@ -1748,10 +1743,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 diff --git a/tests/compiler/return.release.wat b/tests/compiler/return.release.wat index 821708a0cc..4509ebf226 100644 --- a/tests/compiler/return.release.wat +++ b/tests/compiler/return.release.wat @@ -19,7 +19,6 @@ (func $return/testVoidReturn (param $0 i32) ) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -36,10 +35,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index 3105a85854..5172a87b5d 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1087,11 +1087,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1193,8 +1192,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1424,7 +1422,6 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~started if return @@ -1474,19 +1471,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1495,13 +1492,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1511,7 +1507,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/flags.debug.wat b/tests/compiler/rt/flags.debug.wat index cf8505dea5..7a20ca9635 100644 --- a/tests/compiler/rt/flags.debug.wat +++ b/tests/compiler/rt/flags.debug.wat @@ -607,7 +607,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 42 call $~lib/rt/__typeinfo local.get $flags @@ -622,7 +622,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 43 call $~lib/rt/__typeinfo local.get $flags @@ -637,7 +637,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 44 call $~lib/rt/__typeinfo local.get $flags @@ -652,7 +652,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 45 call $~lib/rt/__typeinfo local.get $flags @@ -667,7 +667,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 46 call $~lib/rt/__typeinfo local.get $flags @@ -682,7 +682,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 47 call $~lib/rt/__typeinfo local.get $flags @@ -697,7 +697,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 48 call $~lib/rt/__typeinfo local.get $flags @@ -712,7 +712,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 49 call $~lib/rt/__typeinfo local.get $flags @@ -727,7 +727,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 50 call $~lib/rt/__typeinfo local.get $flags @@ -742,7 +742,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 51 call $~lib/rt/__typeinfo local.get $flags @@ -757,7 +757,7 @@ unreachable end ) - (func $rt/flags/test<~lib/map/Map> (param $flags i32) + (func $"rt/flags/test<~lib/map/Map>" (param $flags i32) i32.const 52 call $~lib/rt/__typeinfo local.get $flags @@ -988,7 +988,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 262144 i32.or @@ -998,7 +998,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 131072 i32.or @@ -1008,7 +1008,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 65536 i32.or @@ -1018,7 +1018,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 32768 i32.or @@ -1026,7 +1026,7 @@ i32.or i32.const 1024 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 global.get $rt/flags/KEY_ALIGN_REF i32.or @@ -1036,7 +1036,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 global.get $rt/flags/KEY_ALIGN_REF i32.or @@ -1048,7 +1048,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 32768 i32.or @@ -1058,7 +1058,7 @@ i32.or global.get $rt/flags/VALUE_ALIGN_REF i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 32768 i32.or @@ -1070,7 +1070,7 @@ i32.or global.get $rt/flags/VALUE_ALIGN_REF i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 4194304 i32.or @@ -1084,7 +1084,7 @@ i32.or global.get $rt/flags/VALUE_ALIGN_REF i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" i32.const 16 i32.const 131072 i32.or @@ -1096,7 +1096,7 @@ i32.or i32.const 2048 i32.or - call $rt/flags/test<~lib/map/Map> + call $"rt/flags/test<~lib/map/Map>" ) (func $~start call $start:rt/flags diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index a4b942f375..e0b5e3a2d8 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -1069,11 +1069,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1258,8 +1257,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1682,10 +1680,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1718,7 +1715,6 @@ (func $rt/issue-2719/issue2719_T#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1729,20 +1725,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1751,13 +1747,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index 4e5d52200a..6372bb77d3 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -1088,11 +1088,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1277,8 +1276,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 diff --git a/tests/compiler/rt/runtime-stub-export.release.wat b/tests/compiler/rt/runtime-stub-export.release.wat index d158af6e80..fabd2bbc75 100644 --- a/tests/compiler/rt/runtime-stub-export.release.wat +++ b/tests/compiler/rt/runtime-stub-export.release.wat @@ -53,7 +53,8 @@ unreachable end global.get $~lib/rt/stub/offset - local.tee $3 + local.set $3 + global.get $~lib/rt/stub/offset i32.const 4 i32.add local.tee $2 diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index 0626df5725..e4b1c6e9ec 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -1110,11 +1110,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1490,8 +1489,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -2097,7 +2095,6 @@ f64x2.replace_lane 1 ) (func $~lib/array/Array~visit (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2114,10 +2111,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2169,8 +2165,8 @@ ) (func $~start (local $0 i32) - (local $1 v128) - (local $2 i32) + (local $1 i32) + (local $2 v128) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2184,7 +2180,6 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store memory.size @@ -2219,7 +2214,9 @@ i32.store i32.const 1392 global.set $~lib/rt/itcms/fromSpace - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2228,26 +2225,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.const 1056 v128.load align=1 v128.store align=1 - local.get $2 - local.get $0 + local.get $1 + local.get $3 i32.store i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 + local.tee $4 + local.get $3 i32.store - local.get $0 + local.get $3 if - local.get $2 + local.get $4 i32.eqz if i32.const 0 @@ -2258,8 +2256,7 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $4 - local.get $0 + local.get $3 i32.const 20 i32.sub local.tee $5 @@ -2269,14 +2266,14 @@ i32.eq if local.get $4 - i32.eqz - local.get $2 i32.const 20 i32.sub i32.load offset=4 i32.const 3 i32.and - local.tee $4 + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $5 @@ -2285,7 +2282,7 @@ global.get $~lib/rt/itcms/state i32.const 1 i32.eq - local.get $4 + local.get $1 i32.const 3 i32.eq i32.and @@ -2296,24 +2293,24 @@ end end end - local.get $2 - local.get $0 + local.get $4 + local.get $3 i32.store offset=4 - local.get $2 + local.get $4 i32.const 16 i32.store offset=8 - local.get $2 + local.get $4 i32.const 1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 + local.get $0 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2324,13 +2321,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store - local.get $2 + local.get $4 i32.load offset=12 i32.eqz if @@ -2342,18 +2338,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $4 i32.store - local.get $2 + local.get $4 i32.load offset=4 v128.load - local.set $1 - local.get $0 + 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 i32x4.extract_lane 0 i32.const 1 i32.ne diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index 9eff9ef383..3d9964179a 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -22,7 +22,6 @@ (export "stringArrayArrayMethodCall" (func $export:std/array-access/stringArrayArrayMethodCall)) (export "functionArrayElementCall" (func $export:std/array-access/functionArrayElementCall)) (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -39,10 +38,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -58,10 +56,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -109,10 +106,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -121,11 +117,11 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store - local.get $2 + local.get $1 i32.const 1292 i32.load i32.const 1 @@ -133,7 +129,7 @@ local.tee $2 i32.lt_s if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -141,12 +137,11 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store i32.const 1296 local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store offset=4 i32.const 1 @@ -229,7 +224,6 @@ i32.eqz ) (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -240,10 +234,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -252,10 +245,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -274,10 +266,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -293,14 +284,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load offset=4 i32.load offset=4 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -323,7 +313,6 @@ unreachable ) (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -334,10 +323,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -346,10 +334,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -385,7 +372,6 @@ unreachable ) (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -396,10 +382,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -408,13 +393,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -449,7 +433,6 @@ unreachable ) (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -460,10 +443,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -472,13 +454,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -521,7 +502,6 @@ unreachable ) (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -532,10 +512,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -544,13 +523,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 local.get $0 @@ -592,7 +570,6 @@ unreachable ) (func $export:std/array-access/functionArrayElementCall (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -603,10 +580,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -615,10 +591,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 123 diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index f84dd33de2..eb3f0fd313 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1134,11 +1134,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1323,8 +1322,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1609,7 +1607,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1619,8 +1616,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1629,6 +1624,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1652,7 +1649,6 @@ end ) (func $~lib/array/Array~visit (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1669,10 +1665,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1703,16 +1698,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1811,7 +1805,6 @@ call $start:std/array-literal ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1828,23 +1821,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1861,10 +1852,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1880,7 +1870,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -1889,14 +1878,13 @@ i32.add i32.load8_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1913,10 +1901,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1932,7 +1919,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -1943,7 +1929,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1968,10 +1954,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2101,10 +2086,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2138,7 +2122,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -2147,7 +2130,7 @@ i32.add local.get $2 i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2170,10 +2153,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2207,7 +2189,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -2218,7 +2199,7 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2226,7 +2207,6 @@ (func $std/array-literal/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2237,20 +2217,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2259,13 +2239,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2311,10 +2290,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2385,11 +2363,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 44 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store i32.const 1088 @@ -2923,10 +2900,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 i32.shl @@ -2978,10 +2954,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 8 call $~lib/rt/itcms/__new diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 08748ccc40..6a7b54d866 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -1735,11 +1735,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2126,14 +2125,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2213,7 +2211,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -2223,8 +2220,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -2233,6 +2228,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -5353,7 +5350,6 @@ i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -5362,8 +5358,8 @@ f64.add local.tee $1 i32.trunc_sat_f64_s - local.tee $8 - local.get $8 + local.tee $7 + local.get $7 f64.convert_i32_s local.get $1 f64.ne @@ -5372,18 +5368,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $8 i32.const 12520 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $8 + local.get $7 i32.const 1 i32.shl i32.const 13216 @@ -5502,8 +5498,8 @@ i64.shr_u i64.add local.get $6 - local.get $7 global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub @@ -6332,12 +6328,8 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 - local.get $0 - i32.store br $folding-inner5 end global.get $~lib/memory/__stack_pointer @@ -6349,16 +6341,15 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -6387,9 +6378,6 @@ br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store br $folding-inner5 end global.get $~lib/memory/__stack_pointer @@ -6401,10 +6389,9 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6432,6 +6419,9 @@ end return end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load call $~lib/rt/itcms/__visit @@ -6469,44 +6459,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 local.get $0 @@ -6529,51 +6518,50 @@ select i32.const 2 i32.shl - local.tee $1 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=12 + local.get $1 local.get $2 - local.get $3 i32.store + local.get $1 local.get $2 - local.get $3 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 local.get $1 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) (func $std/array/Ref#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6590,23 +6578,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -6614,7 +6600,6 @@ ) (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6631,16 +6616,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6690,7 +6674,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6707,23 +6690,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6740,10 +6721,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -6759,7 +6739,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -6768,7 +6747,7 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -6794,10 +6773,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6912,7 +6890,6 @@ ) (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6929,16 +6906,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $5 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $2 @@ -6983,7 +6959,7 @@ local.get $2 i32.gt_s if - local.get $5 + local.get $4 local.get $2 i32.const 2 i32.shl @@ -7003,7 +6979,7 @@ local.get $2 i32.gt_s if - local.get $5 + local.get $4 local.get $2 i32.const 2 i32.shl @@ -7024,7 +7000,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7041,10 +7016,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -7060,7 +7034,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -7071,7 +7044,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -7097,10 +7070,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7215,7 +7187,6 @@ ) (func $~lib/array/Array#fill (param $0 i32) (param $1 f32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7232,16 +7203,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $5 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $2 @@ -7283,7 +7253,7 @@ local.get $2 i32.gt_s if - local.get $5 + local.get $4 local.get $2 i32.const 2 i32.shl @@ -7303,7 +7273,7 @@ local.get $2 i32.gt_s if - local.get $5 + local.get $4 local.get $2 i32.const 2 i32.shl @@ -7325,7 +7295,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) (local $2 f32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7342,10 +7311,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -7361,7 +7329,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -7372,7 +7339,7 @@ i32.add f32.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -7399,10 +7366,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7567,7 +7533,6 @@ global.set $~lib/memory/__stack_pointer ) (func $std/array/internalCapacity (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -7584,18 +7549,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load local.tee $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7605,7 +7569,7 @@ i32.const 2 i32.shr_s local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -7630,10 +7594,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -7768,10 +7731,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7806,7 +7768,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7823,10 +7784,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -7842,7 +7802,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -7853,7 +7812,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -7862,7 +7821,6 @@ (func $~lib/array/Array#pop (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7879,15 +7837,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 0 i32.le_s if @@ -7899,31 +7856,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 i32.load offset=4 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $2 - i32.store offset=12 local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -7943,10 +7899,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -8017,10 +7972,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -8045,7 +7999,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -8056,7 +8009,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -8083,16 +8036,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -8173,16 +8125,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -8354,7 +8305,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store block $folding-inner1 @@ -8362,7 +8312,7 @@ local.get $2 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8443,10 +8393,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8489,7 +8438,6 @@ (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8506,10 +8454,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8567,39 +8514,38 @@ i32.const 0 i32.gt_s select - local.tee $3 + local.tee $2 i32.const 2 i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load offset=4 - local.set $5 - local.get $2 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $4 local.get $0 i32.load offset=4 local.get $1 i32.const 2 i32.shl i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl memory.copy - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8675,29 +8621,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.tee $4 + local.tee $5 i32.const 1 i32.gt_u if - local.get $4 + local.get $5 i32.const 1 i32.shr_u - local.set $5 - local.get $4 + local.set $4 + local.get $5 i32.const 8 i32.sub local.set $6 @@ -8705,7 +8650,7 @@ local.get $1 i32.const 7 i32.add - local.get $5 + local.get $4 i32.lt_u if local.get $1 @@ -8780,13 +8725,13 @@ br $while-continue|0 end end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 loop $while-continue|1 local.get $1 - local.get $5 + local.get $4 i32.lt_u if local.get $1 @@ -8797,7 +8742,7 @@ local.set $7 local.get $6 local.get $2 - local.get $4 + local.get $5 local.get $1 i32.sub i32.add @@ -8845,29 +8790,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 1 i32.gt_u if - local.get $3 + local.get $4 i32.const 1 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 2 i32.sub local.set $5 @@ -8875,7 +8819,7 @@ local.get $1 i32.const 1 i32.add - local.get $4 + local.get $3 i32.lt_u if local.get $2 @@ -8911,13 +8855,13 @@ br $while-continue|0 end end - local.get $3 + local.get $4 i32.const 1 i32.sub - local.set $3 + local.set $4 loop $while-continue|1 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $2 @@ -8930,7 +8874,7 @@ local.set $6 local.get $5 local.get $2 - local.get $3 + local.get $4 local.get $1 i32.sub i32.const 1 @@ -8957,7 +8901,6 @@ local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8974,10 +8917,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -8993,7 +8935,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -9004,7 +8945,7 @@ i32.add i32.load16_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9012,7 +8953,6 @@ ) (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9029,10 +8969,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9044,7 +8983,7 @@ i32.ge_s i32.or if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9108,7 +9047,6 @@ ) (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9125,10 +9063,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9136,7 +9073,7 @@ local.tee $3 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9251,7 +9188,6 @@ local.get $0 ) (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9268,10 +9204,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9308,13 +9243,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 local.get $0 i32.load offset=12 @@ -9340,83 +9274,81 @@ i32.lt_s select end - local.tee $1 - i32.sub local.tee $4 + i32.sub + local.tee $1 + local.get $1 local.get $2 - local.get $4 - i32.lt_s + i32.gt_s select - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $5 i32.const 2 i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 + local.get $1 i32.store - local.get $4 + local.get $1 i32.load offset=4 - local.set $6 - local.get $5 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $6 + local.get $2 local.get $0 i32.load offset=4 - local.tee $5 - local.get $1 + local.tee $2 + local.get $4 i32.const 2 i32.shl i32.add local.tee $6 - local.get $2 + local.get $5 i32.const 2 i32.shl memory.copy - local.get $1 - local.get $2 + local.get $4 + local.get $5 i32.add - local.tee $1 + local.tee $4 local.get $3 i32.ne if local.get $6 - local.get $5 - local.get $1 + local.get $2 + local.get $4 i32.const 2 i32.shl i32.add local.get $3 - local.get $1 + local.get $4 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 local.get $3 - local.get $2 + local.get $5 i32.sub i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 ) (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9487,13 +9419,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 2 local.get $0 i32.load offset=12 @@ -9519,7 +9450,7 @@ i32.lt_s select end - local.tee $3 + local.tee $4 i32.sub local.tee $1 local.get $1 @@ -9537,23 +9468,22 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 + local.get $5 i32.store - local.get $4 - i32.load offset=4 - local.set $6 local.get $5 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $6 + local.get $3 local.get $0 i32.load offset=4 - local.tee $5 - local.get $3 + local.tee $3 + local.get $4 i32.const 2 i32.shl i32.add @@ -9564,26 +9494,25 @@ memory.copy local.get $2 local.get $1 - local.get $3 + local.get $4 i32.add - local.tee $3 + local.tee $4 i32.ne if local.get $6 - local.get $5 local.get $3 + local.get $4 i32.const 2 i32.shl i32.add local.get $2 - local.get $3 + local.get $4 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -9591,14 +9520,13 @@ local.get $1 i32.sub i32.store offset=12 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9615,10 +9543,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -9634,10 +9561,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -9664,7 +9590,6 @@ local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9681,10 +9606,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -9700,10 +9624,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -9713,7 +9636,7 @@ i32.load local.tee $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -9737,10 +9660,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -9774,7 +9696,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -9785,7 +9706,7 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9794,7 +9715,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9811,32 +9731,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $2 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $5 + local.tee $4 + local.get $3 local.get $4 - local.get $5 i32.lt_s select i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -9846,13 +9764,13 @@ i32.shl i32.add i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $5 + local.get $4 local.get $2 local.get $0 local.get $1 @@ -9896,10 +9814,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -9930,10 +9847,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -9950,7 +9866,6 @@ (func $~lib/array/Array#findLastIndex (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 @@ -9967,10 +9882,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9984,7 +9898,6 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 local.get $0 @@ -9994,13 +9907,13 @@ i32.shl i32.add i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 + local.get $3 local.get $2 local.get $0 local.get $1 @@ -10031,7 +9944,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10048,32 +9960,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $2 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $5 + local.tee $4 + local.get $3 local.get $4 - local.get $5 i32.lt_s select i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -10083,13 +9993,13 @@ i32.shl i32.add i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $5 + local.get $4 local.get $2 local.get $0 local.get $1 @@ -10134,10 +10044,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10168,10 +10077,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10189,7 +10097,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10206,32 +10113,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $2 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $5 + local.tee $4 + local.get $3 local.get $4 - local.get $5 i32.lt_s select i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -10241,13 +10146,13 @@ i32.shl i32.add i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $5 + local.get $4 local.get $2 local.get $0 local.get $1 @@ -10291,10 +10196,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10325,10 +10229,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10346,7 +10249,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10363,32 +10265,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $2 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $5 + local.tee $4 + local.get $3 local.get $4 - local.get $5 i32.lt_s select i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -10398,13 +10298,13 @@ i32.shl i32.add i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $5 + local.get $4 local.get $2 local.get $0 local.get $1 @@ -10439,10 +10339,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10474,10 +10373,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10635,10 +10533,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10660,7 +10557,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -10677,16 +10573,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=12 local.tee $3 @@ -10701,10 +10596,9 @@ i32.store local.get $4 i32.load offset=4 - local.set $6 + local.set $4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store local.get $2 @@ -10718,7 +10612,7 @@ select i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $2 @@ -10729,16 +10623,16 @@ i32.load offset=4 i32.add i32.load - local.set $7 - local.get $4 + local.set $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength + local.get $4 local.get $5 - local.get $6 i32.add - local.get $7 + local.get $6 local.get $2 local.get $0 local.get $1 @@ -10774,10 +10668,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10798,7 +10691,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10815,40 +10707,38 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 2 i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 local.get $0 i32.load offset=12 - local.tee $6 - local.get $3 - local.get $6 + local.tee $5 + local.get $4 + local.get $5 i32.lt_s select i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -10858,13 +10748,13 @@ i32.shl i32.add i32.load - local.set $6 - local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const 3 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $2 local.get $0 local.get $1 @@ -10872,10 +10762,10 @@ call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 + local.get $3 local.get $5 - local.get $6 call $~lib/array/Array#push end local.get $2 @@ -10889,7 +10779,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 ) (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -10908,10 +10798,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10946,10 +10835,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -10971,7 +10859,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10988,32 +10875,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $5 + local.set $4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store local.get $3 - local.get $5 + local.get $4 local.get $0 i32.load offset=12 - local.tee $6 + local.tee $5 + local.get $4 local.get $5 - local.get $6 i32.lt_s select i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -11023,14 +10908,14 @@ i32.shl i32.add i32.load - local.set $6 - local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 4 global.set $~argumentsLength local.get $2 - local.get $6 + local.get $5 local.get $3 local.get $0 local.get $1 @@ -11067,10 +10952,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store local.get $3 @@ -11101,10 +10985,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store local.get $3 @@ -11121,7 +11004,6 @@ (func $~lib/array/Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11138,10 +11020,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -11155,7 +11036,6 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=4 local.get $0 @@ -11165,14 +11045,14 @@ i32.shl i32.add i32.load - local.set $5 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 4 global.set $~argumentsLength local.get $2 - local.get $5 + local.get $4 local.get $3 local.get $0 local.get $1 @@ -11195,7 +11075,6 @@ (func $std/array/Dim#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11206,20 +11085,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 22 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -11228,13 +11107,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -11713,7 +11591,6 @@ (func $~lib/array/Array#sort@varargs (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11724,10 +11601,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 block $1of1 @@ -11745,13 +11621,12 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11760,25 +11635,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $2 local.get $0 local.get $1 call $~lib/util/sort/SORT @@ -12231,7 +12105,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) (local $2 f64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12248,10 +12121,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -12267,7 +12139,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -12278,7 +12149,7 @@ i32.add f64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -12720,7 +12591,6 @@ (func $~lib/array/Array#sort (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 @@ -12737,26 +12607,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $4 - local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $2 local.get $3 - local.get $4 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -13211,10 +13080,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/array/Array#constructor local.tee $2 @@ -13267,34 +13135,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/array/Array#constructor - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 local.get $1 + local.get $2 call $~lib/math/NativeMath.random local.get $0 f64.convert_i32_s f64.mul i32.trunc_sat_f64_s call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end @@ -13302,7 +13169,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) (func $std/array/assertSorted (param $0 i32) (param $1 i32) (local $2 i32) @@ -13319,25 +13186,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 block $__inlined_func$std/array/isSorted$656 (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 local.get $0 local.get $1 call $~lib/array/Array#sort - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer local.get $1 @@ -13351,42 +13217,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store i32.const 1 local.set $0 + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 i32.store - local.get $3 + local.get $2 call $~lib/array/Array#get:length - local.set $4 + local.set $3 loop $for-loop|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 local.get $0 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $2 + local.set $5 i32.const 2 global.set $~argumentsLength + local.get $4 local.get $5 - local.get $2 local.get $1 i32.load call_indirect (type $0) @@ -13436,7 +13301,6 @@ unreachable ) (func $std/array/assertSortedDefault (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -13453,13 +13317,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11120 i32.store offset=4 local.get $0 @@ -13471,7 +13334,6 @@ global.set $~lib/memory/__stack_pointer ) (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13488,16 +13350,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $0 @@ -13505,7 +13366,7 @@ i32.load i32.sub local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13517,7 +13378,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -13556,16 +13416,15 @@ local.get $3 select i32.add - local.set $9 + local.set $8 loop $for-loop|0 local.get $2 - local.get $9 + local.get $8 i32.ge_s if global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $0 - local.get $9 + local.get $8 i32.const 2 i32.shl i32.add @@ -13573,23 +13432,23 @@ i32.load local.tee $3 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $5 i32.load offset=4 local.tee $5 i32.store offset=4 local.get $5 local.set $6 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=12 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=16 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=20 i32.const 2 @@ -13611,36 +13470,35 @@ local.tee $3 i32.store offset=12 end - local.get $9 + local.get $8 i32.const 1 i32.sub - local.set $10 + local.set $9 loop $while-continue|1 local.get $1 - local.get $10 + local.get $9 i32.le_s if block $while-break|1 global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $0 - local.get $10 + local.get $9 i32.const 2 i32.shl i32.add local.tee $5 i32.load - local.tee $8 + local.tee $7 i32.store + global.get $~lib/memory/__stack_pointer local.get $7 - local.get $8 i32.store offset=16 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=20 i32.const 2 global.set $~argumentsLength - local.get $8 + local.get $7 local.get $3 local.get $4 i32.load @@ -13649,18 +13507,18 @@ i32.le_s br_if $while-break|1 local.get $5 - local.get $8 + local.get $7 i32.store offset=8 - local.get $10 + local.get $9 i32.const 1 i32.sub - local.set $10 + local.set $9 br $while-continue|1 end end end local.get $0 - local.get $10 + local.get $9 i32.const 2 i32.shl i32.add @@ -13668,14 +13526,13 @@ i32.store offset=8 loop $while-continue|2 local.get $1 - local.get $10 + local.get $9 i32.le_s if block $while-break|2 global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $0 - local.get $10 + local.get $9 i32.const 2 i32.shl i32.add @@ -13683,10 +13540,10 @@ i32.load local.tee $3 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=16 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=20 i32.const 2 @@ -13702,25 +13559,25 @@ local.get $5 local.get $3 i32.store offset=4 - local.get $10 + local.get $9 i32.const 1 i32.sub - local.set $10 + local.set $9 br $while-continue|2 end end end local.get $0 - local.get $10 + local.get $9 i32.const 2 i32.shl i32.add local.get $6 i32.store offset=4 - local.get $9 + local.get $8 i32.const 2 i32.add - local.set $9 + local.set $8 br $for-loop|0 end end @@ -13733,7 +13590,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -13750,17 +13606,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 local.get $1 local.get $2 i32.eq if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -13768,7 +13623,6 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 local.get $1 i32.const 2 @@ -13777,7 +13631,7 @@ i32.load local.tee $5 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 i32.const 1 @@ -13805,25 +13659,24 @@ i32.gt_s if (result i32) global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 local.get $4 i32.const 2 i32.shl i32.add - local.tee $7 - i32.load offset=4 local.tee $5 + i32.load offset=4 + local.tee $6 i32.store - local.get $6 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.load - local.tee $6 + local.tee $5 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $5 local.get $6 + local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -13887,24 +13740,23 @@ i32.gt_s if (result i32) global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 local.get $4 i32.const 2 i32.shl i32.add - local.tee $5 + local.tee $1 i32.load offset=4 - local.tee $6 + local.tee $5 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $5 i32.load local.tee $1 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $1 local.get $3 i32.load @@ -13933,7 +13785,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13950,10 +13801,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $3 @@ -14021,34 +13871,33 @@ i32.le_s if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $4 local.get $2 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $7 i32.store - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $4 local.get $6 i32.const 2 i32.shl i32.add i32.load - local.tee $7 + local.tee $8 i32.store offset=4 - local.get $8 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $8 - local.get $7 i32.store offset=12 i32.const 2 global.set $~argumentsLength - local.get $9 local.get $7 + local.get $8 local.get $5 i32.load call_indirect (type $0) @@ -14060,7 +13909,7 @@ i32.const 2 i32.shl i32.add - local.get $9 + local.get $7 i32.store local.get $2 i32.const 1 @@ -14072,7 +13921,7 @@ i32.const 2 i32.shl i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -14099,10 +13948,10 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) + (local $10 i64) (local $11 i32) (local $12 i32) - (local $13 i64) + (local $13 i32) (local $14 i32) (local $15 i32) global.get $~lib/memory/__stack_pointer @@ -14146,29 +13995,28 @@ br $break|0 end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=12 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 - local.get $3 local.get $3 local.get $4 + local.get $4 + local.get $3 local.get $2 i32.load call_indirect (type $0) @@ -14178,11 +14026,11 @@ select i32.store global.get $~lib/memory/__stack_pointer - local.get $3 local.get $4 + local.get $3 local.get $1 select - local.tee $1 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -14190,7 +14038,7 @@ local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $3 @@ -14199,48 +14047,47 @@ global.set $~argumentsLength local.get $0 local.get $3 - local.get $1 - local.get $1 + local.get $4 + local.get $4 local.get $3 local.get $2 i32.load call_indirect (type $0) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 select i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store offset=16 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.store offset=20 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=12 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 - local.get $3 local.get $3 local.get $4 + local.get $4 + local.get $3 local.get $2 i32.load call_indirect (type $0) @@ -14250,8 +14097,8 @@ select i32.store local.get $0 - local.get $3 local.get $4 + local.get $3 local.get $1 select i32.store offset=4 @@ -14274,43 +14121,43 @@ local.get $1 i32.clz i32.sub - local.tee $3 + local.tee $5 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - local.set $6 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end - local.get $5 + local.get $4 global.get $~lib/rt/tlsf/ROOT - local.get $6 + local.get $3 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $10 + local.tee $13 i32.add - local.set $11 + local.set $12 loop $for-loop|1 - local.get $3 - local.get $4 + local.get $5 + local.get $7 i32.gt_u if - local.get $10 - local.get $4 + local.get $13 + local.get $7 i32.const 2 i32.shl i32.add i32.const -1 i32.store - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|1 end end @@ -14326,7 +14173,7 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -14335,7 +14182,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $9 + local.tee $14 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 @@ -14351,8 +14198,8 @@ local.get $0 i32.const 0 i32.const 31 - local.get $9 - local.get $9 + local.get $14 + local.get $14 i32.const 31 i32.ge_s select @@ -14362,12 +14209,12 @@ call $~lib/util/sort/insertionSort end i32.const 0 - local.set $4 + local.set $7 i32.const 0 local.set $1 loop $while-continue|2 local.get $5 - local.get $9 + local.get $14 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -14377,16 +14224,16 @@ local.get $5 i32.const 1 i32.add - local.tee $6 - local.get $9 + local.tee $4 + local.get $14 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $3 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if @@ -14394,34 +14241,34 @@ local.get $2 i32.store offset=8 local.get $0 - local.get $6 - local.get $9 - local.get $6 + local.get $4 + local.get $14 + local.get $4 i32.const 31 i32.add local.tee $3 local.get $3 - local.get $9 + local.get $14 i32.gt_s select - local.tee $3 - local.get $7 + local.tee $6 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $1 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $14 i32.const 1 i32.add i64.extend_i32_u - local.tee $13 + local.tee $10 i64.div_u - local.get $3 + local.get $4 local.get $6 i32.add i32.const 1 @@ -14429,31 +14276,31 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $10 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 local.get $7 - i32.gt_u + i32.lt_u if - local.get $4 + local.get $7 i32.const 2 i32.shl - local.tee $14 - local.get $10 + local.tee $9 + local.get $13 i32.add - local.tee $15 - i32.load local.tee $8 + i32.load + local.tee $15 i32.const -1 i32.ne if - local.get $11 - local.get $14 + local.get $9 + local.get $12 i32.add i32.load i32.const 1 @@ -14463,55 +14310,55 @@ local.get $2 i32.store offset=8 local.get $0 - local.get $8 + local.get $15 local.get $1 local.get $5 - local.get $12 + local.get $11 local.get $2 call $~lib/util/sort/mergeRuns - local.get $15 + local.get $8 i32.const -1 i32.store - local.get $8 + local.get $15 local.set $1 end - local.get $4 + local.get $7 i32.const 1 i32.sub - local.set $4 + local.set $7 br $for-loop|3 end end - local.get $7 + local.get $3 i32.const 2 i32.shl - local.tee $4 - local.get $10 + local.tee $7 + local.get $13 i32.add local.get $1 i32.store - local.get $4 - local.get $11 + local.get $7 + local.get $12 i32.add local.get $5 i32.store - local.get $6 + local.get $4 local.set $1 - local.get $3 + local.get $6 local.set $5 - local.get $7 - local.set $4 + local.get $3 + local.set $7 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $7 if - local.get $4 + local.get $7 i32.const 2 i32.shl local.tee $1 - local.get $10 + local.get $13 i32.add i32.load local.tee $3 @@ -14519,7 +14366,7 @@ i32.ne if local.get $1 - local.get $11 + local.get $12 i32.add i32.load i32.const 1 @@ -14531,21 +14378,21 @@ local.get $0 local.get $3 local.get $1 - local.get $9 - local.get $12 + local.get $14 + local.get $11 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $7 i32.const 1 i32.sub - local.set $4 + local.set $7 br $for-loop|4 end end - local.get $12 + local.get $11 call $~lib/rt/tlsf/__free - local.get $10 + local.get $13 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 24 @@ -14561,7 +14408,6 @@ (func $~lib/array/Array#sort (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 @@ -14578,26 +14424,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $4 - local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $2 local.get $3 - local.get $4 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -14607,7 +14452,6 @@ local.get $0 ) (func $start:std/array~anonymous|52 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14624,10 +14468,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -14664,25 +14507,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 block $__inlined_func$std/array/isSorted<~lib/array/Array>$658 (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 local.get $0 local.get $1 call $~lib/array/Array#sort - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $1 @@ -14698,51 +14540,50 @@ local.get $1 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 1 local.set $1 - local.get $2 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store - local.get $3 + local.get $5 call $~lib/array/Array#get:length - local.set $2 + local.set $4 loop $for-loop|0 local.get $1 - local.get $2 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=8 - local.get $3 + local.get $5 local.get $1 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=8 - local.get $3 + local.get $5 local.get $1 call $~lib/array/Array#__get - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 + local.get $2 + local.get $3 local.get $0 i32.load call_indirect (type $0) @@ -14813,7 +14654,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store block $folding-inner0 @@ -14827,7 +14667,7 @@ i32.or i32.or br_if $folding-inner0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -14837,7 +14677,7 @@ i32.const 1 i32.shr_u local.set $4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -14854,7 +14694,7 @@ local.get $4 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -14872,10 +14712,9 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 block $__inlined_func$~lib/util/string/compareImpl (result i32) @@ -14999,14 +14838,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -15021,7 +14859,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -15031,7 +14868,7 @@ i32.const 1 i32.shr_u local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $2 @@ -15043,10 +14880,10 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 block $__inlined_func$~lib/util/string/compareImpl$1 (result i32) @@ -15144,7 +14981,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -15155,83 +14991,81 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$734 (result i32) - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - local.get $5 - local.get $1 - i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$734 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const -2 i32.and - local.tee $3 - local.get $2 - i32.add local.tee $4 + local.get $3 + i32.add + local.tee $0 i32.eqz if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 + local.set $0 br $__inlined_func$~lib/string/String#concat$734 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $0 i32.store offset=4 - local.get $4 local.get $0 local.get $2 + local.get $3 memory.copy - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.add local.get $1 - local.get $3 + local.get $4 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -15250,7 +15084,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -15267,10 +15100,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -15299,7 +15131,7 @@ select i32.const 1 i32.shl - local.set $4 + local.set $3 local.get $2 i32.const 0 local.get $2 @@ -15308,22 +15140,22 @@ select i32.const 1 i32.shl - local.tee $5 - local.get $4 + local.tee $4 + local.get $3 i32.sub local.tee $2 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 return end - local.get $4 + local.get $3 i32.eqz - local.get $5 + local.get $4 local.get $1 i32.const 1 i32.shl @@ -15345,7 +15177,7 @@ i32.store offset=4 local.get $1 local.get $0 - local.get $4 + local.get $3 i32.add local.get $2 memory.copy @@ -15372,26 +15204,25 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray$6 (result i32) - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15400,17 +15231,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $0 i32.const 0 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -15418,7 +15248,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$6 end block $folding-inner0 - local.get $6 + local.get $0 i32.eqz if local.get $4 @@ -15428,10 +15258,9 @@ br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 20 i32.sub @@ -15441,11 +15270,11 @@ local.tee $5 i32.const 11 i32.add - local.get $6 + local.get $0 i32.mul i32.const 11 i32.add - local.tee $0 + local.tee $6 i32.const 1 i32.shl i32.const 2 @@ -15453,9 +15282,9 @@ local.tee $7 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $3 - local.get $6 - i32.lt_s + i32.gt_s if local.get $7 local.get $2 @@ -15496,13 +15325,14 @@ br $for-loop|0 end end + local.get $6 local.get $7 local.get $2 i32.const 1 i32.shl i32.add local.get $4 - local.get $6 + local.get $0 i32.const 2 i32.shl i32.add @@ -15510,15 +15340,14 @@ call $~lib/util/number/itoa_buffered local.get $2 i32.add - local.tee $1 - local.get $0 - i32.lt_s + local.tee $0 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $7 i32.store local.get $7 - local.get $1 + local.get $0 call $~lib/string/String#substring local.set $1 br $folding-inner0 @@ -15568,26 +15397,25 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray$7 (result i32) - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15596,17 +15424,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $0 i32.const 0 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -15614,7 +15441,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$7 end block $folding-inner0 - local.get $6 + local.get $0 i32.eqz if local.get $4 @@ -15624,10 +15451,9 @@ br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 20 i32.sub @@ -15637,11 +15463,11 @@ local.tee $5 i32.const 10 i32.add - local.get $6 + local.get $0 i32.mul i32.const 10 i32.add - local.tee $0 + local.tee $6 i32.const 1 i32.shl i32.const 2 @@ -15649,9 +15475,9 @@ local.tee $7 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $3 - local.get $6 - i32.lt_s + i32.gt_s if local.get $7 local.get $2 @@ -15692,13 +15518,14 @@ br $for-loop|0 end end + local.get $6 local.get $7 local.get $2 i32.const 1 i32.shl i32.add local.get $4 - local.get $6 + local.get $0 i32.const 2 i32.shl i32.add @@ -15706,15 +15533,14 @@ call $~lib/util/number/itoa_buffered local.get $2 i32.add - local.tee $1 - local.get $0 - i32.lt_s + local.tee $0 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $7 i32.store local.get $7 - local.get $1 + local.get $0 call $~lib/string/String#substring local.set $1 br $folding-inner0 @@ -15765,24 +15591,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $7 i32.const 0 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 return end - local.get $6 + local.get $7 i32.eqz if local.get $0 @@ -15797,14 +15622,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store local.get $3 f64.const 0 f64.eq if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -15866,10 +15690,9 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 12288 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12284 i32.load i32.const 1 @@ -15877,23 +15700,23 @@ local.tee $1 i32.const 28 i32.add - local.get $6 + local.get $7 i32.mul i32.const 28 i32.add - local.tee $7 + local.tee $5 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|0 local.get $4 - local.get $6 + local.get $7 i32.lt_s if - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -15910,7 +15733,7 @@ local.set $2 local.get $1 if - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -15932,13 +15755,13 @@ br $for-loop|0 end end - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl i32.add local.get $0 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add @@ -15947,13 +15770,13 @@ local.get $2 i32.add local.tee $0 - local.get $7 + local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 local.get $0 call $~lib/string/String#substring local.set $0 @@ -15963,7 +15786,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return end i32.const 48992 @@ -15985,7 +15808,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -16002,10 +15824,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $1 @@ -16015,7 +15836,7 @@ i32.const 0 i32.lt_s if - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer @@ -16026,12 +15847,11 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.load local.tee $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer @@ -16047,22 +15867,21 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 + local.get $6 if + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store offset=8 local.get $3 - local.get $7 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -16081,10 +15900,9 @@ i32.const 0 local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $3 local.get $2 i32.const 20 @@ -16092,7 +15910,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $6 + local.tee $1 local.get $5 i32.mul i32.add @@ -16100,7 +15918,7 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=12 i32.const 0 local.set $3 @@ -16110,55 +15928,54 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $0 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $7 i32.store offset=4 - local.get $1 + local.get $7 if - local.get $8 - local.get $1 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $7 + i32.store offset=8 + local.get $6 local.get $4 i32.const 1 i32.shl i32.add - local.get $1 - local.get $1 + local.get $7 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 + local.tee $7 i32.const 1 i32.shl memory.copy - local.get $1 local.get $4 + local.get $7 i32.add local.set $4 end - local.get $6 + local.get $1 if - local.get $7 + local.get $6 local.get $4 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $1 i32.const 1 i32.shl memory.copy + local.get $1 local.get $4 - local.get $6 i32.add local.set $4 end @@ -16170,7 +15987,6 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 local.get $5 i32.const 2 @@ -16181,10 +15997,10 @@ i32.store offset=4 local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $6 local.get $4 i32.const 1 i32.shl @@ -16202,11 +16018,10 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 ) (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16223,25 +16038,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $2 local.get $0 local.get $1 call $~lib/util/string/joinStringArray @@ -16258,7 +16072,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16269,26 +16082,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store block $__inlined_func$~lib/util/string/joinReferenceArray$8 (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer @@ -16297,37 +16109,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $2 i32.const 0 i32.lt_s if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 br $__inlined_func$~lib/util/string/joinReferenceArray$8 end - local.get $5 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 i32.const 13632 else @@ -16344,60 +16154,57 @@ i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 11568 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.set $2 + local.set $4 loop $for-loop|0 local.get $1 - local.get $5 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 + local.get $5 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $6 + local.tee $3 i32.store - local.get $6 + local.get $3 if - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=16 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 13632 i32.store offset=12 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 13632 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 end - local.get $2 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 11856 call $~lib/string/String.__concat @@ -16412,27 +16219,26 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $3 local.get $5 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 i32.store offset=16 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13632 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 13632 call $~lib/string/String.__concat @@ -16461,7 +16267,6 @@ unreachable ) (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16478,13 +16283,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 local.get $0 @@ -16514,16 +16318,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16532,22 +16335,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray$9 (result i32) @@ -16560,17 +16362,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $0 i32.const 0 i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -16578,7 +16379,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$9 end block $folding-inner00 - local.get $5 + local.get $0 i32.eqz if local.get $3 @@ -16588,10 +16389,9 @@ br $folding-inner00 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 11856 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 @@ -16599,11 +16399,11 @@ local.tee $4 i32.const 11 i32.add - local.get $5 + local.get $0 i32.mul i32.const 11 i32.add - local.tee $0 + local.tee $5 i32.const 1 i32.shl i32.const 2 @@ -16611,9 +16411,9 @@ local.tee $6 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $2 - local.get $5 - i32.lt_s + i32.gt_s if local.get $6 local.get $1 @@ -16652,27 +16452,27 @@ br $for-loop|0 end end + local.get $5 local.get $6 local.get $1 i32.const 1 i32.shl i32.add + local.get $0 local.get $3 - local.get $5 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $1 i32.add - local.tee $1 - local.get $0 - i32.lt_s + local.tee $0 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner00 @@ -16727,24 +16527,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $7 i32.const 0 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 return end - local.get $6 + local.get $7 i32.eqz if local.get $0 @@ -16909,10 +16708,9 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 11856 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 @@ -16920,23 +16718,23 @@ local.tee $1 i32.const 20 i32.add - local.get $6 + local.get $7 i32.mul i32.const 20 i32.add - local.tee $7 + local.tee $5 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|0 local.get $4 - local.get $6 + local.get $7 i32.lt_s if - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -16953,7 +16751,7 @@ local.set $2 local.get $1 if - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -16975,13 +16773,13 @@ br $for-loop|0 end end - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl i32.add local.get $0 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add @@ -16990,13 +16788,13 @@ local.get $2 i32.add local.tee $0 - local.get $7 + local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 local.get $0 call $~lib/string/String#substring local.set $1 @@ -17006,7 +16804,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return end i32.const 48992 @@ -17023,7 +16821,6 @@ local.get $1 ) (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -17040,13 +16837,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 local.get $0 @@ -17076,16 +16872,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17094,22 +16889,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray$10 (result i32) @@ -17122,17 +16916,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $0 i32.const 0 i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -17140,7 +16933,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$10 end block $folding-inner00 - local.get $5 + local.get $0 i32.eqz if local.get $3 @@ -17150,10 +16943,9 @@ br $folding-inner00 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 11856 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 @@ -17161,11 +16953,11 @@ local.tee $4 i32.const 10 i32.add - local.get $5 + local.get $0 i32.mul i32.const 10 i32.add - local.tee $0 + local.tee $5 i32.const 1 i32.shl i32.const 2 @@ -17173,9 +16965,9 @@ local.tee $6 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $2 - local.get $5 - i32.lt_s + i32.gt_s if local.get $6 local.get $1 @@ -17214,27 +17006,27 @@ br $for-loop|0 end end + local.get $5 local.get $6 local.get $1 i32.const 1 i32.shl i32.add + local.get $0 local.get $3 - local.get $5 i32.add i32.load8_u call $~lib/util/number/itoa_buffered local.get $1 i32.add - local.tee $1 - local.get $0 - i32.lt_s + local.tee $0 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner00 @@ -17272,7 +17064,6 @@ unreachable ) (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -17289,13 +17080,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 local.get $0 @@ -17325,16 +17115,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17343,22 +17132,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 (result i32) @@ -17371,39 +17159,37 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 20 memory.fill local.get $0 i32.const 1 i32.sub - local.tee $4 + local.tee $5 i32.const 0 i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 end - local.get $4 + local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $3 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 11568 @@ -17419,25 +17205,23 @@ i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 11568 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 i32.const 11852 i32.load i32.const 1 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|0 local.get $1 - local.get $4 + local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $2 + local.get $3 local.get $1 i32.const 2 i32.shl @@ -17447,10 +17231,12 @@ i32.store local.get $6 if - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=16 local.get $6 @@ -17459,23 +17245,22 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 - local.get $5 + local.get $4 local.get $0 local.get $6 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 end - local.get $3 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 11856 call $~lib/string/String.__concat @@ -17490,32 +17275,33 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 i32.store offset=16 - local.get $2 + local.get $1 call $~lib/array/Array#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 local.get $1 - local.get $0 + i32.store offset=12 local.get $2 + local.get $0 + local.get $1 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 @@ -17568,19 +17354,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -17708,10 +17493,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -17767,6 +17551,7 @@ (local $10 i32) (local $11 i32) (local $12 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 508 i32.sub @@ -17817,9 +17602,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17830,20 +17615,20 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -17852,42 +17637,41 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $8 i64.const 0 i64.store - local.get $8 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.eqz if - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -17897,28 +17681,28 @@ local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $2 + local.get $1 local.get $8 i32.store - local.get $2 + local.get $1 local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -17926,24 +17710,23 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -17959,18 +17742,18 @@ i32.const 7 i32.const 1696 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 @@ -17981,7 +17764,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -17994,16 +17777,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 @@ -18014,7 +17797,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18027,15 +17810,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 @@ -18046,7 +17829,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18059,16 +17842,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 @@ -18079,7 +17862,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18092,15 +17875,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 @@ -18111,7 +17894,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18124,16 +17907,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 @@ -18144,7 +17927,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18162,18 +17945,18 @@ i32.const 8 i32.const 1920 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18184,7 +17967,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18197,16 +17980,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18217,7 +18000,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18230,15 +18013,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18249,7 +18032,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18262,16 +18045,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18282,7 +18065,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18295,15 +18078,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18314,7 +18097,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18327,16 +18110,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18347,7 +18130,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18365,18 +18148,18 @@ i32.const 9 i32.const 2256 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18387,7 +18170,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18400,16 +18183,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18420,7 +18203,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18433,15 +18216,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18452,7 +18235,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18465,16 +18248,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18485,7 +18268,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18498,15 +18281,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18517,7 +18300,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18530,16 +18313,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18550,7 +18333,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18563,16 +18346,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const -0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -18583,7 +18366,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 call $std/array/isArraysEqual i32.eqz @@ -18597,9 +18380,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -18611,9 +18394,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18627,16 +18410,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 42 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -18651,9 +18434,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18667,9 +18450,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18683,9 +18466,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -18699,9 +18482,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -18713,9 +18496,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18729,16 +18512,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18752,9 +18535,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18768,9 +18551,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18785,16 +18568,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -18808,9 +18591,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18824,9 +18607,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18841,9 +18624,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18858,16 +18641,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 45 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18881,9 +18664,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18897,9 +18680,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18914,9 +18697,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18931,9 +18714,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18947,7 +18730,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 10 @@ -18969,7 +18753,7 @@ i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 local.get $7 i32.store offset=28 global.get $~lib/memory/__stack_pointer @@ -19019,12 +18803,12 @@ i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -19038,9 +18822,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -19054,9 +18838,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -19070,9 +18854,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -19088,18 +18872,18 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $2 + local.tee $1 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 - local.get $2 + local.get $1 call $~lib/array/Array#concat local.tee $7 i32.store offset=40 @@ -19231,15 +19015,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 46 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 47 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer @@ -19247,11 +19031,11 @@ local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 - local.get $2 + local.get $1 call $~lib/array/Array#concat local.tee $7 i32.store offset=40 @@ -19272,9 +19056,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -19408,12 +19192,12 @@ i32.const 4 i32.const 2768 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -19424,16 +19208,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $7 i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $7 - local.get $2 - local.get $8 call $~lib/array/Array#concat local.tee $7 i32.store offset=40 @@ -19453,9 +19236,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -19471,20 +19254,20 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19495,7 +19278,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19514,20 +19297,20 @@ i32.const 4 i32.const 2896 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 1 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19538,7 +19321,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19557,20 +19340,20 @@ i32.const 4 i32.const 2992 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19581,7 +19364,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19600,20 +19383,20 @@ i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19624,7 +19407,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19643,19 +19426,19 @@ i32.const 4 i32.const 3184 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19666,7 +19449,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19685,19 +19468,19 @@ i32.const 4 i32.const 3280 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19708,7 +19491,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19727,19 +19510,19 @@ i32.const 4 i32.const 3376 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19750,7 +19533,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19769,20 +19552,20 @@ i32.const 4 i32.const 3472 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const -2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19793,7 +19576,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19812,19 +19595,19 @@ i32.const 4 i32.const 3568 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19835,7 +19618,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19854,19 +19637,19 @@ i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19877,7 +19660,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19896,19 +19679,19 @@ i32.const 4 i32.const 3760 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 - local.get $2 + local.get $1 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19919,7 +19702,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19938,20 +19721,20 @@ i32.const 4 i32.const 3856 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=52 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -4 i32.const -3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -19962,7 +19745,7 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 - local.get $2 + local.get $1 local.get $7 i32.const 0 call $std/array/isArraysEqual @@ -19977,16 +19760,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 42 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -20000,9 +19783,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20016,9 +19799,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20033,9 +19816,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20050,9 +19833,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20067,9 +19850,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20084,16 +19867,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 41 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -20107,9 +19890,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20123,9 +19906,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -20140,9 +19923,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -20157,9 +19940,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -20174,9 +19957,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -20191,9 +19974,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -20207,11 +19990,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 global.get $std/array/arr - local.tee $7 + local.tee $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20220,15 +20002,14 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=12 - local.tee $2 + local.tee $7 i32.const 0 i32.le_s if @@ -20240,42 +20021,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=4 - local.tee $9 + local.tee $8 i32.load - local.set $10 - local.get $9 - local.get $9 + local.set $9 + local.get $8 + local.get $8 i32.const 4 i32.add - local.get $2 + local.get $7 i32.const 1 i32.sub - local.tee $2 + local.tee $7 i32.const 2 i32.shl - local.tee $11 + local.tee $10 memory.copy - local.get $9 - local.get $11 + local.get $8 + local.get $10 i32.add i32.const 0 i32.store - local.get $8 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + local.get $1 local.get $7 - local.get $2 i32.store offset=12 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $9 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -20290,9 +20070,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -20306,9 +20086,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20322,9 +20102,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20339,9 +20119,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20356,9 +20136,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20373,9 +20153,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20390,9 +20170,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -20408,9 +20188,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20424,9 +20204,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20440,9 +20220,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20457,9 +20237,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20474,9 +20254,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20495,15 +20275,15 @@ i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#slice@varargs local.tee $7 @@ -20534,11 +20314,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 2 i32.const 4 call $~lib/array/Array#slice @@ -20570,11 +20349,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1 i32.const 5 call $~lib/array/Array#slice @@ -20606,13 +20384,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store i32.const 0 global.set $~argumentsLength - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 0 call $~lib/array/Array#slice@varargs local.tee $7 @@ -20621,10 +20398,10 @@ local.get $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $7 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20637,13 +20414,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const -2 call $~lib/array/Array#slice@varargs local.tee $7 @@ -20674,11 +20450,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 2 i32.const -1 call $~lib/array/Array#slice @@ -20710,11 +20485,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $2 + local.get $1 i32.store - local.get $7 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const -3 i32.const -1 call $~lib/array/Array#slice @@ -20746,9 +20520,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const -1 i32.const -3 call $~lib/array/Array#slice @@ -20767,18 +20541,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 10 call $~lib/array/Array#slice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -20789,11 +20563,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 global.get $std/array/arr - local.tee $7 + local.tee $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20802,38 +20575,37 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=4 - local.set $8 - local.get $2 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.gt_u if - local.get $2 + local.get $1 i32.const 1 i32.shr_u - local.set $7 - local.get $2 + local.set $8 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $1 loop $while-continue|0 local.get $3 - local.get $7 + local.get $8 i32.lt_u if - local.get $8 + local.get $7 local.get $3 i32.const 2 i32.shl @@ -20842,8 +20614,8 @@ i32.load local.set $10 local.get $9 - local.get $8 - local.get $2 + local.get $7 + local.get $1 local.get $3 i32.sub i32.const 2 @@ -20869,9 +20641,9 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20885,9 +20657,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20901,9 +20673,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -20918,9 +20690,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20935,9 +20707,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -20952,20 +20724,20 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $1 i32.const 4 i32.const 0 i32.const 7 @@ -20975,15 +20747,15 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store - local.get $2 + local.get $1 local.get $3 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $3 loop $for-loop|0 @@ -20992,17 +20764,17 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $7 - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21031,21 +20803,21 @@ i32.const 7 i32.const 4240 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=68 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $3 loop $for-loop|1 @@ -21054,17 +20826,17 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $7 - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21093,21 +20865,21 @@ i32.const 7 i32.const 4272 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=72 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $3 loop $for-loop|2 @@ -21116,17 +20888,17 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $7 - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21155,21 +20927,21 @@ i32.const 11 i32.const 4320 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=76 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $3 loop $for-loop|3 @@ -21178,17 +20950,17 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $7 - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21217,21 +20989,21 @@ i32.const 11 i32.const 4368 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=80 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $3 loop $for-loop|4 @@ -21240,17 +21012,17 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $7 - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21279,21 +21051,21 @@ i32.const 11 i32.const 4416 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=84 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $3 loop $for-loop|5 @@ -21302,17 +21074,17 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $7 - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21537,14 +21309,13 @@ i32.const 9 i32.const 4464 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $3 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21553,43 +21324,42 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store block $__inlined_func$~lib/array/Array#indexOf$712 - local.get $2 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $3 i32.eqz - local.get $7 + local.get $3 i32.const 0 i32.le_s i32.or if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#indexOf$712 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|01 - local.get $0 - local.get $7 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -21603,10 +21373,10 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array#indexOf$712 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|01 end end @@ -21615,9 +21385,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21633,14 +21403,13 @@ i32.const 12 i32.const 4496 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $3 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21649,43 +21418,42 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store block $__inlined_func$~lib/array/Array#indexOf$713 - local.get $2 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $3 i32.eqz - local.get $7 + local.get $3 i32.const 0 i32.le_s i32.or if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#indexOf$713 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|02 - local.get $0 - local.get $7 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -21699,10 +21467,10 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array#indexOf$713 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|02 end end @@ -21711,9 +21479,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22014,14 +21782,13 @@ i32.const 9 i32.const 4576 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $3 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -22030,22 +21797,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $3 i32.eqz - local.get $7 + local.get $3 i32.const 0 i32.le_s i32.or if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -22053,18 +21819,18 @@ br $__inlined_func$~lib/array/Array#includes$714 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|03 - local.get $0 - local.get $7 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -22080,10 +21846,10 @@ i32.const 1 br $__inlined_func$~lib/array/Array#includes$714 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|03 end end @@ -22108,14 +21874,13 @@ i32.const 12 i32.const 4608 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $3 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -22124,22 +21889,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $3 i32.eqz - local.get $7 + local.get $3 i32.const 0 i32.le_s i32.or if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -22147,18 +21911,18 @@ br $__inlined_func$~lib/array/Array#includes$715 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|04 - local.get $0 - local.get $7 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -22174,10 +21938,10 @@ i32.const 1 br $__inlined_func$~lib/array/Array#includes$715 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|04 end end @@ -22287,9 +22051,9 @@ local.get $0 i32.const 0 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -22300,7 +22064,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22321,12 +22085,12 @@ i32.const 4 i32.const 4736 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22353,9 +22117,9 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -22366,7 +22130,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22387,12 +22151,12 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22420,9 +22184,9 @@ local.get $0 i32.const 2 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 3 i32.const 2 @@ -22433,7 +22197,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22454,12 +22218,12 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22486,9 +22250,9 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 i32.const 2 @@ -22499,7 +22263,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22520,12 +22284,12 @@ i32.const 4 i32.const 5088 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22552,9 +22316,9 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 @@ -22565,7 +22329,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22586,12 +22350,12 @@ i32.const 4 i32.const 5200 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22619,9 +22383,9 @@ local.get $0 i32.const -1 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 @@ -22632,7 +22396,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22653,12 +22417,12 @@ i32.const 4 i32.const 5328 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22686,9 +22450,9 @@ local.get $0 i32.const -2 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 i32.const 2 @@ -22699,7 +22463,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22720,12 +22484,12 @@ i32.const 4 i32.const 5456 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22752,9 +22516,9 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 @@ -22765,7 +22529,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22786,12 +22550,12 @@ i32.const 4 i32.const 5568 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22818,9 +22582,9 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 @@ -22831,7 +22595,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22852,12 +22616,12 @@ i32.const 4 i32.const 5696 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22884,9 +22648,9 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -22897,7 +22661,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22918,12 +22682,12 @@ i32.const 4 i32.const 5824 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22950,9 +22714,9 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -22963,7 +22727,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -22984,12 +22748,12 @@ i32.const 4 i32.const 5952 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23016,9 +22780,9 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -23029,7 +22793,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -23050,12 +22814,12 @@ i32.const 4 i32.const 6080 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23082,9 +22846,9 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -23095,7 +22859,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -23116,12 +22880,12 @@ i32.const 4 i32.const 6208 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23148,9 +22912,9 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -23161,7 +22925,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 i32.const 0 call $std/array/isArraysEqual @@ -23182,12 +22946,12 @@ i32.const 4 i32.const 6336 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23214,12 +22978,12 @@ local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $2 + local.tee $1 i32.store offset=100 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -23243,51 +23007,52 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 5 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=104 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=4 i32.store offset=108 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set local.get $0 - local.get $2 + local.get $1 i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#splice local.tee $0 @@ -23352,9 +23117,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -23367,9 +23132,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get local.set $0 @@ -23389,9 +23154,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get local.set $0 @@ -23411,9 +23176,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get local.set $0 @@ -23433,39 +23198,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=112 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=4 i32.store offset=116 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set local.get $0 - local.get $2 + local.get $1 i32.store offset=120 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23476,38 +23242,37 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $3 i32.const 0 - local.get $7 + local.get $3 i32.const 0 i32.le_s select - local.set $8 - local.get $3 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 1 + local.get $3 local.get $7 - local.get $8 i32.sub - local.tee $3 - local.get $3 + local.tee $8 + local.get $8 i32.const 1 i32.gt_s select - local.tee $3 + local.tee $8 i32.const 0 - local.get $3 + local.get $8 i32.const 0 i32.gt_s select - local.tee $3 + local.tee $8 i32.const 2 i32.const 13 i32.const 0 @@ -23515,58 +23280,56 @@ local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $10 local.get $9 i32.store local.get $9 i32.load offset=4 - local.set $11 - local.get $10 - local.get $2 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $11 - local.get $2 + local.get $10 + local.get $1 i32.load offset=4 local.tee $10 - local.get $8 + local.get $7 i32.const 2 i32.shl i32.add local.tee $11 - local.get $3 + local.get $8 i32.const 2 i32.shl memory.copy - local.get $3 + local.get $7 local.get $8 i32.add - local.tee $8 - local.get $7 + local.tee $7 + local.get $3 i32.ne if local.get $11 local.get $10 - local.get $8 + local.get $7 i32.const 2 i32.shl i32.add + local.get $3 local.get $7 - local.get $8 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $2 + local.get $1 i32.store - local.get $2 - local.get $7 + local.get $1 local.get $3 + local.get $8 i32.sub i32.store offset=12 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -23589,10 +23352,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $9 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $9 i32.const 0 call $~lib/array/Array#__get @@ -23624,9 +23386,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -23639,9 +23401,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get if @@ -23653,11 +23415,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1 call $~lib/array/Array#__get local.tee $0 @@ -23740,14 +23501,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6704 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6704 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23763,14 +23523,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6736 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6736 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23786,14 +23545,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6768 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6768 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23825,14 +23583,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6800 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6800 call $~lib/array/Array#findIndex global.set $std/array/i @@ -23955,10 +23712,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6944 i32.store offset=8 local.get $0 @@ -23977,10 +23733,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6976 i32.store offset=8 local.get $0 @@ -23999,10 +23754,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 7008 i32.store offset=8 local.get $0 @@ -24021,14 +23775,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7040 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7040 call $~lib/array/Array#every i32.const 1 @@ -24042,14 +23795,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7072 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7072 call $~lib/array/Array#every if @@ -24061,14 +23813,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7104 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7104 call $~lib/array/Array#every i32.const 1 @@ -24098,14 +23849,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7136 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7136 call $~lib/array/Array#every if @@ -24215,14 +23965,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7232 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7232 call $~lib/array/Array#some if @@ -24234,14 +23983,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7264 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7264 call $~lib/array/Array#some if @@ -24269,14 +24017,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7296 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7296 call $~lib/array/Array#some i32.const 1 @@ -24391,14 +24138,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7392 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7392 call $~lib/array/Array#forEach global.get $std/array/i @@ -24431,14 +24177,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7424 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7424 call $~lib/array/Array#forEach global.get $std/array/i @@ -24560,23 +24305,23 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end @@ -24612,7 +24357,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 9296 @@ -24626,86 +24371,86 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load offset=12 - local.tee $3 + local.tee $7 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.set $8 + local.set $9 + i32.const 0 + local.set $3 loop $for-loop|00 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 - i32.store local.get $1 + i32.store local.get $3 - local.get $2 + local.get $7 + local.get $1 i32.load offset=12 local.tee $10 - local.get $3 + local.get $7 local.get $10 i32.lt_s select i32.lt_s if - local.get $9 - local.get $2 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=8 + local.get $3 i32.const 2 i32.shl local.tee $10 - local.get $2 + local.get $1 i32.load offset=4 i32.add i32.load local.set $11 - local.get $9 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store i32.const 3 global.set $~argumentsLength - local.get $9 + global.get $~lib/memory/__stack_pointer local.get $11 + local.get $3 local.get $1 - local.get $2 i32.const 9296 i32.load call_indirect (type $1) - local.tee $9 + local.tee $11 i32.store offset=12 - local.get $8 + local.get $9 local.get $10 i32.add - local.get $9 + local.get $11 i32.store - local.get $7 - local.get $9 + local.get $8 + local.get $11 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|00 end end @@ -24714,13 +24459,13 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $7 + local.get $8 i32.store offset=140 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 9328 @@ -24734,80 +24479,78 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 i32.load offset=12 - local.tee $3 + local.tee $7 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.set $8 + local.set $9 i32.const 0 - local.set $1 + local.set $3 loop $for-loop|01 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 - i32.store local.get $1 + i32.store local.get $3 - local.get $2 + local.get $7 + local.get $1 i32.load offset=12 local.tee $10 - local.get $3 + local.get $7 local.get $10 i32.lt_s select i32.lt_s if - local.get $9 - local.get $2 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=8 + local.get $3 i32.const 2 i32.shl local.tee $10 - local.get $2 + local.get $1 i32.load offset=4 i32.add i32.load local.set $11 - local.get $9 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store i32.const 3 global.set $~argumentsLength - local.get $8 + local.get $9 local.get $10 i32.add local.get $11 + local.get $3 local.get $1 - local.get $2 i32.const 9328 i32.load call_indirect (type $15) f32.store - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|01 end end @@ -24816,12 +24559,12 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $7 + local.get $8 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -24834,9 +24577,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get local.set $6 @@ -24861,14 +24604,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9360 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9360 call $~lib/array/Array#map global.get $std/array/i @@ -24901,14 +24643,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9392 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9392 call $~lib/array/Array#map global.get $std/array/i @@ -25034,14 +24775,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9488 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9488 call $~lib/array/Array#filter drop @@ -25075,14 +24815,13 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9520 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9520 call $~lib/array/Array#filter drop @@ -25203,14 +24942,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 i32.const 4 call $~lib/array/Array#reduce @@ -25227,14 +24965,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9648 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9648 i32.const 0 call $~lib/array/Array#reduce @@ -25248,14 +24985,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9680 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9680 i32.const 0 call $~lib/array/Array#reduce @@ -25268,14 +25004,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9712 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9712 i32.const 0 call $~lib/array/Array#reduce @@ -25308,14 +25043,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9744 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9744 i32.const 0 call $~lib/array/Array#reduce @@ -25436,14 +25170,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9840 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9840 i32.const 4 call $~lib/array/Array#reduceRight @@ -25460,14 +25193,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9872 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9872 i32.const 0 call $~lib/array/Array#reduceRight @@ -25481,14 +25213,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9904 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9904 i32.const 0 call $~lib/array/Array#reduceRight @@ -25501,14 +25232,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9936 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9936 i32.const 0 call $~lib/array/Array#reduceRight @@ -25541,14 +25271,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9968 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9968 i32.const 0 call $~lib/array/Array#reduceRight @@ -26317,23 +26046,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -26342,25 +26069,24 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store - local.get $2 + local.get $1 local.get $3 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -26385,7 +26111,7 @@ i32.store offset=8 block $__inlined_func$std/array/isArraysEqual$13 (result i32) i32.const 0 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26395,15 +26121,14 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.set $3 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -26411,7 +26136,7 @@ block $folding-inner01 local.get $1 call $~lib/array/Array#get:length - local.get $3 + local.get $7 i32.ne br_if $folding-inner01 local.get $0 @@ -26419,15 +26144,15 @@ i32.eq br_if $folding-inner1 loop $for-loop|02 - local.get $2 local.get $3 + local.get $7 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.tee $5 local.get $5 @@ -26437,7 +26162,7 @@ local.get $1 i32.store local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.tee $5 local.get $5 @@ -26451,19 +26176,19 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $3 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $7 + local.get $8 local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 @@ -26475,23 +26200,23 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.get $5 f64.ne br_if $folding-inner01 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|02 end end @@ -26541,20 +26266,18 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 10720 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10720 i32.store offset=8 local.get $0 @@ -26612,23 +26335,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -26637,25 +26358,24 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store - local.get $2 + local.get $1 local.get $3 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -26696,7 +26416,7 @@ i32.const 4 i32.const 10928 call $~lib/rt/__newArray - local.tee $1 + local.tee $3 i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26704,7 +26424,7 @@ i32.const 4 i32.const 10960 call $~lib/rt/__newArray - local.tee $2 + local.tee $7 i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -26712,7 +26432,7 @@ i32.const 4 i32.const 10992 call $~lib/rt/__newArray - local.tee $3 + local.tee $8 i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26720,7 +26440,7 @@ i32.const 4 i32.const 11024 call $~lib/rt/__newArray - local.tee $7 + local.tee $9 i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26728,57 +26448,57 @@ i32.const 4 i32.const 11072 call $~lib/rt/__newArray - local.tee $8 + local.tee $10 i32.store offset=300 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $9 + local.tee $11 i32.store offset=304 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $10 + local.tee $12 i32.store offset=308 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $0 i32.store offset=312 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $0 + local.tee $1 i32.store offset=316 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $12 + local.tee $13 i32.store offset=320 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 + local.get $3 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.store - local.get $2 + local.get $7 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 11152 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 - local.get $2 - local.get $1 + local.get $7 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26791,24 +26511,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store - local.get $3 + local.get $8 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 11184 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 + local.get $8 local.get $3 - local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26821,18 +26541,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26845,18 +26565,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $9 - local.get $8 + local.get $11 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26869,18 +26589,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $12 i32.store - local.get $10 + local.get $12 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $12 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 + local.get $12 local.get $10 - local.get $8 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26893,18 +26613,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $0 i32.store - local.get $11 + local.get $0 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $11 - local.get $8 + local.get $0 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26917,18 +26637,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $0 - local.get $8 + local.get $1 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26941,9 +26661,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.store - local.get $12 + local.get $13 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer i32.const 24 @@ -26954,13 +26674,14 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $0 + local.tee $1 i32.store offset=8 i32.const 1 global.set $~argumentsLength @@ -26976,10 +26697,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -26988,83 +26708,81 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.le_s select - local.set $3 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $7 i32.sub - local.tee $2 + local.tee $3 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $3 i32.const 2 i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 local.set $9 - local.get $8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.get $3 + local.get $7 i32.const 2 i32.shl i32.add - local.set $3 + local.set $7 i32.const 0 - local.set $0 - local.get $2 + local.set $1 + local.get $3 i32.const 2 i32.shl - local.set $2 + local.set $3 loop $while-continue|05 - local.get $0 - local.get $2 + local.get $1 + local.get $3 i32.lt_u if - local.get $0 + local.get $1 local.get $9 i32.add - local.get $0 - local.get $3 + local.get $1 + local.get $7 i32.add i32.load - local.tee $8 + local.tee $10 i32.store - local.get $7 local.get $8 + local.get $10 i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end @@ -27077,42 +26795,38 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $7 + local.get $8 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11216 i32.store offset=4 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.const 11216 call $~lib/array/Array#sort local.tee $0 i32.store offset=12 i32.const 1 local.set $3 - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $2 + local.set $1 loop $for-loop|023 local.get $1 local.get $2 - i32.lt_s + i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $0 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get local.tee $7 i32.store offset=16 @@ -27122,7 +26836,7 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $8 - local.get $1 + local.get $2 call $~lib/array/Array#__get local.tee $8 i32.store offset=20 @@ -27143,13 +26857,12 @@ i32.const 1 else global.get $~lib/memory/__stack_pointer - local.tee $9 local.get $7 i32.store local.get $7 i32.load offset=4 local.set $7 - local.get $9 + global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $7 @@ -27162,10 +26875,10 @@ local.set $3 br $for-break0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|023 end end @@ -27241,13 +26954,14 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27256,13 +26970,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 29 call $~lib/rt/itcms/__new @@ -27405,13 +27118,14 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27420,81 +27134,80 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 32 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2048 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 local.get $2 + i32.store offset=12 local.get $3 - i32.store local.get $2 + i32.store local.get $3 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2048 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 512 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -27502,20 +27215,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.get $2 + local.get $3 i32.store i32.const 0 - local.set $1 + local.set $2 loop $for-loop|04 - local.get $1 + local.get $2 i32.const 512 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 - i32.store offset=4 local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -27524,39 +27236,37 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 31 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - i32.const 511 local.get $1 + i32.const 511 + local.get $2 i32.sub i32.store - local.get $7 + 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 $3 + local.get $1 i32.store offset=8 + local.get $3 local.get $2 local.get $1 - local.get $3 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -27565,15 +27275,15 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $3 i32.store offset=336 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 11408 i32.store offset=8 - local.get $2 + local.get $3 i32.const 11408 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27590,7 +27300,7 @@ i32.const 34 i32.const 11648 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=344 global.get $~lib/memory/__stack_pointer local.get $0 @@ -27606,23 +27316,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 11696 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11696 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27631,17 +27339,16 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 block $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11696 i32.store offset=12 local.get $0 @@ -27663,22 +27370,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 1 - local.set $1 - local.get $7 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store local.get $3 call $~lib/array/Array#get:length local.set $7 loop $for-loop|05 - local.get $1 + local.get $2 local.get $7 i32.lt_s if @@ -27686,7 +27392,7 @@ local.get $3 i32.store offset=8 local.get $3 - local.get $1 + local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get @@ -27698,7 +27404,7 @@ local.get $3 i32.store offset=8 local.get $3 - local.get $1 + local.get $2 call $~lib/array/Array#__get local.set $9 global.get $~lib/memory/__stack_pointer @@ -27721,10 +27427,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|05 end end @@ -27756,7 +27462,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27767,22 +27473,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $3 i32.ne @@ -27795,7 +27500,7 @@ br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 end local.get $0 - local.get $2 + local.get $1 i32.eq if global.get $~lib/memory/__stack_pointer @@ -27806,9 +27511,9 @@ br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|06 - local.get $1 + local.get $2 local.get $3 i32.lt_s if @@ -27816,17 +27521,17 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 local.get $1 + local.get $2 call $~lib/array/Array#__get local.set $8 global.get $~lib/memory/__stack_pointer @@ -27841,13 +27546,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $9 i64.const 0 i64.store - local.get $9 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store - local.get $9 + global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $7 @@ -27868,10 +27572,10 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|06 end end @@ -27891,7 +27595,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -27900,13 +27605,14 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -27915,13 +27621,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 16 call $~lib/rt/itcms/__new @@ -28000,9 +27705,9 @@ local.get $8 i32.store i32.const 0 - local.set $1 + local.set $2 loop $for-loop|045 - local.get $1 + local.get $2 i32.const 400 i32.lt_s if @@ -28015,7 +27720,7 @@ i32.trunc_sat_f64_s local.set $9 i32.const 0 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -28025,25 +27730,25 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill i32.const 11568 local.set $3 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store loop $for-loop|07 - local.get $2 + local.get $0 local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $10 local.get $3 i32.store offset=4 - local.get $10 + global.get $~lib/memory/__stack_pointer + local.set $10 + global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=12 call $~lib/math/NativeMath.random @@ -28070,10 +27775,9 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store block $__inlined_func$~lib/string/String#charAt$735 @@ -28084,21 +27788,21 @@ i32.shr_u i32.ge_u if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 + local.set $1 br $__inlined_func$~lib/string/String#charAt$735 end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 local.get $11 i32.const 1 i32.shl @@ -28112,18 +27816,18 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $10 local.get $3 - local.get $0 + local.get $1 call $~lib/string/String.__concat local.tee $3 i32.store - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|07 end end @@ -28135,13 +27839,13 @@ local.get $3 i32.store offset=8 local.get $8 - local.get $1 + local.get $2 local.get $3 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|045 end end @@ -28166,20 +27870,18 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $8 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store offset=8 local.get $8 @@ -28210,28 +27912,27 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $3 - local.get $1 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $1 - i32.const 0 local.set $2 + i32.const 0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28241,50 +27942,48 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinBooleanArray$19 local.get $0 i32.const 1 i32.sub - local.tee $8 + local.tee $0 i32.const 0 i32.lt_s if - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray$19 end block $folding-inner04 - local.get $8 + local.get $0 i32.eqz if i32.const 11792 i32.const 11824 - local.get $3 + local.get $7 i32.load8_u select - local.set $0 + local.set $1 br $folding-inner04 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 11856 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 i32.shr_u - local.tee $7 + local.tee $8 i32.const 5 i32.add - local.get $8 + local.get $0 i32.mul i32.const 5 i32.add @@ -28293,15 +27992,15 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store offset=4 loop $for-loop|15 - local.get $2 - local.get $8 - i32.lt_s + local.get $0 + local.get $3 + i32.gt_s if - local.get $2 local.get $3 + local.get $7 i32.add i32.load8_u local.tee $10 @@ -28309,8 +28008,8 @@ i32.const 4 i32.add local.set $11 - local.get $0 local.get $1 + local.get $2 i32.const 1 i32.shl i32.add @@ -28322,70 +28021,70 @@ i32.const 1 i32.shl memory.copy - local.get $1 + local.get $2 local.get $11 i32.add - local.set $1 - local.get $7 + local.set $2 + local.get $8 if - local.get $0 local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11856 - local.get $7 + local.get $8 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.add - local.set $1 + local.set $2 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|15 end end - local.get $3 - local.get $8 + local.get $0 + local.get $7 i32.add i32.load8_u - local.tee $2 + local.tee $0 i32.eqz i32.const 4 i32.add local.set $3 - local.get $0 local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11792 i32.const 11824 - local.get $2 + local.get $0 select local.get $3 i32.const 1 i32.shl memory.copy - local.get $1 + local.get $2 local.get $3 i32.add - local.tee $1 + local.tee $0 local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner04 end global.get $~lib/memory/__stack_pointer @@ -28404,12 +28103,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 11888 i32.store offset=8 - local.get $0 + local.get $1 i32.const 11888 call $~lib/string/String.__eq i32.eqz @@ -28428,10 +28127,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=352 local.get $0 @@ -28463,10 +28161,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12032 i32.store offset=352 local.get $0 @@ -28498,10 +28195,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12096 i32.store offset=352 local.get $0 @@ -28533,13 +28229,12 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12288 i32.store offset=352 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -28548,25 +28243,24 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12288 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/util/string/joinFloatArray local.set $0 @@ -28599,10 +28293,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=352 local.get $0 @@ -28628,7 +28321,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 i32.const 13 @@ -28685,7 +28379,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 10 @@ -28932,10 +28627,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -28944,16 +28638,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -28962,28 +28655,27 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $7 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28993,40 +28685,38 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinIntegerArray$20 - local.get $7 + local.get $2 i32.const 1 i32.sub local.tee $7 i32.const 0 i32.lt_s if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray$20 end block $folding-inner05 local.get $7 i32.eqz if - local.get $2 + local.get $3 i32.load16_u call $~lib/util/number/utoa32 - local.set $0 + local.set $1 br $folding-inner05 end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 11856 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 @@ -29043,20 +28733,20 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 loop $for-loop|08 - local.get $3 + local.get $1 local.get $7 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $2 local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -29067,7 +28757,7 @@ local.set $0 local.get $8 if - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl @@ -29082,19 +28772,19 @@ i32.add local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|08 end end - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $2 + local.get $3 local.get $7 i32.const 1 i32.shl @@ -29108,20 +28798,20 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner05 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray$20 end global.get $~lib/memory/__stack_pointer @@ -29138,12 +28828,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 14288 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14288 call $~lib/string/String.__eq i32.eqz @@ -29162,10 +28852,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -29174,16 +28863,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -29192,28 +28880,27 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $7 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29223,40 +28910,38 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinIntegerArray$21 - local.get $7 + local.get $2 i32.const 1 i32.sub local.tee $7 i32.const 0 i32.lt_s if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray$21 end block $folding-inner06 local.get $7 i32.eqz if - local.get $2 + local.get $3 i32.load16_s call $~lib/util/number/itoa32 - local.set $0 + local.set $1 br $folding-inner06 end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 11856 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 @@ -29273,20 +28958,20 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 loop $for-loop|09 - local.get $3 + local.get $1 local.get $7 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $2 local.get $3 + local.get $1 i32.const 1 i32.shl i32.add @@ -29297,7 +28982,7 @@ local.set $0 local.get $8 if - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl @@ -29312,19 +28997,19 @@ i32.add local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|09 end end - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $2 + local.get $3 local.get $7 i32.const 1 i32.shl @@ -29338,20 +29023,20 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner06 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray$21 end global.get $~lib/memory/__stack_pointer @@ -29368,12 +29053,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 14368 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14368 call $~lib/string/String.__eq i32.eqz @@ -29422,10 +29107,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -29434,16 +29118,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -29452,25 +29135,24 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/util/string/joinIntegerArray local.set $0 @@ -29507,10 +29189,9 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=52 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -29519,16 +29200,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -29537,28 +29217,27 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $7 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29568,23 +29247,22 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinIntegerArray$22 - local.get $7 + local.get $2 i32.const 1 i32.sub local.tee $7 i32.const 0 i32.lt_s if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray$22 end block $folding-inner07 @@ -29592,7 +29270,7 @@ i32.eqz if block $__inlined_func$~lib/util/number/itoa64$2 (result i32) - local.get $2 + local.get $3 i64.load i64.extend32_s local.set $4 @@ -29605,13 +29283,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store local.get $4 i64.eqz if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -29628,7 +29305,7 @@ i32.wrap_i64 i32.const 1 i32.shl - local.tee $0 + local.tee $1 select local.tee $4 i64.const 4294967295 @@ -29637,47 +29314,47 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.wrap_i64 - local.tee $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -29686,16 +29363,16 @@ local.tee $3 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store local.get $0 - local.get $2 - i32.add local.get $1 + i32.add + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut else @@ -29750,25 +29427,25 @@ i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store local.get $0 - local.get $2 + local.get $1 i32.add local.get $4 - local.get $1 + local.get $2 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $1 if - local.get $2 + local.get $0 i32.const 45 i32.store16 end @@ -29776,16 +29453,15 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 end - local.set $0 + local.set $1 br $folding-inner07 end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 11856 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11852 i32.load i32.const 1 @@ -29802,20 +29478,20 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 loop $for-loop|010 - local.get $3 + local.get $1 local.get $7 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $2 local.get $3 + local.get $1 i32.const 3 i32.shl i32.add @@ -29826,7 +29502,7 @@ local.set $0 local.get $8 if - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl @@ -29841,19 +29517,19 @@ i32.add local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|010 end end - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $2 + local.get $3 local.get $7 i32.const 3 i32.shl @@ -29867,20 +29543,20 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray$22 end global.get $~lib/memory/__stack_pointer @@ -29897,12 +29573,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 14704 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -29977,7 +29653,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 29 @@ -30020,16 +29697,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30038,22 +29714,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=4 local.set $2 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $1 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 @@ -30067,19 +29742,18 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer @@ -30091,17 +29765,16 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 11568 @@ -30116,10 +29789,9 @@ i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 11568 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 i32.const 11852 @@ -30133,32 +29805,33 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $2 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $8 i32.store - local.get $9 + local.get $8 if - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.set $9 + global.get $~lib/memory/__stack_pointer local.get $8 - local.get $9 i32.store offset=16 - local.get $9 + local.get $8 call $~lib/array/Array#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 local.get $8 - local.get $0 + i32.store offset=12 local.get $9 + local.get $0 + local.get $8 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 @@ -30166,13 +29839,12 @@ local.get $7 if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $0 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 11856 call $~lib/string/String.__concat @@ -30187,7 +29859,6 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 local.get $1 i32.const 2 @@ -30198,10 +29869,12 @@ i32.store local.get $1 if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -30210,7 +29883,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 local.get $1 call $~lib/string/String.__concat @@ -30249,7 +29922,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 42 @@ -30292,16 +29966,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30310,22 +29983,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=4 local.set $2 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $1 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 @@ -30339,19 +30011,18 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer @@ -30363,17 +30034,16 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 11568 @@ -30388,10 +30058,9 @@ i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 11568 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 i32.const 11852 @@ -30405,32 +30074,33 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $2 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $8 i32.store - local.get $9 + local.get $8 if - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.set $9 + global.get $~lib/memory/__stack_pointer local.get $8 - local.get $9 i32.store offset=16 - local.get $9 + local.get $8 call $~lib/array/Array#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 local.get $8 - local.get $0 + i32.store offset=12 local.get $9 + local.get $0 + local.get $8 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 @@ -30438,13 +30108,12 @@ local.get $7 if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $0 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 11856 call $~lib/string/String.__concat @@ -30459,7 +30128,6 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 local.get $1 i32.const 2 @@ -30470,10 +30138,12 @@ i32.store local.get $1 if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -30482,7 +30152,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 local.get $1 call $~lib/string/String.__concat @@ -30521,7 +30191,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 44 @@ -30572,16 +30243,15 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30590,22 +30260,21 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=4 local.set $2 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $1 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 @@ -30619,19 +30288,18 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer @@ -30643,17 +30311,16 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 11568 @@ -30668,10 +30335,9 @@ i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 11568 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 i32.const 11852 @@ -30685,32 +30351,33 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $2 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $9 + local.tee $8 i32.store - local.get $9 + local.get $8 if - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.set $9 + global.get $~lib/memory/__stack_pointer local.get $8 - local.get $9 i32.store offset=16 - local.get $9 + local.get $8 call $~lib/array/Array<~lib/array/Array>#toString - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 local.get $8 - local.get $0 + i32.store offset=12 local.get $9 + local.get $0 + local.get $8 call $~lib/string/String.__concat local.tee $0 i32.store offset=8 @@ -30718,13 +30385,12 @@ local.get $7 if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $0 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 11856 call $~lib/string/String.__concat @@ -30739,7 +30405,6 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 local.get $1 i32.const 2 @@ -30750,10 +30415,12 @@ i32.store local.get $1 if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -30762,7 +30429,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 local.get $1 call $~lib/string/String.__concat @@ -30801,7 +30468,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 29 @@ -30854,12 +30522,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $1 + local.tee $0 i32.store offset=456 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 10 i32.ne @@ -30872,19 +30540,19 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|7 - local.get $0 + local.get $1 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $1 call $~lib/array/Array#__get - local.get $0 + local.get $1 i32.ne if i32.const 0 @@ -30894,15 +30562,16 @@ 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 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 45 @@ -30950,7 +30619,7 @@ local.get $1 i32.store offset=468 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30963,85 +30632,84 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=4 - local.set $7 - local.get $0 + local.set $8 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $8 + local.set $9 i32.const 0 - local.set $1 + local.set $2 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|056 - local.get $0 - local.get $8 + local.get $1 + local.get $9 i32.lt_s if - local.get $7 - local.get $0 + local.get $8 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $0 if (result i32) - local.get $3 + local.get $0 i32.load offset=12 else i32.const 0 end - local.get $1 + local.get $2 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|056 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.shl local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 34 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store offset=8 - local.get $10 - local.get $1 + local.get $11 + local.get $2 i32.store offset=12 - local.get $10 + local.get $11 local.get $0 i32.store offset=8 + local.get $11 local.get $10 - local.get $9 i32.store offset=4 + local.get $11 local.get $10 - local.get $9 i32.store + local.get $11 local.get $10 - local.get $9 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 @@ -31050,30 +30718,30 @@ local.set $3 loop $for-loop|16 local.get $3 - local.get $8 + local.get $9 i32.lt_s if - local.get $7 + local.get $8 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $11 + local.tee $1 if local.get $0 - local.get $9 + local.get $10 i32.add - local.get $11 + local.get $1 i32.load offset=4 - local.get $11 + local.get $1 i32.load offset=12 i32.const 2 i32.shl - local.tee $11 + local.tee $1 memory.copy local.get $0 - local.get $11 + local.get $1 i32.add local.set $0 end @@ -31085,25 +30753,25 @@ end end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|27 - local.get $0 local.get $1 + local.get $2 i32.lt_s if - local.get $9 - local.get $9 - local.get $0 + local.get $10 + local.get $10 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|27 end end @@ -31111,8 +30779,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $10 + local.get $7 + local.get $11 i32.store offset=472 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -31123,9 +30791,9 @@ local.tee $0 i32.store offset=476 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store - local.get $10 + local.get $11 call $~lib/array/Array#get:length i32.const 8 i32.ne @@ -31138,37 +30806,37 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=52 - local.get $10 - local.get $1 + local.get $11 + local.get $2 call $~lib/array/Array#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=52 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 call $~lib/string/String.__eq i32.eqz @@ -31180,15 +30848,16 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|8 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 29 @@ -31239,19 +30908,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=492 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=4 i32.store offset=496 - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -31259,7 +30929,7 @@ i32.const 15920 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 2 @@ -31268,12 +30938,12 @@ call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $0 - local.get $2 + local.get $1 i32.store offset=500 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 15984 @@ -31287,17 +30957,16 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 2 i32.const 29 i32.const 0 @@ -31311,64 +30980,63 @@ i32.load offset=4 local.set $8 i32.const 0 - local.set $1 + local.set $3 loop $for-loop|067 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 - i32.store local.get $1 + i32.store local.get $3 local.get $2 + local.get $1 i32.load offset=12 - local.tee $10 - local.get $3 - local.get $10 + local.tee $9 + local.get $2 + local.get $9 i32.lt_s select i32.lt_s if - local.get $9 - local.get $2 - i32.store offset=12 - local.get $9 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 2 i32.shl - local.tee $10 - local.get $2 + local.tee $9 + local.get $1 i32.load offset=4 i32.add i32.load - local.tee $11 + local.tee $10 i32.store - local.get $9 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $11 + global.get $~lib/memory/__stack_pointer + local.get $10 + local.get $3 local.get $1 - local.get $2 i32.const 15984 i32.load call_indirect (type $1) - local.tee $9 + local.tee $10 i32.store offset=16 local.get $8 - local.get $10 - i32.add local.get $9 + i32.add + local.get $10 i32.store local.get $7 - local.get $9 + local.get $10 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|067 end end @@ -31536,9 +31204,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $4 local.get $0 local.get $1 i32.shl @@ -31601,13 +31270,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -31624,49 +31292,49 @@ i32.shr_u i32.const 1 i32.shl - local.tee $2 - select local.tee $0 + select + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -31675,19 +31343,19 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new local.tee $3 i32.store - local.get $2 + local.get $0 local.get $3 i32.add - local.get $0 + local.get $2 local.get $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 if local.get $3 i32.const 45 @@ -31718,13 +31386,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -31778,21 +31445,21 @@ i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 - local.get $0 local.get $1 + local.get $0 + local.get $2 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) ) diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 94378e232a..79a69c4efd 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1084,11 +1084,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1273,8 +1272,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1542,7 +1540,6 @@ local.get $1 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 i32.eqz if @@ -1559,7 +1556,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1576,7 +1572,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1598,7 +1594,6 @@ end ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner0 block $invalid block $~lib/array/Array @@ -1633,10 +1628,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1679,10 +1673,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1777,16 +1770,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -1830,34 +1822,34 @@ i32.const 1 local.get $1 i32.shl - local.tee $1 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -1869,7 +1861,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -1880,7 +1871,6 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 24 memory.fill @@ -1916,7 +1906,9 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1925,10 +1917,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 1 call $~lib/rt/itcms/__new @@ -1959,10 +1950,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 0 i32.const 1073741820 @@ -1998,10 +1988,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.const 1073741820 @@ -2026,10 +2015,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const -1 i32.const 1073741820 @@ -2054,10 +2042,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.const 3 @@ -2082,10 +2069,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.const -1 @@ -2110,10 +2096,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const -3 i32.const -1 @@ -2138,10 +2123,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const -4 i32.const 42 @@ -2166,10 +2150,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 42 i32.const 1073741820 @@ -2202,7 +2185,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2211,20 +2195,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -2246,9 +2228,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $0 i32.const 8 i32.const 1 call $~lib/rt/itcms/__new @@ -2296,20 +2279,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor @@ -2328,7 +2309,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load - local.tee $1 + local.tee $0 i32.store offset=16 block $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 (result i32) global.get $~lib/memory/__stack_pointer @@ -2344,21 +2325,20 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -2367,49 +2347,48 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 16 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.get $2 + local.get $1 i32.lt_u - local.get $2 + local.get $1 i32.const 1073741820 i32.gt_u i32.or @@ -2422,29 +2401,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $2 i32.store offset=4 - local.get $3 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 + local.get $2 local.get $0 - local.get $1 i32.store + local.get $2 local.get $0 - local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 + local.get $2 local.get $0 - local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -2454,7 +2432,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 br $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 end br $folding-inner1 diff --git a/tests/compiler/std/console.release.wat b/tests/compiler/std/console.release.wat index 199c9d3419..6fb1edc1d1 100644 --- a/tests/compiler/std/console.release.wat +++ b/tests/compiler/std/console.release.wat @@ -46,7 +46,6 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -57,10 +56,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 0 @@ -89,10 +87,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store i32.const 1168 @@ -113,10 +110,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1216 i32.store i32.const 1216 @@ -137,10 +133,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1264 i32.store i32.const 1264 @@ -161,10 +156,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1312 i32.store i32.const 1312 @@ -242,7 +236,6 @@ unreachable ) (func $~lib/console/console.assert (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -259,10 +252,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $0 @@ -276,7 +268,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/console/console.log (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -293,10 +284,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -307,7 +297,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/console/console.time (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -324,10 +313,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -338,7 +326,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/console/console.timeLog (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -355,10 +342,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -369,7 +355,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/console/console.timeEnd (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -386,10 +371,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index cc6eb07c78..96d4a1fb00 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1092,11 +1092,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1281,8 +1280,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1550,7 +1548,6 @@ local.get $1 ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - (local $2 i32) local.get $0 local.get $1 i32.store @@ -1567,7 +1564,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1584,7 +1580,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1638,7 +1634,6 @@ call $start:std/dataview ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1655,10 +1650,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1674,7 +1668,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -1683,14 +1676,13 @@ i32.add local.get $2 i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1707,13 +1699,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 5 call $~lib/rt/itcms/__new @@ -1761,10 +1752,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $3 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $3 @@ -1792,7 +1782,6 @@ ) (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1809,32 +1798,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 local.get $0 i32.load i32.sub local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/dataview/DataView#getFloat32 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) - (local $3 i32) - (local $4 f32) + (local $3 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1851,10 +1838,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -1907,17 +1893,16 @@ i32.or f32.reinterpret_i32 end - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/dataview/DataView#getFloat64 (param $0 i32) (param $1 i32) (result f64) (local $2 i64) - (local $3 i32) - (local $4 f64) + (local $3 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1934,10 +1919,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1993,15 +1977,14 @@ i64.rotr f64.reinterpret_i64 end - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/dataview/DataView#getInt8 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2018,10 +2001,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2037,7 +2019,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -2046,14 +2027,13 @@ i32.add i32.load8_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/dataview/DataView#getInt16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2070,10 +2050,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2095,7 +2074,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -2104,7 +2082,7 @@ i32.add i32.load16_s local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2124,7 +2102,6 @@ end ) (func $~lib/dataview/DataView#getInt32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2141,10 +2118,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2166,7 +2142,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -2175,7 +2150,7 @@ i32.add i32.load local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2198,7 +2173,6 @@ ) (func $~lib/dataview/DataView#getInt64 (param $0 i32) (param $1 i32) (result i64) (local $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2215,10 +2189,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2234,14 +2207,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=4 i64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2276,7 +2248,6 @@ end ) (func $~lib/dataview/DataView#getUint8 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2293,10 +2264,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2312,7 +2282,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -2321,14 +2290,13 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/dataview/DataView#getUint16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2345,10 +2313,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2370,7 +2337,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -2379,7 +2345,7 @@ i32.add i32.load16_u local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2397,7 +2363,6 @@ end ) (func $~lib/dataview/DataView#getUint32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2414,10 +2379,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2439,7 +2403,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -2448,7 +2411,7 @@ i32.add i32.load local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2471,7 +2434,6 @@ ) (func $~lib/dataview/DataView#getUint64 (param $0 i32) (param $1 i32) (result i64) (local $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2488,10 +2450,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2507,14 +2468,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=4 i64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2549,7 +2509,6 @@ end ) (func $~lib/dataview/DataView#setFloat32 (param $0 i32) (param $1 f32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2566,10 +2525,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2621,7 +2579,6 @@ ) (func $~lib/dataview/DataView#setFloat64 (param $0 i32) (param $1 f64) (param $2 i32) (local $3 i64) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2638,10 +2595,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2705,7 +2661,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/dataview/DataView#setInt16 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2722,10 +2677,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2766,7 +2720,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/dataview/DataView#setInt32 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2783,10 +2736,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2829,7 +2781,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/dataview/DataView#setInt64 (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2846,10 +2797,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2905,7 +2855,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/dataview/DataView#setUint16 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2922,10 +2871,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2966,7 +2914,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/dataview/DataView#setUint32 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2983,10 +2930,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3029,7 +2975,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/dataview/DataView#setUint64 (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3046,10 +2991,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3119,10 +3063,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 memory.size @@ -3157,7 +3100,7 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer block $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3169,20 +3112,20 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -3191,16 +3134,15 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -3268,95 +3210,95 @@ end br $folding-inner1 end - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.const 246 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i32.const 224 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 i32.const 88 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 3 i32.const 159 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4 i32.const 130 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 5 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 6 i32.const 67 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 7 i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load - local.tee $1 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $0 + local.set $0 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 + local.get $0 local.get $2 - local.get $1 local.get $3 - local.get $0 + local.get $1 i32.load offset=8 call $~lib/dataview/DataView#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3371,9 +3313,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3388,9 +3330,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3405,9 +3347,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3422,9 +3364,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -3439,9 +3381,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3456,9 +3398,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3473,9 +3415,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3490,9 +3432,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3507,9 +3449,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -3524,9 +3466,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getFloat64 f64.const 7936550095674706383278551e126 @@ -3540,9 +3482,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getFloat64 f64.const -411777475818852546741639e241 @@ -3556,9 +3498,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt8 i32.const -10 @@ -3572,9 +3514,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getInt8 i32.const -32 @@ -3588,9 +3530,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 call $~lib/dataview/DataView#getInt8 i32.const 88 @@ -3604,9 +3546,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 call $~lib/dataview/DataView#getInt8 i32.const -97 @@ -3620,9 +3562,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 call $~lib/dataview/DataView#getInt8 i32.const -126 @@ -3636,9 +3578,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 call $~lib/dataview/DataView#getInt8 i32.const 101 @@ -3652,9 +3594,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 call $~lib/dataview/DataView#getInt8 i32.const 67 @@ -3668,9 +3610,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 7 call $~lib/dataview/DataView#getInt8 i32.const 95 @@ -3684,9 +3626,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3703,9 +3645,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3722,9 +3664,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3741,9 +3683,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3760,9 +3702,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3779,9 +3721,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3798,9 +3740,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3817,9 +3759,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3836,9 +3778,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3855,9 +3797,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3874,9 +3816,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3893,9 +3835,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3912,9 +3854,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3931,9 +3873,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -3950,9 +3892,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -3967,9 +3909,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -3984,9 +3926,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4001,9 +3943,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4018,9 +3960,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4035,9 +3977,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4052,9 +3994,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4069,9 +4011,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4086,9 +4028,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4103,9 +4045,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4120,9 +4062,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getInt64 i64.const 6864441868736323830 @@ -4136,9 +4078,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt64 i64.const -657428103485373601 @@ -4152,9 +4094,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint8 i32.const 246 @@ -4168,9 +4110,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getUint8 i32.const 224 @@ -4184,9 +4126,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 call $~lib/dataview/DataView#getUint8 i32.const 88 @@ -4200,9 +4142,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 call $~lib/dataview/DataView#getUint8 i32.const 159 @@ -4216,9 +4158,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 call $~lib/dataview/DataView#getUint8 i32.const 130 @@ -4232,9 +4174,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 call $~lib/dataview/DataView#getUint8 i32.const 101 @@ -4248,9 +4190,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 call $~lib/dataview/DataView#getUint8 i32.const 67 @@ -4264,9 +4206,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 7 call $~lib/dataview/DataView#getUint8 i32.const 95 @@ -4280,9 +4222,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4299,9 +4241,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4318,9 +4260,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4337,9 +4279,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4356,9 +4298,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4375,9 +4317,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4394,9 +4336,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4413,9 +4355,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4432,9 +4374,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4451,9 +4393,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4470,9 +4412,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4489,9 +4431,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4508,9 +4450,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 5 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4527,9 +4469,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 6 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4546,9 +4488,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4563,9 +4505,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4580,9 +4522,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4597,9 +4539,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4614,9 +4556,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4631,9 +4573,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4648,9 +4590,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4665,9 +4607,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4682,9 +4624,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4699,9 +4641,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 4 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4716,9 +4658,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getUint64 i64.const 6864441868736323830 @@ -4732,9 +4674,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint64 i64.const -657428103485373601 @@ -4748,16 +4690,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 f32.const 1.5976661625240943e-18 i32.const 1 call $~lib/dataview/DataView#setFloat32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getFloat32 @@ -4772,16 +4714,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 f32.const 1976281973381696323584 i32.const 0 call $~lib/dataview/DataView#setFloat32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getFloat32 @@ -4796,16 +4738,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 f64.const -1094252199637739024055454e124 i32.const 1 call $~lib/dataview/DataView#setFloat64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getFloat64 f64.const -1094252199637739024055454e124 @@ -4819,16 +4761,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 f64.const 6.022586634778589e-103 i32.const 0 call $~lib/dataview/DataView#setFloat64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getFloat64 f64.const 6.022586634778589e-103 @@ -4842,10 +4784,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4854,13 +4795,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=8 i32.eqz if @@ -4872,21 +4812,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 i32.const 108 i32.store8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt8 i32.const 108 @@ -4900,16 +4839,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const -13360 i32.const 1 call $~lib/dataview/DataView#setInt16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4926,16 +4865,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 14689 i32.const 0 call $~lib/dataview/DataView#setInt16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4952,16 +4891,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1204680201 i32.const 1 call $~lib/dataview/DataView#setInt32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4976,16 +4915,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 660673230 i32.const 0 call $~lib/dataview/DataView#setInt32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -5000,16 +4939,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i64.const -3290739641816099749 i32.const 1 call $~lib/dataview/DataView#setInt64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getInt64 i64.const -3290739641816099749 @@ -5023,16 +4962,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i64.const 8178932412950708047 i32.const 0 call $~lib/dataview/DataView#setInt64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt64 i64.const 8178932412950708047 @@ -5046,10 +4985,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5058,13 +4996,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=8 i32.eqz if @@ -5076,21 +5013,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 i32.const 238 i32.store8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint8 i32.const 238 @@ -5104,16 +5040,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 58856 i32.const 1 call $~lib/dataview/DataView#setUint16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -5130,16 +5066,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 60400 i32.const 0 call $~lib/dataview/DataView#setUint16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -5156,16 +5092,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const -846805744 i32.const 1 call $~lib/dataview/DataView#setUint32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -5180,16 +5116,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const -1510791631 i32.const 0 call $~lib/dataview/DataView#setUint32 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -5204,16 +5140,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i64.const 2334704782995986958 i32.const 1 call $~lib/dataview/DataView#setUint64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getUint64 i64.const 2334704782995986958 @@ -5227,16 +5163,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i64.const -7123186897289856329 i32.const 0 call $~lib/dataview/DataView#setUint64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint64 i64.const -7123186897289856329 @@ -5250,15 +5186,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 i32.load - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5270,36 +5207,35 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 local.get $2 call $~lib/dataview/DataView#constructor - local.set $0 + local.set $1 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 offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -5310,9 +5246,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=8 i32.const 8 i32.ne diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 31d3fa0a0d..2ae40dbb48 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -1475,11 +1475,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1664,8 +1663,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -2027,14 +2025,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32$73 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2245,7 +2242,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -2255,8 +2251,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -2265,6 +2259,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -2445,16 +2441,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2529,7 +2524,6 @@ ) (func $~lib/date/Date#constructor (param $0 i64) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2546,35 +2540,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 4 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 local.get $0 i64.store offset=16 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 @@ -2621,7 +2613,6 @@ local.get $1 ) (func $~lib/date/Date#setTime (param $0 i32) (param $1 i64) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2656,13 +2647,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 local.get $1 i64.store offset=16 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2687,8 +2677,7 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/date/Date#getUTCHours (param $0 i32) (result i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2705,25 +2694,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.set $2 - local.get $1 + 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 i64.const 86400000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -2733,8 +2721,7 @@ i32.div_s ) (func $~lib/date/Date#getUTCMinutes (param $0 i32) (result i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2751,25 +2738,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.set $2 - local.get $1 + 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 i64.const 3600000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -2779,8 +2765,7 @@ i32.div_s ) (func $~lib/date/Date#getUTCSeconds (param $0 i32) (result i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2797,25 +2782,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.set $2 - local.get $1 + 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 i64.const 60000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -2825,8 +2809,7 @@ i32.div_s ) (func $~lib/date/Date#getUTCMilliseconds (param $0 i32) (result i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2843,25 +2826,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.set $2 - local.get $1 + 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 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -2869,8 +2851,7 @@ i32.wrap_i64 ) (func $~lib/date/Date#setUTCMilliseconds (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2887,23 +2868,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i64.load offset=16 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $3 + local.get $2 local.get $1 local.get $0 call $~lib/date/Date#getUTCMilliseconds @@ -2917,8 +2897,7 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/date/Date#setUTCSeconds (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2935,23 +2914,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i64.load offset=16 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $3 + local.get $2 local.get $1 local.get $0 call $~lib/date/Date#getUTCSeconds @@ -2967,8 +2945,7 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/date/Date#setUTCMinutes (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2985,23 +2962,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i64.load offset=16 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $3 + local.get $2 local.get $1 local.get $0 call $~lib/date/Date#getUTCMinutes @@ -3017,8 +2993,7 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/date/Date#setUTCHours (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3035,23 +3010,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i64.load offset=16 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $3 + local.get $2 local.get $1 local.get $0 call $~lib/date/Date#getUTCHours @@ -3069,7 +3043,6 @@ (func $~lib/date/Date#setUTCDate (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3086,10 +3059,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3097,34 +3069,33 @@ i32.load offset=8 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load - local.set $4 - local.get $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $4 local.get $2 + local.get $3 local.get $1 local.get $0 i64.load offset=16 @@ -3138,7 +3109,6 @@ (func $~lib/date/Date#setUTCMonth@varargs (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3169,10 +3139,9 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3181,36 +3150,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $1 local.get $0 i32.load offset=4 i32.ne if global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load - local.set $4 - local.get $1 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $4 local.get $3 + local.get $1 local.get $2 local.get $0 i64.load offset=16 @@ -3237,7 +3204,6 @@ (func $~lib/date/Date#setUTCFullYear (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3254,10 +3220,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3265,35 +3230,34 @@ i32.load i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 - local.get $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=8 - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - local.get $4 local.get $2 + local.get $3 local.get $0 i64.load offset=16 call $~lib/date/join @@ -3340,10 +3304,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3353,7 +3316,7 @@ i32.const -2 i32.and local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store block $__inlined_func$~lib/string/String#padStart$384 @@ -3366,44 +3329,44 @@ local.get $1 i32.const 1 i32.shl - local.tee $6 + local.tee $5 local.get $3 i32.lt_u i32.or if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/string/String#padStart$384 end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 call $~lib/rt/itcms/__new local.tee $1 i32.store offset=4 - local.get $6 + local.get $5 local.get $3 i32.sub - local.tee $6 + local.tee $7 local.get $2 i32.gt_u if - local.get $6 - local.get $6 + local.get $7 + local.get $7 i32.const 2 i32.sub local.get $2 i32.div_u local.get $2 i32.mul - local.tee $5 + local.tee $6 i32.sub - local.set $7 + local.set $5 loop $while-continue|0 local.get $4 - local.get $5 + local.get $6 i32.lt_u if local.get $1 @@ -3420,19 +3383,19 @@ end end local.get $1 - local.get $5 + local.get $6 i32.add i32.const 1872 - local.get $7 + local.get $5 memory.copy else local.get $1 i32.const 1872 - local.get $6 + local.get $7 memory.copy end local.get $1 - local.get $6 + local.get $7 i32.add local.get $0 local.get $3 @@ -3464,7 +3427,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3481,10 +3443,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $1 @@ -3494,7 +3455,7 @@ i32.const 0 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer @@ -3505,12 +3466,11 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.load local.tee $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer @@ -3526,22 +3486,21 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 if + global.get $~lib/memory/__stack_pointer local.get $5 - local.get $6 i32.store offset=8 local.get $2 - local.get $6 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -3560,24 +3519,23 @@ i32.const 0 local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 3456 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $4 i32.const 3452 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $1 + local.get $4 i32.mul i32.add i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=12 i32.const 0 local.set $2 @@ -3587,55 +3545,54 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $0 local.get $2 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $1 + local.get $6 if - local.get $7 - local.get $1 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 + i32.store offset=8 + local.get $5 local.get $3 i32.const 1 i32.shl i32.add - local.get $1 - local.get $1 + local.get $6 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 + local.tee $6 i32.const 1 i32.shl memory.copy - local.get $1 local.get $3 + local.get $6 i32.add local.set $3 end - local.get $5 + local.get $1 if - local.get $6 + local.get $5 local.get $3 i32.const 1 i32.shl i32.add i32.const 3456 - local.get $5 + local.get $1 i32.const 1 i32.shl memory.copy + local.get $1 local.get $3 - local.get $5 i32.add local.set $3 end @@ -3647,7 +3604,6 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 local.get $4 i32.const 2 @@ -3658,10 +3614,10 @@ i32.store offset=4 local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $6 + local.get $5 local.get $3 i32.const 1 i32.shl @@ -3679,11 +3635,10 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3700,10 +3655,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -3712,12 +3666,12 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/util/string/joinStringArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -3733,7 +3687,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const -64 i32.add @@ -3744,13 +3697,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 64 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $2 local.get $0 i32.load local.tee $1 @@ -3762,7 +3716,7 @@ i32.ge_s i32.or if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.const 1648 local.get $3 @@ -3792,58 +3746,57 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$385 (result i32) - local.get $1 - local.get $3 - i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + block $__inlined_func$~lib/string/String#concat$385 local.get $4 - i32.store offset=4 - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $3 - i32.store - local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const -2 i32.and - local.set $6 + local.tee $6 local.get $5 - local.get $4 - i32.store - local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $7 - local.get $6 i32.add local.tee $1 i32.eqz if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 + local.set $1 br $__inlined_func$~lib/string/String#concat$385 end global.get $~lib/memory/__stack_pointer @@ -3854,21 +3807,19 @@ i32.store offset=4 local.get $1 local.get $3 - local.get $6 + local.get $5 memory.copy local.get $1 - local.get $6 + local.get $5 i32.add local.get $4 - local.get $7 + local.get $6 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3883,10 +3834,9 @@ local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 i32.const 2 @@ -4080,7 +4030,6 @@ ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4097,14 +4046,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4119,7 +4067,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -4128,11 +4075,11 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $2 local.get $1 i32.const 20 i32.sub @@ -4141,16 +4088,16 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 i32.const 0 local.get $1 - local.get $3 + local.get $2 call $~lib/util/string/compareImpl i32.eqz local.set $0 @@ -4174,7 +4121,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 52 i32.sub @@ -4191,10 +4137,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 52 memory.fill + global.get $~lib/memory/__stack_pointer + local.set $1 i32.const 28 i32.const 5 call $~lib/rt/itcms/__new @@ -4218,82 +4165,81 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $1 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=8 - local.set $5 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.tee $6 + local.tee $0 local.get $1 i32.const 3 i32.lt_s i32.sub - local.tee $7 + local.tee $5 i32.const 0 i32.lt_s - local.set $0 + local.set $6 local.get $1 i32.const 1579 i32.add i32.load8_u - local.get $7 + local.get $5 i32.const 3 i32.const 0 - local.get $0 + local.get $6 select i32.sub i32.const 4 i32.div_s - local.get $7 + local.get $5 i32.const 99 i32.const 0 - local.get $0 + local.get $6 select i32.sub i32.const 100 i32.div_s i32.sub - local.get $7 + local.get $5 i32.const 399 i32.const 0 - local.get $0 + local.get $6 select i32.sub i32.const 400 i32.div_s i32.add - local.get $7 + local.get $5 i32.add i32.add - local.get $5 + local.get $4 i32.add i32.const 7 i32.rem_s - local.set $0 - local.get $4 - local.get $6 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 31 i32.shr_s - local.tee $4 - local.get $6 + local.tee $6 + local.get $0 i32.add - local.get $4 + local.get $6 i32.xor i32.const 4 call $~lib/date/stringify - local.tee $4 + local.tee $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $3 @@ -4316,56 +4262,56 @@ local.get $2 i32.const 7 i32.const 0 - local.get $0 + local.get $5 i32.const 0 i32.lt_s select - local.get $0 + local.get $5 i32.add i32.const 2 i32.shl i32.add i32.load - local.tee $0 + local.tee $2 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 call $~lib/date/stringify - local.tee $2 + local.tee $3 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=28 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer i32.const 5200 i32.const 5232 - local.get $6 + local.get $0 i32.const 0 i32.lt_s select - local.tee $3 + local.tee $0 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=44 global.get $~lib/memory/__stack_pointer i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=48 i32.const 5152 - local.get $0 + local.get $2 i32.store i32.const 5152 - local.get $0 + local.get $2 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -4385,39 +4331,39 @@ i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=48 i32.const 5160 - local.get $2 + local.get $3 i32.store i32.const 5152 - local.get $2 + local.get $3 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=48 i32.const 5164 - local.get $3 + local.get $0 i32.store i32.const 5152 - local.get $3 + local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 5152 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=48 i32.const 5168 - local.get $4 + local.get $6 i32.store i32.const 5152 - local.get $4 + local.get $6 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -4454,19 +4400,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 32 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/date/Date#getUTCHours i32.const 2 call $~lib/date/stringify - local.tee $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4476,7 +4421,7 @@ call $~lib/date/Date#getUTCMinutes i32.const 2 call $~lib/date/stringify - local.tee $1 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4489,10 +4434,10 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4501,26 +4446,26 @@ i32.const 5456 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=28 i32.const 5456 - local.get $2 + local.get $1 i32.store i32.const 5456 - local.get $2 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 5456 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=28 i32.const 5464 - local.get $1 + local.get $2 i32.store i32.const 5456 - local.get $1 + local.get $2 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -4559,7 +4504,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 76 i32.sub @@ -4576,10 +4520,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 76 memory.fill + global.get $~lib/memory/__stack_pointer + local.set $1 i32.const 28 i32.const 5 call $~lib/rt/itcms/__new @@ -4603,96 +4548,95 @@ local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $5 - local.get $4 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=8 - local.set $6 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.tee $7 - local.get $5 + local.tee $5 + local.get $1 i32.const 3 i32.lt_s i32.sub - local.tee $8 + local.tee $6 i32.const 0 i32.lt_s - local.set $1 - local.get $5 + local.set $7 + local.get $1 i32.const 1579 i32.add i32.load8_u - local.get $8 + local.get $6 i32.const 3 i32.const 0 - local.get $1 + local.get $7 select i32.sub i32.const 4 i32.div_s - local.get $8 + local.get $6 i32.const 99 i32.const 0 - local.get $1 + local.get $7 select i32.sub i32.const 100 i32.div_s i32.sub - local.get $8 + local.get $6 i32.const 399 i32.const 0 - local.get $1 + local.get $7 select i32.sub i32.const 400 i32.div_s i32.add - local.get $8 + local.get $6 i32.add i32.add - local.get $6 + local.get $4 i32.add i32.const 7 i32.rem_s - local.set $1 - local.get $4 - local.get $7 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.const 31 i32.shr_s - local.tee $4 - local.get $7 + local.tee $7 + local.get $5 i32.add - local.get $4 + local.get $7 i32.xor i32.const 4 call $~lib/date/stringify - local.tee $4 + local.tee $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $3 - local.get $5 + local.get $1 i32.const 1 i32.sub i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $2 @@ -4701,23 +4645,23 @@ local.get $2 i32.const 7 i32.const 0 - local.get $1 + local.get $6 i32.const 0 i32.lt_s select - local.get $1 + local.get $6 i32.add i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $2 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 2 call $~lib/date/stringify - local.tee $2 + local.tee $3 i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4727,7 +4671,7 @@ call $~lib/date/Date#getUTCHours i32.const 2 call $~lib/date/stringify - local.tee $5 + local.tee $4 i32.store offset=28 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4750,28 +4694,28 @@ local.tee $0 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 1616 i32.const 3456 - local.get $7 + local.get $5 i32.const 0 i32.lt_s select - local.tee $7 + local.tee $5 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=60 global.get $~lib/memory/__stack_pointer local.get $6 @@ -4783,78 +4727,78 @@ i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=72 i32.const 6368 - local.get $1 + local.get $2 i32.store i32.const 6368 - local.get $1 + local.get $2 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=72 i32.const 6372 - local.get $2 + local.get $3 i32.store i32.const 6368 - local.get $2 + local.get $3 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=72 i32.const 6376 - local.get $3 + local.get $1 i32.store i32.const 6368 - local.get $3 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=72 i32.const 6380 - local.get $7 + local.get $5 i32.store i32.const 6368 - local.get $7 + local.get $5 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store offset=72 i32.const 6384 - local.get $4 + local.get $7 i32.store i32.const 6368 - local.get $4 + local.get $7 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=72 i32.const 6392 - local.get $5 + local.get $4 i32.store i32.const 6368 - local.get $5 + local.get $4 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -4901,7 +4845,6 @@ (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4918,10 +4861,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -4933,7 +4875,7 @@ local.tee $3 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4941,7 +4883,6 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store local.get $0 @@ -4950,10 +4891,10 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4967,13 +4908,13 @@ i32.gt_s select local.tee $2 - local.get $5 + local.get $4 local.get $2 - local.get $5 + local.get $4 i32.lt_s select local.set $2 - local.get $5 + local.get $4 local.get $3 i32.sub local.set $4 @@ -4983,10 +4924,9 @@ i32.le_s if global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -5019,7 +4959,6 @@ (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5036,10 +4975,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -5048,7 +4986,7 @@ i32.const 0 i32.gt_s select - local.tee $4 + local.tee $3 local.get $0 i32.const 20 i32.sub @@ -5057,10 +4995,10 @@ i32.shr_u local.tee $1 local.get $1 - local.get $4 + local.get $3 i32.gt_s select - local.tee $4 + local.tee $3 local.get $2 i32.const 0 local.get $2 @@ -5075,34 +5013,34 @@ select local.tee $2 local.get $2 - local.get $4 + local.get $3 i32.gt_s select i32.const 1 i32.shl - local.set $5 - local.get $4 + local.set $4 + local.get $3 local.get $2 local.get $2 - local.get $4 + local.get $3 i32.lt_s select i32.const 1 i32.shl local.tee $2 - local.get $5 + local.get $4 i32.sub - local.tee $4 + local.tee $3 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 return end - local.get $5 + local.get $4 i32.eqz local.get $2 local.get $1 @@ -5119,16 +5057,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 2 call $~lib/rt/itcms/__new local.tee $1 i32.store offset=4 local.get $1 local.get $0 - local.get $5 - i32.add local.get $4 + i32.add + local.get $3 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5207,10 +5145,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store block $folding-inner0 @@ -5507,10 +5444,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -5639,10 +5575,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5728,10 +5663,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -5766,7 +5700,6 @@ br $folding-inner2 end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 i32.store offset=8 local.get $0 @@ -5775,8 +5708,8 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $7 - local.get $6 + local.set $8 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 2147483647 @@ -5794,10 +5727,10 @@ i32.shr_u local.tee $5 if - local.get $7 + local.get $8 i32.eqz if - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/rt/__newArray local.tee $2 @@ -5812,14 +5745,14 @@ br $folding-inner2 end else - local.get $7 + local.get $8 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 local.get $2 local.get $2 - local.get $7 + local.get $8 i32.gt_s select local.tee $3 @@ -5876,66 +5809,64 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=24 loop $while-continue|1 global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=28 local.get $0 local.get $1 local.get $3 call $~lib/string/String#indexOf - local.tee $9 + local.tee $6 i32.const -1 i32.xor if - local.get $9 + local.get $6 local.get $3 i32.sub - local.tee $6 + local.tee $7 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.const 1 i32.shl - local.tee $10 + local.tee $7 i32.const 2 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $10 i32.store offset=32 - local.get $6 + local.get $10 local.get $0 local.get $3 i32.const 1 i32.shl i32.add - local.get $10 + local.get $7 memory.copy global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $10 i32.store offset=28 - local.get $8 - local.get $6 + local.get $9 + local.get $10 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $8 + local.get $9 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=28 - local.get $8 + local.get $9 i32.const 3456 call $~lib/array/Array<~lib/string/String>#push end @@ -5947,7 +5878,7 @@ i32.eq br_if $folding-inner3 local.get $5 - local.get $9 + local.get $6 i32.add local.set $3 br $while-continue|1 @@ -5957,18 +5888,17 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $8 + local.get $9 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=28 - local.get $8 + local.get $9 local.get $0 call $~lib/array/Array<~lib/string/String>#push br $folding-inner3 end - local.get $7 + local.get $8 local.get $3 i32.sub local.tee $1 @@ -5993,23 +5923,22 @@ local.get $1 memory.copy global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=28 - local.get $8 + local.get $9 local.get $2 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $8 + local.get $9 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=28 - local.get $8 + local.get $9 i32.const 3456 call $~lib/array/Array<~lib/string/String>#push end @@ -6017,7 +5946,7 @@ i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return end i32.const 41264 @@ -6042,11 +5971,10 @@ i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 ) (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6081,10 +6009,9 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -6099,7 +6026,6 @@ local.get $0 ) (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6116,23 +6042,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6149,10 +6073,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -6168,10 +6091,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -6220,11 +6142,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 76 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6243,13 +6164,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=8 local.get $0 @@ -6302,10 +6222,9 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6314,10 +6233,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store block $__inlined_func$~lib/string/String#charCodeAt$386 @@ -6330,7 +6248,7 @@ i32.shr_u i32.ge_u if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -6385,10 +6303,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=8 i32.const 0 @@ -6397,7 +6314,7 @@ local.get $3 i32.const 1 i32.add - local.tee $4 + local.tee $5 call $~lib/string/String#indexOf local.tee $7 i32.const -1 @@ -6408,17 +6325,17 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 + local.get $5 local.get $7 call $~lib/string/String#substring - local.tee $4 + local.tee $5 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/util/string/strtol - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6437,7 +6354,7 @@ i32.store local.get $7 call $~lib/util/string/strtol - local.get $4 + local.get $5 i32.const 60 i32.mul i32.add @@ -6445,35 +6362,34 @@ i32.mul else global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 local.get $3 i32.const 1 i32.add call $~lib/string/String#substring@varargs - local.tee $4 + local.tee $5 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/util/string/strtol i32.const 3600000 i32.mul end - local.tee $4 + local.tee $5 i32.sub - local.get $4 + local.get $5 local.get $2 i32.const 45 i32.eq select - local.set $4 + local.set $5 br $for-break0 end local.get $3 @@ -6483,10 +6399,9 @@ br $for-loop|0 end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 0 local.get $3 @@ -6496,15 +6411,14 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 3520 call $~lib/string/String#split@varargs @@ -6527,10 +6441,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -6619,10 +6532,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 i64.const 0 i64.store - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store i32.const 3 @@ -6690,13 +6602,12 @@ end local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6705,10 +6616,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6718,7 +6628,7 @@ i32.const -2 i32.and local.set $10 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store block $__inlined_func$~lib/string/String#padEnd$388 @@ -6733,7 +6643,7 @@ i32.gt_u i32.or if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -6773,19 +6683,19 @@ local.set $12 loop $while-continue|0 local.get $0 - local.get $5 + local.get $4 i32.gt_u if - local.get $5 + local.get $4 local.get $12 i32.add i32.const 1872 local.get $8 memory.copy - local.get $5 + local.get $4 local.get $8 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end @@ -6820,13 +6730,12 @@ i32.store local.get $0 call $~lib/util/string/strtol - local.set $5 + local.set $4 else global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store offset=56 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -6836,15 +6745,14 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1616 call $~lib/string/String#split@varargs @@ -6922,9 +6830,9 @@ local.get $3 local.get $7 local.get $6 - local.get $5 - call $~lib/date/epochMillis local.get $4 + call $~lib/date/epochMillis + local.get $5 i64.extend_i32_s i64.sub call $~lib/date/Date#constructor @@ -7260,10 +7168,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=24 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7279,10 +7186,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=28 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7381,10 +7287,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=40 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7400,10 +7305,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=44 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7608,10 +7512,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=60 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -7646,10 +7549,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=64 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -8018,10 +7920,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=112 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -8187,10 +8088,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=132 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -8206,10 +8106,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=136 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -9222,10 +9121,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=220 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -9319,10 +9217,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=236 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -9364,10 +9261,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=244 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -9971,10 +9867,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 6688 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6688 call $~lib/date/Date.fromString local.tee $0 @@ -9998,10 +9893,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 6960 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6960 call $~lib/date/Date.fromString local.tee $0 @@ -10025,10 +9919,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7008 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7008 call $~lib/date/Date.fromString local.tee $0 @@ -10052,10 +9945,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7056 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7056 call $~lib/date/Date.fromString local.tee $0 @@ -10079,10 +9971,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7120 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7120 call $~lib/date/Date.fromString local.tee $0 @@ -10106,10 +9997,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7200 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7200 call $~lib/date/Date.fromString local.tee $0 @@ -10133,10 +10023,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7280 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7280 call $~lib/date/Date.fromString local.tee $0 @@ -10160,10 +10049,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7360 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7360 call $~lib/date/Date.fromString local.tee $0 @@ -10187,10 +10075,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7440 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7440 call $~lib/date/Date.fromString local.tee $0 @@ -10214,10 +10101,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7504 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7504 call $~lib/date/Date.fromString local.tee $0 @@ -10241,10 +10127,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7584 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7584 call $~lib/date/Date.fromString local.tee $0 @@ -10268,10 +10153,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7664 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7664 call $~lib/date/Date.fromString local.tee $0 @@ -10295,10 +10179,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7744 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7744 call $~lib/date/Date.fromString local.tee $0 @@ -10322,10 +10205,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7824 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7824 call $~lib/date/Date.fromString local.tee $0 @@ -10349,10 +10231,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7920 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7920 call $~lib/date/Date.fromString local.tee $0 @@ -10376,10 +10257,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7952 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7952 call $~lib/date/Date.fromString local.tee $0 @@ -10403,10 +10283,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7984 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7984 call $~lib/date/Date.fromString local.tee $0 @@ -10430,10 +10309,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 8016 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8016 call $~lib/date/Date.fromString local.tee $0 @@ -10457,10 +10335,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 6688 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6688 call $~lib/date/Date.fromString local.tee $0 @@ -10484,10 +10361,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 8064 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8064 call $~lib/date/Date.fromString local.tee $0 @@ -10511,10 +10387,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7056 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7056 call $~lib/date/Date.fromString local.tee $0 @@ -10566,10 +10441,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=392 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10585,10 +10459,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=396 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -10604,10 +10477,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=400 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10623,10 +10495,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=404 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -10642,10 +10513,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=408 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10661,10 +10531,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=412 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -10680,10 +10549,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=416 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10775,10 +10643,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=432 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10794,10 +10661,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=436 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 @@ -10947,41 +10813,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 2 i32.shl - local.tee $1 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 + local.tee $1 + local.get $2 i32.store + local.get $1 local.get $2 - local.get $3 i32.const 0 call $~lib/rt/itcms/__link + local.get $1 local.get $2 - local.get $3 i32.store offset=4 - local.get $2 local.get $1 + local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) ) diff --git a/tests/compiler/std/hash.release.wat b/tests/compiler/std/hash.release.wat index ec05d869a7..b4ee8781f3 100644 --- a/tests/compiler/std/hash.release.wat +++ b/tests/compiler/std/hash.release.wat @@ -127,15 +127,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 local.tee $1 i32.store offset=4 diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index e257b10dce..0bea8bdde5 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -2341,7 +2341,7 @@ end end ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2350,12 +2350,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2364,17 +2364,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -2448,53 +2448,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load8_s ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store8 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -2621,7 +2621,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2630,12 +2630,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2644,22 +2644,22 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2668,12 +2668,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2682,68 +2682,68 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load8_s ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store8 offset=1 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store8 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load8_s offset=1 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=4 @@ -2816,58 +2816,58 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2876,12 +2876,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2890,17 +2890,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -2975,53 +2975,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load8_u ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store8 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -3058,7 +3058,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3067,12 +3067,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3081,73 +3081,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load8_u ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store8 offset=1 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store8 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load8_u offset=1 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3156,12 +3156,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3170,17 +3170,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -3254,53 +3254,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load16_s ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store16 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -3337,7 +3337,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3346,12 +3346,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3360,73 +3360,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load16_s ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store16 offset=2 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store16 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load16_s offset=2 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3435,12 +3435,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3449,17 +3449,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -3534,53 +3534,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load16_u ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store16 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -3617,7 +3617,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3626,12 +3626,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3640,73 +3640,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load16_u ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store16 offset=2 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store16 ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load16_u offset=2 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3715,12 +3715,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3729,17 +3729,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -3812,53 +3812,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -3895,7 +3895,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3904,12 +3904,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -3918,73 +3918,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -3993,12 +3993,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4007,17 +4007,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -4107,53 +4107,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this i64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this local.get $key i64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=12 @@ -4190,7 +4190,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4199,12 +4199,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4213,73 +4213,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this i64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i64) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i64) local.get $this local.get $value i64.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this local.get $key i64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i64) local.get $this i64.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=16 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4288,12 +4288,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4302,17 +4302,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -4402,53 +4402,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this i64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this local.get $key i64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=12 @@ -4485,7 +4485,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4494,12 +4494,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4508,73 +4508,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i64) local.get $this i64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i64) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i64) local.get $this local.get $value i64.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i64) local.get $this local.get $key i64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i64) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i64) local.get $this i64.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=16 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4583,12 +4583,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4597,17 +4597,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -4681,53 +4681,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result f32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f32) local.get $this f32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key f32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f32) local.get $this local.get $key f32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -4764,7 +4764,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4773,12 +4773,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4787,73 +4787,73 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result f32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f32) local.get $this f32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value f32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value f32) local.get $this local.get $value f32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key f32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f32) local.get $this local.get $key f32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result f32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result f32) local.get $this f32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -4862,12 +4862,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -4876,17 +4876,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -4977,53 +4977,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result f64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f64) local.get $this f64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key f64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f64) local.get $this local.get $key f64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=12 @@ -5060,7 +5060,7 @@ local.get $this i32.load offset=4 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -5069,12 +5069,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -5083,68 +5083,68 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result f64) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result f64) local.get $this f64.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value f64) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value f64) local.get $this local.get $value f64.store offset=8 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key f64) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key f64) local.get $this local.get $key f64.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result f64) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result f64) local.get $this f64.load offset=8 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=16 @@ -5213,16 +5213,16 @@ i32.const 320 call $~lib/rt/itcms/initLazy 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 + 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" call $~lib/rt/itcms/__collect ) (func $~lib/rt/__visit_globals (param $0 i32) @@ -5256,13 +5256,13 @@ ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5288,29 +5288,29 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5324,21 +5324,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5352,21 +5352,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5380,21 +5380,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5408,21 +5408,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5436,21 +5436,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5464,21 +5464,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5492,21 +5492,21 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -5520,45 +5520,45 @@ local.get $1 call $~lib/array/Array#__visit ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid - block $~lib/map/Map + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array - block $~lib/map/Map - block $~lib/map/Map - block $~lib/map/Map + block $"~lib/map/Map" + block $"~lib/map/Map" + block $"~lib/map/Map" block $~lib/array/Array block $~lib/array/Array - block $~lib/map/Map + block $"~lib/map/Map" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -5567,7 +5567,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map $~lib/array/Array $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $~lib/map/Map $~lib/array/Array $~lib/map/Map $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map" $~lib/array/Array $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $"~lib/map/Map" $~lib/array/Array $"~lib/map/Map" $invalid end return end @@ -5582,7 +5582,7 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5597,17 +5597,17 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5617,12 +5617,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5632,12 +5632,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5647,12 +5647,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5662,12 +5662,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5677,12 +5677,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5692,12 +5692,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5707,12 +5707,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end local.get $0 @@ -5722,7 +5722,7 @@ end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end unreachable @@ -5743,7 +5743,7 @@ unreachable end ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -5782,7 +5782,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5792,7 +5792,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5801,9 +5801,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -5812,7 +5812,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5820,7 +5820,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5828,7 +5828,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5836,7 +5836,7 @@ i32.store offset=4 local.get $1 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 @@ -5845,7 +5845,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -5863,7 +5863,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -5871,7 +5871,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -5882,7 +5882,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -5890,7 +5890,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.extend8_s local.get $key i32.extend8_s @@ -5926,7 +5926,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5945,7 +5945,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -5956,7 +5956,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -6002,9 +6002,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6016,7 +6016,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -6025,10 +6025,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -6043,7 +6043,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -6051,15 +6051,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -6074,22 +6074,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -6108,7 +6108,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -6116,7 +6116,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -6129,7 +6129,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -6137,7 +6137,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -6150,14 +6150,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -6186,13 +6186,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -6202,14 +6202,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -6224,14 +6224,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -6244,7 +6244,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -6252,13 +6252,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -6267,7 +6267,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -6283,27 +6283,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -6318,17 +6318,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -6336,7 +6336,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -6345,7 +6345,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -6359,7 +6359,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -6379,7 +6379,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -6392,7 +6392,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6401,7 +6401,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6417,7 +6417,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6780,7 +6780,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -6803,7 +6803,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -6811,7 +6811,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -6830,15 +6830,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -6856,7 +6856,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -7118,7 +7118,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -7141,7 +7141,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -7149,7 +7149,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -7168,15 +7168,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -7194,7 +7194,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -7221,7 +7221,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -7260,7 +7260,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7270,7 +7270,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7279,9 +7279,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7290,7 +7290,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7298,7 +7298,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7306,7 +7306,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7314,7 +7314,7 @@ i32.store offset=4 local.get $1 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 @@ -7323,7 +7323,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -7362,7 +7362,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7372,7 +7372,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7381,9 +7381,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7392,7 +7392,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7400,7 +7400,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7408,7 +7408,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -7416,7 +7416,7 @@ i32.store offset=4 local.get $1 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 @@ -7554,7 +7554,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -7572,7 +7572,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -7580,7 +7580,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -7591,7 +7591,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -7599,7 +7599,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.extend8_s local.get $key i32.extend8_s @@ -7635,7 +7635,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -7681,9 +7681,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7695,7 +7695,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -7704,10 +7704,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -7722,7 +7722,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -7730,15 +7730,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -7753,22 +7753,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -7787,7 +7787,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -7795,7 +7795,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -7808,7 +7808,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -7816,7 +7816,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -7829,14 +7829,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -7865,13 +7865,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -7881,14 +7881,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -7903,14 +7903,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -7923,7 +7923,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -7931,13 +7931,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -7946,7 +7946,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -7962,27 +7962,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -7997,17 +7997,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -8015,7 +8015,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -8024,7 +8024,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -8038,7 +8038,7 @@ local.get $8 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -8056,7 +8056,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -8064,7 +8064,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -8075,7 +8075,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -8083,7 +8083,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i32.eq else @@ -8117,7 +8117,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -8163,9 +8163,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8177,7 +8177,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -8186,10 +8186,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -8204,7 +8204,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -8212,15 +8212,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -8235,22 +8235,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -8269,7 +8269,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -8277,7 +8277,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -8290,7 +8290,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -8298,7 +8298,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -8311,14 +8311,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -8347,13 +8347,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -8363,14 +8363,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -8385,14 +8385,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -8405,7 +8405,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -8413,13 +8413,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -8428,7 +8428,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -8444,27 +8444,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -8479,17 +8479,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -8497,7 +8497,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -8506,7 +8506,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -8520,7 +8520,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8536,7 +8536,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8545,7 +8545,7 @@ local.get $1 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8561,7 +8561,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8570,7 +8570,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -8593,7 +8593,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -8609,10 +8609,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -8625,17 +8625,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -8650,7 +8650,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -8664,14 +8664,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -8688,7 +8688,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -8699,7 +8699,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8725,7 +8725,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8735,7 +8735,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8744,9 +8744,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8755,7 +8755,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8763,7 +8763,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8771,7 +8771,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -8779,13 +8779,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -8810,7 +8810,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -8827,7 +8827,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -8848,7 +8848,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -8857,7 +8857,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8874,7 +8874,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -8901,7 +8901,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -8927,7 +8927,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8944,7 +8944,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -8968,7 +8968,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -8977,7 +8977,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8994,7 +8994,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -9021,7 +9021,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -9040,7 +9040,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -9050,17 +9050,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -9101,7 +9101,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9120,7 +9120,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9138,7 +9138,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -9152,7 +9152,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -9167,7 +9167,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -9185,7 +9185,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -9211,7 +9211,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9228,7 +9228,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -9249,7 +9249,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -9258,7 +9258,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -9282,7 +9282,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -9308,7 +9308,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -9329,7 +9329,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -9338,7 +9338,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9355,7 +9355,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -9364,7 +9364,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -9388,7 +9388,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -9406,14 +9406,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -9430,7 +9430,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -9469,7 +9469,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9479,7 +9479,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9488,9 +9488,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9499,7 +9499,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9507,7 +9507,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9515,7 +9515,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -9523,7 +9523,7 @@ i32.store offset=4 local.get $1 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 @@ -9532,7 +9532,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -9550,7 +9550,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -9558,7 +9558,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -9569,7 +9569,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -9577,7 +9577,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.const 255 i32.and local.get $key @@ -9615,7 +9615,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9634,7 +9634,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -9645,7 +9645,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -9691,9 +9691,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9705,7 +9705,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -9714,10 +9714,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -9732,7 +9732,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -9740,15 +9740,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -9763,22 +9763,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -9797,7 +9797,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -9805,7 +9805,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -9818,7 +9818,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -9826,7 +9826,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -9839,14 +9839,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -9875,13 +9875,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -9891,14 +9891,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -9913,14 +9913,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -9933,7 +9933,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -9941,13 +9941,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -9956,7 +9956,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -9972,27 +9972,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -10007,17 +10007,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -10025,7 +10025,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -10034,7 +10034,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -10048,7 +10048,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -10068,7 +10068,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -10081,7 +10081,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10090,7 +10090,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10106,7 +10106,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10350,7 +10350,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -10373,7 +10373,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -10381,7 +10381,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -10400,15 +10400,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -10426,7 +10426,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -10453,7 +10453,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -10476,7 +10476,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -10484,7 +10484,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -10503,15 +10503,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -10529,7 +10529,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -10556,7 +10556,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -10595,7 +10595,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10605,7 +10605,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10614,9 +10614,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -10625,7 +10625,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10633,7 +10633,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10641,7 +10641,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -10649,7 +10649,7 @@ i32.store offset=4 local.get $1 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 @@ -10735,7 +10735,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -10753,7 +10753,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -10761,7 +10761,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -10772,7 +10772,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -10780,7 +10780,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.const 255 i32.and local.get $key @@ -10818,7 +10818,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -10864,9 +10864,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -10878,7 +10878,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -10887,10 +10887,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -10905,7 +10905,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -10913,15 +10913,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -10936,22 +10936,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -10970,7 +10970,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -10978,7 +10978,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -10991,7 +10991,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -10999,7 +10999,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -11012,14 +11012,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -11048,13 +11048,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -11064,14 +11064,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -11086,14 +11086,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -11106,7 +11106,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -11114,13 +11114,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -11129,7 +11129,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -11145,27 +11145,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -11180,17 +11180,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -11198,7 +11198,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -11207,7 +11207,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -11221,7 +11221,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -11237,7 +11237,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -11246,7 +11246,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -11269,7 +11269,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -11285,10 +11285,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -11301,17 +11301,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -11326,7 +11326,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -11340,14 +11340,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -11364,7 +11364,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -11375,7 +11375,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11401,7 +11401,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11411,7 +11411,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11420,9 +11420,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -11431,7 +11431,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11439,7 +11439,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11447,7 +11447,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -11455,13 +11455,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -11486,7 +11486,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -11503,7 +11503,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -11524,7 +11524,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -11533,7 +11533,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11550,7 +11550,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -11577,7 +11577,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -11603,7 +11603,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11620,7 +11620,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -11644,7 +11644,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -11653,7 +11653,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11670,7 +11670,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -11697,7 +11697,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -11716,7 +11716,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -11726,17 +11726,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -11777,7 +11777,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11796,7 +11796,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11814,7 +11814,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -11828,7 +11828,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -11843,7 +11843,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -11861,7 +11861,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -11887,7 +11887,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11904,7 +11904,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -11925,7 +11925,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -11934,7 +11934,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -11958,7 +11958,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -11984,7 +11984,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -12005,7 +12005,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -12014,7 +12014,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12031,7 +12031,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -12040,7 +12040,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -12064,7 +12064,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -12082,14 +12082,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -12106,7 +12106,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -12145,7 +12145,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12155,7 +12155,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12164,9 +12164,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -12175,7 +12175,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12183,7 +12183,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12191,7 +12191,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -12199,7 +12199,7 @@ i32.store offset=4 local.get $1 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 @@ -12208,7 +12208,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -12226,7 +12226,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -12234,7 +12234,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -12245,7 +12245,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -12253,7 +12253,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.extend16_s local.get $key i32.extend16_s @@ -12289,7 +12289,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12308,7 +12308,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -12319,7 +12319,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -12365,9 +12365,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -12379,7 +12379,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -12388,10 +12388,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -12406,7 +12406,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -12414,15 +12414,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -12437,22 +12437,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -12471,7 +12471,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -12479,7 +12479,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -12492,7 +12492,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -12500,7 +12500,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -12513,14 +12513,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -12549,13 +12549,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -12565,14 +12565,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -12587,14 +12587,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -12607,7 +12607,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -12615,13 +12615,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -12630,7 +12630,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -12646,27 +12646,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -12681,17 +12681,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -12699,7 +12699,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -12708,7 +12708,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -12722,7 +12722,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -12742,7 +12742,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -12755,7 +12755,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12764,7 +12764,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -12780,7 +12780,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13024,7 +13024,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -13047,7 +13047,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -13055,7 +13055,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13074,15 +13074,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -13100,7 +13100,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -13127,7 +13127,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -13150,7 +13150,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -13158,7 +13158,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -13177,15 +13177,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -13203,7 +13203,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -13230,7 +13230,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -13269,7 +13269,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13279,7 +13279,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13288,9 +13288,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13299,7 +13299,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13307,7 +13307,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13315,7 +13315,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -13323,7 +13323,7 @@ i32.store offset=4 local.get $1 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 @@ -13409,7 +13409,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -13427,7 +13427,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -13435,7 +13435,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -13446,7 +13446,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -13454,7 +13454,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.extend16_s local.get $key i32.extend16_s @@ -13490,7 +13490,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -13536,9 +13536,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13550,7 +13550,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -13559,10 +13559,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -13577,7 +13577,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -13585,15 +13585,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -13608,22 +13608,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -13642,7 +13642,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -13650,7 +13650,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -13663,7 +13663,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -13671,7 +13671,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -13684,14 +13684,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -13720,13 +13720,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -13736,14 +13736,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -13758,14 +13758,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -13778,7 +13778,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -13786,13 +13786,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -13801,7 +13801,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -13817,27 +13817,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -13852,17 +13852,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -13870,7 +13870,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -13879,7 +13879,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -13893,7 +13893,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13909,7 +13909,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -13918,7 +13918,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -13941,7 +13941,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -13957,10 +13957,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -13973,17 +13973,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -13998,7 +13998,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -14012,14 +14012,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -14036,7 +14036,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -14047,7 +14047,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -14073,7 +14073,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14083,7 +14083,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14092,9 +14092,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -14103,7 +14103,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14111,7 +14111,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14119,7 +14119,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14127,13 +14127,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -14158,7 +14158,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -14175,7 +14175,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -14196,7 +14196,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -14205,7 +14205,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14222,7 +14222,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -14249,7 +14249,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -14275,7 +14275,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14292,7 +14292,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -14316,7 +14316,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -14325,7 +14325,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14342,7 +14342,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -14369,7 +14369,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -14388,7 +14388,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -14398,17 +14398,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -14449,7 +14449,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14468,7 +14468,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14486,7 +14486,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -14500,7 +14500,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -14515,7 +14515,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -14533,7 +14533,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -14559,7 +14559,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14576,7 +14576,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -14597,7 +14597,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -14606,7 +14606,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -14630,7 +14630,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -14656,7 +14656,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -14677,7 +14677,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -14686,7 +14686,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14703,7 +14703,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -14712,7 +14712,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -14736,7 +14736,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -14754,14 +14754,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -14778,7 +14778,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -14817,7 +14817,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14827,7 +14827,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14836,9 +14836,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -14847,7 +14847,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14855,7 +14855,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14863,7 +14863,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -14871,7 +14871,7 @@ i32.store offset=4 local.get $1 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 @@ -14880,7 +14880,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -14898,7 +14898,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -14906,7 +14906,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -14917,7 +14917,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -14925,7 +14925,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.const 65535 i32.and local.get $key @@ -14963,7 +14963,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14982,7 +14982,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -14993,7 +14993,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -15039,9 +15039,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -15053,7 +15053,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -15062,10 +15062,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -15080,7 +15080,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -15088,15 +15088,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -15111,22 +15111,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -15145,7 +15145,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -15153,7 +15153,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -15166,7 +15166,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -15174,7 +15174,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -15187,14 +15187,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -15223,13 +15223,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -15239,14 +15239,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -15261,14 +15261,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -15281,7 +15281,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -15289,13 +15289,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -15304,7 +15304,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -15320,27 +15320,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -15355,17 +15355,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -15373,7 +15373,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -15382,7 +15382,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -15396,7 +15396,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -15416,7 +15416,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -15429,7 +15429,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -15438,7 +15438,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -15454,7 +15454,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -15698,7 +15698,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -15721,7 +15721,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -15729,7 +15729,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -15748,15 +15748,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -15774,7 +15774,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -15801,7 +15801,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -15824,7 +15824,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -15832,7 +15832,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -15851,15 +15851,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -15877,7 +15877,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -15904,7 +15904,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -15943,7 +15943,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15953,7 +15953,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15962,9 +15962,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -15973,7 +15973,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15981,7 +15981,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15989,7 +15989,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -15997,7 +15997,7 @@ i32.store offset=4 local.get $1 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 @@ -16083,7 +16083,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -16101,7 +16101,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -16109,7 +16109,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -16120,7 +16120,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -16128,7 +16128,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" i32.const 65535 i32.and local.get $key @@ -16166,7 +16166,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -16212,9 +16212,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16226,7 +16226,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -16235,10 +16235,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -16253,7 +16253,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -16261,15 +16261,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -16284,22 +16284,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -16318,7 +16318,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -16326,7 +16326,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -16339,7 +16339,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -16347,7 +16347,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -16360,14 +16360,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -16396,13 +16396,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -16412,14 +16412,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -16434,14 +16434,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -16454,7 +16454,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -16462,13 +16462,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -16477,7 +16477,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -16493,27 +16493,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 8 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -16528,17 +16528,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -16546,7 +16546,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -16555,7 +16555,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -16569,7 +16569,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16585,7 +16585,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16594,7 +16594,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -16617,7 +16617,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -16633,10 +16633,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -16649,17 +16649,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -16674,7 +16674,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -16688,14 +16688,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -16712,7 +16712,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -16723,7 +16723,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16749,7 +16749,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16759,7 +16759,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16768,9 +16768,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16779,7 +16779,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16787,7 +16787,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16795,7 +16795,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -16803,13 +16803,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -16834,7 +16834,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -16851,7 +16851,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -16872,7 +16872,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -16881,7 +16881,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16898,7 +16898,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -16925,7 +16925,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -16951,7 +16951,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16968,7 +16968,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -16992,7 +16992,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -17001,7 +17001,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17018,7 +17018,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -17045,7 +17045,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -17064,7 +17064,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -17074,17 +17074,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -17125,7 +17125,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17144,7 +17144,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17162,7 +17162,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -17176,7 +17176,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -17191,7 +17191,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -17209,7 +17209,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -17235,7 +17235,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17252,7 +17252,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -17273,7 +17273,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -17282,7 +17282,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -17306,7 +17306,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -17332,7 +17332,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -17353,7 +17353,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -17362,7 +17362,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17379,7 +17379,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -17388,7 +17388,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -17412,7 +17412,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -17430,14 +17430,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -17454,7 +17454,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -17473,7 +17473,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -17484,7 +17484,7 @@ local.get $2 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -17504,7 +17504,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -17517,7 +17517,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -17526,7 +17526,7 @@ local.get $3 return ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -17549,7 +17549,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -17557,7 +17557,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -17576,15 +17576,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -17602,7 +17602,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -17629,7 +17629,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -17652,7 +17652,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -17660,7 +17660,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -17679,15 +17679,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -17705,7 +17705,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -17757,7 +17757,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -17780,7 +17780,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -17796,10 +17796,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -17812,17 +17812,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -17837,7 +17837,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -17851,14 +17851,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -17875,7 +17875,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -17886,7 +17886,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17912,7 +17912,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17922,7 +17922,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17931,9 +17931,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -17942,7 +17942,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17950,7 +17950,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17958,7 +17958,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -17966,13 +17966,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -17997,7 +17997,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -18014,7 +18014,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -18035,7 +18035,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -18044,7 +18044,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18061,7 +18061,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -18088,7 +18088,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -18114,7 +18114,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18131,7 +18131,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -18155,7 +18155,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -18164,7 +18164,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18181,7 +18181,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -18208,7 +18208,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -18227,7 +18227,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -18237,17 +18237,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -18288,7 +18288,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18307,7 +18307,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18325,7 +18325,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -18339,7 +18339,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -18354,7 +18354,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -18372,7 +18372,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -18398,7 +18398,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18415,7 +18415,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -18436,7 +18436,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -18445,7 +18445,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -18469,7 +18469,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -18495,7 +18495,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -18516,7 +18516,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -18525,7 +18525,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18542,7 +18542,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -18551,7 +18551,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -18575,7 +18575,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -18593,14 +18593,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -18617,7 +18617,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18656,7 +18656,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18666,7 +18666,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18675,9 +18675,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18686,7 +18686,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18694,7 +18694,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18702,7 +18702,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -18710,7 +18710,7 @@ i32.store offset=4 local.get $1 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 @@ -18719,7 +18719,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -18737,7 +18737,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -18745,7 +18745,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -18756,7 +18756,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -18764,7 +18764,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i32.eq else @@ -18798,7 +18798,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18817,7 +18817,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -18828,7 +18828,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -18874,9 +18874,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18888,7 +18888,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -18897,10 +18897,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -18915,7 +18915,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -18923,15 +18923,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -18946,22 +18946,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -18980,7 +18980,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -18988,7 +18988,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -19001,7 +19001,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -19009,7 +19009,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -19022,14 +19022,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -19058,13 +19058,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -19074,14 +19074,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -19096,14 +19096,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -19116,7 +19116,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -19124,13 +19124,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -19139,7 +19139,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -19155,27 +19155,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -19190,17 +19190,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -19208,7 +19208,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -19217,7 +19217,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -19231,7 +19231,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -19251,7 +19251,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -19264,7 +19264,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19273,7 +19273,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19289,7 +19289,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19533,7 +19533,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -19556,7 +19556,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -19564,7 +19564,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -19583,15 +19583,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -19609,7 +19609,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -19636,7 +19636,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -19659,7 +19659,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -19667,7 +19667,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -19686,15 +19686,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -19712,7 +19712,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -19739,7 +19739,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -19778,7 +19778,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19788,7 +19788,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19797,9 +19797,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -19808,7 +19808,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19816,7 +19816,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19824,7 +19824,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -19832,7 +19832,7 @@ i32.store offset=4 local.get $1 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 @@ -19918,7 +19918,7 @@ local.get $3 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -19936,7 +19936,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -19944,7 +19944,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -19955,7 +19955,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -19963,7 +19963,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i32.eq else @@ -19997,7 +19997,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -20043,9 +20043,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20057,7 +20057,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -20066,10 +20066,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -20084,7 +20084,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -20092,15 +20092,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -20115,22 +20115,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -20149,7 +20149,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -20157,7 +20157,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -20170,7 +20170,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -20178,7 +20178,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -20191,14 +20191,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -20227,13 +20227,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -20243,14 +20243,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -20265,14 +20265,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -20285,7 +20285,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -20293,13 +20293,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -20308,7 +20308,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -20324,27 +20324,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -20359,17 +20359,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -20377,7 +20377,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -20386,7 +20386,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -20400,7 +20400,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20416,7 +20416,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20425,7 +20425,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -20448,7 +20448,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -20464,10 +20464,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -20480,17 +20480,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -20505,7 +20505,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -20519,14 +20519,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -20543,7 +20543,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -20554,7 +20554,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -20580,7 +20580,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20590,7 +20590,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20599,9 +20599,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20610,7 +20610,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20618,7 +20618,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20626,7 +20626,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -20634,13 +20634,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i32) (local $k|2 i32) @@ -20665,7 +20665,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i32.const 0 @@ -20682,7 +20682,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -20703,7 +20703,7 @@ i32.const 10 local.get $k i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -20712,7 +20712,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20729,7 +20729,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.add @@ -20756,7 +20756,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -20782,7 +20782,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20799,7 +20799,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.add @@ -20823,7 +20823,7 @@ i32.const 20 local.get $k|2 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -20832,7 +20832,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20849,7 +20849,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.add @@ -20876,7 +20876,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -20895,7 +20895,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -20905,17 +20905,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -20956,7 +20956,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20975,7 +20975,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20993,7 +20993,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -21007,7 +21007,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -21022,7 +21022,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -21040,7 +21040,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -21066,7 +21066,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -21083,7 +21083,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.add @@ -21104,7 +21104,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -21113,7 +21113,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -21137,7 +21137,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -21163,7 +21163,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -21184,7 +21184,7 @@ i32.const 10 local.get $k|11 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -21193,7 +21193,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -21210,7 +21210,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -21219,7 +21219,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -21243,7 +21243,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -21261,14 +21261,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -21285,7 +21285,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -21324,7 +21324,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21334,7 +21334,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21343,9 +21343,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -21354,7 +21354,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21362,7 +21362,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21370,7 +21370,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -21378,7 +21378,7 @@ i32.store offset=4 local.get $1 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 @@ -21387,7 +21387,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -21405,7 +21405,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -21413,7 +21413,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -21424,7 +21424,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -21432,7 +21432,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i64.eq else @@ -21466,7 +21466,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21485,7 +21485,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -21496,7 +21496,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -21542,9 +21542,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -21556,7 +21556,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -21565,10 +21565,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -21583,7 +21583,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -21591,15 +21591,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -21614,22 +21614,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -21648,7 +21648,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -21656,7 +21656,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -21669,7 +21669,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -21677,7 +21677,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -21690,14 +21690,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i64) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -21726,13 +21726,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -21742,14 +21742,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -21764,14 +21764,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -21784,7 +21784,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -21792,13 +21792,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -21807,7 +21807,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -21823,27 +21823,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -21858,17 +21858,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -21876,7 +21876,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -21885,7 +21885,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -21899,7 +21899,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i64) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -21919,7 +21919,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -21932,7 +21932,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21941,7 +21941,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21957,7 +21957,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -22201,7 +22201,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -22224,7 +22224,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -22232,7 +22232,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -22251,15 +22251,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -22277,7 +22277,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -22304,7 +22304,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -22327,7 +22327,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -22335,7 +22335,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -22354,15 +22354,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -22380,7 +22380,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -22407,7 +22407,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -22446,7 +22446,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22456,7 +22456,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22465,9 +22465,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -22476,7 +22476,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22484,7 +22484,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22492,7 +22492,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -22500,7 +22500,7 @@ i32.store offset=4 local.get $1 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 @@ -22587,7 +22587,7 @@ local.get $4 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -22605,7 +22605,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -22613,7 +22613,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -22624,7 +22624,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -22632,7 +22632,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i64.eq else @@ -22666,7 +22666,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -22712,9 +22712,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -22726,7 +22726,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -22735,10 +22735,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -22753,7 +22753,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -22761,15 +22761,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -22784,22 +22784,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -22818,7 +22818,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -22826,7 +22826,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -22839,7 +22839,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -22847,7 +22847,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -22860,14 +22860,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i64) (param $value i64) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -22896,13 +22896,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -22912,14 +22912,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -22934,14 +22934,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -22954,7 +22954,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -22962,13 +22962,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -22977,7 +22977,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -22993,27 +22993,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -23028,17 +23028,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -23046,7 +23046,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -23055,7 +23055,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -23069,7 +23069,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23085,7 +23085,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23094,7 +23094,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i64) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -23117,7 +23117,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -23133,10 +23133,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -23149,17 +23149,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -23174,7 +23174,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -23188,14 +23188,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -23212,7 +23212,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -23223,7 +23223,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23249,7 +23249,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23259,7 +23259,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23268,9 +23268,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -23279,7 +23279,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23287,7 +23287,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23295,7 +23295,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -23303,13 +23303,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i64) (local $k|2 i64) @@ -23334,7 +23334,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i64.const 0 @@ -23351,7 +23351,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -23373,7 +23373,7 @@ local.get $k i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -23382,7 +23382,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23399,7 +23399,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.wrap_i64 @@ -23427,7 +23427,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -23453,7 +23453,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23470,7 +23470,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.wrap_i64 @@ -23496,7 +23496,7 @@ local.get $k|2 i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -23505,7 +23505,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23522,7 +23522,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.wrap_i64 @@ -23550,7 +23550,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -23569,7 +23569,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -23579,17 +23579,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -23630,7 +23630,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23650,7 +23650,7 @@ i32.const 20 i32.sub i64.extend_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23668,7 +23668,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -23682,7 +23682,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -23697,7 +23697,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -23715,7 +23715,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -23741,7 +23741,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23758,7 +23758,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.wrap_i64 @@ -23780,7 +23780,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -23789,7 +23789,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -23813,7 +23813,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -23839,7 +23839,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -23861,7 +23861,7 @@ local.get $k|11 i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -23870,7 +23870,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23887,7 +23887,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -23896,7 +23896,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -23920,7 +23920,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -23938,14 +23938,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -23962,7 +23962,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -24001,7 +24001,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24011,7 +24011,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24020,9 +24020,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -24031,7 +24031,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24039,7 +24039,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24047,7 +24047,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -24055,7 +24055,7 @@ i32.store offset=4 local.get $1 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 @@ -24064,7 +24064,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -24082,7 +24082,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -24090,7 +24090,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -24101,7 +24101,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -24109,7 +24109,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i64.eq else @@ -24143,7 +24143,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i64) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24162,7 +24162,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -24173,7 +24173,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -24219,9 +24219,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -24233,7 +24233,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -24242,10 +24242,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -24260,7 +24260,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -24268,15 +24268,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -24291,22 +24291,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -24325,7 +24325,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -24333,7 +24333,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -24346,7 +24346,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -24354,7 +24354,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -24367,14 +24367,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i64) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -24403,13 +24403,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -24419,14 +24419,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -24441,14 +24441,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -24461,7 +24461,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -24469,13 +24469,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -24484,7 +24484,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -24500,27 +24500,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -24535,17 +24535,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -24553,7 +24553,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -24562,7 +24562,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -24576,7 +24576,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i64) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -24596,7 +24596,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -24609,7 +24609,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24618,7 +24618,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24634,7 +24634,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24878,7 +24878,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -24901,7 +24901,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -24909,7 +24909,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -24928,15 +24928,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -24954,7 +24954,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -24981,7 +24981,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -25004,7 +25004,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -25012,7 +25012,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -25031,15 +25031,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -25057,7 +25057,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -25084,7 +25084,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -25123,7 +25123,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25133,7 +25133,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25142,9 +25142,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -25153,7 +25153,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25161,7 +25161,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25169,7 +25169,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25177,7 +25177,7 @@ i32.store offset=4 local.get $1 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 @@ -25264,7 +25264,7 @@ local.get $4 return ) - (func $~lib/map/Map#find (param $this i32) (param $key i64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -25282,7 +25282,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -25290,7 +25290,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -25301,7 +25301,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -25309,7 +25309,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i64.eq else @@ -25343,7 +25343,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -25389,9 +25389,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -25403,7 +25403,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -25412,10 +25412,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -25430,7 +25430,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -25438,15 +25438,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -25461,22 +25461,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -25495,7 +25495,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -25503,7 +25503,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -25516,7 +25516,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -25524,7 +25524,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -25537,14 +25537,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i64) (param $value i64) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i64) (param $value i64) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -25573,13 +25573,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -25589,14 +25589,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -25611,14 +25611,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -25631,7 +25631,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -25639,13 +25639,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -25654,7 +25654,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -25670,27 +25670,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -25705,17 +25705,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -25723,7 +25723,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -25732,7 +25732,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -25746,7 +25746,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25762,7 +25762,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25771,7 +25771,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key i64) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key i64) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -25794,7 +25794,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -25810,10 +25810,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -25826,17 +25826,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -25851,7 +25851,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -25865,14 +25865,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -25889,7 +25889,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -25900,7 +25900,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -25926,7 +25926,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25936,7 +25936,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25945,9 +25945,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -25956,7 +25956,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25964,7 +25964,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25972,7 +25972,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -25980,13 +25980,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k i64) (local $k|2 i64) @@ -26011,7 +26011,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store i64.const 0 @@ -26028,7 +26028,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -26050,7 +26050,7 @@ local.get $k i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -26059,7 +26059,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26076,7 +26076,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.wrap_i64 @@ -26104,7 +26104,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -26130,7 +26130,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26147,7 +26147,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.wrap_i64 @@ -26173,7 +26173,7 @@ local.get $k|2 i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -26182,7 +26182,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26199,7 +26199,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.wrap_i64 @@ -26227,7 +26227,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -26246,7 +26246,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -26256,17 +26256,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -26307,7 +26307,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26327,7 +26327,7 @@ i32.const 20 i32.sub i64.extend_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26345,7 +26345,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -26359,7 +26359,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -26374,7 +26374,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -26392,7 +26392,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -26418,7 +26418,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26435,7 +26435,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.wrap_i64 @@ -26457,7 +26457,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -26466,7 +26466,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -26490,7 +26490,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -26516,7 +26516,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -26538,7 +26538,7 @@ local.get $k|11 i32.wrap_i64 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -26547,7 +26547,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -26564,7 +26564,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -26573,7 +26573,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -26597,7 +26597,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -26615,14 +26615,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -26639,7 +26639,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -26678,7 +26678,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26688,7 +26688,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26697,9 +26697,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -26708,7 +26708,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26716,7 +26716,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26724,7 +26724,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -26732,7 +26732,7 @@ i32.store offset=4 local.get $1 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 @@ -26741,7 +26741,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key f32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -26759,7 +26759,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -26767,7 +26767,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -26778,7 +26778,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -26786,7 +26786,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key f32.eq else @@ -26820,7 +26820,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key f32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key f32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26839,7 +26839,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -26850,7 +26850,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -26896,9 +26896,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -26910,7 +26910,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -26919,10 +26919,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -26937,7 +26937,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -26945,15 +26945,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -26968,22 +26968,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -27002,7 +27002,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -27010,7 +27010,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -27023,7 +27023,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -27031,7 +27031,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -27044,14 +27044,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key f32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key f32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -27080,13 +27080,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -27096,14 +27096,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -27118,14 +27118,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -27138,7 +27138,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -27146,13 +27146,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -27161,7 +27161,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -27177,27 +27177,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -27212,17 +27212,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -27230,7 +27230,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -27239,7 +27239,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -27253,7 +27253,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key f32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key f32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -27273,7 +27273,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -27286,7 +27286,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27295,7 +27295,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27311,7 +27311,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27555,7 +27555,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -27578,7 +27578,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -27586,7 +27586,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -27605,15 +27605,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -27631,7 +27631,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -27658,7 +27658,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -27681,7 +27681,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -27689,7 +27689,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -27708,15 +27708,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -27734,7 +27734,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -27761,7 +27761,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27800,7 +27800,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27810,7 +27810,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27819,9 +27819,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -27830,7 +27830,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27838,7 +27838,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27846,7 +27846,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -27854,7 +27854,7 @@ i32.store offset=4 local.get $1 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 @@ -27941,7 +27941,7 @@ local.get $4 return ) - (func $~lib/map/Map#find (param $this i32) (param $key f32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key f32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -27959,7 +27959,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -27967,7 +27967,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -27978,7 +27978,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -27986,7 +27986,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key f32.eq else @@ -28020,7 +28020,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -28066,9 +28066,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -28080,7 +28080,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -28089,10 +28089,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -28107,7 +28107,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -28115,15 +28115,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -28138,22 +28138,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -28172,7 +28172,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -28180,7 +28180,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -28193,7 +28193,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -28201,7 +28201,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -28214,14 +28214,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key f32) (param $value f32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key f32) (param $value f32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -28250,13 +28250,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -28266,14 +28266,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -28288,14 +28288,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -28308,7 +28308,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -28316,13 +28316,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -28331,7 +28331,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -28347,27 +28347,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -28382,17 +28382,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -28400,7 +28400,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -28409,7 +28409,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -28423,7 +28423,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -28439,7 +28439,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -28448,7 +28448,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key f32) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key f32) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -28471,7 +28471,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -28487,10 +28487,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -28503,17 +28503,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -28528,7 +28528,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -28542,14 +28542,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -28566,7 +28566,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -28577,7 +28577,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28603,7 +28603,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28613,7 +28613,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28622,9 +28622,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -28633,7 +28633,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28641,7 +28641,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28649,7 +28649,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -28657,13 +28657,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k f32) (local $k|2 f32) @@ -28688,7 +28688,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store f32.const 0 @@ -28705,7 +28705,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -28727,7 +28727,7 @@ local.get $k i32.trunc_sat_f32_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -28736,7 +28736,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -28753,7 +28753,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.trunc_sat_f32_s @@ -28781,7 +28781,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -28807,7 +28807,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -28824,7 +28824,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.trunc_sat_f32_s @@ -28850,7 +28850,7 @@ local.get $k|2 i32.trunc_sat_f32_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -28859,7 +28859,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -28876,7 +28876,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.trunc_sat_f32_s @@ -28904,7 +28904,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -28923,7 +28923,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -28933,17 +28933,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -28984,7 +28984,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -29004,7 +29004,7 @@ i32.const 20 i32.sub f32.convert_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -29022,7 +29022,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -29036,7 +29036,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -29051,7 +29051,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -29069,7 +29069,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -29095,7 +29095,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -29112,7 +29112,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.trunc_sat_f32_s @@ -29134,7 +29134,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -29143,7 +29143,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -29167,7 +29167,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -29193,7 +29193,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -29215,7 +29215,7 @@ local.get $k|11 i32.trunc_sat_f32_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -29224,7 +29224,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -29241,7 +29241,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -29250,7 +29250,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -29274,7 +29274,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -29292,14 +29292,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -29316,7 +29316,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -29355,7 +29355,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29365,7 +29365,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29374,9 +29374,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -29385,7 +29385,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29393,7 +29393,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29401,7 +29401,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -29409,7 +29409,7 @@ i32.store offset=4 local.get $1 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 @@ -29418,7 +29418,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key f64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -29436,7 +29436,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -29444,7 +29444,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -29455,7 +29455,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -29463,7 +29463,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key f64.eq else @@ -29497,7 +29497,7 @@ local.get $5 return ) - (func $~lib/map/Map#has (param $this i32) (param $key f64) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key f64) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29516,7 +29516,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -29527,7 +29527,7 @@ local.get $2 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -29573,9 +29573,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -29587,7 +29587,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -29596,10 +29596,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -29614,7 +29614,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -29622,15 +29622,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -29645,22 +29645,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -29679,7 +29679,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -29687,7 +29687,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -29700,7 +29700,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -29708,7 +29708,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -29721,14 +29721,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key f64) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key f64) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -29757,13 +29757,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -29773,14 +29773,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -29795,14 +29795,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -29815,7 +29815,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -29823,13 +29823,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -29838,7 +29838,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -29854,27 +29854,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -29889,17 +29889,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -29907,7 +29907,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -29916,7 +29916,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -29930,7 +29930,7 @@ local.get $8 return ) - (func $~lib/map/Map#get (param $this i32) (param $key f64) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key f64) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -29950,7 +29950,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -29963,7 +29963,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29972,7 +29972,7 @@ local.get $3 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29988,7 +29988,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30232,7 +30232,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#keys (param $this i32) (result i32) + (func $"~lib/map/Map#keys" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $keys i32) @@ -30255,7 +30255,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -30263,7 +30263,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -30282,15 +30282,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -30308,7 +30308,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" call $~lib/array/Array#__set end local.get $i @@ -30335,7 +30335,7 @@ local.get $8 return ) - (func $~lib/map/Map#values (param $this i32) (result i32) + (func $"~lib/map/Map#values" (param $this i32) (result i32) (local $start i32) (local $size i32) (local $values i32) @@ -30358,7 +30358,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $start local.get $this local.set $8 @@ -30366,7 +30366,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.set $size global.get $~lib/memory/__stack_pointer i32.const 0 @@ -30385,15 +30385,15 @@ if local.get $start local.get $i - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.mul i32.add local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -30411,7 +30411,7 @@ local.set $length local.get $7 local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" call $~lib/array/Array#__set end local.get $i @@ -30438,7 +30438,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -30477,7 +30477,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30487,7 +30487,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30496,9 +30496,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -30507,7 +30507,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30515,7 +30515,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30523,7 +30523,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30531,7 +30531,7 @@ i32.store offset=4 local.get $1 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 @@ -30618,7 +30618,7 @@ local.get $4 return ) - (func $~lib/map/Map#find (param $this i32) (param $key f64) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key f64) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -30636,7 +30636,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -30644,7 +30644,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -30655,7 +30655,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -30663,7 +30663,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key f64.eq else @@ -30697,7 +30697,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -30743,9 +30743,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -30757,7 +30757,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -30766,10 +30766,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -30784,7 +30784,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -30792,15 +30792,15 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -30815,22 +30815,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -30849,7 +30849,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -30857,7 +30857,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -30870,7 +30870,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -30878,7 +30878,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -30891,14 +30891,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key f64) (param $value f64) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key f64) (param $value f64) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -30927,13 +30927,13 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop else @@ -30943,14 +30943,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -30965,14 +30965,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -30985,7 +30985,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -30993,13 +30993,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -31008,7 +31008,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -31024,27 +31024,27 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 24 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry local.get $value - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 0 drop local.get $this @@ -31059,17 +31059,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -31077,7 +31077,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -31086,7 +31086,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -31100,7 +31100,7 @@ local.get $8 return ) - (func $~lib/map/Map#get:size (param $this i32) (result i32) + (func $"~lib/map/Map#get:size" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31116,7 +31116,7 @@ local.get $1 i32.store local.get $1 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31125,7 +31125,7 @@ local.get $1 return ) - (func $~lib/map/Map#delete (param $this i32) (param $key f64) (result i32) + (func $"~lib/map/Map#delete" (param $this i32) (param $key f64) (result i32) (local $entry i32) (local $halfBucketsMask i32) (local $4 i32) @@ -31148,7 +31148,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -31164,10 +31164,10 @@ end local.get $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.or - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer @@ -31180,17 +31180,17 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.sub - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shr_u local.set $halfBucketsMask @@ -31205,7 +31205,7 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.tee $5 local.get $4 local.get $5 @@ -31219,14 +31219,14 @@ local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -31243,7 +31243,7 @@ i32.store local.get $6 local.get $halfBucketsMask - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end i32.const 1 local.set $6 @@ -31254,7 +31254,7 @@ local.get $6 return ) - (func $~lib/map/Map#clear (param $this i32) + (func $"~lib/map/Map#clear" (param $this i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -31280,7 +31280,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31290,7 +31290,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31299,9 +31299,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.8 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.8" (result i32) i32.const 16 - br $~lib/map/ENTRY_SIZE|inlined.8 + br $"~lib/map/ENTRY_SIZE|inlined.8" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -31310,7 +31310,7 @@ local.get $1 i32.store offset=4 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31318,7 +31318,7 @@ i32.store local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31326,7 +31326,7 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31334,13 +31334,13 @@ i32.store local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $map i32) (local $k f64) (local $k|2 f64) @@ -31365,7 +31365,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $map i32.store f64.const 0 @@ -31382,7 +31382,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -31404,7 +31404,7 @@ local.get $k i32.trunc_sat_f64_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -31413,7 +31413,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31430,7 +31430,7 @@ i32.store offset=4 local.get $12 local.get $k - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k i32.trunc_sat_f64_s @@ -31458,7 +31458,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -31484,7 +31484,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31501,7 +31501,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 10 local.get $k|2 i32.trunc_sat_f64_s @@ -31527,7 +31527,7 @@ local.get $k|2 i32.trunc_sat_f64_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -31536,7 +31536,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31553,7 +31553,7 @@ i32.store offset=4 local.get $12 local.get $k|2 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|2 i32.trunc_sat_f64_s @@ -31581,7 +31581,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -31600,7 +31600,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#keys + call $"~lib/map/Map#keys" local.tee $keys i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -31610,17 +31610,17 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#values + call $"~lib/map/Map#values" local.tee $vals i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $keyMap i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $valMap i32.store offset=20 i32.const 0 @@ -31661,7 +31661,7 @@ i32.store offset=4 local.get $12 local.get $key - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31681,7 +31681,7 @@ i32.const 20 i32.sub f64.convert_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31699,7 +31699,7 @@ local.get $12 local.get $key local.get $key - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $valMap local.set $12 @@ -31713,7 +31713,7 @@ local.get $value i32.const 20 i32.sub - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $index i32.const 1 @@ -31728,7 +31728,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -31746,7 +31746,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.eq i32.eqz @@ -31772,7 +31772,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31789,7 +31789,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#get + call $"~lib/map/Map#get" i32.const 20 local.get $k|10 i32.trunc_sat_f64_s @@ -31811,7 +31811,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -31820,7 +31820,7 @@ i32.store offset=4 local.get $12 local.get $k|10 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -31844,7 +31844,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -31870,7 +31870,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -31892,7 +31892,7 @@ local.get $k|11 i32.trunc_sat_f64_s i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $map local.set $12 @@ -31901,7 +31901,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -31918,7 +31918,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" drop local.get $map local.set $12 @@ -31927,7 +31927,7 @@ i32.store offset=4 local.get $12 local.get $k|11 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz i32.eqz if @@ -31951,7 +31951,7 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 50 i32.eq i32.eqz @@ -31969,14 +31969,14 @@ local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#clear + call $"~lib/map/Map#clear" local.get $map local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=4 local.get $12 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 0 i32.eq i32.eqz @@ -31993,7 +31993,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32010,7 +32010,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32019,7 +32019,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32083,7 +32083,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32100,7 +32100,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32109,7 +32109,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32121,7 +32121,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32138,7 +32138,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32147,7 +32147,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32159,7 +32159,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32176,7 +32176,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32185,7 +32185,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32223,7 +32223,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32240,7 +32240,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32249,7 +32249,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32261,7 +32261,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32278,7 +32278,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32287,7 +32287,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32325,7 +32325,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32342,7 +32342,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32351,7 +32351,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32363,7 +32363,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32380,7 +32380,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32389,7 +32389,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32427,7 +32427,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32444,7 +32444,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32453,7 +32453,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32465,7 +32465,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32482,7 +32482,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32491,7 +32491,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32529,7 +32529,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32546,7 +32546,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32555,7 +32555,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32567,7 +32567,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32584,7 +32584,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32593,7 +32593,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32631,7 +32631,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32648,7 +32648,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32657,7 +32657,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32669,7 +32669,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32686,7 +32686,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32695,7 +32695,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32733,7 +32733,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32750,7 +32750,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32759,7 +32759,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32771,7 +32771,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32788,7 +32788,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32797,7 +32797,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32835,7 +32835,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32852,7 +32852,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32861,7 +32861,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32873,7 +32873,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32890,7 +32890,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32899,7 +32899,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop @@ -32937,7 +32937,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -32954,7 +32954,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -32963,7 +32963,7 @@ local.get $3 i32.store local.get $3 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 0 drop diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 3cd075d0b8..29d20dcd9f 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -1105,11 +1105,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1294,8 +1293,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1563,7 +1561,6 @@ local.get $1 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 i32.eqz if @@ -1580,7 +1577,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1597,7 +1593,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1619,7 +1615,6 @@ end ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner2 block $folding-inner1 block $folding-inner0 @@ -1660,10 +1655,9 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1690,10 +1684,9 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1745,16 +1738,16 @@ i32.store 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 + 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 @@ -1789,9 +1782,8 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1808,19 +1800,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -1869,8 +1860,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1887,10 +1877,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1924,7 +1913,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -1934,7 +1923,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1958,13 +1947,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -2079,10 +2067,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 local.get $0 @@ -2130,11 +2117,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2151,13 +2137,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2192,7 +2177,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -2200,34 +2185,33 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -2236,7 +2220,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -2252,32 +2236,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 12 i32.mul i32.add @@ -2287,10 +2270,10 @@ local.get $3 local.get $2 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -2299,13 +2282,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -2329,8 +2312,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2347,10 +2329,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2384,7 +2365,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -2404,8 +2385,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#get:size (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#get:size" (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2422,16 +2402,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2456,10 +2435,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2594,10 +2572,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2632,7 +2609,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -2641,7 +2617,7 @@ i32.add local.get $2 i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2701,43 +2677,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 local.get $0 @@ -2760,46 +2735,46 @@ select i32.const 2 i32.shl - local.tee $1 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=12 + local.get $1 local.get $2 - local.get $3 i32.store + local.get $1 local.get $2 - local.get $3 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 + local.get $1 local.get $2 - local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 local.get $1 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2819,10 +2794,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2857,7 +2831,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -2868,7 +2841,7 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2908,7 +2881,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#values (param $0 i32) (result i32) + (func $"~lib/map/Map#values" (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2930,36 +2903,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=16 - local.tee $4 + local.tee $0 call $~lib/array/Array#constructor local.tee $5 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $2 - local.get $4 - i32.lt_s + i32.gt_s if local.get $3 local.get $2 i32.const 12 i32.mul i32.add - local.tee $0 + local.tee $4 i32.load offset=8 i32.const 1 i32.and @@ -2970,7 +2942,7 @@ i32.store local.get $5 local.get $1 - local.get $0 + local.get $4 i32.load offset=4 call $~lib/array/Array#__set local.get $1 @@ -2997,7 +2969,7 @@ global.set $~lib/memory/__stack_pointer local.get $5 ) - (func $~lib/map/Map#constructor (result i32) + (func $"~lib/map/Map#constructor" (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -3016,13 +2988,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 8 call $~lib/rt/itcms/__new @@ -3089,7 +3060,6 @@ local.get $0 ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3106,23 +3076,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3139,10 +3107,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3158,7 +3125,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -3169,13 +3135,13 @@ i32.add i32.load local.set $0 - local.get $2 + 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 (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3195,13 +3161,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3214,28 +3179,28 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $3 i32.const 15 i32.shr_u - local.get $4 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $3 i32.const 13 i32.shr_u - local.get $4 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $3 i32.const 16 i32.shr_u - local.get $4 + local.get $3 i32.xor local.tee $8 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3244,20 +3209,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -3266,7 +3230,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1378 + block $"__inlined_func$~lib/map/Map#find$1378" loop $while-continue|0 local.get $3 if @@ -3290,7 +3254,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1378 + br $"__inlined_func$~lib/map/Map#find$1378" end local.get $4 i32.const -2 @@ -3313,33 +3277,32 @@ i32.store8 offset=1 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -3348,7 +3311,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -3364,7 +3327,7 @@ i32.const 1 i32.or end - local.set $5 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3374,21 +3337,20 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer local.get $3 @@ -3396,7 +3358,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $9 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3407,42 +3369,42 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $10 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $10 + local.get $5 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $6 + local.set $10 local.get $4 local.set $3 loop $while-continue|00 - local.get $6 + local.get $5 local.get $10 i32.ne if - local.get $10 + local.get $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $3 - local.get $10 + local.get $5 i32.load8_s local.tee $11 i32.store8 local.get $3 - local.get $10 + local.get $5 i32.load8_s offset=1 i32.store8 offset=1 local.get $3 - local.get $9 - local.get $5 + local.get $6 + local.get $7 local.get $11 i32.extend8_s i32.const -1028477379 @@ -3487,31 +3449,30 @@ i32.add local.set $3 end - local.get $10 + local.get $5 i32.const 8 i32.add - local.set $10 + local.set $5 br $while-continue|00 end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=12 local.get $0 - local.get $9 + local.get $6 i32.store local.get $0 - local.get $9 + local.get $6 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3529,7 +3490,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $7 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3547,42 +3508,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $3 local.get $1 i32.store8 - local.get $4 + local.get $3 local.get $2 i32.store8 offset=1 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -3591,16 +3551,16 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 local.get $8 local.get $0 @@ -3613,7 +3573,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -3629,9 +3589,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3648,19 +3607,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -3707,7 +3665,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3731,13 +3689,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -3851,10 +3808,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 local.get $0 @@ -3902,11 +3858,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3923,13 +3878,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3963,7 +3917,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -3971,34 +3925,33 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -4007,7 +3960,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4023,32 +3976,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 12 i32.mul i32.add @@ -4058,10 +4010,10 @@ local.get $3 local.get $2 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4070,13 +4022,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -4100,9 +4052,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4119,10 +4070,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4156,7 +4106,7 @@ i32.shr_u local.get $1 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -4173,10 +4123,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4185,40 +4134,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -4234,15 +4183,15 @@ local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/map/Map#rehash + local.get $1 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#clear (param $0 i32) + (func $"~lib/map/Map#clear" (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4260,10 +4209,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 16 @@ -4322,7 +4270,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -4342,11 +4290,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -4355,78 +4304,77 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $1 i32.store loop $for-loop|0 local.get $0 @@ -4434,11 +4382,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -4448,20 +4396,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -4472,11 +4420,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -4497,10 +4445,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -4519,11 +4467,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -4534,11 +4482,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -4552,20 +4500,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -4576,11 +4524,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -4601,10 +4549,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -4616,10 +4564,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4628,22 +4577,22 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=8 local.set $5 - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=16 local.set $6 global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -4652,13 +4601,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 5 call $~lib/rt/itcms/__new @@ -4709,34 +4657,34 @@ i32.const 8 i32.le_u select - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=12 local.get $7 - local.get $0 + local.get $8 i32.store local.get $7 - local.get $0 + local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $0 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $8 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 @@ -4748,22 +4696,21 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $1 + local.get $3 local.get $6 i32.lt_s if local.get $5 - local.get $1 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $8 i32.load offset=8 i32.const 1 i32.and @@ -4774,7 +4721,7 @@ i32.store local.get $7 local.get $0 - local.get $4 + local.get $8 i32.load8_s call $~lib/array/Array#__set local.get $0 @@ -4782,10 +4729,10 @@ i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|00 end end @@ -4799,19 +4746,19 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4821,92 +4768,89 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 7 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 + call $"~lib/map/Map#constructor" + local.tee $3 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 call $~lib/array/Array#get:length - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -4921,13 +4865,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store - local.get $1 + local.get $2 local.get $7 i32.load offset=12 i32.ge_u @@ -4940,16 +4883,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $7 i32.store - local.get $1 + local.get $2 local.get $7 i32.load offset=4 i32.add i32.load8_s - local.set $6 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -4957,15 +4899,15 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has + local.get $1 + local.get $5 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -4976,13 +4918,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -4993,34 +4935,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 i32.const 20 i32.sub local.tee $5 local.get $5 - call $~lib/map/Map#set - local.get $1 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -5032,10 +4974,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $3 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -5054,11 +4996,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -5069,11 +5011,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -5087,17 +5029,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -5114,10 +5056,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -5136,11 +5078,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -5150,20 +5092,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -5174,17 +5116,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -5201,10 +5143,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -5216,15 +5158,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -5246,8 +5188,7 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5264,10 +5205,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5302,7 +5242,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -5312,7 +5252,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5336,13 +5276,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -5456,10 +5395,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 local.get $0 @@ -5507,11 +5445,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -5528,13 +5465,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5570,7 +5506,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -5578,34 +5514,33 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -5614,7 +5549,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -5630,32 +5565,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 12 i32.mul i32.add @@ -5665,10 +5599,10 @@ local.get $3 local.get $2 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -5677,13 +5611,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -5707,8 +5641,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5725,10 +5658,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5763,7 +5695,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -5783,7 +5715,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5803,13 +5735,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -5823,28 +5754,28 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $3 i32.const 15 i32.shr_u - local.get $4 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $3 i32.const 13 i32.shr_u - local.get $4 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $3 i32.const 16 i32.shr_u - local.get $4 + local.get $3 i32.xor local.tee $8 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5853,20 +5784,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -5875,7 +5805,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1383 + block $"__inlined_func$~lib/map/Map#find$1383" loop $while-continue|0 local.get $3 if @@ -5899,7 +5829,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1383 + br $"__inlined_func$~lib/map/Map#find$1383" end local.get $4 i32.const -2 @@ -5922,33 +5852,32 @@ i32.store8 offset=1 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -5957,7 +5886,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -5973,7 +5902,7 @@ i32.const 1 i32.or end - local.set $5 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -5983,21 +5912,20 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer local.get $3 @@ -6005,7 +5933,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $9 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6016,42 +5944,42 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $10 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $10 + local.get $5 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $6 + local.set $10 local.get $4 local.set $3 loop $while-continue|00 - local.get $6 + local.get $5 local.get $10 i32.ne if - local.get $10 + local.get $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $3 - local.get $10 + local.get $5 i32.load8_u local.tee $11 i32.store8 local.get $3 - local.get $10 + local.get $5 i32.load8_u offset=1 i32.store8 offset=1 local.get $3 - local.get $9 - local.get $5 + local.get $6 + local.get $7 local.get $11 i32.const -1028477379 i32.mul @@ -6095,31 +6023,30 @@ i32.add local.set $3 end - local.get $10 + local.get $5 i32.const 8 i32.add - local.set $10 + local.set $5 br $while-continue|00 end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=12 local.get $0 - local.get $9 + local.get $6 i32.store local.get $0 - local.get $9 + local.get $6 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6137,7 +6064,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $7 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6155,42 +6082,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $3 local.get $1 i32.store8 - local.get $4 + local.get $3 local.get $2 i32.store8 offset=1 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -6199,16 +6125,16 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 local.get $8 local.get $0 @@ -6221,7 +6147,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -6237,9 +6163,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6256,10 +6181,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6294,7 +6218,7 @@ i32.shr_u local.get $1 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -6311,10 +6235,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -6323,40 +6246,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -6372,15 +6295,15 @@ local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/map/Map#rehash + local.get $1 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -6400,11 +6323,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -6413,78 +6337,77 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 9 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $1 i32.store loop $for-loop|0 local.get $0 @@ -6492,11 +6415,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -6506,20 +6429,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -6530,11 +6453,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -6555,10 +6478,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -6577,11 +6500,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -6592,11 +6515,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -6610,20 +6533,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -6634,11 +6557,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -6659,10 +6582,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -6674,10 +6597,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6686,22 +6610,22 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=8 local.set $5 - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=16 local.set $6 global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -6710,13 +6634,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 10 call $~lib/rt/itcms/__new @@ -6767,34 +6690,34 @@ i32.const 8 i32.le_u select - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=12 local.get $7 - local.get $0 + local.get $8 i32.store local.get $7 - local.get $0 + local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $0 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $8 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 @@ -6806,22 +6729,21 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $1 + local.get $3 local.get $6 i32.lt_s if local.get $5 - local.get $1 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $8 i32.load offset=8 i32.const 1 i32.and @@ -6832,7 +6754,7 @@ i32.store local.get $7 local.get $0 - local.get $4 + local.get $8 i32.load8_u call $~lib/array/Array#__set local.get $0 @@ -6840,10 +6762,10 @@ i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|00 end end @@ -6857,19 +6779,19 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -6879,92 +6801,89 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 + call $"~lib/map/Map#constructor" + local.tee $3 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 call $~lib/array/Array#get:length - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -6979,13 +6898,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store - local.get $1 + local.get $2 local.get $7 i32.load offset=12 i32.ge_u @@ -6998,16 +6916,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $7 i32.store - local.get $1 + local.get $2 local.get $7 i32.load offset=4 i32.add i32.load8_u - local.set $6 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -7015,15 +6932,15 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has + local.get $1 + local.get $5 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -7034,13 +6951,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -7051,34 +6968,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 i32.const 20 i32.sub local.tee $5 local.get $5 - call $~lib/map/Map#set - local.get $1 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -7090,10 +7007,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $3 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -7112,11 +7029,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -7127,11 +7044,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -7145,17 +7062,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -7172,10 +7089,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -7194,11 +7111,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -7208,20 +7125,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -7232,17 +7149,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -7259,10 +7176,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -7274,15 +7191,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -7304,9 +7221,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7323,19 +7239,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -7384,8 +7299,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7402,10 +7316,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7439,7 +7352,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -7449,7 +7362,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7473,13 +7386,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -7594,10 +7506,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 local.get $0 @@ -7645,11 +7556,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -7666,13 +7576,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7707,7 +7616,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -7715,34 +7624,33 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -7751,7 +7659,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -7767,32 +7675,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 12 i32.mul i32.add @@ -7802,10 +7709,10 @@ local.get $3 local.get $2 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -7814,13 +7721,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -7844,8 +7751,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7862,10 +7768,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7899,7 +7804,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -7937,10 +7842,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -7975,7 +7879,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -7986,7 +7889,7 @@ i32.add local.get $2 i32.store16 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -8026,7 +7929,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8046,13 +7949,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -8065,28 +7967,28 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $3 i32.const 15 i32.shr_u - local.get $4 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $3 i32.const 13 i32.shr_u - local.get $4 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $3 i32.const 16 i32.shr_u - local.get $4 + local.get $3 i32.xor local.tee $8 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8095,20 +7997,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -8117,7 +8018,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1388 + block $"__inlined_func$~lib/map/Map#find$1388" loop $while-continue|0 local.get $3 if @@ -8141,7 +8042,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1388 + br $"__inlined_func$~lib/map/Map#find$1388" end local.get $4 i32.const -2 @@ -8164,33 +8065,32 @@ i32.store16 offset=2 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -8199,7 +8099,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -8215,7 +8115,7 @@ i32.const 1 i32.or end - local.set $5 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -8225,21 +8125,20 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer local.get $3 @@ -8247,7 +8146,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $9 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8258,42 +8157,42 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $10 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $10 + local.get $5 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $6 + local.set $10 local.get $4 local.set $3 loop $while-continue|00 - local.get $6 + local.get $5 local.get $10 i32.ne if - local.get $10 + local.get $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $3 - local.get $10 + local.get $5 i32.load16_s local.tee $11 i32.store16 local.get $3 - local.get $10 + local.get $5 i32.load16_s offset=2 i32.store16 offset=2 local.get $3 - local.get $9 - local.get $5 + local.get $6 + local.get $7 local.get $11 i32.extend16_s i32.const -1028477379 @@ -8338,31 +8237,30 @@ i32.add local.set $3 end - local.get $10 + local.get $5 i32.const 8 i32.add - local.set $10 + local.set $5 br $while-continue|00 end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=12 local.get $0 - local.get $9 + local.get $6 i32.store local.get $0 - local.get $9 + local.get $6 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -8380,7 +8278,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $7 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -8398,42 +8296,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $3 local.get $1 i32.store16 - local.get $4 + local.get $3 local.get $2 i32.store16 offset=2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -8442,16 +8339,16 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 local.get $8 local.get $0 @@ -8464,7 +8361,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -8480,9 +8377,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8499,10 +8395,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8536,7 +8431,7 @@ i32.shr_u local.get $1 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -8553,10 +8448,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -8565,40 +8459,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -8614,15 +8508,15 @@ local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/map/Map#rehash + local.get $1 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -8642,11 +8536,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -8655,78 +8550,77 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 12 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $1 i32.store loop $for-loop|0 local.get $0 @@ -8734,11 +8628,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -8748,20 +8642,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8772,11 +8666,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -8797,10 +8691,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -8819,11 +8713,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8834,11 +8728,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -8852,20 +8746,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -8876,11 +8770,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -8901,10 +8795,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -8916,10 +8810,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8928,22 +8823,22 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=8 local.set $5 - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=16 local.set $6 global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -8952,13 +8847,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 13 call $~lib/rt/itcms/__new @@ -9011,34 +8905,34 @@ select i32.const 1 i32.shl - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=12 local.get $7 - local.get $0 + local.get $8 i32.store local.get $7 - local.get $0 + local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $0 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $8 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 @@ -9050,22 +8944,21 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $1 + local.get $3 local.get $6 i32.lt_s if local.get $5 - local.get $1 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $8 i32.load offset=8 i32.const 1 i32.and @@ -9076,7 +8969,7 @@ i32.store local.get $7 local.get $0 - local.get $4 + local.get $8 i32.load16_s call $~lib/array/Array#__set local.get $0 @@ -9084,10 +8977,10 @@ i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|00 end end @@ -9101,19 +8994,19 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -9123,92 +9016,89 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 + call $"~lib/map/Map#constructor" + local.tee $3 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 call $~lib/array/Array#get:length - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -9223,13 +9113,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store - local.get $1 + local.get $2 local.get $7 i32.load offset=12 i32.ge_u @@ -9242,18 +9131,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $7 i32.store local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_s - local.set $6 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9261,15 +9149,15 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has + local.get $1 + local.get $5 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9280,13 +9168,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9297,34 +9185,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 i32.const 20 i32.sub local.tee $5 local.get $5 - call $~lib/map/Map#set - local.get $1 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -9336,10 +9224,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $3 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -9358,11 +9246,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9373,11 +9261,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -9391,17 +9279,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -9418,10 +9306,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -9440,11 +9328,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -9454,20 +9342,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -9478,17 +9366,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -9505,10 +9393,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -9520,15 +9408,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -9550,8 +9438,7 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9568,10 +9455,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9606,7 +9492,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -9616,7 +9502,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9640,13 +9526,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -9760,10 +9645,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 local.get $0 @@ -9811,11 +9695,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -9832,13 +9715,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9874,7 +9756,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -9882,34 +9764,33 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -9918,7 +9799,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -9934,32 +9815,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 12 i32.mul i32.add @@ -9969,10 +9849,10 @@ local.get $3 local.get $2 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -9981,13 +9861,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -10011,8 +9891,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10029,10 +9908,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -10067,7 +9945,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -10087,7 +9965,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10107,13 +9985,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -10127,28 +10004,28 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $3 i32.const 15 i32.shr_u - local.get $4 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $3 i32.const 13 i32.shr_u - local.get $4 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $3 i32.const 16 i32.shr_u - local.get $4 + local.get $3 i32.xor local.tee $8 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10157,20 +10034,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -10179,7 +10055,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1393 + block $"__inlined_func$~lib/map/Map#find$1393" loop $while-continue|0 local.get $3 if @@ -10203,7 +10079,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1393 + br $"__inlined_func$~lib/map/Map#find$1393" end local.get $4 i32.const -2 @@ -10226,33 +10102,32 @@ i32.store16 offset=2 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -10261,7 +10136,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -10277,7 +10152,7 @@ i32.const 1 i32.or end - local.set $5 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -10287,21 +10162,20 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer local.get $3 @@ -10309,7 +10183,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $9 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -10320,42 +10194,42 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $10 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $10 + local.get $5 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $6 + local.set $10 local.get $4 local.set $3 loop $while-continue|00 - local.get $6 + local.get $5 local.get $10 i32.ne if - local.get $10 + local.get $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $3 - local.get $10 + local.get $5 i32.load16_u local.tee $11 i32.store16 local.get $3 - local.get $10 + local.get $5 i32.load16_u offset=2 i32.store16 offset=2 local.get $3 - local.get $9 - local.get $5 + local.get $6 + local.get $7 local.get $11 i32.const -1028477379 i32.mul @@ -10399,31 +10273,30 @@ i32.add local.set $3 end - local.get $10 + local.get $5 i32.const 8 i32.add - local.set $10 + local.set $5 br $while-continue|00 end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=12 local.get $0 - local.get $9 + local.get $6 i32.store local.get $0 - local.get $9 + local.get $6 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -10441,7 +10314,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $7 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -10459,42 +10332,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $3 local.get $1 i32.store16 - local.get $4 + local.get $3 local.get $2 i32.store16 offset=2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -10503,16 +10375,16 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 local.get $8 local.get $0 @@ -10525,7 +10397,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -10541,9 +10413,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10560,10 +10431,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -10598,7 +10468,7 @@ i32.shr_u local.get $1 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -10615,10 +10485,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -10627,40 +10496,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -10676,15 +10545,15 @@ local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/map/Map#rehash + local.get $1 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -10704,11 +10573,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -10717,78 +10587,77 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 15 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $1 i32.store loop $for-loop|0 local.get $0 @@ -10796,11 +10665,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -10810,20 +10679,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -10834,11 +10703,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -10859,10 +10728,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -10881,11 +10750,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -10896,11 +10765,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -10914,20 +10783,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -10938,11 +10807,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -10963,10 +10832,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -10978,10 +10847,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10990,22 +10860,22 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=8 local.set $5 - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=16 local.set $6 global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -11014,13 +10884,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 16 call $~lib/rt/itcms/__new @@ -11073,34 +10942,34 @@ select i32.const 1 i32.shl - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=12 local.get $7 - local.get $0 + local.get $8 i32.store local.get $7 - local.get $0 + local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $0 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $8 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 @@ -11112,22 +10981,21 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $1 + local.get $3 local.get $6 i32.lt_s if local.get $5 - local.get $1 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $8 i32.load offset=8 i32.const 1 i32.and @@ -11138,7 +11006,7 @@ i32.store local.get $7 local.get $0 - local.get $4 + local.get $8 i32.load16_u call $~lib/array/Array#__set local.get $0 @@ -11146,10 +11014,10 @@ i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|00 end end @@ -11163,19 +11031,19 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11185,92 +11053,89 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 17 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 + call $"~lib/map/Map#constructor" + local.tee $3 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 call $~lib/array/Array#get:length - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -11285,13 +11150,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store - local.get $1 + local.get $2 local.get $7 i32.load offset=12 i32.ge_u @@ -11304,18 +11168,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $7 i32.store local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_u - local.set $6 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -11323,15 +11186,15 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has + local.get $1 + local.get $5 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11342,13 +11205,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11359,34 +11222,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 i32.const 20 i32.sub local.tee $5 local.get $5 - call $~lib/map/Map#set - local.get $1 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -11398,10 +11261,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $3 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -11420,11 +11283,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11435,11 +11298,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -11453,17 +11316,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -11480,10 +11343,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -11502,11 +11365,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -11516,20 +11379,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11540,17 +11403,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -11567,10 +11430,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -11582,15 +11445,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -11612,8 +11475,7 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11630,10 +11492,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -11666,7 +11527,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -11676,8 +11537,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11694,10 +11554,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -11730,7 +11589,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -11750,9 +11609,8 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11769,10 +11627,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -11805,7 +11662,7 @@ i32.shr_u local.get $1 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -11822,10 +11679,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -11834,40 +11690,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -11883,15 +11739,15 @@ local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/map/Map#rehash + local.get $1 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -11900,7 +11756,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -11911,13 +11766,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 - call $~lib/map/Map#constructor - local.tee $5 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $1 i32.store loop $for-loop|0 local.get $0 @@ -11925,11 +11779,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -11939,20 +11793,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -11963,11 +11817,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -11988,10 +11842,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -12010,11 +11864,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12025,11 +11879,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -12043,20 +11897,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 local.get $0 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12067,11 +11921,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -12092,10 +11946,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -12107,10 +11961,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $5 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -12119,49 +11974,48 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $5 + local.get $1 i32.load offset=8 - local.set $7 - local.get $0 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load offset=16 - local.tee $8 + local.tee $6 call $~lib/array/Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $2 - local.get $8 + local.get $3 + local.get $6 i32.lt_s if - local.get $7 - local.get $2 + local.get $5 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 local.get $0 - local.get $4 + local.get $7 i32.load call $~lib/array/Array#__set local.get $0 @@ -12169,71 +12023,73 @@ i32.add local.set $0 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $2 + call $"~lib/map/Map#constructor" + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 + call $"~lib/map/Map#constructor" + local.tee $5 i32.store offset=20 + i32.const 0 + local.set $3 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 call $~lib/array/Array#get:length - local.get $1 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 + local.get $2 local.get $3 - local.get $1 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $3 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $6 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12244,13 +12100,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $7 i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12261,34 +12117,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $6 local.get $6 - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 + local.get $5 local.get $7 i32.const 20 i32.sub local.tee $6 local.get $6 - call $~lib/map/Map#set - local.get $1 + call $"~lib/map/Map#set" + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -12300,10 +12156,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $5 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -12322,11 +12178,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12337,11 +12193,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -12355,17 +12211,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -12382,10 +12238,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -12404,11 +12260,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -12418,20 +12274,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12442,17 +12298,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -12469,10 +12325,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -12484,15 +12340,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $~lib/map/Map#clear + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -12514,9 +12370,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12533,19 +12388,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -12592,8 +12446,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12610,10 +12463,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -12646,7 +12498,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -12656,7 +12508,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12680,13 +12532,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -12800,10 +12651,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 local.get $0 @@ -12851,11 +12701,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -12872,13 +12721,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -12912,7 +12760,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -12920,34 +12768,33 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -12956,7 +12803,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -12972,32 +12819,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 12 i32.mul i32.add @@ -13007,10 +12853,10 @@ local.get $3 local.get $2 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -13019,13 +12865,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -13049,8 +12895,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13067,10 +12912,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -13103,7 +12947,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -13123,7 +12967,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13143,13 +12987,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -13182,8 +13025,8 @@ i32.shr_u local.get $3 i32.xor - local.tee $8 - call $~lib/map/Map#find + local.tee $7 + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -13191,33 +13034,32 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -13226,7 +13068,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -13242,7 +13084,7 @@ i32.const 1 i32.or end - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13252,14 +13094,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.const 1 i32.add local.tee $3 @@ -13274,7 +13115,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13295,11 +13136,11 @@ i32.const 12 i32.mul i32.add - local.set $6 + local.set $5 local.get $4 local.set $3 loop $while-continue|0 - local.get $6 + local.get $5 local.get $10 i32.ne if @@ -13320,7 +13161,7 @@ i32.store offset=4 local.get $3 local.get $9 - local.get $5 + local.get $8 local.get $11 i32.const -1028477379 i32.mul @@ -13372,10 +13213,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=12 local.get $0 @@ -13388,7 +13228,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -13406,7 +13246,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -13424,42 +13264,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $3 local.get $1 i32.store - local.get $4 + local.get $3 local.get $2 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -13468,18 +13307,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 - local.get $8 + local.get $7 local.get $0 i32.load offset=4 i32.and @@ -13490,7 +13329,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -13506,9 +13345,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -13525,10 +13363,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -13561,7 +13398,7 @@ i32.shr_u local.get $1 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -13578,10 +13415,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -13590,40 +13426,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -13639,15 +13475,15 @@ local.get $0 i32.store local.get $0 - local.get $2 - call $~lib/map/Map#rehash + local.get $1 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -13667,11 +13503,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -13680,78 +13517,77 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 18 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $4 + local.get $1 i32.store loop $for-loop|0 local.get $0 @@ -13759,11 +13595,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -13773,20 +13609,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13797,11 +13633,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -13822,10 +13658,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -13844,11 +13680,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13859,11 +13695,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 10 i32.add @@ -13877,20 +13713,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13901,11 +13737,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -13926,10 +13762,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -13941,10 +13777,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13953,22 +13790,22 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=8 local.set $5 - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 + local.get $1 i32.load offset=16 local.set $6 global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -13977,13 +13814,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 19 call $~lib/rt/itcms/__new @@ -14036,34 +13872,34 @@ select i32.const 2 i32.shl - local.tee $8 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=12 local.get $7 - local.get $0 + local.get $8 i32.store local.get $7 - local.get $0 + local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $0 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - local.get $8 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 @@ -14075,22 +13911,21 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=4 i32.const 0 local.set $0 loop $for-loop|00 - local.get $1 + local.get $3 local.get $6 i32.lt_s if local.get $5 - local.get $1 + local.get $3 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $8 i32.load offset=8 i32.const 1 i32.and @@ -14101,7 +13936,7 @@ i32.store local.get $7 local.get $0 - local.get $4 + local.get $8 i32.load call $~lib/array/Array#__set local.get $0 @@ -14109,10 +13944,10 @@ i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|00 end end @@ -14126,19 +13961,19 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14148,92 +13983,89 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 20 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $4 + call $"~lib/map/Map#constructor" + local.tee $3 i32.store offset=20 - i32.const 0 - local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 call $~lib/array/Array#get:length - local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -14248,13 +14080,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store - local.get $1 + local.get $2 local.get $7 i32.load offset=12 i32.ge_u @@ -14267,18 +14098,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $7 i32.store local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $6 - local.get $5 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -14286,15 +14116,15 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 - call $~lib/map/Map#has + local.get $1 + local.get $5 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14305,13 +14135,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - local.get $5 + local.get $1 + local.get $6 i32.const 20 i32.sub - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14322,34 +14152,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $6 - call $~lib/map/Map#set - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 i32.const 20 i32.sub local.tee $5 local.get $5 - call $~lib/map/Map#set - local.get $1 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 - local.get $2 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -14361,10 +14191,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $3 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -14383,11 +14213,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14398,11 +14228,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -14416,17 +14246,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -14443,10 +14273,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -14465,11 +14295,11 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -14479,20 +14309,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $0 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -14503,17 +14333,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -14530,10 +14360,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -14545,15 +14375,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -14575,9 +14405,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14594,19 +14423,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -14653,8 +14481,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14671,10 +14498,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -14719,7 +14545,7 @@ i32.shr_u local.get $0 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -14729,7 +14555,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14754,13 +14580,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -14886,10 +14711,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=12 local.get $0 @@ -14937,11 +14761,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14958,13 +14781,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -15010,7 +14832,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -15018,34 +14840,33 @@ i32.store offset=8 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -15054,7 +14875,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -15070,32 +14891,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 4 i32.shl i32.add @@ -15105,10 +14925,10 @@ local.get $3 local.get $2 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -15117,13 +14937,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $2 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -15147,8 +14967,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15165,10 +14984,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -15213,7 +15031,7 @@ i32.shr_u local.get $0 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -15251,10 +15069,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -15289,7 +15106,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -15300,7 +15116,7 @@ i32.add local.get $2 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -15340,7 +15156,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#values (param $0 i32) (result i32) + (func $"~lib/map/Map#values" (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15362,36 +15178,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=16 - local.tee $4 + local.tee $0 call $~lib/array/Array#constructor local.tee $5 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $2 - local.get $4 - i32.lt_s + i32.gt_s if local.get $3 local.get $2 i32.const 4 i32.shl i32.add - local.tee $0 + local.tee $4 i32.load offset=12 i32.const 1 i32.and @@ -15402,7 +15217,7 @@ i32.store local.get $5 local.get $1 - local.get $0 + local.get $4 i32.load offset=8 call $~lib/array/Array#__set local.get $1 @@ -15429,7 +15244,7 @@ global.set $~lib/memory/__stack_pointer local.get $5 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15450,17 +15265,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15469,19 +15282,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 i32.wrap_i64 i32.const -1028477379 @@ -15531,7 +15343,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1403 + block $"__inlined_func$~lib/map/Map#find$1403" loop $while-continue|0 local.get $3 if @@ -15553,7 +15365,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1403 + br $"__inlined_func$~lib/map/Map#find$1403" end local.get $4 i32.const -2 @@ -15576,33 +15388,32 @@ i64.store offset=8 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -15611,7 +15422,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -15637,13 +15448,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $5 i32.const 1 i32.add @@ -15769,10 +15579,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $10 i32.store offset=12 local.get $0 @@ -15821,42 +15630,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 24 i32.mul i32.add - local.tee $4 + local.tee $3 local.get $1 i64.store - local.get $4 + local.get $3 local.get $2 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -15865,17 +15673,17 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 local.get $4 - local.get $5 local.get $8 local.get $0 i32.load offset=4 @@ -15887,7 +15695,7 @@ i32.load i32.store offset=16 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -15903,10 +15711,9 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -15923,10 +15730,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -15971,7 +15777,7 @@ i32.shr_u local.get $2 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $2 i32.eqz if @@ -15988,10 +15794,9 @@ i32.or i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -16000,40 +15805,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $4 - local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -16049,15 +15854,15 @@ local.get $0 i32.store local.get $0 - local.get $3 - call $~lib/map/Map#rehash + local.get $2 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#clear (param $0 i32) + (func $"~lib/map/Map#clear" (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16075,10 +15880,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 16 @@ -16137,10 +15941,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16158,11 +15962,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -16171,20 +15976,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 21 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16192,20 +15996,20 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 i32.store - local.get $4 + local.get $1 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16213,48 +16017,48 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 + local.get $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -16264,21 +16068,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 + local.get $2 + local.get $2 i32.wrap_i64 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16289,12 +16093,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 i32.wrap_i64 i32.const 10 i32.add @@ -16307,18 +16111,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -16330,18 +16134,18 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16352,12 +16156,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 i32.wrap_i64 i32.const 10 i32.add @@ -16371,21 +16175,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 + local.get $2 + local.get $2 i32.wrap_i64 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16396,12 +16200,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 i32.wrap_i64 i32.const 20 i32.add @@ -16414,18 +16218,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -16437,10 +16241,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -16449,22 +16254,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $4 + local.get $1 i32.load offset=8 local.set $6 - local.get $3 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $4 + local.get $1 i32.load offset=16 local.set $7 - local.get $3 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -16474,13 +16278,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 22 call $~lib/rt/itcms/__new @@ -16536,25 +16339,25 @@ local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 local.get $8 - local.get $3 + local.get $4 i32.store local.get $8 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -16575,16 +16378,16 @@ local.get $8 i32.store offset=4 loop $for-loop|00 - local.get $2 + local.get $3 local.get $7 i32.lt_s if local.get $6 - local.get $2 + local.get $3 i32.const 4 i32.shl i32.add - local.tee $3 + local.tee $4 i32.load offset=12 i32.const 1 i32.and @@ -16595,7 +16398,7 @@ i32.store local.get $8 local.get $0 - local.get $3 + local.get $4 i64.load call $~lib/array/Array#__set local.get $0 @@ -16603,10 +16406,10 @@ i32.add local.set $0 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|00 end end @@ -16624,15 +16427,15 @@ local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -16642,20 +16445,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 23 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16663,20 +16465,20 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 i32.store - local.get $3 + local.get $4 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16684,50 +16486,50 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $5 i32.store offset=20 i32.const 0 - local.set $2 + local.set $3 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 call $~lib/array/Array#get:length - local.get $2 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -16742,13 +16544,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $8 i32.store - local.get $2 + local.get $3 local.get $8 i32.load offset=12 i32.ge_u @@ -16761,18 +16562,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $8 i32.store local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 3 i32.shl i32.add i64.load - local.set $1 - local.get $6 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -16780,15 +16580,15 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16799,14 +16599,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 local.get $6 i32.const 20 i32.sub i64.extend_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16817,12 +16617,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 - local.get $1 - local.get $1 - call $~lib/map/Map#set + local.get $4 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 @@ -16832,19 +16632,19 @@ i32.sub local.tee $6 local.get $6 - call $~lib/map/Map#set - local.get $2 + call $"~lib/map/Map#set" + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -16859,7 +16659,7 @@ local.get $5 i32.store offset=4 local.get $5 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -16871,18 +16671,18 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16893,12 +16693,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 i32.wrap_i64 i32.const 20 i32.add @@ -16912,17 +16712,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#delete + local.get $2 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -16931,18 +16731,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -16954,18 +16754,18 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -16975,21 +16775,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 + local.get $2 + local.get $2 i32.wrap_i64 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -17000,17 +16800,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#delete + local.get $2 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -17019,18 +16819,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -17042,15 +16842,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#clear + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -17072,9 +16872,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -17091,19 +16890,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -17150,8 +16948,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -17168,10 +16965,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -17216,7 +17012,7 @@ i32.shr_u local.get $0 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -17226,7 +17022,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17251,13 +17047,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -17383,10 +17178,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=12 local.get $0 @@ -17434,11 +17228,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -17455,13 +17248,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -17507,7 +17299,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -17515,34 +17307,33 @@ i32.store offset=8 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -17551,7 +17342,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -17567,32 +17358,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 4 i32.shl i32.add @@ -17602,10 +17392,10 @@ local.get $3 local.get $2 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -17614,13 +17404,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $2 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -17644,8 +17434,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -17662,10 +17451,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -17710,7 +17498,7 @@ i32.shr_u local.get $0 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -17730,7 +17518,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i64) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17751,17 +17539,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17770,19 +17556,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 i32.wrap_i64 i32.const -1028477379 @@ -17832,7 +17617,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1408 + block $"__inlined_func$~lib/map/Map#find$1408" loop $while-continue|0 local.get $3 if @@ -17854,7 +17639,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1408 + br $"__inlined_func$~lib/map/Map#find$1408" end local.get $4 i32.const -2 @@ -17877,33 +17662,32 @@ i64.store offset=8 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -17912,7 +17696,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -17938,13 +17722,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $5 i32.const 1 i32.add @@ -18070,10 +17853,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $10 i32.store offset=12 local.get $0 @@ -18122,42 +17904,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 24 i32.mul i32.add - local.tee $4 + local.tee $3 local.get $1 i64.store - local.get $4 + local.get $3 local.get $2 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -18166,17 +17947,17 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 local.get $4 - local.get $5 local.get $8 local.get $0 i32.load offset=4 @@ -18188,7 +17969,7 @@ i32.load i32.store offset=16 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -18204,10 +17985,9 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18224,10 +18004,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -18272,7 +18051,7 @@ i32.shr_u local.get $2 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $2 i32.eqz if @@ -18289,10 +18068,9 @@ i32.or i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -18301,40 +18079,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=20 - local.set $4 - local.get $2 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -18350,18 +18128,18 @@ local.get $0 i32.store local.get $0 - local.get $3 - call $~lib/map/Map#rehash + local.get $2 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -18379,11 +18157,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -18392,20 +18171,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 24 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18413,20 +18191,20 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 i32.store - local.get $4 + local.get $1 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18434,48 +18212,48 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 i32.store offset=8 - local.get $4 + local.get $1 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 + local.get $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -18485,21 +18263,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 + local.get $2 + local.get $2 i32.wrap_i64 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18510,12 +18288,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 i32.wrap_i64 i32.const 10 i32.add @@ -18528,18 +18306,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -18551,18 +18329,18 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18573,12 +18351,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 i32.wrap_i64 i32.const 10 i32.add @@ -18592,21 +18370,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 + local.get $2 + local.get $2 i32.wrap_i64 i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18617,12 +18395,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 i32.wrap_i64 i32.const 20 i32.add @@ -18635,18 +18413,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -18658,10 +18436,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -18670,22 +18449,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $4 + local.get $1 i32.load offset=8 local.set $6 - local.get $3 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $4 + local.get $1 i32.load offset=16 local.set $7 - local.get $3 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -18695,13 +18473,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 25 call $~lib/rt/itcms/__new @@ -18757,25 +18534,25 @@ local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 local.get $8 - local.get $3 + local.get $4 i32.store local.get $8 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 @@ -18796,16 +18573,16 @@ local.get $8 i32.store offset=4 loop $for-loop|00 - local.get $2 + local.get $3 local.get $7 i32.lt_s if local.get $6 - local.get $2 + local.get $3 i32.const 4 i32.shl i32.add - local.tee $3 + local.tee $4 i32.load offset=12 i32.const 1 i32.and @@ -18816,7 +18593,7 @@ i32.store local.get $8 local.get $0 - local.get $3 + local.get $4 i64.load call $~lib/array/Array#__set local.get $0 @@ -18824,10 +18601,10 @@ i32.add local.set $0 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|00 end end @@ -18845,15 +18622,15 @@ local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/map/Map#values + local.get $1 + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -18863,20 +18640,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18884,20 +18660,20 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 i32.store - local.get $3 + local.get $4 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18905,50 +18681,50 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 i32.store offset=8 - local.get $3 + local.get $4 local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $5 i32.store offset=20 i32.const 0 - local.set $2 + local.set $3 loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 call $~lib/array/Array#get:length - local.get $2 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -18963,13 +18739,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $8 i32.store - local.get $2 + local.get $3 local.get $8 i32.load offset=12 i32.ge_u @@ -18982,18 +18757,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $8 i32.store local.get $8 i32.load offset=4 - local.get $2 + local.get $3 i32.const 3 i32.shl i32.add i64.load - local.set $1 - local.get $6 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -19001,15 +18775,15 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $2 + local.get $3 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -19020,14 +18794,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 local.get $6 i32.const 20 i32.sub i64.extend_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -19038,12 +18812,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 - local.get $1 - local.get $1 - call $~lib/map/Map#set + local.get $4 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 @@ -19053,19 +18827,19 @@ i32.sub local.tee $6 local.get $6 - call $~lib/map/Map#set - local.get $2 + call $"~lib/map/Map#set" + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $4 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -19080,7 +18854,7 @@ local.get $5 i32.store offset=4 local.get $5 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -19092,18 +18866,18 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -19114,12 +18888,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#get + i32.store offset=4 local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 i32.wrap_i64 i32.const 20 i32.add @@ -19133,17 +18907,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#delete + local.get $2 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -19152,18 +18926,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -19175,18 +18949,18 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -19196,21 +18970,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 local.get $1 + i32.store offset=4 local.get $1 + local.get $2 + local.get $2 i32.wrap_i64 i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -19221,17 +18995,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#delete + local.get $2 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 local.get $1 - call $~lib/map/Map#has + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -19240,18 +19014,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -19263,15 +19037,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#clear + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $~lib/map/Map#get:size + local.get $1 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -19293,9 +19067,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -19312,19 +19085,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -19371,8 +19143,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 f32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 f32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -19389,10 +19160,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -19426,7 +19196,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -19436,7 +19206,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -19461,13 +19231,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -19582,10 +19351,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=12 local.get $0 @@ -19633,11 +19401,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -19654,13 +19421,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -19695,7 +19461,7 @@ local.get $3 i32.xor local.tee $4 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -19703,34 +19469,33 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -19739,7 +19504,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -19755,32 +19520,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $3 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 local.get $3 - local.get $6 + local.get $5 i32.const 12 i32.mul i32.add @@ -19790,10 +19554,10 @@ local.get $3 local.get $2 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -19802,13 +19566,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $2 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 @@ -19832,8 +19596,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 f32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -19850,10 +19613,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -19887,7 +19649,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -19907,15 +19669,14 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f32) + (local $4 f32) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -19926,21 +19687,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $6 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $2 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -19950,46 +19711,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 28 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=12 - local.get $2 + local.get $5 i32.const 268435455 i32.gt_u if @@ -20002,8 +19762,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $5 + local.get $5 i32.const 8 i32.le_u select @@ -20012,74 +19772,72 @@ local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=12 + local.get $6 local.get $7 - local.get $8 i32.store + local.get $6 local.get $7 - local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 + local.get $6 local.get $7 - local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 - local.get $2 + local.get $6 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $3 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 local.get $3 + local.get $2 i32.const 12 i32.mul i32.add - local.tee $6 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.get $6 i32.store local.get $1 local.tee $0 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 f32.load - local.set $5 - local.get $8 + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -20088,14 +19846,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store local.get $0 - local.get $7 + local.get $6 i32.load offset=12 i32.ge_u if @@ -20110,56 +19867,55 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $0 i32.const 1 i32.add - local.tee $6 + local.tee $7 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store - local.get $7 local.get $6 + local.get $7 i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 f32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 local.get $1 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 return end i32.const 34688 @@ -20169,11 +19925,11 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f32) (param $2 f32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 f32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 f32) + (local $5 f32) + (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) @@ -20190,13 +19946,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -20230,8 +19985,8 @@ i32.shr_u local.get $3 i32.xor - local.tee $9 - call $~lib/map/Map#find + local.tee $8 + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -20239,33 +19994,32 @@ f32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -20274,7 +20028,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -20290,7 +20044,7 @@ i32.const 1 i32.or end - local.set $5 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -20300,14 +20054,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $9 i32.const 1 i32.add local.tee $3 @@ -20322,7 +20075,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20343,11 +20096,11 @@ i32.const 12 i32.mul i32.add - local.set $7 + local.set $6 local.get $4 local.set $3 loop $while-continue|0 - local.get $7 + local.get $6 local.get $11 i32.ne if @@ -20360,7 +20113,7 @@ local.get $3 local.get $11 f32.load - local.tee $6 + local.tee $5 f32.store local.get $3 local.get $11 @@ -20368,8 +20121,8 @@ f32.store offset=4 local.get $3 local.get $10 + local.get $9 local.get $5 - local.get $6 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20421,10 +20174,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $10 i32.store offset=12 local.get $0 @@ -20437,7 +20189,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -20455,7 +20207,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $8 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -20473,42 +20225,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 12 i32.mul i32.add - local.tee $4 + local.tee $3 local.get $1 f32.store - local.get $4 + local.get $3 local.get $2 f32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -20517,18 +20268,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 local.get $4 - local.get $5 - local.get $9 + local.get $8 local.get $0 i32.load offset=4 i32.and @@ -20539,7 +20290,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -20555,10 +20306,9 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20575,10 +20325,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -20612,7 +20361,7 @@ i32.shr_u local.get $2 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $2 i32.eqz if @@ -20629,10 +20378,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -20641,40 +20389,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $4 - local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -20690,15 +20438,15 @@ local.get $0 i32.store local.get $0 - local.get $3 - call $~lib/map/Map#rehash + local.get $2 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 f32) (local $2 i32) @@ -20717,11 +20465,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -20730,20 +20479,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 27 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20751,20 +20499,20 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 i32.store - local.get $3 + local.get $0 local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -20772,36 +20520,36 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $0 i32.store loop $for-loop|0 local.get $1 @@ -20809,11 +20557,11 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -20823,21 +20571,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 i32.trunc_sat_f32_s i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20848,11 +20596,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f32_s i32.const 10 @@ -20874,10 +20622,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -20896,11 +20644,11 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20911,11 +20659,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f32_s i32.const 10 @@ -20930,21 +20678,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 i32.trunc_sat_f32_s i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20955,11 +20703,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f32_s i32.const 20 @@ -20981,10 +20729,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -20996,21 +20744,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.get $0 i32.store offset=4 - local.get $2 - local.get $3 - call $~lib/map/Map#keys + global.get $~lib/memory/__stack_pointer + local.get $0 + call $"~lib/map/Map#keys" local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $2 + local.get $0 + call $"~lib/map/Map#values" + local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.set $5 @@ -21023,13 +20770,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 29 call $~lib/rt/itcms/__new @@ -21097,7 +20843,7 @@ local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $5 i32.store offset=20 loop $for-loop|2 @@ -21106,7 +20852,7 @@ i32.store offset=4 local.get $4 call $~lib/array/Array#get:length - local.get $0 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -21121,13 +20867,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 0 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $0 + local.get $2 local.get $4 i32.load offset=12 i32.ge_u @@ -21140,34 +20885,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $4 i32.store local.get $4 i32.load offset=4 - local.get $0 + local.get $2 i32.const 2 i32.shl i32.add f32.load local.set $1 - local.get $7 + 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 $3 i32.store offset=4 + local.get $3 local.get $2 - local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -21178,14 +20922,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $7 i32.const 20 i32.sub f32.convert_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -21201,7 +20945,7 @@ local.get $6 local.get $1 local.get $1 - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 @@ -21211,11 +20955,11 @@ i32.sub local.tee $7 local.get $7 - call $~lib/map/Map#set - local.get $0 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|2 end end @@ -21223,7 +20967,7 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -21238,7 +20982,7 @@ local.get $5 i32.store offset=4 local.get $5 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -21257,11 +21001,11 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -21272,11 +21016,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f32_s i32.const 20 @@ -21291,17 +21035,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -21318,10 +21062,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -21340,11 +21084,11 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -21354,21 +21098,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 i32.trunc_sat_f32_s i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -21379,17 +21123,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -21406,10 +21150,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -21421,15 +21165,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $0 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 @@ -21451,9 +21195,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21470,19 +21213,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -21529,9 +21271,8 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 i64) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21548,17 +21289,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 i64.reinterpret_f64 - local.tee $3 + local.tee $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21568,7 +21308,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21598,7 +21338,7 @@ i32.shr_u local.get $0 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -21608,7 +21348,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i64) @@ -21634,13 +21374,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -21768,10 +21507,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 local.get $0 @@ -21819,12 +21557,11 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 i32) (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21841,13 +21578,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -21895,7 +21631,7 @@ local.get $4 i32.xor local.tee $5 - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $4 if local.get $4 @@ -21903,34 +21639,33 @@ i32.store offset=8 else global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $6 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $6 + local.get $4 local.get $0 i32.load offset=12 i32.eq if - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $6 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $6 + local.get $4 local.get $0 i32.load offset=12 i32.const 3 @@ -21939,7 +21674,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -21955,32 +21690,31 @@ i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 local.tee $4 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $7 + local.tee $6 i32.const 1 i32.add i32.store offset=16 local.get $4 - local.get $7 + local.get $6 i32.const 4 i32.shl i32.add @@ -21990,10 +21724,10 @@ local.get $4 local.get $2 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -22002,13 +21736,13 @@ i32.const 1 i32.add i32.store offset=20 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $2 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $4 @@ -22032,9 +21766,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 i64) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22051,17 +21784,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 i64.reinterpret_f64 - local.tee $3 + local.tee $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22071,7 +21803,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22101,7 +21833,7 @@ i32.shr_u local.get $0 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -22121,15 +21853,14 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#keys (param $0 i32) (result i32) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f64) + (local $4 f64) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -22140,21 +21871,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $6 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $2 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -22164,46 +21895,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=12 - local.get $2 + local.get $5 i32.const 134217727 i32.gt_u if @@ -22216,8 +21946,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $5 + local.get $5 i32.const 8 i32.le_u select @@ -22226,74 +21956,72 @@ local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=12 + local.get $6 local.get $7 - local.get $8 i32.store + local.get $6 local.get $7 - local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 + local.get $6 local.get $7 - local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 - local.get $2 + local.get $6 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $3 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 local.get $3 + local.get $2 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $7 i32.load offset=12 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.get $6 i32.store local.get $1 local.tee $0 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 f64.load - local.set $5 - local.get $8 + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -22302,14 +22030,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store local.get $0 - local.get $7 + local.get $6 i32.load offset=12 i32.ge_u if @@ -22324,56 +22051,55 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $0 i32.const 1 i32.add - local.tee $6 + local.tee $7 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store - local.get $7 local.get $6 + local.get $7 i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 i32.load offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $5 + local.get $4 f64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 local.get $1 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 return end i32.const 34688 @@ -22383,7 +22109,7 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#set (param $0 i32) (param $1 f64) (param $2 f64) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 f64) (local $3 i32) (local $4 i32) (local $5 i64) @@ -22405,17 +22131,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -22424,19 +22148,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 i64.reinterpret_f64 local.tee $5 @@ -22488,7 +22211,7 @@ i32.add i32.load local.set $3 - block $__inlined_func$~lib/map/Map#find$1418 + block $"__inlined_func$~lib/map/Map#find$1418" loop $while-continue|0 local.get $3 if @@ -22510,7 +22233,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/map/Map#find$1418 + br $"__inlined_func$~lib/map/Map#find$1418" end local.get $4 i32.const -2 @@ -22533,33 +22256,32 @@ f64.store offset=8 else global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.eq if - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -22568,7 +22290,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -22594,13 +22316,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.add @@ -22728,10 +22449,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $11 i32.store offset=12 local.get $0 @@ -22780,42 +22500,41 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $6 i32.const 24 i32.mul i32.add - local.tee $4 + local.tee $3 local.get $1 f64.store - local.get $4 + local.get $3 local.get $2 f64.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -22824,17 +22543,17 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $6 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 local.get $4 - local.get $6 local.get $10 local.get $0 i32.load offset=4 @@ -22846,7 +22565,7 @@ i32.load i32.store offset=16 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -22862,11 +22581,10 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 f64) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f64) (local $2 i64) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -22883,10 +22601,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -22933,7 +22650,7 @@ i32.shr_u local.get $3 i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $3 i32.eqz if @@ -22950,10 +22667,9 @@ i32.or i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -22962,40 +22678,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $4 local.get $0 i32.load offset=12 i32.const 3 @@ -23011,15 +22727,15 @@ local.get $0 i32.store local.get $0 - local.get $4 - call $~lib/map/Map#rehash + local.get $3 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/map/testNumeric + (func $"std/map/testNumeric" (local $0 i32) (local $1 f64) (local $2 i32) @@ -23038,11 +22754,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 24 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -23051,20 +22768,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 30 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -23072,20 +22788,20 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 i32.store - local.get $3 + local.get $0 local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor @@ -23093,36 +22809,36 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 i32.store offset=8 - local.get $3 + local.get $0 local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $0 i32.store loop $for-loop|0 local.get $1 @@ -23130,11 +22846,11 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23144,21 +22860,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 i32.trunc_sat_f64_s i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23169,11 +22885,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f64_s i32.const 10 @@ -23195,10 +22911,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -23217,11 +22933,11 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23232,11 +22948,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f64_s i32.const 10 @@ -23251,21 +22967,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 i32.trunc_sat_f64_s i32.const 20 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23276,11 +22992,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f64_s i32.const 20 @@ -23302,10 +23018,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -23317,21 +23033,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.get $0 i32.store offset=4 - local.get $2 - local.get $3 - call $~lib/map/Map#keys + global.get $~lib/memory/__stack_pointer + local.get $0 + call $"~lib/map/Map#keys" local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/map/Map#values - local.tee $2 + local.get $0 + call $"~lib/map/Map#values" + local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.set $5 @@ -23344,13 +23059,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 32 call $~lib/rt/itcms/__new @@ -23418,7 +23132,7 @@ local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" local.tee $5 i32.store offset=20 loop $for-loop|2 @@ -23427,7 +23141,7 @@ i32.store offset=4 local.get $4 call $~lib/array/Array#get:length - local.get $0 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -23442,13 +23156,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 0 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $0 + local.get $2 local.get $4 i32.load offset=12 i32.ge_u @@ -23461,34 +23174,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $4 i32.store local.get $4 i32.load offset=4 - local.get $0 + local.get $2 i32.const 3 i32.shl i32.add f64.load local.set $1 - local.get $7 + 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 $3 i32.store offset=4 + local.get $3 local.get $2 - local.get $0 call $~lib/array/Array#__get local.set $7 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23499,14 +23211,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $7 i32.const 20 i32.sub f64.convert_i32_s - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23522,7 +23234,7 @@ local.get $6 local.get $1 local.get $1 - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 @@ -23532,11 +23244,11 @@ i32.sub local.tee $7 local.get $7 - call $~lib/map/Map#set - local.get $0 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|2 end end @@ -23544,7 +23256,7 @@ local.get $6 i32.store offset=4 local.get $6 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -23559,7 +23271,7 @@ local.get $5 i32.store offset=4 local.get $5 - call $~lib/map/Map#get:size + call $"~lib/map/Map#get:size" i32.const 100 i32.ne if @@ -23578,11 +23290,11 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23593,11 +23305,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.get $1 i32.trunc_sat_f64_s i32.const 20 @@ -23612,17 +23324,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23639,10 +23351,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -23661,11 +23373,11 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23675,21 +23387,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 local.get $1 i32.trunc_sat_f64_s i32.const 10 i32.add - call $~lib/map/Map#set + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23700,17 +23412,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#delete + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 + local.get $0 local.get $1 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23727,10 +23439,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" i32.const 50 i32.ne if @@ -23742,15 +23454,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#clear + local.get $0 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/map/Map#get:size + local.get $0 + call $"~lib/map/Map#get:size" if i32.const 0 i32.const 1568 diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat index 4007713b0e..9e691da3f0 100644 --- a/tests/compiler/std/math.release.wat +++ b/tests/compiler/std/math.release.wat @@ -7843,24 +7843,18 @@ i32.ge_u br_if $~lib/util/math/exp_inline|inlined.0 drop + f64.const -0 + f64.const 0 + local.get $4 + select + f64.const -inf + f64.const inf + local.get $4 + select local.get $2 i64.const 0 i64.lt_s - if (result f64) - f64.const -1.2882297539194267e-231 - f64.const 1.2882297539194267e-231 - local.get $4 - select - f64.const 1.2882297539194267e-231 - f64.mul - else - f64.const -3105036184601417870297958e207 - f64.const 3105036184601417870297958e207 - local.get $4 - select - f64.const 3105036184601417870297958e207 - f64.mul - end + select local.get $3 i32.const 1033 i32.ge_u @@ -8412,23 +8406,19 @@ i64.const 32959 i64.ge_u if - f32.const -1584563250285286751870879e5 - f32.const 1584563250285286751870879e5 + f32.const -inf + f32.const inf local.get $4 select - f32.const 1584563250285286751870879e5 - f32.mul local.get $3 f64.const 127.99999995700433 f64.gt br_if $~lib/util/math/powf_lut|inlined.0 drop - f32.const -2.524354896707238e-29 - f32.const 2.524354896707238e-29 + f32.const -0 + f32.const 0 local.get $4 select - f32.const 2.524354896707238e-29 - f32.mul local.get $3 f64.const -150 f64.le diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index b019ac621c..abc198a4f5 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1074,11 +1074,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1180,8 +1179,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1409,7 +1407,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) memory.size i32.const 16 i32.shl @@ -1458,52 +1455,50 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 f32.const 2 f32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load i32.const 1 i32.add i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 + local.get $0 f32.const 3 f32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $std/new/aClass ) ) diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index cbc4a78d61..798cf087d5 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -1139,11 +1139,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1245,8 +1244,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -2038,7 +2036,6 @@ ) (func $std/operator-overloading/Tester#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2055,28 +2052,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=4 local.get $2 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2084,7 +2079,6 @@ ) (func $std/operator-overloading/Tester.equals (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2101,30 +2095,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $2 local.get $1 i32.load i32.eq if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $0 @@ -2143,7 +2136,6 @@ ) (func $std/operator-overloading/Tester.notEquals (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2160,30 +2152,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $2 local.get $1 i32.load i32.ne if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $0 @@ -2202,7 +2193,6 @@ ) (func $std/operator-overloading/TesterInlineStatic#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2219,28 +2209,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=4 local.get $2 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2248,7 +2236,6 @@ ) (func $std/operator-overloading/TesterInlineInstance#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2265,28 +2252,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/rt/itcms/__new local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=4 local.get $2 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2314,14 +2299,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.const 1536 i32.eq if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2333,7 +2317,6 @@ i32.eqz br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 @@ -2343,7 +2326,7 @@ i32.const 1 i32.shr_u local.set $2 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store local.get $2 @@ -2353,12 +2336,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 1536 local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store offset=4 i32.const 1 @@ -2448,7 +2431,6 @@ i32.const 0 ) (func $std/operator-overloading/TesterElementAccess#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2465,13 +2447,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store offset=4 local.get $1 @@ -2497,7 +2478,6 @@ global.set $~lib/memory/__stack_pointer ) (func $std/operator-overloading/TesterElementAccess#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2514,13 +2494,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store offset=4 local.get $1 @@ -2549,7 +2528,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 48 i32.sub @@ -2620,33 +2598,32 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $2 local.get $1 i32.load i32.add - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $2 local.get $0 local.get $1 i32.load offset=4 @@ -2669,7 +2646,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/a + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -2696,15 +2674,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/s1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/s2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2713,35 +2690,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.sub - local.set $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 - i32.store - local.get $3 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store local.get $2 + local.get $0 + local.get $1 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor @@ -2788,15 +2764,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/m1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/m2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2805,35 +2780,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.mul - local.set $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 - i32.store - local.get $3 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store local.get $2 + local.get $0 + local.get $1 i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor @@ -2854,7 +2828,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/m + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -2881,15 +2856,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/d1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/d2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2898,35 +2872,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.div_s - local.set $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 - i32.store - local.get $3 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store local.get $2 + local.get $0 + local.get $1 i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor @@ -2947,7 +2920,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/d + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -2974,15 +2948,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/f1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/f2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2991,35 +2964,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.rem_s - local.set $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 - i32.store - local.get $3 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store local.get $2 + local.get $0 + local.get $1 i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor @@ -3040,7 +3012,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/f + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3064,15 +3037,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/p1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/p2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3081,35 +3053,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load call $~lib/math/ipow32 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store + local.get $2 local.get $0 local.get $1 - local.get $2 i32.load offset=4 call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor @@ -3130,7 +3101,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/p + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3157,15 +3129,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/n1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/n2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3174,35 +3145,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.and - local.set $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 - i32.store - local.get $3 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store local.get $2 + local.get $0 + local.get $1 i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor @@ -3223,7 +3193,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/n + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3250,15 +3221,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/o1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/o2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3267,35 +3237,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.or - local.set $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 - i32.store - local.get $3 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store local.get $2 + local.get $0 + local.get $1 i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor @@ -3316,7 +3285,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/o + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3343,15 +3313,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/x1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/x2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3360,35 +3329,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.xor - local.set $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 - i32.store - local.get $3 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store local.get $2 + local.get $0 + local.get $1 i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor @@ -3409,7 +3377,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/x + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3436,16 +3405,15 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/eq1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/eq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $std/operator-overloading/Tester.equals global.set $std/operator-overloading/eq global.get $std/operator-overloading/eq @@ -3468,16 +3436,15 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/eq3 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/eq4 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $std/operator-overloading/Tester.equals global.set $std/operator-overloading/eqf global.get $std/operator-overloading/eqf @@ -3490,16 +3457,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/eq1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/eq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $std/operator-overloading/Tester.notEquals global.set $std/operator-overloading/eq global.get $std/operator-overloading/eq @@ -3512,16 +3478,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/eq3 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/eq4 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 local.get $0 + local.get $1 call $std/operator-overloading/Tester.notEquals global.set $std/operator-overloading/eqf global.get $std/operator-overloading/eqf @@ -3544,15 +3509,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/gt1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/gt2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3561,34 +3525,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.load offset=4 i32.gt_s else @@ -3621,15 +3584,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/gte1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/gte2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3638,34 +3600,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.ge_s if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.load offset=4 i32.ge_s else @@ -3698,15 +3659,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/le1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/le2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3715,34 +3675,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.load offset=4 i32.lt_s else @@ -3775,15 +3734,14 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/leq1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/leq2 - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3792,34 +3750,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load - local.set $3 local.get $0 - local.get $2 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $3 local.get $2 + local.get $1 i32.load i32.le_s if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 - i32.load offset=4 - local.set $1 local.get $0 - local.get $2 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.load offset=4 i32.le_s else @@ -3848,11 +3805,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shr global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/shr - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3861,22 +3817,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 3 i32.shr_s - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.shr_s @@ -3898,7 +3853,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/sres + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3921,11 +3877,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shu global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/shu - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3934,22 +3889,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 3 i32.shr_u - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.shr_u @@ -3971,7 +3925,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/ures + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -3994,11 +3949,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/shl global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/shl - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4007,22 +3961,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 3 i32.shl - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.shl @@ -4044,7 +3997,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/sres + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4067,11 +4021,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/pos global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/pos - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4080,20 +4033,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 call $std/operator-overloading/Tester#constructor local.set $0 @@ -4109,27 +4061,29 @@ i32.store local.get $0 i32.load - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pos - local.tee $2 + local.tee $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.load i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/pres + local.tee $0 i32.store local.get $0 i32.load offset=4 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $std/operator-overloading/pos + local.tee $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.eq else @@ -4149,11 +4103,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/neg global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/neg - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4162,23 +4115,22 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store i32.const 0 - local.get $1 + local.get $0 i32.load i32.sub - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 - i32.const 0 local.get $1 + i32.const 0 + local.get $0 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor @@ -4195,30 +4147,32 @@ i32.store local.get $0 i32.load - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/neg - local.tee $2 + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 0 - local.get $2 + local.get $1 i32.load i32.sub i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/nres + local.tee $0 i32.store local.get $0 i32.load offset=4 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $std/operator-overloading/neg + local.tee $1 i32.store local.get $0 i32.const 0 - local.get $2 + local.get $1 i32.load offset=4 i32.sub i32.eq @@ -4239,11 +4193,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/not global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/not - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4252,22 +4205,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const -1 i32.xor - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 i32.const -1 i32.xor @@ -4285,29 +4237,31 @@ i32.store local.get $0 i32.load - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/not - local.tee $2 + local.tee $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.load i32.const -1 i32.xor i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/res + local.tee $0 i32.store local.get $0 i32.load offset=4 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $std/operator-overloading/not + local.tee $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.load offset=4 i32.const -1 i32.xor @@ -4329,11 +4283,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/excl global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/excl - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4342,21 +4295,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load if (result i32) i32.const 1 else global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 end local.set $0 @@ -4410,11 +4362,10 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4423,38 +4374,37 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load i32.const 1 i32.add i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 1 i32.add i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec @@ -4466,7 +4416,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/incdec + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4485,11 +4436,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4498,38 +4448,37 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load i32.const 1 i32.sub i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 1 i32.sub i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/incdec @@ -4563,14 +4512,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/incdec global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4579,34 +4527,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/Tester#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $std/operator-overloading/incdec local.get $1 + 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 @@ -4636,19 +4583,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.eq if (result i32) - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/incdec + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 i32.const 2 i32.eq @@ -4665,14 +4612,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/incdec - local.tee $1 + local.tee $0 i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4681,34 +4627,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.sub - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.sub call $std/operator-overloading/Tester#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $std/operator-overloading/incdec local.get $1 + 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 @@ -4720,7 +4665,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/tmp + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4770,26 +4716,25 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/ais1 - local.tee $1 + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add @@ -4847,7 +4792,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/ais + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4870,23 +4816,22 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii1 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/aii1 - local.tee $1 + local.tee $0 i32.store offset=28 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.set $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $2 local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add @@ -4944,7 +4889,8 @@ i32.eq if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/operator-overloading/aii + local.tee $0 i32.store local.get $0 i32.load offset=4 @@ -4971,28 +4917,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 local.get $0 i32.const 1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.const 2 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -5037,14 +4981,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/tea - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1536 call $std/operator-overloading/TesterElementAccess#__get i32.const -1 @@ -5074,14 +5017,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/tea - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1568 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get i32.const -2 @@ -5095,20 +5037,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/tea - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/tea + local.tee $1 i32.store offset=40 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1536 i32.store offset=44 - local.get $1 + local.get $0 i32.const 1536 local.get $1 i32.const 1536 @@ -5157,14 +5099,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/tea - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1568 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get i32.const -3 diff --git a/tests/compiler/std/pointer.release.wat b/tests/compiler/std/pointer.release.wat index ab1426b762..d014421032 100644 --- a/tests/compiler/std/pointer.release.wat +++ b/tests/compiler/std/pointer.release.wat @@ -95,10 +95,9 @@ i32.add global.set $std/pointer/one global.get $std/pointer/one - local.tee $0 global.set $std/pointer/nextOne - local.get $0 global.get $std/pointer/nextOne + global.get $std/pointer/one i32.ne if i32.const 0 diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index a6c2a1163b..c9ea6759a7 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -1096,11 +1096,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1285,8 +1284,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1554,7 +1552,6 @@ local.get $1 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 i32.eqz if @@ -1571,7 +1568,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1588,7 +1584,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -1610,7 +1606,6 @@ end ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner2 block $folding-inner1 block $folding-inner0 @@ -1651,10 +1646,9 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1681,10 +1675,9 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1799,13 +1792,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 4 call $~lib/rt/itcms/__new @@ -1873,7 +1865,6 @@ ) (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1890,19 +1881,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -1952,7 +1942,6 @@ i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1969,10 +1958,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2040,13 +2028,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -2054,7 +2041,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -2062,7 +2049,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -2073,17 +2060,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -2091,19 +2078,19 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load8_s local.tee $8 i32.store8 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.extend8_s @@ -2149,25 +2136,24 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 8 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -2191,7 +2177,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -2212,7 +2198,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2229,10 +2214,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2266,7 +2250,7 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -2325,37 +2309,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $2 local.get $1 i32.store8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -2364,18 +2347,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -2386,7 +2369,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -2395,7 +2378,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/set/Set#get:size (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2412,16 +2394,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2446,10 +2427,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2584,10 +2564,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2622,7 +2601,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -2631,7 +2609,7 @@ i32.add local.get $2 i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2672,7 +2650,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2689,23 +2666,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2722,10 +2697,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2741,7 +2715,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -2750,7 +2723,7 @@ i32.add i32.load8_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2758,7 +2731,6 @@ ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2775,10 +2747,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2829,10 +2800,9 @@ i32.or i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -2841,40 +2811,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -2890,7 +2860,7 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -2916,10 +2886,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 16 @@ -2997,11 +2966,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $1 i32.store @@ -3133,10 +3101,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3145,22 +3114,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=8 - local.set $3 - local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $4 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3170,13 +3138,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 5 call $~lib/rt/itcms/__new @@ -3209,7 +3176,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -3222,8 +3189,8 @@ 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 @@ -3260,7 +3227,7 @@ local.get $6 i32.store offset=4 local.get $6 - local.get $4 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -3272,10 +3239,10 @@ local.set $0 loop $for-loop|00 local.get $2 - local.get $4 + local.get $5 i32.lt_s if - local.get $3 + local.get $4 local.get $2 i32.const 3 i32.shl @@ -3316,7 +3283,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -3355,10 +3322,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=16 local.get $0 @@ -3592,13 +3558,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 6 call $~lib/rt/itcms/__new @@ -3665,7 +3630,6 @@ local.get $0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3682,10 +3646,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3754,13 +3717,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -3768,7 +3730,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -3776,7 +3738,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3787,17 +3749,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -3805,19 +3767,19 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load8_u local.tee $8 i32.store8 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -3862,25 +3824,24 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 8 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -3904,7 +3865,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3925,7 +3886,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3942,10 +3902,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3980,7 +3939,7 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -4039,37 +3998,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $2 local.get $1 i32.store8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4078,18 +4036,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -4100,7 +4058,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -4109,7 +4067,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4126,10 +4083,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -4145,7 +4101,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -4154,7 +4109,7 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -4162,7 +4117,6 @@ ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4179,10 +4133,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4234,10 +4187,9 @@ i32.or i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4246,40 +4198,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -4295,7 +4247,7 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -4322,11 +4274,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $1 i32.store @@ -4458,10 +4409,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4470,22 +4422,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=8 - local.set $3 - local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $4 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -4495,13 +4446,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 7 call $~lib/rt/itcms/__new @@ -4534,7 +4484,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -4547,8 +4497,8 @@ 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 @@ -4585,7 +4535,7 @@ local.get $6 i32.store offset=4 local.get $6 - local.get $4 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -4597,10 +4547,10 @@ local.set $0 loop $for-loop|00 local.get $2 - local.get $4 + local.get $5 i32.lt_s if - local.get $3 + local.get $4 local.get $2 i32.const 3 i32.shl @@ -4641,7 +4591,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -4680,10 +4630,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=16 local.get $0 @@ -4917,13 +4866,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 8 call $~lib/rt/itcms/__new @@ -4991,7 +4939,6 @@ ) (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5008,19 +4955,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -5070,7 +5016,6 @@ i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5087,10 +5032,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5158,13 +5102,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -5172,7 +5115,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -5180,7 +5123,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -5191,17 +5134,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -5209,19 +5152,19 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load16_s local.tee $8 i32.store16 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.extend16_s @@ -5267,25 +5210,24 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 8 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -5309,7 +5251,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -5330,7 +5272,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5347,10 +5288,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5384,7 +5324,7 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -5443,37 +5383,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $2 local.get $1 i32.store16 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -5482,18 +5421,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -5504,7 +5443,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -5530,10 +5469,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -5568,7 +5506,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -5579,7 +5516,7 @@ i32.add local.get $2 i32.store16 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -5620,7 +5557,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5637,10 +5573,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -5656,7 +5591,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -5667,7 +5601,7 @@ i32.add i32.load16_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -5675,7 +5609,6 @@ ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5692,10 +5625,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5746,10 +5678,9 @@ i32.or i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -5758,40 +5689,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -5807,7 +5738,7 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -5834,11 +5765,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $1 i32.store @@ -5970,10 +5900,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5982,22 +5913,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=8 - local.set $3 - local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $4 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -6007,13 +5937,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 9 call $~lib/rt/itcms/__new @@ -6046,7 +5975,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 536870910 i32.gt_u if @@ -6059,8 +5988,8 @@ 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 @@ -6099,7 +6028,7 @@ local.get $6 i32.store offset=4 local.get $6 - local.get $4 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -6111,10 +6040,10 @@ local.set $0 loop $for-loop|00 local.get $2 - local.get $4 + local.get $5 i32.lt_s if - local.get $3 + local.get $4 local.get $2 i32.const 3 i32.shl @@ -6155,7 +6084,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -6194,10 +6123,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=16 local.get $0 @@ -6431,13 +6359,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 10 call $~lib/rt/itcms/__new @@ -6504,7 +6431,6 @@ local.get $0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6521,10 +6447,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6593,13 +6518,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -6607,7 +6531,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -6615,7 +6539,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6626,17 +6550,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -6644,19 +6568,19 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load16_u local.tee $8 i32.store16 local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -6701,25 +6625,24 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 8 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -6743,7 +6666,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6764,7 +6687,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6781,10 +6703,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6819,7 +6740,7 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -6878,37 +6799,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $2 local.get $1 i32.store16 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -6917,18 +6837,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -6939,7 +6859,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -6948,7 +6868,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6965,10 +6884,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -6984,7 +6902,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -6995,7 +6912,7 @@ i32.add i32.load16_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -7003,7 +6920,6 @@ ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -7020,10 +6936,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7075,10 +6990,9 @@ i32.or i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -7087,40 +7001,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -7136,7 +7050,7 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -7163,11 +7077,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $1 i32.store @@ -7299,10 +7212,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -7311,22 +7225,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=8 - local.set $3 - local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $4 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -7336,13 +7249,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 11 call $~lib/rt/itcms/__new @@ -7375,7 +7287,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 536870910 i32.gt_u if @@ -7388,8 +7300,8 @@ 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 @@ -7428,7 +7340,7 @@ local.get $6 i32.store offset=4 local.get $6 - local.get $4 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -7440,10 +7352,10 @@ local.set $0 loop $for-loop|00 local.get $2 - local.get $4 + local.get $5 i32.lt_s if - local.get $3 + local.get $4 local.get $2 i32.const 3 i32.shl @@ -7484,7 +7396,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -7523,10 +7435,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=16 local.get $0 @@ -7760,13 +7671,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 12 call $~lib/rt/itcms/__new @@ -7834,7 +7744,6 @@ ) (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7851,19 +7760,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -7911,7 +7819,6 @@ i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7928,10 +7835,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -7998,13 +7904,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -8012,7 +7917,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -8020,7 +7925,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -8031,17 +7936,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -8049,19 +7954,19 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load local.tee $8 i32.store local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -8106,25 +8011,24 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 8 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -8148,7 +8052,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -8169,7 +8073,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8186,10 +8089,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8222,7 +8124,7 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -8281,37 +8183,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -8320,18 +8221,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -8342,7 +8243,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -8368,10 +8269,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -8406,7 +8306,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -8417,7 +8316,7 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -8458,7 +8357,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8475,10 +8373,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -8494,7 +8391,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -8505,7 +8401,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -8513,7 +8409,6 @@ ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8530,10 +8425,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8583,10 +8477,9 @@ i32.or i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -8595,40 +8488,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -8644,7 +8537,7 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -8671,11 +8564,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $1 i32.store @@ -8807,10 +8699,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8819,22 +8712,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=8 - local.set $3 - local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $4 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -8844,13 +8736,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 13 call $~lib/rt/itcms/__new @@ -8883,7 +8774,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -8896,8 +8787,8 @@ 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 @@ -8936,7 +8827,7 @@ local.get $6 i32.store offset=4 local.get $6 - local.get $4 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -8948,10 +8839,10 @@ local.set $0 loop $for-loop|00 local.get $2 - local.get $4 + local.get $5 i32.lt_s if - local.get $3 + local.get $4 local.get $2 i32.const 3 i32.shl @@ -8992,7 +8883,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -9031,10 +8922,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=16 local.get $0 @@ -9268,13 +9158,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 14 call $~lib/rt/itcms/__new @@ -9342,7 +9231,6 @@ ) (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9359,19 +9247,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -9419,7 +9306,6 @@ i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9436,10 +9322,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9506,13 +9391,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -9520,7 +9404,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -9528,7 +9412,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9539,17 +9423,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 @@ -9557,19 +9441,19 @@ local.get $7 i32.ne if - local.get $7 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $4 i32.load local.tee $8 i32.store local.get $2 - local.get $6 + local.get $5 local.get $1 local.get $8 i32.const -1028477379 @@ -9614,25 +9498,24 @@ i32.add local.set $2 end - local.get $7 + local.get $4 i32.const 8 i32.add - local.set $7 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $6 + local.get $5 i32.store local.get $0 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -9656,7 +9539,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -9677,7 +9560,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9694,10 +9576,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9730,7 +9611,7 @@ i32.shr_u local.get $2 i32.xor - local.tee $4 + local.tee $3 call $~lib/set/Set#find i32.eqz if @@ -9789,37 +9670,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -9828,18 +9708,18 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.and @@ -9850,7 +9730,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -9859,7 +9739,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9876,10 +9755,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -9895,7 +9773,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -9906,7 +9783,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9914,7 +9791,6 @@ ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9931,10 +9807,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9984,10 +9859,9 @@ i32.or i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -9996,40 +9870,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $3 - local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -10045,7 +9919,7 @@ local.get $0 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -10072,11 +9946,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $1 i32.store @@ -10208,10 +10081,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10220,22 +10094,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=8 - local.set $3 - local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $4 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -10245,13 +10118,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 15 call $~lib/rt/itcms/__new @@ -10284,7 +10156,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -10297,8 +10169,8 @@ 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 @@ -10337,7 +10209,7 @@ local.get $6 i32.store offset=4 local.get $6 - local.get $4 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -10349,10 +10221,10 @@ local.set $0 loop $for-loop|00 local.get $2 - local.get $4 + local.get $5 i32.lt_s if - local.get $3 + local.get $4 local.get $2 i32.const 3 i32.shl @@ -10393,7 +10265,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -10432,10 +10304,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=16 local.get $0 @@ -10669,13 +10540,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 16 call $~lib/rt/itcms/__new @@ -10743,7 +10613,6 @@ ) (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10760,19 +10629,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -10820,7 +10688,6 @@ i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10837,10 +10704,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -10920,13 +10786,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -10934,7 +10799,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -10942,7 +10807,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -10953,17 +10818,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $8 + local.get $4 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 @@ -10971,19 +10836,19 @@ local.get $8 i32.ne if - local.get $8 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 i64.load local.tee $6 i64.store local.get $2 - local.get $7 + local.get $5 local.get $1 local.get $6 i32.wrap_i64 @@ -11040,25 +10905,24 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 16 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $7 + local.get $5 i32.store local.get $0 - local.get $7 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -11082,7 +10946,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -11103,7 +10967,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11120,10 +10983,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -11227,37 +11089,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 4 i32.shl i32.add - local.tee $4 + local.tee $3 local.get $1 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -11266,17 +11127,17 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 local.get $4 - local.get $5 local.get $2 local.get $0 i32.load offset=4 @@ -11288,7 +11149,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -11314,10 +11175,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -11352,7 +11212,6 @@ i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -11363,7 +11222,7 @@ i32.add local.get $2 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -11405,7 +11264,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) (local $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11422,10 +11280,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -11441,7 +11298,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -11452,7 +11308,7 @@ i32.add i64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -11461,7 +11317,6 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11478,10 +11333,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -11543,10 +11397,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -11555,40 +11408,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $4 - local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -11604,7 +11457,7 @@ local.get $0 i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -11630,10 +11483,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 16 @@ -11694,8 +11546,8 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11713,24 +11565,23 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 20 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $7 + local.tee $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -11741,16 +11592,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -11761,17 +11612,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -11784,17 +11635,17 @@ unreachable end i64.const 50 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -11806,16 +11657,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -11826,17 +11677,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -11849,10 +11700,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11861,22 +11713,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=8 - local.set $3 - local.get $5 - local.get $7 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=16 - local.set $4 - local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -11886,46 +11737,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 17 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store - local.get $5 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=12 - local.get $4 + local.get $6 i32.const 134217727 i32.gt_u if @@ -11938,8 +11788,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $6 + local.get $6 i32.const 8 i32.le_u select @@ -11948,66 +11798,66 @@ local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=12 - local.get $5 - local.get $6 + local.get $8 + local.get $7 i32.store - local.get $5 - local.get $6 + local.get $8 + local.get $7 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 - local.get $6 + local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 - local.get $4 + local.get $8 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 loop $for-loop|00 - local.get $2 - local.get $4 + local.get $3 + local.get $6 i32.lt_s if + local.get $5 local.get $3 - local.get $2 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $5 + local.get $8 local.get $0 - local.get $6 + local.get $7 i64.load call $~lib/array/Array#__set local.get $0 @@ -12015,50 +11865,50 @@ i32.add local.set $0 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $5 + local.get $8 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $8 - local.get $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $0 i32.store offset=12 i32.const 0 - local.set $2 + local.set $3 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 call $~lib/array/Array#get:length - local.get $2 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=16 - local.get $7 - local.get $5 - local.get $2 + local.get $1 + local.get $8 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -12071,21 +11921,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=16 local.get $0 - local.get $5 - local.get $2 + local.get $8 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|2 end end @@ -12096,9 +11945,9 @@ call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size local.get $0 i32.ne @@ -12111,17 +11960,17 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -12133,16 +11982,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -12152,17 +12001,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -12175,17 +12024,17 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 i64.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -12196,16 +12045,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -12217,16 +12066,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -12236,17 +12085,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -12259,14 +12108,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size if i32.const 0 @@ -12308,13 +12157,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 18 call $~lib/rt/itcms/__new @@ -12382,7 +12230,6 @@ ) (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12399,19 +12246,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -12459,7 +12305,6 @@ i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12476,10 +12321,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -12559,13 +12403,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -12573,7 +12416,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -12581,7 +12424,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -12592,17 +12435,17 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $8 + local.get $4 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 @@ -12610,19 +12453,19 @@ local.get $8 i32.ne if - local.get $8 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 i64.load local.tee $6 i64.store local.get $2 - local.get $7 + local.get $5 local.get $1 local.get $6 i32.wrap_i64 @@ -12679,25 +12522,24 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 16 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $7 + local.get $5 i32.store local.get $0 - local.get $7 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -12721,7 +12563,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -12742,7 +12584,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -12759,10 +12600,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -12866,37 +12706,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 4 i32.shl i32.add - local.tee $4 + local.tee $3 local.get $1 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -12905,17 +12744,17 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 local.get $4 - local.get $5 local.get $2 local.get $0 i32.load offset=4 @@ -12927,7 +12766,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -12937,7 +12776,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) (local $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12954,10 +12792,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -12973,7 +12810,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -12984,7 +12820,7 @@ i32.add i64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -12993,7 +12829,6 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -13010,10 +12845,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -13075,10 +12909,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -13087,40 +12920,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $4 - local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -13136,7 +12969,7 @@ local.get $0 i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -13146,8 +12979,8 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13165,24 +12998,23 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 20 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $7 + local.tee $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13193,16 +13025,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13213,17 +13045,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -13236,17 +13068,17 @@ unreachable end i64.const 50 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13258,16 +13090,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13278,17 +13110,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -13301,10 +13133,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13313,22 +13146,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=8 - local.set $3 - local.get $5 - local.get $7 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $7 + local.get $1 i32.load offset=16 - local.set $4 - local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13338,46 +13170,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 19 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store - local.get $5 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 i32.const 0 i32.store offset=12 - local.get $4 + local.get $6 i32.const 134217727 i32.gt_u if @@ -13390,8 +13221,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $6 + local.get $6 i32.const 8 i32.le_u select @@ -13400,66 +13231,66 @@ local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=12 - local.get $5 - local.get $6 + local.get $8 + local.get $7 i32.store - local.get $5 - local.get $6 + local.get $8 + local.get $7 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 - local.get $6 + local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 - local.get $4 + local.get $8 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 loop $for-loop|00 - local.get $2 - local.get $4 + local.get $3 + local.get $6 i32.lt_s if + local.get $5 local.get $3 - local.get $2 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $5 + local.get $8 local.get $0 - local.get $6 + local.get $7 i64.load call $~lib/array/Array#__set local.get $0 @@ -13467,50 +13298,50 @@ i32.add local.set $0 end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $5 + local.get $8 local.get $0 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $8 - local.get $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $0 i32.store offset=12 i32.const 0 - local.set $2 + local.set $3 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $5 + local.get $8 call $~lib/array/Array#get:length - local.get $2 + local.get $3 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=16 - local.get $7 - local.get $5 - local.get $2 + local.get $1 + local.get $8 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -13523,21 +13354,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=16 local.get $0 - local.get $5 - local.get $2 + local.get $8 + local.get $3 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|2 end end @@ -13548,9 +13378,9 @@ call $~lib/set/Set#get:size local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size local.get $0 i32.ne @@ -13563,17 +13393,17 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13585,16 +13415,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13604,17 +13434,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -13627,17 +13457,17 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13648,16 +13478,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13669,16 +13499,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13688,17 +13518,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -13711,14 +13541,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/set/Set#get:size if i32.const 0 @@ -13760,13 +13590,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 20 call $~lib/rt/itcms/__new @@ -13834,7 +13663,6 @@ ) (func $~lib/set/Set#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13851,19 +13679,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -13911,7 +13738,6 @@ i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13928,10 +13754,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -13978,11 +13803,11 @@ (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f32) (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 @@ -14000,13 +13825,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -14014,7 +13838,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -14033,39 +13857,39 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $8 + local.get $4 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $5 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $8 + local.get $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 f32.load - local.tee $4 + local.tee $8 f32.store local.get $2 - local.get $7 + local.get $5 local.get $1 - local.get $4 + local.get $8 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -14109,25 +13933,24 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 8 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $7 + local.get $5 i32.store local.get $0 - local.get $7 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -14172,7 +13995,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14189,10 +14011,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -14285,37 +14106,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $5 + local.tee $4 i32.const 1 i32.add i32.store offset=16 + local.get $3 local.get $4 - local.get $5 i32.const 3 i32.shl i32.add - local.tee $4 + local.tee $3 local.get $1 f32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -14324,17 +14144,17 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $3 local.get $4 - local.get $5 local.get $2 local.get $0 i32.load offset=4 @@ -14346,7 +14166,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -14358,11 +14178,10 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f32) + (local $4 f32) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14373,21 +14192,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $6 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $2 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -14397,46 +14216,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 21 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=12 - local.get $2 + local.get $5 i32.const 268435455 i32.gt_u if @@ -14449,8 +14267,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $5 + local.get $5 i32.const 8 i32.le_u select @@ -14459,74 +14277,72 @@ local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=12 + local.get $6 local.get $7 - local.get $8 i32.store + local.get $6 local.get $7 - local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 + local.get $6 local.get $7 - local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 - local.get $2 + local.get $6 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $3 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 local.get $3 + local.get $2 i32.const 3 i32.shl i32.add - local.tee $6 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.get $6 i32.store local.get $1 local.tee $0 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 f32.load - local.set $5 - local.get $8 + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14535,14 +14351,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store local.get $0 - local.get $7 + local.get $6 i32.load offset=12 i32.ge_u if @@ -14557,56 +14372,55 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $0 i32.const 1 i32.add - local.tee $6 + local.tee $7 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store - local.get $7 local.get $6 + local.get $7 i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add - local.get $5 + local.get $4 f32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 local.get $1 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 return end i32.const 34544 @@ -14618,7 +14432,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) (local $2 f32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14635,10 +14448,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -14654,7 +14466,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -14665,7 +14476,7 @@ i32.add f32.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -14674,7 +14485,6 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14691,10 +14501,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -14745,10 +14554,9 @@ i32.or i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -14757,40 +14565,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $4 - local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -14806,7 +14614,7 @@ local.get $0 i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -14820,7 +14628,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -14837,13 +14644,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $0 i32.store loop $for-loop|0 local.get $1 @@ -14851,9 +14657,9 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has if @@ -14865,15 +14671,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -14893,9 +14699,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -14915,9 +14721,9 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -14930,15 +14736,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -14958,9 +14764,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -14973,36 +14779,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $0 i32.store offset=4 - local.get $2 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 call $~lib/set/Set#values - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store offset=12 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/array/Array#get:length - local.get $0 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 - local.get $4 - local.get $2 local.get $0 + local.get $3 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -15015,36 +14820,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $3 + local.get $4 i32.store offset=4 - local.get $5 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=16 + local.get $4 local.get $3 local.get $2 - local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 call $~lib/set/Set#get:size + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.get $2 i32.ne if i32.const 0 @@ -15062,9 +14866,9 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -15077,15 +14881,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has if @@ -15104,9 +14908,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -15126,9 +14930,9 @@ f32.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has if @@ -15140,15 +14944,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -15161,15 +14965,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has if @@ -15188,9 +14992,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -15203,14 +15007,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size if i32.const 0 @@ -15244,13 +15048,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 22 call $~lib/rt/itcms/__new @@ -15318,7 +15121,6 @@ ) (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15335,19 +15137,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -15395,8 +15196,7 @@ i32.const 0 ) (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15413,17 +15213,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 i64.reinterpret_f64 - local.tee $3 + local.tee $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15433,7 +15232,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15476,12 +15275,12 @@ (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $8 f64) + (local $9 i64) (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 16 @@ -15499,13 +15298,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const 1 i32.add @@ -15513,7 +15311,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -15521,7 +15319,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -15532,41 +15330,41 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $9 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $9 + local.get $4 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $6 + local.set $7 local.get $3 local.set $2 loop $while-continue|0 - local.get $6 - local.get $9 + local.get $4 + local.get $7 i32.ne if - local.get $9 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $9 + local.get $4 f64.load - local.tee $5 + local.tee $8 f64.store local.get $2 - local.get $8 - local.get $1 local.get $5 + local.get $1 + local.get $8 i64.reinterpret_f64 - local.tee $4 + local.tee $9 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15576,7 +15374,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $9 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15621,25 +15419,24 @@ i32.add local.set $2 end - local.get $9 + local.get $4 i32.const 16 i32.add - local.set $9 + local.set $4 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=12 local.get $0 - local.get $8 + local.get $5 i32.store local.get $0 - local.get $8 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -15663,7 +15460,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -15685,7 +15482,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -15702,10 +15498,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -15811,37 +15606,36 @@ call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $5 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $6 + local.tee $5 i32.const 1 i32.add i32.store offset=16 + local.get $4 local.get $5 - local.get $6 i32.const 4 i32.shl i32.add - local.tee $5 + local.tee $4 local.get $1 f64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -15850,17 +15644,17 @@ i32.const 1 i32.add i32.store offset=20 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $6 - local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $4 local.get $5 - local.get $6 local.get $3 local.get $0 i32.load offset=4 @@ -15872,7 +15666,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $5 + local.get $4 i32.store end global.get $~lib/memory/__stack_pointer @@ -15884,11 +15678,10 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f64) + (local $4 f64) + (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -15899,21 +15692,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $6 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $2 + local.set $5 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -15923,46 +15716,45 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 23 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.store offset=12 - local.get $2 + local.get $5 i32.const 134217727 i32.gt_u if @@ -15975,8 +15767,8 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $2 - local.get $2 + local.get $5 + local.get $5 i32.const 8 i32.le_u select @@ -15985,74 +15777,72 @@ local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=12 + local.get $6 local.get $7 - local.get $8 i32.store + local.get $6 local.get $7 - local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 + local.get $6 local.get $7 - local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 + local.get $6 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=4 - local.get $7 - local.get $2 + local.get $6 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $3 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 local.get $3 + local.get $2 i32.const 4 i32.shl i32.add - local.tee $6 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $7 + local.get $6 i32.store local.get $1 local.tee $0 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $7 f64.load - local.set $5 - local.get $8 + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16061,14 +15851,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store local.get $0 - local.get $7 + local.get $6 i32.load offset=12 i32.ge_u if @@ -16083,56 +15872,55 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 local.get $0 i32.const 1 i32.add - local.tee $6 + local.tee $7 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store - local.get $7 local.get $6 + local.get $7 i32.store offset=12 end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 i32.load offset=4 local.get $0 i32.const 3 i32.shl i32.add - local.get $5 + local.get $4 f64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 local.get $1 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 return end i32.const 34544 @@ -16144,7 +15932,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) (local $2 f64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16161,10 +15948,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -16180,7 +15966,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -16191,7 +15976,7 @@ i32.add f64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -16201,7 +15986,6 @@ (local $2 i64) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16218,10 +16002,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -16285,10 +16068,9 @@ i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -16297,40 +16079,40 @@ i32.const 1 i32.sub i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 i32.const 1 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 i32.const 4 i32.lt_u select i32.ge_u if (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=20 - local.set $5 - local.get $3 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $4 local.get $0 i32.load offset=12 i32.const 3 @@ -16346,7 +16128,7 @@ local.get $0 i32.store local.get $0 - local.get $4 + local.get $3 call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer @@ -16360,7 +16142,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -16377,13 +16158,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $0 i32.store loop $for-loop|0 local.get $1 @@ -16391,9 +16171,9 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has if @@ -16405,15 +16185,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -16433,9 +16213,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -16455,9 +16235,9 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -16470,15 +16250,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -16498,9 +16278,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 100 i32.ne @@ -16513,36 +16293,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $0 i32.store offset=4 - local.get $2 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 call $~lib/set/Set#values - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store offset=12 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/array/Array#get:length - local.get $0 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 - local.get $4 - local.get $2 local.get $0 + local.get $3 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -16555,36 +16334,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $3 + local.get $4 i32.store offset=4 - local.get $5 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=16 + local.get $4 local.get $3 local.get $2 - local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 local.get $4 call $~lib/set/Set#get:size + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.get $2 i32.ne if i32.const 0 @@ -16602,9 +16380,9 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -16617,15 +16395,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has if @@ -16644,9 +16422,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -16666,9 +16444,9 @@ f64.lt if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has if @@ -16680,15 +16458,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has i32.eqz @@ -16701,15 +16479,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 local.get $1 call $~lib/set/Set#has if @@ -16728,9 +16506,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size i32.const 50 i32.ne @@ -16743,14 +16521,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 - local.get $4 + local.get $0 call $~lib/set/Set#get:size if i32.const 0 diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 8aeac945d1..78fadac341 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -1108,11 +1108,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1248,7 +1247,6 @@ end ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner0 block $invalid block $~lib/arraybuffer/ArrayBufferView @@ -1294,10 +1292,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1312,7 +1309,6 @@ call $start:std/static-array ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1329,23 +1325,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1362,10 +1356,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store local.get $0 @@ -1381,7 +1374,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 1088 i32.store i32.const 1092 @@ -1392,7 +1384,7 @@ i32.add i32.load local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1423,10 +1415,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1538,14 +1529,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1839,7 +1829,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -1849,8 +1838,6 @@ i32.and i32.eq if - local.get $2 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1858,6 +1845,8 @@ i32.const 3 i32.and local.tee $2 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $1 @@ -1889,7 +1878,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (result i64) (local $1 i64) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1906,10 +1894,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store local.get $0 @@ -1925,7 +1912,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 1184 i32.store i32.const 1188 @@ -1936,7 +1922,7 @@ i32.add i64.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1944,7 +1930,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (result f32) (local $1 f32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1961,10 +1946,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1264 i32.store local.get $0 @@ -1980,7 +1964,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 1264 i32.store i32.const 1268 @@ -1991,7 +1974,7 @@ i32.add f32.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1999,7 +1982,6 @@ ) (func $~lib/array/Array#__get (param $0 i32) (result f64) (local $1 f64) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2016,10 +1998,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1360 i32.store local.get $0 @@ -2035,7 +2016,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 1360 i32.store i32.const 1364 @@ -2046,14 +2026,13 @@ i32.add f64.load local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) (func $start:std/static-array - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2064,10 +2043,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store i32.const 1088 @@ -2145,10 +2123,9 @@ i32.const 1856 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2157,10 +2134,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store i32.const 1100 @@ -2178,14 +2154,13 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store i32.const 1092 i32.load i32.const 2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2250,10 +2225,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1184 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2262,10 +2236,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store i32.const 1196 @@ -2283,14 +2256,13 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1184 i32.store i32.const 1188 i32.load i64.const 4 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2355,10 +2327,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1264 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2367,10 +2338,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1264 i32.store i32.const 1276 @@ -2388,14 +2358,13 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1264 i32.store i32.const 1268 i32.load f32.const 2.5 f32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2460,10 +2429,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1360 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2472,10 +2440,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1360 i32.store i32.const 1372 @@ -2493,14 +2460,13 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1360 i32.store i32.const 1364 i32.load f64.const 2.25 f64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index b7dfeef3bc..5c505b09e8 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -1237,11 +1237,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1628,14 +1627,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1715,7 +1713,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1725,8 +1722,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1735,6 +1730,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -2342,16 +2339,15 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2409,10 +2405,9 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2435,7 +2430,6 @@ call $start:std/staticarray ) (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2452,10 +2446,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2488,7 +2481,6 @@ local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2505,10 +2497,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2528,13 +2519,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2542,7 +2532,6 @@ (func $std/staticarray/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2553,20 +2542,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2575,13 +2564,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 call $~lib/rt/itcms/__new @@ -2610,7 +2598,6 @@ unreachable ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2627,16 +2614,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2661,39 +2647,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length i32.const 2 i32.shl - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $2 local.get $0 i32.load offset=4 - local.get $2 + local.get $1 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2710,10 +2694,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -2729,7 +2712,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -2740,7 +2722,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2750,7 +2732,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2767,10 +2748,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2779,8 +2759,8 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -2789,10 +2769,10 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $4 - local.get $2 + local.tee $2 + local.get $3 i32.add - local.tee $3 + local.tee $4 i32.const 268435455 i32.gt_u if @@ -2804,29 +2784,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store offset=4 - local.get $5 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 2 i32.shl i32.const 4 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl local.tee $0 memory.copy local.get $0 - local.get $3 + local.get $4 i32.add local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.shl memory.copy @@ -2834,13 +2813,12 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2857,10 +2835,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2869,14 +2846,14 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $5 + local.set $4 local.get $0 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $5 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -2886,30 +2863,29 @@ select else local.get $1 - local.get $5 + local.get $4 local.get $1 - local.get $5 + local.get $4 i32.lt_s select end - local.tee $6 + local.tee $5 i32.const 2 i32.shl i32.add local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $5 + local.get $4 i32.add local.tee $0 i32.const 0 @@ -2919,13 +2895,13 @@ select else local.get $2 - local.get $5 + local.get $4 local.get $2 - local.get $5 + local.get $4 i32.lt_s select end - local.get $6 + local.get $5 i32.sub local.tee $0 i32.const 0 @@ -3021,7 +2997,6 @@ local.get $0 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3038,10 +3013,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -3106,14 +3080,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -3128,8 +3101,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -3139,7 +3110,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -3151,12 +3122,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -3273,10 +3244,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3286,12 +3256,12 @@ i32.const 2 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.tee $5 + local.tee $2 local.get $3 i32.add local.tee $4 @@ -3308,12 +3278,11 @@ local.get $3 i32.const 2 i32.shl - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $4 i32.const 9 i32.const 0 @@ -3336,7 +3305,7 @@ local.set $1 loop $for-loop|0 local.get $1 - local.get $2 + local.get $5 i32.lt_u if local.get $1 @@ -3359,11 +3328,11 @@ br $for-loop|0 end end - local.get $2 local.get $4 + local.get $5 i32.add local.set $1 - local.get $5 + local.get $2 i32.const 2 i32.shl local.set $2 @@ -3403,7 +3372,6 @@ (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3414,16 +3382,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3432,10 +3399,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 @@ -3452,7 +3418,7 @@ i32.ge_s i32.or if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -3481,19 +3447,18 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 local.get $2 i32.const 2 i32.shl i32.add i32.load - local.tee $5 + local.tee $4 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + local.get $4 local.get $1 call $~lib/string/String.__eq if @@ -3535,7 +3500,6 @@ ) (func $~lib/staticarray/StaticArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3552,10 +3516,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3571,7 +3534,7 @@ i32.ge_s i32.or if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3629,7 +3592,6 @@ ) (func $~lib/staticarray/StaticArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3646,10 +3608,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3661,7 +3622,7 @@ local.tee $3 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3779,7 +3740,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3796,10 +3756,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $1 @@ -3809,7 +3768,7 @@ i32.const 0 i32.lt_s if - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer @@ -3820,12 +3779,11 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.load local.tee $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer @@ -3841,22 +3799,21 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 + local.get $6 if + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $7 i32.store offset=8 local.get $3 - local.get $7 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -3875,10 +3832,9 @@ i32.const 0 local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $3 local.get $2 i32.const 20 @@ -3886,7 +3842,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $6 + local.tee $1 local.get $5 i32.mul i32.add @@ -3894,7 +3850,7 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=12 i32.const 0 local.set $3 @@ -3904,55 +3860,54 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $0 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $7 i32.store offset=4 - local.get $1 + local.get $7 if - local.get $8 - local.get $1 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $7 + i32.store offset=8 + local.get $6 local.get $4 i32.const 1 i32.shl i32.add - local.get $1 - local.get $1 + local.get $7 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 + local.tee $7 i32.const 1 i32.shl memory.copy - local.get $1 local.get $4 + local.get $7 i32.add local.set $4 end - local.get $6 + local.get $1 if - local.get $7 + local.get $6 local.get $4 i32.const 1 i32.shl i32.add local.get $2 - local.get $6 + local.get $1 i32.const 1 i32.shl memory.copy + local.get $1 local.get $4 - local.get $6 i32.add local.set $4 end @@ -3964,7 +3919,6 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 local.get $5 i32.const 2 @@ -3975,10 +3929,10 @@ i32.store offset=4 local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $6 local.get $4 i32.const 1 i32.shl @@ -3996,11 +3950,10 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4017,10 +3970,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4029,12 +3981,12 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $0 - local.get $3 + local.get $2 local.get $1 call $~lib/util/string/joinStringArray local.set $0 @@ -4065,15 +4017,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -4084,33 +4035,33 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $8 + local.set $7 loop $for-loop|0 - local.get $8 - local.get $10 + local.get $7 + local.get $9 i32.gt_s if local.get $0 - local.get $10 + local.get $9 i32.const 2 i32.shl i32.add i32.load - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const 3 global.set $~argumentsLength + local.get $8 local.get $9 - local.get $10 local.get $0 i32.const 3472 i32.load call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4121,15 +4072,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $10 i32.store - local.get $6 + local.get $10 i32.load offset=12 - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $5 @@ -4143,14 +4093,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $10 i32.store local.get $3 - local.get $6 + local.get $10 i32.load offset=8 local.tee $1 i32.const 2 @@ -4169,7 +4118,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $10 i32.store block $__inlined_func$~lib/rt/itcms/__renew$224 i32.const 1073741820 @@ -4196,7 +4145,7 @@ i32.lt_u select local.tee $4 - local.get $6 + local.get $10 i32.load local.tee $1 i32.const 20 @@ -4236,18 +4185,18 @@ local.get $2 i32.ne if - local.get $6 + local.get $10 local.get $2 i32.store - local.get $6 + local.get $10 local.get $2 i32.store offset=4 - local.get $6 + local.get $10 local.get $2 i32.const 0 call $~lib/rt/itcms/__link end - local.get $6 + local.get $10 local.get $4 i32.store offset=8 end @@ -4256,32 +4205,31 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 + local.get $10 i32.store - local.get $6 + local.get $10 i32.load offset=4 - local.get $7 + local.get $6 i32.const 2 i32.shl i32.add - local.get $9 + local.get $8 i32.store - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $10 i32.store - local.get $6 + local.get $10 local.get $5 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end - local.get $10 + local.get $9 i32.const 1 i32.add - local.set $10 + local.set $9 br $for-loop|0 end end @@ -4289,7 +4237,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $10 return end i32.const 36752 @@ -4319,10 +4267,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4396,10 +4343,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4474,10 +4420,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4550,10 +4495,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5057,11 +5001,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.const 108 memory.fill - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 @@ -5374,7 +5317,8 @@ i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5419,10 +5363,9 @@ end loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $6 i32.store - local.get $1 + local.get $0 local.get $6 i32.const 20 i32.sub @@ -5431,11 +5374,11 @@ i32.shr_u i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - local.get $1 + local.get $0 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -5445,10 +5388,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -5457,13 +5400,13 @@ i32.const 7 i32.const 1728 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $~lib/staticarray/StaticArray.fromArray local.tee $5 i32.store offset=16 @@ -5478,9 +5421,9 @@ i32.shr_u local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length local.get $6 i32.ne @@ -5494,25 +5437,25 @@ end loop $for-loop|1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $1 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $5 i32.store local.get $5 - local.get $0 + local.get $1 call $~lib/staticarray/StaticArray#__get local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $1 call $~lib/array/Array#__get local.get $6 i32.ne @@ -5524,10 +5467,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 @@ -5576,9 +5519,10 @@ local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store + global.get $~lib/memory/__stack_pointer + local.set $0 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new @@ -5615,9 +5559,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store + global.get $~lib/memory/__stack_pointer + local.set $0 i32.const 0 i32.const 4 call $~lib/rt/itcms/__new @@ -5676,21 +5621,21 @@ local.get $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store i32.const 4 i32.const 8 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 2080 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $5 - i32.store offset=24 local.get $6 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5699,10 +5644,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -5711,18 +5655,18 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $7 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $5 i32.store - local.get $5 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $6 - local.get $7 + local.tee $7 + local.get $0 i32.add local.tee $8 i32.const 268435455 @@ -5735,15 +5679,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $0 i32.const 2 i32.shl - local.set $7 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $9 local.get $1 i32.store offset=4 - local.get $9 + global.get $~lib/memory/__stack_pointer local.get $8 i32.const 2 i32.shl @@ -5752,9 +5695,9 @@ local.tee $8 i32.store offset=4 loop $for-loop|011 + local.get $0 local.get $2 - local.get $7 - i32.lt_u + i32.gt_u if local.get $2 local.get $8 @@ -5776,26 +5719,26 @@ br $for-loop|011 end end - local.get $7 + local.get $0 local.get $8 i32.add - local.set $2 - local.get $6 + local.set $1 + local.get $7 i32.const 2 i32.shl - local.set $6 + local.set $2 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|112 - local.get $1 - local.get $6 + local.get $0 + local.get $2 i32.lt_u if + local.get $0 local.get $1 - local.get $2 i32.add - local.get $1 - local.get $5 + local.get $0 + local.get $6 i32.add i32.load local.tee $7 @@ -5804,10 +5747,10 @@ local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 + local.set $0 br $for-loop|112 end end @@ -5815,7 +5758,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $5 local.get $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer @@ -5842,40 +5785,39 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 2288 i32.const 20 memory.copy local.get $0 - local.get $1 + local.get $2 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store i32.const 0 global.set $~argumentsLength - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $2 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $0 local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5891,14 +5833,13 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $1 + local.get $2 i32.store - local.get $0 local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5906,21 +5847,21 @@ i32.shr_u i32.lt_s if - local.get $5 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=48 + local.get $2 local.get $1 - local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 - local.get $2 local.get $0 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get local.set $6 global.get $~lib/memory/__stack_pointer @@ -5938,19 +5879,18 @@ 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 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -5981,14 +5921,14 @@ 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.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2144 i32.store offset=24 - local.get $2 + local.get $1 i32.const 2144 call $~lib/string/String.__eq i32.eqz @@ -6026,13 +5966,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs local.tee $0 @@ -6048,10 +5987,10 @@ i32.shr_u local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -6069,11 +6008,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -6090,10 +6028,10 @@ i32.shr_u local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -6109,13 +6047,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 100 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs local.tee $0 @@ -6138,13 +6075,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs local.tee $0 @@ -6194,11 +6130,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -6222,11 +6157,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -6289,9 +6223,10 @@ local.get $1 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store + global.get $~lib/memory/__stack_pointer + local.set $0 i32.const 0 i32.const 9 i32.const 2512 @@ -6332,9 +6267,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store + global.get $~lib/memory/__stack_pointer + local.set $0 i32.const 1 i32.const 9 i32.const 2576 @@ -6389,10 +6325,9 @@ local.get $1 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2144 i32.store offset=24 local.get $1 @@ -6410,10 +6345,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2544 i32.store offset=24 local.get $1 @@ -6429,10 +6363,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2240 i32.store offset=24 local.get $1 @@ -6448,10 +6381,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2240 i32.store offset=24 local.get $1 @@ -6472,17 +6404,16 @@ i32.const 8 i32.const 10 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2656 i64.load align=1 i64.store align=1 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $2 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6491,22 +6422,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $5 + local.tee $2 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -6514,12 +6444,12 @@ br $__inlined_func$~lib/staticarray/StaticArray#includes$276 end loop $while-continue|0 - local.get $0 - local.get $5 + local.get $1 + local.get $2 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -6535,10 +6465,10 @@ i32.const 1 br $__inlined_func$~lib/staticarray/StaticArray#includes$276 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -6561,17 +6491,16 @@ i32.const 4 i32.const 11 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2688 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.get $0 i32.store i32.const 0 - local.set $0 - local.get $2 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6580,22 +6509,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $2 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -6603,12 +6531,12 @@ br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end loop $while-continue|026 - local.get $0 - local.get $5 + 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 @@ -6624,10 +6552,10 @@ i32.const 1 br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|026 end end @@ -6864,10 +6792,9 @@ local.get $1 i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=48 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=76 local.get $1 @@ -6893,10 +6820,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=48 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2928 i32.store offset=76 local.get $1 @@ -6922,10 +6848,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=48 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3088 i32.store offset=76 local.get $1 @@ -6951,10 +6876,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=48 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3168 i32.store offset=76 local.get $1 @@ -6980,10 +6904,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=48 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=76 local.get $1 @@ -7005,13 +6928,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=4 local.get $1 @@ -7042,20 +6964,19 @@ i32.const 8 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.const 3264 i64.load align=1 i64.store align=1 local.get $0 - local.get $2 + local.get $1 i32.store offset=80 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7067,10 +6988,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7079,41 +6999,40 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store i32.const 1 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 1 i32.gt_u select - local.set $1 + local.set $0 loop $for-loop|026 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $2 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.const 1 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|026 end end @@ -7126,9 +7045,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -7140,9 +7059,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -7160,18 +7079,17 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.const 3296 i32.const 12 memory.copy local.get $0 - local.get $2 + local.get $1 i32.store offset=84 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7180,39 +7098,38 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $2 i32.const 1 i32.gt_u if i32.const 0 - local.set $1 - local.get $0 + local.set $0 + local.get $2 i32.const 1 i32.shr_u local.set $5 - local.get $0 + local.get $2 i32.const 1 i32.sub - local.set $0 + local.set $2 loop $while-continue|028 - local.get $1 + local.get $0 local.get $5 i32.lt_u if - local.get $2 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -7220,9 +7137,9 @@ i32.load local.set $7 local.get $6 + local.get $1 local.get $2 local.get $0 - local.get $1 i32.sub i32.const 2 i32.shl @@ -7233,10 +7150,10 @@ local.get $6 local.get $7 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|028 end end @@ -7246,9 +7163,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7262,9 +7179,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7278,9 +7195,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -7306,12 +7223,11 @@ local.get $1 i32.store offset=88 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7323,10 +7239,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7335,10 +7250,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -7487,13 +7401,14 @@ local.get $2 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=24 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -7502,13 +7417,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.const 20 i32.sub @@ -7528,13 +7442,13 @@ i32.load offset=4 local.set $7 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|029 - local.get $1 + local.get $0 local.get $5 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl local.tee $8 @@ -7551,16 +7465,16 @@ local.get $8 i32.add local.get $9 - local.get $1 + local.get $0 local.get $2 i32.const 3408 i32.load call_indirect (type $1) i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|029 end end @@ -7568,7 +7482,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $6 i32.store offset=96 global.get $~lib/memory/__stack_pointer @@ -7620,13 +7534,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=24 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7635,12 +7548,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store i32.const 0 - local.set $0 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -7649,14 +7561,14 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|030 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -7668,15 +7580,15 @@ i32.const 3 global.set $~argumentsLength local.get $5 - local.get $0 + local.get $1 local.get $2 i32.const 3440 i32.load call_indirect (type $5) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|030 end end @@ -7696,13 +7608,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=24 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 call $~lib/staticarray/StaticArray#filter local.tee $0 @@ -7755,15 +7666,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=24 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7772,12 +7682,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store i32.const 0 - local.set $1 - local.get $5 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -7788,12 +7697,12 @@ i32.shr_u local.set $5 loop $for-loop|031 - local.get $1 + local.get $0 local.get $5 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -7804,18 +7713,18 @@ i32.store 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 3504 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|031 end end @@ -7823,7 +7732,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 6 i32.ne if @@ -7835,15 +7744,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=24 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7852,10 +7760,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -7866,14 +7773,14 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|032 - 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 @@ -7884,18 +7791,18 @@ i32.store i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $5 local.get $1 + local.get $5 + local.get $0 local.get $2 i32.const 3536 i32.load call_indirect (type $6) - 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|032 end end @@ -7903,7 +7810,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 6 i32.ne if @@ -7915,10 +7822,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=24 local.get $2 @@ -7934,10 +7840,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=24 local.get $2 @@ -7952,10 +7857,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=24 local.get $2 @@ -7971,10 +7875,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3664 i32.store offset=24 local.get $2 @@ -7989,10 +7892,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3696 i32.store offset=24 local.get $2 @@ -8009,10 +7911,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3728 i32.store offset=24 local.get $2 @@ -8029,10 +7930,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3760 i32.store offset=24 local.get $2 @@ -8049,10 +7949,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3792 i32.store offset=24 local.get $2 @@ -8081,12 +7980,11 @@ local.get $1 i32.store offset=104 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store i32.const 0 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -8095,23 +7993,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3872 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3872 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8120,10 +8016,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 @@ -8132,12 +8027,12 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 - local.get $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 3872 i32.store local.get $1 - local.get $2 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8277,9 +8172,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $5 local.get $0 i32.const 2 i32.shl diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index 88f2339474..617fc04b1e 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -1523,11 +1523,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1712,8 +1711,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -2333,10 +2331,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2348,7 +2345,7 @@ local.tee $8 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2657,14 +2654,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2679,8 +2675,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -2690,7 +2684,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -2702,12 +2696,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -2828,10 +2822,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2843,7 +2836,7 @@ local.tee $6 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -3372,7 +3365,6 @@ ) (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3389,10 +3381,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3405,7 +3396,7 @@ local.get $1 i32.le_u if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3463,7 +3454,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3474,83 +3464,81 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$148 (result i32) - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - local.get $5 - local.get $1 - i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$148 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const -2 i32.and - local.tee $3 - local.get $2 - i32.add local.tee $4 + local.get $3 + i32.add + local.tee $0 i32.eqz if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1056 + local.set $0 br $__inlined_func$~lib/string/String#concat$148 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $0 i32.store offset=4 - local.get $4 local.get $0 local.get $2 + local.get $3 memory.copy - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.add local.get $1 - local.get $3 + local.get $4 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3590,7 +3578,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.const 28 memory.fill @@ -3626,7 +3613,7 @@ i32.store i32.const 1376 global.set $~lib/rt/itcms/fromSpace - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 i32.const 1056 @@ -5945,10 +5932,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2 local.get $0 i32.const 65535 @@ -6024,13 +6010,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i64.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index b62fdf3037..1896b425de 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -1110,11 +1110,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1299,8 +1298,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1699,10 +1697,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1711,10 +1708,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1052 @@ -1774,13 +1770,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 call $~lib/string/String.UTF16.encode local.tee $0 @@ -1955,16 +1950,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 call $~lib/string/String.UTF16.encode local.tee $0 @@ -2007,10 +2001,9 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 @@ -2055,15 +2048,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.const 0 call $~lib/string/String.UTF8.encode@varargs @@ -2220,13 +2212,14 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 1904 i32.store offset=4 i32.const 1904 @@ -2262,7 +2255,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 1904 i32.store offset=4 i32.const 1904 @@ -2298,7 +2292,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 1968 i32.store offset=4 i32.const 1968 @@ -2334,7 +2329,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 1968 i32.store offset=4 i32.const 1968 @@ -2382,18 +2378,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.const 0 call $~lib/string/String.UTF8.encode@varargs @@ -2437,16 +2432,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 32 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.const 1 call $~lib/string/String.UTF8.encode@varargs @@ -2478,10 +2472,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2000 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2000 i32.store i32.const 2000 @@ -2498,12 +2491,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2000 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2000 i32.const 1 call $~lib/string/String.UTF8.encode@varargs @@ -2527,10 +2519,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 2048 i32.store offset=24 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2048 i32.store i32.const 2048 @@ -2572,12 +2563,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2000 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2000 i32.const 0 call $~lib/string/String.UTF8.encode@varargs @@ -2687,13 +2677,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 20 i32.sub @@ -2721,7 +2710,6 @@ local.get $1 ) (func $~lib/string/String.UTF16.decode (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2738,10 +2726,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2778,14 +2765,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2800,8 +2786,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -2811,7 +2795,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -2823,12 +2807,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -2942,16 +2926,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 call $~lib/string/String.UTF16.encode local.tee $0 @@ -2961,18 +2944,18 @@ i32.store i32.const 1052 i32.load - local.set $1 + local.set $2 local.get $0 i32.const 0 call $~lib/string/String.UTF16.decodeUnsafe - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 1552 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1552 call $~lib/string/String.__eq i32.eqz @@ -2985,14 +2968,13 @@ unreachable end local.get $0 - local.get $1 + local.get $2 call $~lib/string/String.UTF16.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $1 @@ -3012,10 +2994,9 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1584 i32.store offset=8 local.get $1 @@ -3037,10 +3018,9 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store offset=8 local.get $1 @@ -3062,10 +3042,9 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1648 i32.store offset=8 local.get $1 @@ -3087,10 +3066,9 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1680 i32.store offset=8 local.get $1 @@ -3112,10 +3090,9 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1552 i32.store offset=8 local.get $0 @@ -3157,13 +3134,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 call $~lib/string/String.UTF8.byteLength @@ -3445,18 +3421,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.const 1 call $~lib/string/String.UTF8.encode@varargs @@ -3610,15 +3585,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1824 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1824 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1824 i32.const 1 call $~lib/string/String.UTF8.encode@varargs @@ -3654,7 +3628,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/string/String.UTF8.decode (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3671,10 +3644,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3711,18 +3683,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.const 1 call $~lib/string/String.UTF8.encode@varargs @@ -3734,19 +3705,19 @@ i32.const 1056 i32.const 0 call $~lib/string/String.UTF8.byteLength - local.set $1 + local.set $2 local.get $0 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.decodeUnsafe - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 1552 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1552 call $~lib/string/String.__eq i32.eqz @@ -3759,15 +3730,14 @@ unreachable end local.get $0 - local.get $1 + local.get $2 i32.const 0 call $~lib/string/String.UTF8.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $1 @@ -3788,10 +3758,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1584 i32.store offset=8 local.get $1 @@ -3814,10 +3783,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1648 i32.store offset=8 local.get $1 @@ -3840,10 +3808,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1680 i32.store offset=8 local.get $1 @@ -3866,10 +3833,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1552 i32.store offset=8 local.get $1 @@ -3892,10 +3858,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=8 local.get $1 @@ -3918,10 +3883,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1680 i32.store offset=8 local.get $1 @@ -3944,10 +3908,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1552 i32.store offset=8 local.get $0 @@ -3985,16 +3948,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 0 call $~lib/string/String.UTF8.encode@varargs @@ -4026,10 +3988,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/string/String.UTF16.encode local.tee $1 @@ -4081,27 +4042,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.const -2 i32.and - local.tee $1 + local.tee $2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 - local.get $0 local.get $1 + local.get $0 + local.get $2 memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) diff --git a/tests/compiler/std/string-nonnull.release.wat b/tests/compiler/std/string-nonnull.release.wat index 06ae093de0..c4efea7937 100644 --- a/tests/compiler/std/string-nonnull.release.wat +++ b/tests/compiler/std/string-nonnull.release.wat @@ -21,13 +21,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 call $~lib/string/String.__ne @@ -52,13 +51,12 @@ drop end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store offset=4 i32.const 1052 i32.load drop - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 call $~lib/string/String.__eq @@ -85,10 +83,9 @@ drop end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -97,10 +94,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1052 @@ -137,7 +133,6 @@ unreachable ) (func $~lib/string/String.__eq (result i32) - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -154,10 +149,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -181,13 +175,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=4 call $~lib/string/String.__eq diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index d1deec7441..8518493cd8 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -2110,11 +2110,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2299,8 +2298,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -2604,7 +2602,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -2614,8 +2611,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -2624,6 +2619,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -3944,10 +3941,10 @@ (local $1 i64) (local $2 i32) (local $3 i64) - (local $4 i64) + (local $4 i32) (local $5 i64) (local $6 i64) - (local $7 i32) + (local $7 i64) (local $8 i32) (local $9 i32) (local $10 i64) @@ -3975,9 +3972,9 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $7 + local.tee $4 i32.const 1 - local.get $7 + local.get $4 select i32.const 1075 i32.sub @@ -3987,7 +3984,7 @@ local.get $1 i64.const 4503599627370495 i64.and - local.get $7 + local.get $4 i32.const 0 i32.ne i64.extend_i32_u @@ -4002,11 +3999,11 @@ local.tee $3 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $9 i32.sub - local.set $9 + local.set $4 local.get $3 - local.get $7 + local.get $9 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -4016,25 +4013,24 @@ i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $9 i64.extend_i32_s i64.shl i64.const 1 i64.sub local.get $8 - local.get $7 - i32.sub local.get $9 i32.sub + local.get $4 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $9 + local.get $4 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -4043,8 +4039,8 @@ f64.add local.tee $0 i32.trunc_sat_f64_s - local.tee $8 - local.get $8 + local.tee $4 + local.get $4 f64.convert_i32_s local.get $0 f64.ne @@ -4053,18 +4049,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $8 + local.tee $4 i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $8 i32.const 23400 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $8 + local.get $4 i32.const 1 i32.shl i32.const 24096 @@ -4078,7 +4074,7 @@ local.tee $1 i64.const 4294967295 i64.and - local.set $4 + local.set $5 global.get $~lib/util/number/_frc_pow local.tee $10 i64.const 4294967295 @@ -4089,13 +4085,13 @@ i64.shr_u local.tee $1 i64.mul - local.get $4 + local.get $5 local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $5 + local.set $6 global.get $~lib/util/number/_frc_plus local.tee $3 i64.const 4294967295 @@ -4113,7 +4109,7 @@ i64.const 32 i64.shr_u i64.add - local.set $6 + local.set $7 global.get $~lib/util/number/_frc_minus local.tee $13 i64.const 4294967295 @@ -4143,14 +4139,14 @@ i64.shr_u local.tee $1 i64.mul - local.get $5 + local.get $6 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $4 - i64.mul local.get $5 + i64.mul + local.get $6 i64.const 4294967295 i64.and i64.add @@ -4162,14 +4158,14 @@ local.get $1 local.get $3 i64.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i64.add local.get $1 local.get $12 i64.mul - local.get $6 + local.get $7 i64.const 4294967295 i64.and i64.add @@ -4181,8 +4177,8 @@ i64.const 1 i64.sub local.tee $3 - local.get $7 global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub @@ -4277,16 +4273,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -4342,7 +4337,6 @@ ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4359,14 +4353,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4381,7 +4374,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -4390,11 +4382,11 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $2 local.get $1 i32.const 20 i32.sub @@ -4403,16 +4395,16 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 i32.const 0 local.get $1 - local.get $3 + local.get $2 call $~lib/util/string/compareImpl i32.eqz local.set $0 @@ -4447,10 +4439,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -4513,10 +4504,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -4528,7 +4518,7 @@ i32.shr_u i32.ge_u if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4556,7 +4546,6 @@ local.get $2 ) (func $~lib/string/String.__not (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4573,12 +4562,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 if (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4599,7 +4587,6 @@ i32.eqz ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4616,16 +4603,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -4651,17 +4637,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 1 i32.shl i32.const 2 @@ -4673,12 +4658,12 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 + local.set $3 i32.const 0 local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if local.get $2 @@ -4686,7 +4671,7 @@ i32.const 1 i32.shl i32.add - local.get $1 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -4709,7 +4694,6 @@ (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4726,10 +4710,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -4741,7 +4724,7 @@ local.tee $3 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4749,7 +4732,6 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store local.get $0 @@ -4758,10 +4740,10 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4775,13 +4757,13 @@ i32.gt_s select local.tee $2 - local.get $5 + local.get $4 local.get $2 - local.get $5 + local.get $4 i32.lt_s select local.set $2 - local.get $5 + local.get $4 local.get $3 i32.sub local.set $4 @@ -4791,10 +4773,9 @@ i32.le_s if global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -4847,10 +4828,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4860,7 +4840,7 @@ i32.const -2 i32.and local.set $4 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -4874,12 +4854,12 @@ local.get $1 i32.const 1 i32.shl - local.tee $7 + local.tee $1 local.get $4 i32.lt_u i32.or if - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4887,20 +4867,20 @@ return end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $7 i32.store offset=4 - local.get $7 + local.get $1 local.get $4 i32.sub - local.tee $7 + local.tee $8 local.get $3 i32.gt_u if - local.get $7 - local.get $7 + local.get $8 + local.get $8 i32.const 2 i32.sub local.get $3 @@ -4909,14 +4889,14 @@ i32.mul local.tee $6 i32.sub - local.set $8 + local.set $1 loop $while-continue|0 local.get $5 local.get $6 i32.lt_u if - local.get $1 local.get $5 + local.get $7 i32.add local.get $2 local.get $3 @@ -4928,20 +4908,20 @@ br $while-continue|0 end end - local.get $1 local.get $6 + local.get $7 i32.add local.get $2 - local.get $8 + local.get $1 memory.copy else - local.get $1 - local.get $2 local.get $7 + local.get $2 + local.get $8 memory.copy end - local.get $1 local.get $7 + local.get $8 i32.add local.get $0 local.get $4 @@ -4950,7 +4930,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $7 ) (func $~lib/string/String#padEnd (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -4974,10 +4954,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4987,7 +4966,7 @@ i32.const -2 i32.and local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -5001,12 +4980,12 @@ local.get $1 i32.const 1 i32.shl - local.tee $6 + local.tee $1 local.get $3 i32.lt_u i32.or if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -5014,16 +4993,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $1 + local.get $6 local.get $0 local.get $3 memory.copy - local.get $6 + local.get $1 local.get $3 i32.sub local.tee $0 @@ -5040,11 +5019,11 @@ i32.mul local.tee $5 i32.sub - local.set $6 - local.get $1 + local.set $7 local.get $3 + local.get $6 i32.add - local.set $7 + local.set $1 i32.const 0 local.set $0 loop $while-continue|0 @@ -5053,7 +5032,7 @@ i32.lt_u if local.get $0 - local.get $7 + local.get $1 i32.add local.get $2 local.get $4 @@ -5065,17 +5044,17 @@ br $while-continue|0 end end - local.get $1 local.get $3 + local.get $6 i32.add local.get $5 i32.add local.get $2 - local.get $6 + local.get $7 memory.copy else - local.get $1 local.get $3 + local.get $6 i32.add local.get $2 local.get $0 @@ -5085,12 +5064,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $6 ) (func $~lib/string/String#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5107,10 +5085,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -5122,7 +5099,7 @@ local.tee $3 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5132,7 +5109,7 @@ i32.const 1 i32.shr_u local.set $0 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -5140,7 +5117,6 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store local.get $0 @@ -5149,10 +5125,10 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -5166,7 +5142,7 @@ i32.gt_s select local.tee $2 - local.get $5 + local.get $4 local.get $3 i32.sub local.tee $4 @@ -5181,10 +5157,9 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -5216,7 +5191,6 @@ ) (func $~lib/string/String#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -5249,10 +5223,9 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -5269,7 +5242,6 @@ (func $~lib/string/String#localeCompare (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 @@ -5286,14 +5258,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -5301,7 +5272,6 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -5310,8 +5280,8 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $4 - local.get $3 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -5320,26 +5290,26 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 i32.const 0 local.get $1 - local.get $4 local.get $2 + local.get $3 local.get $2 - local.get $4 - i32.gt_s + local.get $3 + i32.lt_s select call $~lib/util/string/compareImpl local.tee $0 - local.get $4 local.get $2 + local.get $3 i32.sub local.get $0 select @@ -5376,10 +5346,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5533,10 +5502,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5688,10 +5656,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5938,10 +5905,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -6179,10 +6145,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store block $folding-inner0 @@ -6505,8 +6470,7 @@ f64.const nan:0x8000000000000 ) (func $~lib/string/parseInt (param $0 i32) (param $1 i32) (result f64) - (local $2 i32) - (local $3 f64) + (local $2 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6523,21 +6487,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 call $~lib/util/string/strtol - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/util/string/strtod (param $0 i32) (result f64) (local $1 i32) @@ -6570,10 +6533,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store block $folding-inner1 @@ -7378,8 +7340,7 @@ f64.mul ) (func $~lib/number/F64.parseFloat (param $0 i32) (result f64) - (local $1 i32) - (local $2 f64) + (local $1 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7396,20 +7357,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/util/string/strtod - 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 $~lib/util/string/strtol (result i32) (local $0 i32) @@ -7438,10 +7398,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4880 i32.store block $folding-inner0 @@ -7742,10 +7701,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4928 i32.store block $folding-inner0 @@ -8025,7 +7983,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8042,10 +7999,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8055,7 +8011,7 @@ i32.const -2 i32.and local.set $2 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -8070,7 +8026,7 @@ local.tee $4 i32.eqz if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -8100,7 +8056,6 @@ local.get $4 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8117,13 +8072,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -8137,7 +8091,6 @@ local.get $0 ) (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8154,13 +8107,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -8177,7 +8129,6 @@ (func $~lib/string/String.__gt (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 @@ -8194,7 +8145,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store block $folding-inner0 @@ -8202,7 +8152,7 @@ local.get $1 i32.eq br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8214,7 +8164,7 @@ local.tee $2 i32.eqz br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -8226,7 +8176,7 @@ local.tee $3 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -8234,10 +8184,9 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -8274,7 +8223,6 @@ (func $~lib/string/String.__lt (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 @@ -8291,7 +8239,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store block $folding-inner0 @@ -8299,7 +8246,7 @@ local.get $1 i32.eq br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -8311,7 +8258,7 @@ local.tee $2 i32.eqz br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8323,7 +8270,7 @@ local.tee $3 i32.eqz if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -8331,10 +8278,9 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -8368,7 +8314,6 @@ i32.const 0 ) (func $~lib/string/String.__gte (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8385,13 +8330,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -8406,7 +8350,6 @@ local.get $0 ) (func $~lib/string/String.__lte (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8423,13 +8366,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -8463,10 +8405,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8475,14 +8416,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $3 + local.set $4 local.get $1 i32.const 0 i32.lt_s if (result i32) i32.const 1 else - local.get $3 + local.get $4 i64.extend_i32_s local.get $1 i64.extend_i32_s @@ -8498,7 +8439,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.eqz local.get $1 i32.eqz @@ -8524,18 +8465,18 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 + local.get $4 i32.mul i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $3 + local.get $4 i32.const 1 i32.shl - local.tee $3 + local.tee $4 local.get $1 i32.mul local.set $1 @@ -8545,13 +8486,13 @@ i32.gt_u if local.get $2 - local.get $4 + local.get $3 i32.add local.get $0 - local.get $3 + local.get $4 memory.copy local.get $2 - local.get $3 + local.get $4 i32.add local.set $2 br $while-continue|0 @@ -8561,7 +8502,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/string/String#replace (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8585,13 +8526,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8600,11 +8540,11 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $5 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $5 + local.get $4 local.get $1 i32.const 20 i32.sub @@ -8615,13 +8555,13 @@ i32.le_u if local.get $3 - local.get $5 + local.get $4 i32.le_u if - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $2 @@ -8640,10 +8580,9 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -8657,16 +8596,16 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $5 - local.get $3 - i32.sub - local.tee $5 local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u + local.tee $5 + local.get $4 + local.get $3 + i32.sub local.tee $6 i32.add local.tee $4 @@ -8690,13 +8629,13 @@ local.get $7 i32.add local.get $2 - local.get $6 + local.get $5 i32.const 1 i32.shl memory.copy local.get $4 local.get $1 - local.get $6 + local.get $5 i32.add i32.const 1 i32.shl @@ -8708,7 +8647,7 @@ i32.const 1 i32.shl i32.add - local.get $5 + local.get $6 local.get $1 i32.sub i32.const 1 @@ -8754,11 +8693,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.const 20 memory.fill - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -8767,8 +8705,8 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $4 - local.get $5 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store block $folding-inner1 @@ -8778,18 +8716,18 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $7 - local.get $4 + local.tee $8 + local.get $3 i32.ge_u if - local.get $4 - local.get $7 + local.get $3 + local.get $8 i32.ge_u if - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $2 @@ -8803,7 +8741,6 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $2 i32.store local.get $2 @@ -8812,61 +8749,54 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $5 + local.set $4 block $folding-inner0 - local.get $7 + local.get $8 i32.eqz if - local.get $5 + local.get $4 i32.eqz - if - local.get $6 - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 1 i32.add - local.get $5 + local.get $4 i32.mul i32.add i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store offset=8 - local.get $10 + local.get $11 local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl memory.copy - local.get $5 + local.get $4 local.set $1 loop $for-loop|0 local.get $3 - local.get $4 - i32.lt_u + local.get $5 + i32.gt_u if - local.get $10 + local.get $11 local.get $1 i32.const 1 i32.shl i32.add local.get $0 - local.get $3 + local.get $5 i32.const 1 i32.shl i32.add i32.load16_u i32.store16 - local.get $10 + local.get $11 local.get $1 i32.const 1 i32.add @@ -8875,201 +8805,199 @@ i32.shl i32.add local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl memory.copy local.get $1 - local.get $5 + local.get $4 i32.add local.set $1 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end br $folding-inner0 end - local.get $5 - local.get $7 + local.get $4 + local.get $8 i32.eq if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 1 i32.shl local.tee $3 i32.const 2 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store offset=12 - local.get $10 + local.get $11 local.get $0 local.get $3 memory.copy loop $while-continue|1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 local.get $1 - local.get $9 + local.get $10 call $~lib/string/String#indexOf local.tee $3 i32.const -1 i32.xor if - local.get $10 + local.get $11 local.get $3 i32.const 1 i32.shl i32.add local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl memory.copy local.get $3 - local.get $7 + local.get $8 i32.add - local.set $9 + local.set $10 br $while-continue|1 end end br $folding-inner0 end - local.get $4 - local.set $3 + local.get $3 + local.set $5 loop $while-continue|2 global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 local.get $1 - local.get $9 + local.get $10 call $~lib/string/String#indexOf - local.tee $6 + local.tee $7 i32.const -1 i32.xor if global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store - local.get $10 + local.get $11 call $~lib/string/String.__not if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store offset=16 end - local.get $6 - local.get $9 + local.get $7 + local.get $10 i32.sub - local.tee $11 - local.get $8 + local.tee $6 + local.get $9 i32.add - local.get $5 + local.get $4 i32.add - local.get $3 + local.get $5 i32.gt_u if global.get $~lib/memory/__stack_pointer - local.get $10 - local.get $3 + local.get $11 + local.get $5 i32.const 1 i32.shl - local.tee $3 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $10 + local.tee $11 i32.store offset=16 end - local.get $10 - local.get $8 + local.get $11 + local.get $9 i32.const 1 i32.shl i32.add local.get $0 - local.get $9 + local.get $10 i32.const 1 i32.shl i32.add - local.get $11 + local.get $6 i32.const 1 i32.shl memory.copy - local.get $10 - local.get $8 local.get $11 + local.get $6 + local.get $9 i32.add - local.tee $8 + local.tee $6 i32.const 1 i32.shl i32.add local.get $2 - local.get $5 + local.get $4 i32.const 1 i32.shl memory.copy - local.get $5 - local.get $8 - i32.add - local.set $8 + local.get $4 local.get $6 - local.get $7 i32.add local.set $9 + local.get $7 + local.get $8 + i32.add + local.set $10 br $while-continue|2 end end - local.get $10 + local.get $11 if - local.get $4 - local.get $9 + local.get $3 + local.get $10 i32.sub local.tee $1 - local.get $8 + local.get $9 i32.add - local.get $3 + local.get $5 i32.gt_u if global.get $~lib/memory/__stack_pointer - local.get $10 - local.get $3 + local.get $11 + local.get $5 i32.const 1 i32.shl - local.tee $3 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $10 + local.tee $11 i32.store offset=16 end local.get $1 if - local.get $10 - local.get $8 + local.get $11 + local.get $9 i32.const 1 i32.shl i32.add local.get $0 - local.get $9 + local.get $10 i32.const 1 i32.shl i32.add @@ -9079,19 +9007,19 @@ memory.copy end local.get $1 - local.get $8 + local.get $9 i32.add local.tee $0 - local.get $3 + local.get $5 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 local.get $0 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $10 + local.tee $11 i32.store offset=16 end br $folding-inner0 @@ -9102,7 +9030,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return end global.get $~lib/memory/__stack_pointer @@ -9129,10 +9057,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9286,10 +9213,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $2 @@ -9411,7 +9337,6 @@ (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9428,10 +9353,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -9440,7 +9364,7 @@ i32.const 0 i32.gt_s select - local.tee $4 + local.tee $3 local.get $0 i32.const 20 i32.sub @@ -9449,10 +9373,10 @@ i32.shr_u local.tee $1 local.get $1 - local.get $4 + local.get $3 i32.gt_s select - local.tee $4 + local.tee $3 local.get $2 i32.const 0 local.get $2 @@ -9467,34 +9391,34 @@ select local.tee $2 local.get $2 - local.get $4 + local.get $3 i32.gt_s select i32.const 1 i32.shl - local.set $5 - local.get $4 + local.set $4 + local.get $3 local.get $2 local.get $2 - local.get $4 + local.get $3 i32.lt_s select i32.const 1 i32.shl local.tee $2 - local.get $5 + local.get $4 i32.sub - local.tee $4 + local.tee $3 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1712 return end - local.get $5 + local.get $4 i32.eqz local.get $2 local.get $1 @@ -9511,16 +9435,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 2 call $~lib/rt/itcms/__new local.tee $1 i32.store offset=4 local.get $1 local.get $0 - local.get $5 - i32.add local.get $4 + i32.add + local.get $3 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 @@ -9594,16 +9518,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 2 i32.shr_u i32.gt_u @@ -9624,17 +9547,17 @@ i32.store local.get $0 i32.load - local.tee $3 + local.tee $2 i32.const 1073741820 - local.get $2 + local.get $3 i32.const 1 i32.shl - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.const 8 local.get $1 local.get $1 @@ -9645,23 +9568,23 @@ i32.shl local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.lt_u select local.tee $1 call $~lib/rt/itcms/__renew - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.ne if local.get $0 - local.get $2 + local.get $3 i32.store local.get $0 - local.get $2 + local.get $3 i32.store offset=4 local.get $0 - local.get $2 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link end @@ -9693,10 +9616,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9784,10 +9706,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 @@ -9822,7 +9743,6 @@ br $folding-inner2 end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 i32.store offset=8 local.get $0 @@ -9831,8 +9751,8 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $7 - local.get $6 + local.set $8 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 2147483647 @@ -9850,10 +9770,10 @@ i32.shr_u local.tee $5 if - local.get $7 + local.get $8 i32.eqz if - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 5 i32.const 0 @@ -9870,14 +9790,14 @@ br $folding-inner2 end else - local.get $7 + local.get $8 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 local.get $2 local.get $2 - local.get $7 + local.get $8 i32.gt_s select local.tee $3 @@ -9938,66 +9858,64 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=24 loop $while-continue|1 global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $0 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=28 local.get $0 local.get $1 local.get $3 call $~lib/string/String#indexOf - local.tee $9 + local.tee $6 i32.const -1 i32.xor if - local.get $9 + local.get $6 local.get $3 i32.sub - local.tee $6 + local.tee $7 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.const 1 i32.shl - local.tee $10 + local.tee $7 i32.const 2 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $10 i32.store offset=32 - local.get $6 + local.get $10 local.get $0 local.get $3 i32.const 1 i32.shl i32.add - local.get $10 + local.get $7 memory.copy global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $10 i32.store offset=28 - local.get $8 - local.get $6 + local.get $9 + local.get $10 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $8 + local.get $9 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=28 - local.get $8 + local.get $9 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end @@ -10009,7 +9927,7 @@ i32.eq br_if $folding-inner3 local.get $5 - local.get $9 + local.get $6 i32.add local.set $3 br $while-continue|1 @@ -10019,18 +9937,17 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $8 + local.get $9 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=28 - local.get $8 + local.get $9 local.get $0 call $~lib/array/Array<~lib/string/String>#push br $folding-inner3 end - local.get $7 + local.get $8 local.get $3 i32.sub local.tee $1 @@ -10055,23 +9972,22 @@ local.get $1 memory.copy global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=28 - local.get $8 + local.get $9 local.get $2 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $8 + local.get $9 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=28 - local.get $8 + local.get $9 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end @@ -10079,7 +9995,7 @@ i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return end i32.const 59232 @@ -10106,11 +10022,10 @@ i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 ) (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10145,10 +10060,9 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $0 @@ -10163,7 +10077,6 @@ local.get $0 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10180,10 +10093,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -10199,10 +10111,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -10261,10 +10172,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store offset=4 i32.const 1168 @@ -10280,10 +10190,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1200 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1200 i32.store offset=4 i32.const 1200 @@ -10299,10 +10208,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1232 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1232 i32.store offset=4 i32.const 1232 @@ -10338,11 +10246,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10351,14 +10258,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store block $__inlined_func$~lib/string/String#charCodeAt$291 - local.get $4 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -10366,7 +10272,7 @@ i32.shr_u i32.eqz if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -10374,7 +10280,7 @@ local.set $0 br $__inlined_func$~lib/string/String#charCodeAt$291 end - local.get $4 + local.get $0 i32.load16_u local.set $0 global.get $~lib/memory/__stack_pointer @@ -10394,11 +10300,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str local.tee $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10407,10 +10312,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store block $__inlined_func$~lib/string/String#codePointAt$292 @@ -10420,11 +10324,11 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $5 + local.tee $0 i32.const 1 i32.le_u if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -10432,7 +10336,7 @@ local.set $0 br $__inlined_func$~lib/string/String#codePointAt$292 end - local.get $5 + local.get $0 i32.const 2 i32.eq local.get $4 @@ -10600,14 +10504,14 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $std/string/str local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $4 - i32.store offset=8 - local.get $0 - local.get $4 i32.store offset=12 - local.get $4 + local.get $0 i32.const 0 local.get $4 i32.const 20 @@ -10682,10 +10586,9 @@ call $~lib/string/String.fromCharCode@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1776 i32.store offset=4 local.get $0 @@ -10706,10 +10609,9 @@ call $~lib/string/String.fromCharCode@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1840 i32.store offset=4 local.get $0 @@ -10730,10 +10632,9 @@ call $~lib/string/String.fromCharCode@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=4 local.get $0 @@ -10754,10 +10655,9 @@ call $~lib/string/String.fromCharCode@varargs local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=4 local.get $0 @@ -10777,10 +10677,9 @@ call $~lib/string/String.fromCharCode local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1904 i32.store offset=4 local.get $0 @@ -10886,10 +10785,9 @@ call $~lib/string/String.fromCodePoint local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1776 i32.store offset=4 local.get $0 @@ -10908,10 +10806,9 @@ call $~lib/string/String.fromCodePoint local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=4 local.get $0 @@ -10930,10 +10827,9 @@ call $~lib/string/String.fromCodePoint local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 2144 i32.store offset=4 local.get $0 @@ -10949,14 +10845,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2176 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10965,32 +10860,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $4 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $5 - local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 2176 i32.store block $__inlined_func$~lib/string/String#startsWith$293 - local.get $5 + local.get $4 i32.const 2172 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -10999,16 +10893,15 @@ br $__inlined_func$~lib/string/String#startsWith$293 end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 2176 i32.store offset=4 - local.get $4 + local.get $0 i32.const 0 i32.const 2176 - local.get $5 + local.get $4 call $~lib/util/string/compareImpl i32.eqz local.set $0 @@ -11028,16 +10921,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2208 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11049,13 +10941,12 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 2208 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11064,26 +10955,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $4 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $5 - local.get $0 + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 2208 i32.store block $__inlined_func$~lib/string/String#endsWith$294 i32.const 536870910 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 536870910 i32.gt_s select @@ -11091,13 +10981,13 @@ i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.sub - local.tee $6 + local.tee $5 i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -11106,16 +10996,15 @@ br $__inlined_func$~lib/string/String#endsWith$294 end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 2208 i32.store offset=4 - local.get $4 - local.get $6 - i32.const 2208 + local.get $0 local.get $5 + i32.const 2208 + local.get $4 call $~lib/util/string/compareImpl i32.eqz local.set $0 @@ -11139,14 +11028,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2240 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11155,16 +11043,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2240 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2240 i32.const 0 call $~lib/string/String#indexOf @@ -11186,14 +11073,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2272 i32.store offset=12 - local.get $4 + local.get $0 i32.const 0 i32.const 2272 call $~lib/string/String#padStart @@ -11218,14 +11104,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2272 i32.store offset=12 - local.get $4 + local.get $0 i32.const 15 i32.const 2272 call $~lib/string/String#padStart @@ -11250,10 +11135,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2272 i32.store offset=12 i32.const 1712 @@ -11280,10 +11164,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 i32.const 1712 @@ -11310,10 +11193,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1808 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 i32.const 1808 @@ -11340,10 +11222,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2272 i32.store offset=12 i32.const 2336 @@ -11370,10 +11251,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2400 i32.store offset=12 i32.const 2336 @@ -11400,10 +11280,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2400 i32.store offset=12 i32.const 2336 @@ -11430,14 +11309,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2272 i32.store offset=12 - local.get $4 + local.get $0 i32.const 0 i32.const 2272 call $~lib/string/String#padEnd @@ -11462,14 +11340,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2272 i32.store offset=12 - local.get $4 + local.get $0 i32.const 15 i32.const 2272 call $~lib/string/String#padEnd @@ -11494,10 +11371,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2272 i32.store offset=12 i32.const 1712 @@ -11524,10 +11400,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 i32.const 1712 @@ -11554,10 +11429,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1808 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 i32.const 1808 @@ -11584,10 +11458,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2272 i32.store offset=12 i32.const 2336 @@ -11614,10 +11487,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=12 i32.const 2336 @@ -11644,10 +11516,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=12 i32.const 2336 @@ -11674,10 +11545,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1712 @@ -11693,10 +11563,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2176 i32.store offset=4 i32.const 1712 @@ -11714,10 +11583,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 i32.const 1808 @@ -11733,14 +11601,14 @@ unreachable end global.get $~lib/memory/__stack_pointer + global.get $std/string/str local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $4 - i32.store - local.get $0 - local.get $4 i32.store offset=4 - local.get $4 + local.get $0 local.get $4 i32.const 0 call $~lib/string/String#indexOf @@ -11753,14 +11621,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 - local.get $4 + local.get $0 i32.const 1712 i32.const 0 call $~lib/string/String#indexOf @@ -11773,14 +11640,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2624 i32.const 0 call $~lib/string/String#indexOf @@ -11795,14 +11661,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2656 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2656 i32.const 0 call $~lib/string/String#indexOf @@ -11817,14 +11682,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2624 i32.const 2 call $~lib/string/String#indexOf @@ -11839,14 +11703,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2624 i32.const 3 call $~lib/string/String#indexOf @@ -11861,14 +11724,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2688 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2688 i32.const -1 call $~lib/string/String#indexOf @@ -11883,10 +11745,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1 @@ -11903,10 +11764,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2176 i32.store offset=4 i32.const 1 @@ -11925,16 +11785,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.const 1712 call $~lib/string/String#lastIndexOf@varargs local.set $0 @@ -11959,16 +11818,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.const 2624 call $~lib/string/String#lastIndexOf@varargs i32.const 2 @@ -11982,16 +11840,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2656 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.const 2656 call $~lib/string/String#lastIndexOf@varargs i32.const -1 @@ -12005,16 +11862,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2720 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.const 2720 call $~lib/string/String#lastIndexOf@varargs i32.const 15 @@ -12028,14 +11884,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2624 i32.const 2 call $~lib/string/String#lastIndexOf @@ -12050,14 +11905,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2624 i32.const 3 call $~lib/string/String#lastIndexOf @@ -12072,14 +11926,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2688 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2688 i32.const -1 call $~lib/string/String#lastIndexOf @@ -12094,14 +11947,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2752 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2752 i32.const 0 call $~lib/string/String#lastIndexOf @@ -12116,14 +11968,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/string/str - local.tee $4 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2176 i32.store offset=4 - local.get $4 + local.get $0 i32.const 2176 i32.const 0 call $~lib/string/String#lastIndexOf @@ -12136,10 +11987,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1712 @@ -12154,10 +12004,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1808 @@ -12174,10 +12023,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 i32.const 1712 @@ -12194,10 +12042,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2784 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2784 i32.store offset=4 i32.const 2784 @@ -12212,10 +12059,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2816 i32.store offset=4 i32.const 2336 @@ -12232,10 +12078,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2848 i32.store offset=4 i32.const 2336 @@ -12252,10 +12097,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2816 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 i32.const 2816 @@ -12272,10 +12116,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2880 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 i32.const 2880 @@ -12292,10 +12135,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2912 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 i32.const 2912 @@ -12312,10 +12154,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2880 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2944 i32.store offset=4 i32.const 2880 @@ -12332,10 +12173,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2912 i32.store offset=4 i32.const 2336 @@ -12352,10 +12192,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2944 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2880 i32.store offset=4 i32.const 2944 @@ -12372,10 +12211,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2304 i32.store offset=4 i32.const 1712 @@ -12392,10 +12230,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1776 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1776 @@ -12628,10 +12465,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3152 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3152 i32.store i32.const 3152 @@ -12646,10 +12482,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3200 i32.store offset=20 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3200 i32.store i32.const 3200 @@ -12664,10 +12499,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3248 i32.store offset=24 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3248 i32.store i32.const 3248 @@ -12681,10 +12515,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=28 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store i32.const 1712 @@ -12698,10 +12531,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3296 i32.store offset=32 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3296 i32.store i32.const 3296 @@ -12715,10 +12547,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3328 i32.store offset=36 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3328 i32.store i32.const 3328 @@ -12732,10 +12563,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3360 i32.store offset=40 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3360 i32.store i32.const 3360 @@ -13372,10 +13202,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4656 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13384,10 +13213,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4656 i32.store i32.const 4656 @@ -13426,10 +13254,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4656 i32.store offset=44 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4656 i32.store i32.const 4656 @@ -13447,10 +13274,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4656 i32.store offset=48 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4656 i32.store i32.const 4656 @@ -13467,10 +13293,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4880 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13479,10 +13304,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4880 i32.store call $~lib/util/string/strtol @@ -13503,10 +13327,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4880 i32.store offset=52 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4880 i32.store call $~lib/util/string/strtol @@ -13521,10 +13344,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4928 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13533,10 +13355,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4928 i32.store call $~lib/util/string/strtol @@ -13557,10 +13378,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4928 i32.store offset=56 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4928 i32.store call $~lib/util/string/strtol @@ -15415,10 +15235,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9808 i32.store offset=72 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9968 i32.store offset=76 i32.const 9808 @@ -15862,13 +15681,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13360 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.const 13360 call $~lib/string/String.__concat @@ -15893,10 +15711,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 local.get $0 @@ -15912,10 +15729,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1712 @@ -15946,10 +15762,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=4 i32.const 1712 @@ -15965,10 +15780,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 0 @@ -15984,10 +15798,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13360 i32.store offset=4 i32.const 1808 @@ -16003,10 +15816,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 i32.const 1808 @@ -16022,10 +15834,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13424 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13456 i32.store offset=4 i32.const 13424 @@ -16041,10 +15852,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13424 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13424 i32.store offset=4 i32.const 13424 @@ -16060,10 +15870,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13488 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13520 i32.store offset=4 i32.const 13488 @@ -16079,10 +15888,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13552 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13584 i32.store offset=4 i32.const 13552 @@ -16098,10 +15906,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13616 i32.store offset=4 i32.const 13616 @@ -16117,10 +15924,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13664 i32.store offset=4 i32.const 13616 @@ -16136,10 +15942,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13760 i32.store offset=4 i32.const 13712 @@ -16155,10 +15960,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13360 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 i32.const 13360 @@ -16174,10 +15978,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 i32.const 13808 @@ -16193,10 +15996,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13840 i32.store offset=4 i32.const 13808 @@ -16212,10 +16014,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=4 i32.const 13808 @@ -16231,10 +16032,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13808 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=4 i32.const 13808 @@ -16249,10 +16049,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 2336 @@ -16268,10 +16067,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 i32.const 1712 @@ -16287,10 +16085,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 2336 @@ -16306,10 +16103,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 i32.const 1712 @@ -16325,10 +16121,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 2336 @@ -16343,10 +16138,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 i32.const 1712 @@ -16361,10 +16155,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1712 @@ -16379,10 +16172,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1712 @@ -16397,10 +16189,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1712 @@ -16416,10 +16207,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1712 @@ -16435,10 +16225,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3456 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13872 i32.store offset=4 i32.const 3456 @@ -16454,10 +16243,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13872 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=4 i32.const 13872 @@ -16473,10 +16261,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13904 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13872 i32.store offset=4 i32.const 13904 @@ -16491,10 +16278,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13872 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13904 i32.store offset=4 i32.const 13872 @@ -16509,10 +16295,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13904 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13872 i32.store offset=4 i32.const 13904 @@ -16528,10 +16313,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13872 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13904 i32.store offset=4 i32.const 13872 @@ -16547,10 +16331,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13904 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13904 i32.store offset=4 i32.const 13904 @@ -16565,10 +16348,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13904 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13904 i32.store offset=4 i32.const 13904 @@ -16583,10 +16365,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13904 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13904 i32.store offset=4 i32.const 13904 @@ -16602,10 +16383,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13904 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13904 i32.store offset=4 i32.const 13904 @@ -16621,10 +16401,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13872 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13936 i32.store offset=4 i32.const 13872 @@ -16639,10 +16418,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13936 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13872 i32.store offset=4 i32.const 13936 @@ -16658,10 +16436,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13872 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13936 i32.store offset=4 i32.const 13872 @@ -16677,10 +16454,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3456 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=4 i32.const 3456 @@ -16696,10 +16472,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13904 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13904 i32.store offset=4 i32.const 13904 @@ -16715,10 +16490,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2400 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2400 i32.store offset=4 i32.const 2400 @@ -16734,10 +16508,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2400 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13968 i32.store offset=4 i32.const 2400 @@ -16753,10 +16526,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14000 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14000 i32.store offset=4 i32.const 14000 @@ -16772,10 +16544,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14032 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14000 i32.store offset=4 i32.const 14032 @@ -16793,36 +16564,36 @@ global.get $~lib/memory/__stack_pointer i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $0 + local.tee $4 i32.store offset=84 global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $5 i32.const 55296 call $~lib/string/String.fromCodePoint - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store i32.const 56322 call $~lib/string/String.fromCodePoint - local.set $6 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $4 local.get $5 local.get $6 + local.get $0 call $~lib/string/String.__concat - local.tee $4 + local.tee $0 i32.store offset=88 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $4 + local.get $0 call $~lib/string/String.__gt i32.eqz if @@ -17076,13 +16847,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=60 i32.const 1712 @@ -17109,13 +16879,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 1712 @@ -17142,13 +16911,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4592 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=60 i32.const 4592 @@ -17175,13 +16943,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4592 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=60 i32.const 4592 @@ -17208,13 +16975,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4560 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2336 @@ -17241,13 +17007,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2336 @@ -17274,13 +17039,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2912 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2336 @@ -17307,13 +17071,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=60 i32.const 2336 @@ -17340,13 +17103,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14304 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4560 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 14304 @@ -17373,13 +17135,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2336 @@ -17406,13 +17167,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14400 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14432 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 14400 @@ -17439,13 +17199,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14464 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14496 i32.store offset=60 i32.const 2336 @@ -17472,13 +17231,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14464 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=60 i32.const 2336 @@ -17505,13 +17263,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=60 i32.const 1712 @@ -17538,13 +17295,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4560 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2336 @@ -17571,13 +17327,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2544 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2544 @@ -17604,13 +17359,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14560 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 14560 @@ -17637,13 +17391,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2544 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=60 i32.const 2544 @@ -17670,13 +17423,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14640 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14608 i32.store offset=60 i32.const 14640 @@ -17703,13 +17455,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2544 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14496 i32.store offset=60 i32.const 2544 @@ -17736,13 +17487,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14768 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14800 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14496 i32.store offset=60 i32.const 14768 @@ -17769,13 +17519,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2912 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2336 @@ -17802,13 +17551,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2912 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14864 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14496 i32.store offset=60 i32.const 2912 @@ -17835,13 +17583,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 14896 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2336 @@ -17868,13 +17615,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13392 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 13392 @@ -17901,13 +17647,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14304 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4560 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 14304 @@ -17934,13 +17679,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=60 i32.const 1712 @@ -17967,13 +17711,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 1712 @@ -18000,13 +17743,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4592 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=60 i32.const 4592 @@ -18033,13 +17775,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4592 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=60 i32.const 4592 @@ -18066,13 +17807,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4560 i32.store offset=60 i32.const 2336 @@ -18099,13 +17839,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2816 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4560 i32.store offset=60 i32.const 2336 @@ -18132,13 +17871,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=60 i32.const 2336 @@ -18165,13 +17903,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=60 i32.const 2336 @@ -18198,13 +17935,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 15040 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15072 i32.store offset=60 i32.const 15040 @@ -18231,13 +17967,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 13392 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13392 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15152 i32.store offset=60 i32.const 13392 @@ -18264,13 +17999,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14112 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15184 i32.store offset=60 i32.const 14112 @@ -18297,13 +18031,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 14112 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13840 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15072 i32.store offset=60 i32.const 14112 @@ -19069,12 +18802,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store i32.const 0 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.const 0 call $~lib/string/String#split@varargs @@ -19117,15 +18849,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.const 1712 call $~lib/string/String#split@varargs @@ -19145,15 +18876,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.const 2624 call $~lib/string/String#split@varargs @@ -19196,15 +18926,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 15840 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 7632 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15840 i32.const 7632 call $~lib/string/String#split@varargs @@ -19247,15 +18976,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 15840 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15840 i32.const 2624 call $~lib/string/String#split@varargs @@ -19338,15 +19066,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 15872 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15872 i32.const 15920 call $~lib/string/String#split@varargs @@ -19429,15 +19156,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 15952 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15952 i32.const 2624 call $~lib/string/String#split@varargs @@ -19540,15 +19266,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 15984 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15984 i32.const 2624 call $~lib/string/String#split@varargs @@ -19651,15 +19376,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 16016 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 16016 i32.const 2624 call $~lib/string/String#split@varargs @@ -19762,15 +19486,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.const 1712 call $~lib/string/String#split@varargs @@ -19853,13 +19576,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.const 1712 i32.const 0 @@ -19880,13 +19602,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.const 1712 i32.const 1 @@ -19930,13 +19651,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 15840 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15840 i32.const 2624 i32.const 1 @@ -19980,13 +19700,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.const 1712 i32.const 4 @@ -20070,13 +19789,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.const 1712 i32.const -1 @@ -20160,13 +19878,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 15840 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 2624 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 15840 i32.const 2624 i32.const -1 @@ -20254,10 +19971,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -20277,10 +19993,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=4 local.get $0 @@ -20300,10 +20015,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17792 i32.store offset=4 local.get $0 @@ -20323,10 +20037,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17824 i32.store offset=4 local.get $0 @@ -20346,10 +20059,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 2400 i32.store offset=4 local.get $0 @@ -20369,10 +20081,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17856 i32.store offset=4 local.get $0 @@ -20392,10 +20103,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 14000 i32.store offset=4 local.get $0 @@ -20415,10 +20125,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17888 i32.store offset=4 local.get $0 @@ -20438,10 +20147,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17920 i32.store offset=4 local.get $0 @@ -20461,10 +20169,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17952 i32.store offset=4 local.get $0 @@ -20484,10 +20191,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18000 i32.store offset=4 local.get $0 @@ -20507,10 +20213,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18048 i32.store offset=4 local.get $0 @@ -20530,10 +20235,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18096 i32.store offset=4 local.get $0 @@ -20553,10 +20257,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18144 i32.store offset=4 local.get $0 @@ -20576,10 +20279,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18192 i32.store offset=4 local.get $0 @@ -20599,10 +20301,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18240 i32.store offset=4 local.get $0 @@ -20622,10 +20323,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18288 i32.store offset=4 local.get $0 @@ -20645,10 +20345,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18320 i32.store offset=4 local.get $0 @@ -20668,10 +20367,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18352 i32.store offset=4 local.get $0 @@ -20691,10 +20389,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18240 i32.store offset=4 local.get $0 @@ -20714,10 +20411,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -20737,10 +20433,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18384 i32.store offset=4 local.get $0 @@ -20760,10 +20455,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18192 i32.store offset=4 local.get $0 @@ -20783,10 +20477,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18416 i32.store offset=4 local.get $0 @@ -20806,10 +20499,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18464 i32.store offset=4 local.get $0 @@ -20829,10 +20521,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -20852,10 +20543,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=4 local.get $0 @@ -20875,10 +20565,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17792 i32.store offset=4 local.get $0 @@ -20898,10 +20587,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 14464 i32.store offset=4 local.get $0 @@ -20921,10 +20609,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18512 i32.store offset=4 local.get $0 @@ -20944,10 +20631,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18544 i32.store offset=4 local.get $0 @@ -20967,10 +20653,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18576 i32.store offset=4 local.get $0 @@ -20990,10 +20675,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18608 i32.store offset=4 local.get $0 @@ -21013,10 +20697,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18640 i32.store offset=4 local.get $0 @@ -21036,10 +20719,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18672 i32.store offset=4 local.get $0 @@ -21059,10 +20741,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18704 i32.store offset=4 local.get $0 @@ -21082,10 +20763,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18736 i32.store offset=4 local.get $0 @@ -21105,10 +20785,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18784 i32.store offset=4 local.get $0 @@ -21128,10 +20807,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18832 i32.store offset=4 local.get $0 @@ -21151,10 +20829,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18880 i32.store offset=4 local.get $0 @@ -21174,10 +20851,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18928 i32.store offset=4 local.get $0 @@ -21197,10 +20873,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -21220,10 +20895,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17856 i32.store offset=4 local.get $0 @@ -21243,10 +20917,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18832 i32.store offset=4 local.get $0 @@ -21266,10 +20939,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18976 i32.store offset=4 local.get $0 @@ -21289,10 +20961,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19024 i32.store offset=4 local.get $0 @@ -21312,10 +20983,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19072 i32.store offset=4 local.get $0 @@ -21335,10 +21005,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19072 i32.store offset=4 local.get $0 @@ -21358,10 +21027,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -21381,10 +21049,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=4 local.get $0 @@ -21404,10 +21071,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 13904 i32.store offset=4 local.get $0 @@ -21427,10 +21093,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19120 i32.store offset=4 local.get $0 @@ -21450,10 +21115,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19152 i32.store offset=4 local.get $0 @@ -21473,10 +21137,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19184 i32.store offset=4 local.get $0 @@ -21496,10 +21159,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19216 i32.store offset=4 local.get $0 @@ -21519,10 +21181,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19248 i32.store offset=4 local.get $0 @@ -21542,10 +21203,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19296 i32.store offset=4 local.get $0 @@ -21565,10 +21225,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19376 i32.store offset=4 local.get $0 @@ -21588,10 +21247,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19472 i32.store offset=4 local.get $0 @@ -21611,10 +21269,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19568 i32.store offset=4 local.get $0 @@ -21634,10 +21291,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19664 i32.store offset=4 local.get $0 @@ -21657,10 +21313,9 @@ call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19760 i32.store offset=4 local.get $0 @@ -21680,10 +21335,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19808 i32.store offset=4 local.get $0 @@ -21703,10 +21357,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19872 i32.store offset=4 local.get $0 @@ -21726,10 +21379,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19936 i32.store offset=4 local.get $0 @@ -21749,10 +21401,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19984 i32.store offset=4 local.get $0 @@ -21772,10 +21423,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20032 i32.store offset=4 local.get $0 @@ -21795,10 +21445,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20080 i32.store offset=4 local.get $0 @@ -21818,10 +21467,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20128 i32.store offset=4 local.get $0 @@ -21841,10 +21489,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20176 i32.store offset=4 local.get $0 @@ -21864,10 +21511,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20224 i32.store offset=4 local.get $0 @@ -21887,10 +21533,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20272 i32.store offset=4 local.get $0 @@ -21910,10 +21555,9 @@ call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20320 i32.store offset=4 local.get $0 @@ -21933,10 +21577,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -21956,10 +21599,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17824 i32.store offset=4 local.get $0 @@ -21979,10 +21621,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 2400 i32.store offset=4 local.get $0 @@ -22002,10 +21643,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 14000 i32.store offset=4 local.get $0 @@ -22025,10 +21665,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17888 i32.store offset=4 local.get $0 @@ -22048,10 +21687,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 17920 i32.store offset=4 local.get $0 @@ -22071,10 +21709,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18000 i32.store offset=4 local.get $0 @@ -22094,10 +21731,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20368 i32.store offset=4 local.get $0 @@ -22117,10 +21753,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20416 i32.store offset=4 local.get $0 @@ -22140,10 +21775,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18464 i32.store offset=4 local.get $0 @@ -22163,10 +21797,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20464 i32.store offset=4 local.get $0 @@ -22186,10 +21819,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20512 i32.store offset=4 local.get $0 @@ -22209,10 +21841,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20560 i32.store offset=4 local.get $0 @@ -22232,10 +21863,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20608 i32.store offset=4 local.get $0 @@ -22255,10 +21885,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20656 i32.store offset=4 local.get $0 @@ -22278,10 +21907,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20704 i32.store offset=4 local.get $0 @@ -22301,10 +21929,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20768 i32.store offset=4 local.get $0 @@ -22324,10 +21951,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20832 i32.store offset=4 local.get $0 @@ -22347,10 +21973,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20896 i32.store offset=4 local.get $0 @@ -22370,10 +21995,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20960 i32.store offset=4 local.get $0 @@ -22393,10 +22017,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21024 i32.store offset=4 local.get $0 @@ -22416,10 +22039,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -22439,10 +22061,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21088 i32.store offset=4 local.get $0 @@ -22462,10 +22083,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18464 i32.store offset=4 local.get $0 @@ -22485,10 +22105,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20464 i32.store offset=4 local.get $0 @@ -22508,10 +22127,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21120 i32.store offset=4 local.get $0 @@ -22531,10 +22149,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 20512 i32.store offset=4 local.get $0 @@ -22554,10 +22171,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21168 i32.store offset=4 local.get $0 @@ -22577,10 +22193,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21216 i32.store offset=4 local.get $0 @@ -22600,10 +22215,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21264 i32.store offset=4 local.get $0 @@ -22623,10 +22237,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21328 i32.store offset=4 local.get $0 @@ -22646,10 +22259,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21392 i32.store offset=4 local.get $0 @@ -22669,10 +22281,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21456 i32.store offset=4 local.get $0 @@ -22692,10 +22303,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -22715,10 +22325,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=4 local.get $0 @@ -22738,10 +22347,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 14464 i32.store offset=4 local.get $0 @@ -22761,10 +22369,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18544 i32.store offset=4 local.get $0 @@ -22784,10 +22391,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 18640 i32.store offset=4 local.get $0 @@ -22807,10 +22413,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21520 i32.store offset=4 local.get $0 @@ -22830,10 +22435,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21568 i32.store offset=4 local.get $0 @@ -22853,10 +22457,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21616 i32.store offset=4 local.get $0 @@ -22876,10 +22479,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21664 i32.store offset=4 local.get $0 @@ -22899,10 +22501,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21712 i32.store offset=4 local.get $0 @@ -22922,10 +22523,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21760 i32.store offset=4 local.get $0 @@ -22945,10 +22545,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21824 i32.store offset=4 local.get $0 @@ -22968,10 +22567,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21888 i32.store offset=4 local.get $0 @@ -22991,10 +22589,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 21952 i32.store offset=4 local.get $0 @@ -23014,10 +22611,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22016 i32.store offset=4 local.get $0 @@ -23037,10 +22633,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22080 i32.store offset=4 local.get $0 @@ -23060,10 +22655,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22080 i32.store offset=4 local.get $0 @@ -23083,10 +22677,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3392 i32.store offset=4 local.get $0 @@ -23106,10 +22699,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 3456 i32.store offset=4 local.get $0 @@ -23129,10 +22721,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19120 i32.store offset=4 local.get $0 @@ -23152,10 +22743,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19152 i32.store offset=4 local.get $0 @@ -23175,10 +22765,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19216 i32.store offset=4 local.get $0 @@ -23198,10 +22787,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19248 i32.store offset=4 local.get $0 @@ -23221,10 +22809,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 19664 i32.store offset=4 local.get $0 @@ -23244,10 +22831,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22144 i32.store offset=4 local.get $0 @@ -23267,10 +22853,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22272 i32.store offset=4 local.get $0 @@ -23290,10 +22875,9 @@ call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22432 i32.store offset=4 local.get $0 @@ -23313,10 +22897,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22528 i32.store offset=4 local.get $0 @@ -23336,10 +22919,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22640 i32.store offset=4 local.get $0 @@ -23359,10 +22941,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22736 i32.store offset=4 local.get $0 @@ -23382,10 +22963,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22816 i32.store offset=4 local.get $0 @@ -23405,10 +22985,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22880 i32.store offset=4 local.get $0 @@ -23428,10 +23007,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 22944 i32.store offset=4 local.get $0 @@ -23451,10 +23029,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23008 i32.store offset=4 local.get $0 @@ -23474,10 +23051,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23072 i32.store offset=4 local.get $0 @@ -23497,10 +23073,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23136 i32.store offset=4 local.get $0 @@ -23520,10 +23095,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23184 i32.store offset=4 local.get $0 @@ -23543,10 +23117,9 @@ call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23232 i32.store offset=4 local.get $0 @@ -23565,10 +23138,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23280 i32.store offset=4 local.get $0 @@ -23587,10 +23159,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23280 i32.store offset=4 local.get $0 @@ -23609,10 +23180,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 7696 i32.store offset=4 local.get $0 @@ -23631,10 +23201,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23312 i32.store offset=4 local.get $0 @@ -23653,10 +23222,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8960 i32.store offset=4 local.get $0 @@ -23675,10 +23243,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8176 i32.store offset=4 local.get $0 @@ -23697,10 +23264,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24336 i32.store offset=4 local.get $0 @@ -23719,10 +23285,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8240 i32.store offset=4 local.get $0 @@ -23741,10 +23306,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24400 i32.store offset=4 local.get $0 @@ -23763,10 +23327,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24480 i32.store offset=4 local.get $0 @@ -23785,10 +23348,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24544 i32.store offset=4 local.get $0 @@ -23807,10 +23369,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24624 i32.store offset=4 local.get $0 @@ -23829,10 +23390,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24672 i32.store offset=4 local.get $0 @@ -23851,10 +23411,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24736 i32.store offset=4 local.get $0 @@ -23873,10 +23432,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24800 i32.store offset=4 local.get $0 @@ -23895,10 +23453,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8320 i32.store offset=4 local.get $0 @@ -23917,10 +23474,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24864 i32.store offset=4 local.get $0 @@ -23939,10 +23495,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 5280 i32.store offset=4 local.get $0 @@ -23961,10 +23516,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24896 i32.store offset=4 local.get $0 @@ -23983,10 +23537,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24928 i32.store offset=4 local.get $0 @@ -24005,10 +23558,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24960 i32.store offset=4 local.get $0 @@ -24027,10 +23579,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25008 i32.store offset=4 local.get $0 @@ -24049,10 +23600,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25056 i32.store offset=4 local.get $0 @@ -24071,10 +23621,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25104 i32.store offset=4 local.get $0 @@ -24093,10 +23642,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25152 i32.store offset=4 local.get $0 @@ -24115,10 +23663,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25200 i32.store offset=4 local.get $0 @@ -24137,10 +23684,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 5568 i32.store offset=4 local.get $0 @@ -24159,10 +23705,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25232 i32.store offset=4 local.get $0 @@ -24181,10 +23726,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23312 i32.store offset=4 local.get $0 @@ -24203,10 +23747,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8960 i32.store offset=4 local.get $0 @@ -24225,10 +23768,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25280 i32.store offset=4 local.get $0 @@ -24247,10 +23789,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25312 i32.store offset=4 local.get $0 @@ -24269,10 +23810,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25360 i32.store offset=4 local.get $0 @@ -24291,10 +23831,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25392 i32.store offset=4 local.get $0 @@ -24313,10 +23852,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 23280 i32.store offset=4 local.get $0 @@ -24335,10 +23873,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25440 i32.store offset=4 local.get $0 @@ -24357,10 +23894,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25488 i32.store offset=4 local.get $0 @@ -24379,10 +23915,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25552 i32.store offset=4 local.get $0 @@ -24401,10 +23936,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25616 i32.store offset=4 local.get $0 @@ -24423,10 +23957,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 24864 i32.store offset=4 local.get $0 @@ -24445,10 +23978,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25680 i32.store offset=4 local.get $0 @@ -24467,10 +23999,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25712 i32.store offset=4 local.get $0 @@ -24489,10 +24020,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25776 i32.store offset=4 local.get $0 @@ -24511,10 +24041,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25856 i32.store offset=4 local.get $0 @@ -24533,10 +24062,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25904 i32.store offset=4 local.get $0 @@ -24555,10 +24083,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 25952 i32.store offset=4 local.get $0 @@ -24577,10 +24104,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 26000 i32.store offset=4 local.get $0 @@ -24599,10 +24125,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 26048 i32.store offset=4 local.get $0 @@ -24621,10 +24146,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 26096 i32.store offset=4 local.get $0 @@ -24643,10 +24167,9 @@ call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 26144 i32.store offset=4 local.get $0 @@ -24662,10 +24185,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 26192 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 26224 i32.store offset=12 i32.const 26192 @@ -24691,10 +24213,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 26304 i32.store offset=12 i32.const 1712 @@ -24720,10 +24241,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 26304 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 i32.const 26304 @@ -24749,10 +24269,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1712 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 i32.const 1712 @@ -24778,10 +24297,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 26336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 26336 i32.store offset=4 i32.const 26336 @@ -24797,10 +24315,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 26336 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 26336 i32.store offset=4 i32.const 26336 @@ -24816,10 +24333,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 26368 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 26368 i32.store offset=4 i32.const 26368 @@ -24835,10 +24351,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 26400 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 26400 i32.store offset=4 i32.const 26400 @@ -24922,10 +24437,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 2 local.get $1 i32.const 0 @@ -24971,9 +24485,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $5 local.get $0 i32.const 2 i32.shl @@ -25035,10 +24550,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2 local.get $0 i32.const 65535 @@ -26397,14 +25911,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 f64.const 0 f64.eq if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -26444,21 +25957,21 @@ call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - i32.const 23344 local.get $2 + i32.const 23344 + local.get $1 memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) ) diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index d08b3e59f9..ca03f8216a 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -2372,7 +2372,7 @@ end end ) - (func $~lib/map/Map<~lib/string/String,usize>#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2381,12 +2381,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2395,17 +2395,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map<~lib/string/String,usize>#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -2423,19 +2423,19 @@ i32.shr_u return ) - (func $~lib/map/Map<~lib/string/String,usize>#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" (param $this i32) (result i32) local.get $this i32.load ) @@ -2543,42 +2543,42 @@ i32.const 0 return ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map<~lib/string/String,usize>#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map<~lib/string/String,usize>#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 ) - (func $~lib/map/Map#set:buckets (param $this i32) (param $buckets i32) + (func $"~lib/map/Map#set:buckets" (param $this i32) (param $buckets i32) local.get $this local.get $buckets i32.store @@ -2587,12 +2587,12 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:bucketsMask (param $this i32) (param $bucketsMask i32) + (func $"~lib/map/Map#set:bucketsMask" (param $this i32) (param $bucketsMask i32) local.get $this local.get $bucketsMask i32.store offset=4 ) - (func $~lib/map/Map#set:entries (param $this i32) (param $entries i32) + (func $"~lib/map/Map#set:entries" (param $this i32) (param $entries i32) local.get $this local.get $entries i32.store offset=8 @@ -2601,17 +2601,17 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/map/Map#set:entriesCapacity (param $this i32) (param $entriesCapacity i32) + (func $"~lib/map/Map#set:entriesCapacity" (param $this i32) (param $entriesCapacity i32) local.get $this local.get $entriesCapacity i32.store offset=12 ) - (func $~lib/map/Map#set:entriesOffset (param $this i32) (param $entriesOffset i32) + (func $"~lib/map/Map#set:entriesOffset" (param $this i32) (param $entriesOffset i32) local.get $this local.get $entriesOffset i32.store offset=16 ) - (func $~lib/map/Map#set:entriesCount (param $this i32) (param $entriesCount i32) + (func $"~lib/map/Map#set:entriesCount" (param $this i32) (param $entriesCount i32) local.get $this local.get $entriesCount i32.store offset=20 @@ -2684,53 +2684,53 @@ end return ) - (func $~lib/map/Map#get:buckets (param $this i32) (result i32) + (func $"~lib/map/Map#get:buckets" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/Map#get:bucketsMask (param $this i32) (result i32) + (func $"~lib/map/Map#get:bucketsMask" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#get:taggedNext (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:taggedNext" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#get:key (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:key" (param $this i32) (result i32) local.get $this i32.load ) - (func $~lib/map/MapEntry#set:value (param $this i32) (param $value i32) + (func $"~lib/map/MapEntry#set:value" (param $this i32) (param $value i32) local.get $this local.get $value i32.store offset=4 ) - (func $~lib/map/Map#get:entriesOffset (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesOffset" (param $this i32) (result i32) local.get $this i32.load offset=16 ) - (func $~lib/map/Map#get:entriesCapacity (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCapacity" (param $this i32) (result i32) local.get $this i32.load offset=12 ) - (func $~lib/map/Map#get:entriesCount (param $this i32) (result i32) + (func $"~lib/map/Map#get:entriesCount" (param $this i32) (result i32) local.get $this i32.load offset=20 ) - (func $~lib/map/Map#get:entries (param $this i32) (result i32) + (func $"~lib/map/Map#get:entries" (param $this i32) (result i32) local.get $this i32.load offset=8 ) - (func $~lib/map/MapEntry#set:key (param $this i32) (param $key i32) + (func $"~lib/map/MapEntry#set:key" (param $this i32) (param $key i32) local.get $this local.get $key i32.store ) - (func $~lib/map/MapEntry#get:value (param $this i32) (result i32) + (func $"~lib/map/MapEntry#get:value" (param $this i32) (result i32) local.get $this i32.load offset=4 ) - (func $~lib/map/MapEntry#set:taggedNext (param $this i32) (param $taggedNext i32) + (func $"~lib/map/MapEntry#set:taggedNext" (param $this i32) (param $taggedNext i32) local.get $this local.get $taggedNext i32.store offset=8 @@ -2808,26 +2808,26 @@ ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) - (func $~lib/map/Map<~lib/string/String,usize>~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map<~lib/string/String,usize>~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map<~lib/string/String,usize>#__visit + call $"~lib/map/Map<~lib/string/String,usize>#__visit" ) - (func $~lib/map/Map~visit (param $0 i32) (param $1 i32) + (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 local.get $1 call $~lib/object/Object~visit local.get $0 local.get $1 - call $~lib/map/Map#__visit + call $"~lib/map/Map#__visit" ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid - block $~lib/map/Map - block $~lib/map/Map<~lib/string/String,usize> + block $"~lib/map/Map" + block $"~lib/map/Map<~lib/string/String,usize>" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -2836,7 +2836,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,usize> $~lib/map/Map $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/Map" $invalid end return end @@ -2851,12 +2851,12 @@ end local.get $0 local.get $1 - call $~lib/map/Map<~lib/string/String,usize>~visit + call $"~lib/map/Map<~lib/string/String,usize>~visit" return end local.get $0 local.get $1 - call $~lib/map/Map~visit + call $"~lib/map/Map~visit" return end unreachable @@ -2883,7 +2883,7 @@ unreachable end ) - (func $~lib/map/Map<~lib/string/String,usize>#constructor (param $this i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -2922,7 +2922,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map<~lib/string/String,usize>#set:buckets + call $"~lib/map/Map<~lib/string/String,usize>#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2932,7 +2932,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2941,9 +2941,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -2952,7 +2952,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map<~lib/string/String,usize>#set:entries + call $"~lib/map/Map<~lib/string/String,usize>#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2960,7 +2960,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2968,7 +2968,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -2976,7 +2976,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCount + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -3370,7 +3370,7 @@ local.get $3 return ) - (func $~lib/map/Map<~lib/string/String,usize>#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -3388,7 +3388,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map<~lib/string/String,usize>#get:buckets + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -3396,7 +3396,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -3407,7 +3407,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -3415,7 +3415,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 @@ -3459,7 +3459,7 @@ local.get $5 return ) - (func $~lib/map/Map<~lib/string/String,usize>#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -3491,7 +3491,7 @@ i32.store offset=8 local.get $2 call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find + call $"~lib/map/Map<~lib/string/String,usize>#find" i32.const 0 i32.ne local.set $2 @@ -3502,7 +3502,7 @@ local.get $2 return ) - (func $~lib/map/Map<~lib/string/String,usize>#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -3535,7 +3535,7 @@ i32.store offset=8 local.get $3 call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find + call $"~lib/map/Map<~lib/string/String,usize>#find" local.set $entry local.get $entry i32.eqz @@ -3548,7 +3548,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:value + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -3557,7 +3557,7 @@ local.get $3 return ) - (func $~lib/map/Map<~lib/string/String,usize>#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map<~lib/string/String,usize>#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -3601,9 +3601,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3615,7 +3615,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#get:entries + call $"~lib/map/Map<~lib/string/String,usize>#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -3624,10 +3624,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2 (result i32) + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.2" end i32.mul i32.add @@ -3642,7 +3642,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -3651,7 +3651,7 @@ local.set $newEntry global.get $~lib/memory/__stack_pointer local.get $oldEntry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" local.tee $oldEntryKey i32.store offset=12 local.get $newEntry @@ -3661,11 +3661,11 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:value - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" local.get $oldEntryKey local.set $14 global.get $~lib/memory/__stack_pointer @@ -3685,22 +3685,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" end i32.add local.set $oldPtr @@ -3719,7 +3719,7 @@ local.get $14 i32.store offset=16 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#set:buckets + call $"~lib/map/Map<~lib/string/String,usize>#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -3727,7 +3727,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map<~lib/string/String,usize>#set:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -3740,7 +3740,7 @@ local.get $14 i32.store offset=16 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#set:entries + call $"~lib/map/Map<~lib/string/String,usize>#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -3748,7 +3748,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -3761,14 +3761,14 @@ local.get $14 i32.store offset=16 local.get $14 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + 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 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,usize>#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -3807,13 +3807,13 @@ i32.store offset=4 local.get $8 local.get $hashCode - call $~lib/map/Map<~lib/string/String,usize>#find + call $"~lib/map/Map<~lib/string/String,usize>#find" local.set $entry local.get $entry if local.get $entry local.get $value - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" i32.const 0 drop else @@ -3823,14 +3823,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" i32.eq if local.get $this @@ -3845,14 +3845,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -3865,7 +3865,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" else local.get $this local.set $8 @@ -3873,13 +3873,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map<~lib/string/String,usize>#rehash + call $"~lib/map/Map<~lib/string/String,usize>#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -3888,7 +3888,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entries + call $"~lib/map/Map<~lib/string/String,usize>#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -3904,15 +3904,15 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map<~lib/string/String,usize>#set:entriesOffset + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.5" end i32.mul i32.add @@ -3924,7 +3924,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/MapEntry<~lib/string/String,usize>#set:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" i32.const 1 drop local.get $this @@ -3933,7 +3933,7 @@ call $~lib/rt/itcms/__link local.get $entry local.get $value - call $~lib/map/MapEntry<~lib/string/String,usize>#set:value + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" i32.const 0 drop local.get $this @@ -3948,17 +3948,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesCount + 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 + call $"~lib/map/Map<~lib/string/String,usize>#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:buckets + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -3966,7 +3966,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#get:bucketsMask + call $"~lib/map/Map<~lib/string/String,usize>#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -3975,7 +3975,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -3989,7 +3989,7 @@ local.get $8 return ) - (func $~lib/map/Map#constructor (param $this i32) (result i32) + (func $"~lib/map/Map#constructor" (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -4028,7 +4028,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4038,7 +4038,7 @@ i32.const 4 i32.const 1 i32.sub - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4047,9 +4047,9 @@ local.get $1 i32.const 0 i32.const 4 - block $~lib/map/ENTRY_SIZE|inlined.0 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.0" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.0 + br $"~lib/map/ENTRY_SIZE|inlined.0" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -4058,7 +4058,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4066,7 +4066,7 @@ i32.store offset=4 local.get $1 i32.const 4 - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4074,7 +4074,7 @@ i32.store offset=4 local.get $1 i32.const 0 - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -4082,7 +4082,7 @@ i32.store offset=4 local.get $1 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 @@ -4091,7 +4091,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/map/Map#find (param $this i32) (param $key i32) (param $hashCode i32) (result i32) + (func $"~lib/map/Map#find" (param $this i32) (param $key i32) (param $hashCode i32) (result i32) (local $entry i32) (local $taggedNext i32) (local $5 i32) @@ -4109,7 +4109,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $5 @@ -4117,7 +4117,7 @@ local.get $5 i32.store local.get $5 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -4128,7 +4128,7 @@ local.get $entry if local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" local.set $taggedNext local.get $taggedNext i32.const 1 @@ -4136,7 +4136,7 @@ i32.eqz if (result i32) local.get $entry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.get $key i32.eq else @@ -4170,7 +4170,7 @@ local.get $5 return ) - (func $~lib/map/Map#rehash (param $this i32) (param $newBucketsMask i32) + (func $"~lib/map/Map#rehash" (param $this i32) (param $newBucketsMask i32) (local $newBucketsCapacity i32) (local $newBuckets i32) (local $newEntriesCapacity i32) @@ -4216,9 +4216,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 local.get $newEntriesCapacity - block $~lib/map/ENTRY_SIZE|inlined.1 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.1" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.1 + br $"~lib/map/ENTRY_SIZE|inlined.1" end i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -4230,7 +4230,7 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $oldPtr local.get $oldPtr local.get $this @@ -4239,10 +4239,10 @@ local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.2 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.2" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.2 + br $"~lib/map/ENTRY_SIZE|inlined.2" end i32.mul i32.add @@ -4257,7 +4257,7 @@ local.get $oldPtr local.set $oldEntry local.get $oldEntry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -4265,20 +4265,20 @@ local.get $newPtr local.set $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:key + call $"~lib/map/MapEntry#get:key" local.set $oldEntryKey local.get $newEntry local.get $oldEntryKey - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" local.get $newEntry local.get $oldEntry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $14 global.get $~lib/memory/__stack_pointer local.get $14 i32.store offset=8 local.get $14 - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" local.get $oldEntryKey call $~lib/util/hash/HASH local.get $newBucketsMask @@ -4293,22 +4293,22 @@ local.get $newEntry local.get $newBucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $newBucketPtrBase local.get $newPtr i32.store local.get $newPtr - block $~lib/map/ENTRY_SIZE|inlined.3 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.3 + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add local.set $newPtr end local.get $oldPtr - block $~lib/map/ENTRY_SIZE|inlined.4 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.4 + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add local.set $oldPtr @@ -4327,7 +4327,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:buckets + call $"~lib/map/Map#set:buckets" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -4335,7 +4335,7 @@ i32.store offset=8 local.get $14 local.get $newBucketsMask - call $~lib/map/Map#set:bucketsMask + call $"~lib/map/Map#set:bucketsMask" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -4348,7 +4348,7 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#set:entries + call $"~lib/map/Map#set:entries" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -4356,7 +4356,7 @@ i32.store offset=8 local.get $14 local.get $newEntriesCapacity - call $~lib/map/Map#set:entriesCapacity + call $"~lib/map/Map#set:entriesCapacity" local.get $this local.set $14 global.get $~lib/memory/__stack_pointer @@ -4369,14 +4369,14 @@ local.get $14 i32.store offset=12 local.get $14 - call $~lib/map/Map#get:entriesCount - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#get:entriesCount" + call $"~lib/map/Map#set:entriesOffset" global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#set (param $this i32) (param $key i32) (param $value i32) (result i32) + (func $"~lib/map/Map#set" (param $this i32) (param $key i32) (param $value i32) (result i32) (local $hashCode i32) (local $entry i32) (local $entries i32) @@ -4405,7 +4405,7 @@ local.get $8 local.get $key local.get $hashCode - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry if @@ -4416,7 +4416,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 1 drop local.get $this @@ -4430,14 +4430,14 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.eq if local.get $this @@ -4452,14 +4452,14 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCapacity + call $"~lib/map/Map#get:entriesCapacity" i32.const 3 i32.mul i32.const 4 @@ -4472,7 +4472,7 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" else local.get $this local.set $8 @@ -4480,13 +4480,13 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.const 1 i32.shl i32.const 1 i32.or end - call $~lib/map/Map#rehash + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $this @@ -4495,7 +4495,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.tee $entries i32.store offset=8 local.get $entries @@ -4511,22 +4511,22 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesOffset + call $"~lib/map/Map#get:entriesOffset" local.tee $6 i32.const 1 i32.add - call $~lib/map/Map#set:entriesOffset + call $"~lib/map/Map#set:entriesOffset" local.get $6 - block $~lib/map/ENTRY_SIZE|inlined.5 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.5" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.5 + br $"~lib/map/ENTRY_SIZE|inlined.5" end i32.mul i32.add local.set $entry local.get $entry local.get $key - call $~lib/map/MapEntry#set:key + call $"~lib/map/MapEntry#set:key" i32.const 0 drop local.get $entry @@ -4536,7 +4536,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/MapEntry#set:value + call $"~lib/map/MapEntry#set:value" i32.const 1 drop local.get $this @@ -4555,17 +4555,17 @@ local.get $8 i32.store offset=4 local.get $8 - call $~lib/map/Map#get:entriesCount + call $"~lib/map/Map#get:entriesCount" i32.const 1 i32.add - call $~lib/map/Map#set:entriesCount + call $"~lib/map/Map#set:entriesCount" local.get $this local.set $8 global.get $~lib/memory/__stack_pointer local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $hashCode local.get $this local.set $8 @@ -4573,7 +4573,7 @@ local.get $8 i32.store local.get $8 - call $~lib/map/Map#get:bucketsMask + call $"~lib/map/Map#get:bucketsMask" i32.and i32.const 4 i32.mul @@ -4582,7 +4582,7 @@ local.get $entry local.get $bucketPtrBase i32.load - call $~lib/map/MapEntry#set:taggedNext + call $"~lib/map/MapEntry#set:taggedNext" local.get $bucketPtrBase local.get $entry i32.store @@ -4620,7 +4620,7 @@ local.get $3 i32.store offset=4 local.get $3 - call $~lib/map/Map<~lib/string/String,usize>#has + call $"~lib/map/Map<~lib/string/String,usize>#has" if global.get $~lib/symbol/stringToId local.set $3 @@ -4634,7 +4634,7 @@ local.get $3 i32.store offset=4 local.get $3 - call $~lib/map/Map<~lib/string/String,usize>#get + call $"~lib/map/Map<~lib/string/String,usize>#get" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4668,7 +4668,7 @@ i32.store offset=4 local.get $3 local.get $id - call $~lib/map/Map<~lib/string/String,usize>#set + call $"~lib/map/Map<~lib/string/String,usize>#set" drop global.get $~lib/symbol/idToString local.set $3 @@ -4683,7 +4683,7 @@ local.get $3 i32.store offset=4 local.get $3 - call $~lib/map/Map#set + call $"~lib/map/Map#set" drop local.get $id local.set $3 @@ -4694,7 +4694,7 @@ local.get $3 return ) - (func $~lib/map/Map#has (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#has" (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4713,7 +4713,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $2 @@ -4724,7 +4724,7 @@ local.get $2 return ) - (func $~lib/map/Map#get (param $this i32) (param $key i32) (result i32) + (func $"~lib/map/Map#get" (param $this i32) (param $key i32) (result i32) (local $entry i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -4744,7 +4744,7 @@ local.get $key local.get $key call $~lib/util/hash/HASH - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.set $entry local.get $entry i32.eqz @@ -4757,7 +4757,7 @@ unreachable end local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4783,7 +4783,7 @@ i32.store local.get $1 local.get $sym - call $~lib/map/Map#has + call $"~lib/map/Map#has" if (result i32) global.get $~lib/symbol/idToString local.set $1 @@ -4792,7 +4792,7 @@ i32.store local.get $1 local.get $sym - call $~lib/map/Map#get + call $"~lib/map/Map#get" else i32.const 0 end @@ -5069,7 +5069,7 @@ i32.store offset=4 local.get $4 local.get $id - call $~lib/map/Map#has + call $"~lib/map/Map#has" else i32.const 0 end @@ -5082,7 +5082,7 @@ i32.store offset=4 local.get $4 local.get $id - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.tee $str i32.store end @@ -5182,10 +5182,10 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 - call $~lib/map/Map<~lib/string/String,usize>#constructor + call $"~lib/map/Map<~lib/string/String,usize>#constructor" global.set $~lib/symbol/stringToId i32.const 0 - call $~lib/map/Map#constructor + call $"~lib/map/Map#constructor" global.set $~lib/symbol/idToString i32.const 32 local.set $2 @@ -5439,7 +5439,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map<~lib/string/String,usize>#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map<~lib/string/String,usize>#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $cur i32) (local $end i32) @@ -5460,7 +5460,7 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map<~lib/string/String,usize>#get:buckets + call $"~lib/map/Map<~lib/string/String,usize>#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -5469,7 +5469,7 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map<~lib/string/String,usize>#get:entries + call $"~lib/map/Map<~lib/string/String,usize>#get:entries" local.set $entries i32.const 1 drop @@ -5482,10 +5482,10 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map<~lib/string/String,usize>#get:entriesOffset - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6 (result i32) + call $"~lib/map/Map<~lib/string/String,usize>#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.6" end i32.mul i32.add @@ -5498,7 +5498,7 @@ local.get $cur local.set $entry local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -5506,7 +5506,7 @@ i32.const 1 drop local.get $entry - call $~lib/map/MapEntry<~lib/string/String,usize>#get:key + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" local.set $val i32.const 0 drop @@ -5517,9 +5517,9 @@ drop end local.get $cur - block $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" end i32.add local.set $cur @@ -5534,7 +5534,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/map/Map#__visit (param $this i32) (param $cookie i32) + (func $"~lib/map/Map#__visit" (param $this i32) (param $cookie i32) (local $entries i32) (local $cur i32) (local $end i32) @@ -5555,7 +5555,7 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map#get:buckets + call $"~lib/map/Map#get:buckets" local.get $cookie call $~lib/rt/itcms/__visit local.get $this @@ -5564,7 +5564,7 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map#get:entries + call $"~lib/map/Map#get:entries" local.set $entries i32.const 1 drop @@ -5577,10 +5577,10 @@ local.get $7 i32.store local.get $7 - call $~lib/map/Map#get:entriesOffset - block $~lib/map/ENTRY_SIZE|inlined.6 (result i32) + call $"~lib/map/Map#get:entriesOffset" + block $"~lib/map/ENTRY_SIZE|inlined.6" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.6 + br $"~lib/map/ENTRY_SIZE|inlined.6" end i32.mul i32.add @@ -5593,7 +5593,7 @@ local.get $cur local.set $entry local.get $entry - call $~lib/map/MapEntry#get:taggedNext + call $"~lib/map/MapEntry#get:taggedNext" i32.const 1 i32.and i32.eqz @@ -5603,7 +5603,7 @@ i32.const 1 drop local.get $entry - call $~lib/map/MapEntry#get:value + call $"~lib/map/MapEntry#get:value" local.set $val i32.const 0 drop @@ -5612,9 +5612,9 @@ call $~lib/rt/itcms/__visit end local.get $cur - block $~lib/map/ENTRY_SIZE|inlined.7 (result i32) + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) i32.const 12 - br $~lib/map/ENTRY_SIZE|inlined.7 + br $"~lib/map/ENTRY_SIZE|inlined.7" end i32.add local.set $cur diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index a61bac0756..59048f83cc 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1177,11 +1177,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1366,8 +1365,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1652,7 +1650,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1662,8 +1659,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1672,6 +1667,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1700,8 +1697,8 @@ block $folding-inner1 block $folding-inner0 block $invalid - block $~lib/map/Map - block $~lib/map/Map<~lib/string/String,usize> + block $"~lib/map/Map" + block $"~lib/map/Map<~lib/string/String,usize>" block $~lib/arraybuffer/ArrayBufferView block $~lib/string/String block $~lib/arraybuffer/ArrayBuffer @@ -1710,7 +1707,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,usize> $~lib/map/Map $invalid + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"~lib/map/Map<~lib/string/String,usize>" $"~lib/map/Map" $invalid end return end @@ -1736,10 +1733,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1795,10 +1791,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1894,11 +1889,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store block $~lib/util/hash/hashStr|inlined.0 (result i32) - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 0 @@ -1906,7 +1900,7 @@ i32.eqz br_if $~lib/util/hash/hashStr|inlined.0 drop - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 local.tee $1 i32.store offset=4 @@ -2115,14 +2109,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2137,8 +2130,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -2148,7 +2139,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -2160,12 +2151,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -2259,9 +2250,8 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map<~lib/string/String,usize>#find (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2278,19 +2268,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 local.get $0 i32.load offset=4 @@ -2312,15 +2301,14 @@ i32.const 0 else global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.load - local.tee $3 + local.tee $2 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1056 call $~lib/string/String.__eq end @@ -2345,7 +2333,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map<~lib/string/String,usize>#set (param $0 i32) (param $1 i32) + (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2355,7 +2343,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2366,18 +2353,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -2385,8 +2371,8 @@ i32.const 1056 i32.store offset=4 local.get $0 - local.get $8 - call $~lib/map/Map<~lib/string/String,usize>#find + local.get $6 + call $"~lib/map/Map<~lib/string/String,usize>#find" local.tee $2 if local.get $2 @@ -2394,33 +2380,32 @@ i32.store offset=4 else global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -2429,7 +2414,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -2445,7 +2430,7 @@ i32.const 1 i32.or end - local.set $4 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -2455,19 +2440,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -2475,7 +2459,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $6 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -2486,62 +2470,61 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $10 + local.get $9 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $5 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $10 + local.get $4 + local.get $9 i32.ne if - local.get $10 + local.get $9 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $10 + local.get $9 i32.load - local.tee $11 + local.tee $10 i32.store offset=12 - local.get $7 - local.get $11 + global.get $~lib/memory/__stack_pointer + local.get $10 i32.store offset=8 local.get $2 - local.get $11 + local.get $10 i32.store local.get $2 - local.get $10 + local.get $9 i32.load offset=4 i32.store offset=4 - local.get $7 - local.get $11 + global.get $~lib/memory/__stack_pointer + local.get $10 i32.store offset=8 local.get $2 - local.get $9 - local.get $11 + local.get $8 + local.get $10 call $~lib/util/hash/HASH<~lib/string/String> - local.get $4 + local.get $7 i32.and i32.const 2 i32.shl i32.add - local.tee $7 + local.tee $10 i32.load i32.store offset=8 - local.get $7 + local.get $10 local.get $2 i32.store local.get $2 @@ -2549,32 +2532,31 @@ i32.add local.set $2 end - local.get $10 + local.get $9 i32.const 12 i32.add - local.set $10 + local.set $9 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=16 local.get $0 - local.get $9 + local.get $8 i32.store local.get $0 - local.get $9 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $4 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -2593,7 +2575,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $6 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -2611,32 +2593,31 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $2 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $4 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store + local.get $2 local.get $3 - local.get $4 i32.const 12 i32.mul i32.add @@ -2673,7 +2654,7 @@ i32.store local.get $2 local.get $1 - local.get $8 + local.get $6 local.get $0 i32.load offset=4 i32.and @@ -2700,9 +2681,8 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/map/Map#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2719,19 +2699,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load - local.set $4 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -2778,7 +2757,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/map/Map#set (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2799,13 +2778,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2838,8 +2816,8 @@ i32.shr_u local.get $2 i32.xor - local.tee $8 - call $~lib/map/Map#find + local.tee $7 + call $"~lib/map/Map#find" local.tee $2 if global.get $~lib/memory/__stack_pointer @@ -2854,33 +2832,32 @@ call $~lib/rt/itcms/__link else global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -2889,7 +2866,7 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -2905,7 +2882,7 @@ i32.const 1 i32.or end - local.set $4 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -2915,14 +2892,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.const 1 i32.add local.tee $2 @@ -2937,7 +2913,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -2958,11 +2934,11 @@ i32.const 12 i32.mul i32.add - local.set $6 + local.set $5 local.get $3 local.set $2 loop $while-continue|0 - local.get $6 + local.get $5 local.get $10 i32.ne if @@ -2980,14 +2956,14 @@ global.get $~lib/memory/__stack_pointer local.get $10 i32.load offset=4 - local.tee $5 + local.tee $4 i32.store offset=8 local.get $2 - local.get $5 + local.get $4 i32.store offset=4 local.get $2 local.get $9 - local.get $4 + local.get $8 local.get $11 i32.const -1028477379 i32.mul @@ -2997,33 +2973,33 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $4 i32.const 15 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $4 i32.const 13 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $4 i32.const 16 i32.shr_u - local.get $5 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $5 + local.tee $4 i32.load i32.store offset=8 - local.get $5 + local.get $4 local.get $2 i32.store local.get $2 @@ -3039,10 +3015,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=12 local.get $0 @@ -3056,7 +3031,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $4 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3075,7 +3050,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -3093,39 +3068,38 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $2 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $0 i32.load offset=16 - local.tee $4 + local.tee $3 i32.const 1 i32.add i32.store offset=16 + local.get $2 local.get $3 - local.get $4 i32.const 12 i32.mul i32.add - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $3 + local.get $2 i32.const 1056 i32.store offset=4 local.get $0 @@ -3153,9 +3127,9 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 - local.get $8 + local.get $7 local.get $0 i32.load offset=4 i32.and @@ -3166,7 +3140,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $2 i32.store end global.get $~lib/memory/__stack_pointer @@ -3185,7 +3159,6 @@ (func $~lib/symbol/_Symbol.for (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3197,17 +3170,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -3216,25 +3188,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find + call $"~lib/map/Map<~lib/string/String,usize>#find" i32.const 0 i32.ne local.set $0 @@ -3260,25 +3231,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $0 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,usize>#find + call $"~lib/map/Map<~lib/string/String,usize>#find" local.tee $0 i32.eqz if @@ -3309,16 +3279,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $~lib/symbol/stringToId - local.tee $2 + local.tee $1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $2 + local.get $1 local.get $0 - call $~lib/map/Map<~lib/string/String,usize>#set + call $"~lib/map/Map<~lib/string/String,usize>#set" global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/idToString local.tee $1 @@ -3328,7 +3297,7 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/map/Map#set + call $"~lib/map/Map#set" br $folding-inner1 end i32.const 35536 @@ -3344,8 +3313,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#has (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3362,10 +3330,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3398,7 +3365,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" i32.const 0 i32.ne local.set $0 @@ -3408,8 +3375,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3426,10 +3392,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3462,7 +3427,7 @@ i32.const 16 i32.shr_u i32.xor - call $~lib/map/Map#find + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -3500,16 +3465,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/idToString local.tee $1 i32.store local.get $1 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" if (result i32) global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/idToString @@ -3517,7 +3481,7 @@ i32.store local.get $1 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" else i32.const 0 end @@ -3532,7 +3496,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3543,83 +3506,81 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - block $__inlined_func$~lib/string/String#concat$253 (result i32) - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - local.get $5 - local.get $1 - i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$253 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const -2 i32.and - local.tee $3 - local.get $2 - i32.add local.tee $4 + local.get $3 + i32.add + local.tee $0 i32.eqz if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1888 + local.set $0 br $__inlined_func$~lib/string/String#concat$253 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $0 i32.store offset=4 - local.get $4 local.get $0 local.get $2 + local.get $3 memory.copy - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.add local.get $1 - local.get $3 + local.get $4 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3653,13 +3614,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill i32.const 1888 local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1888 i32.store block $break|0 @@ -3758,36 +3718,34 @@ br $break|0 end global.get $~lib/symbol/idToString - local.tee $2 if (result i32) global.get $~lib/memory/__stack_pointer - local.get $2 + global.get $~lib/symbol/idToString + local.tee $2 i32.store offset=4 local.get $2 local.get $0 - call $~lib/map/Map#has + call $"~lib/map/Map#has" else i32.const 0 end if global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $~lib/symbol/idToString - local.tee $2 + local.tee $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 local.get $0 - call $~lib/map/Map#get + call $"~lib/map/Map#get" local.tee $1 i32.store end end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 2416 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 i32.const 2416 @@ -3823,13 +3781,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store global.get $~lib/symbol/nextId @@ -3911,13 +3868,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 4 call $~lib/rt/itcms/__new @@ -3994,13 +3950,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 24 i32.const 5 call $~lib/rt/itcms/__new @@ -4162,14 +4117,13 @@ local.get $0 global.set $std/symbol/key4 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/symbol/key3 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=12 - local.get $1 + local.get $0 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -4182,16 +4136,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/symbol/key3 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/symbol/key4 - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4216,10 +4169,9 @@ call $~lib/symbol/_Symbol#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2496 i32.store offset=12 local.get $0 @@ -4238,10 +4190,9 @@ call $~lib/symbol/_Symbol#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2544 i32.store offset=12 local.get $0 @@ -4262,10 +4213,9 @@ call $~lib/symbol/_Symbol#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2592 i32.store offset=12 local.get $0 @@ -4284,10 +4234,9 @@ call $~lib/symbol/_Symbol#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2656 i32.store offset=12 local.get $0 diff --git a/tests/compiler/std/trace.release.wat b/tests/compiler/std/trace.release.wat index 7b01bf9122..b78ea677ee 100644 --- a/tests/compiler/std/trace.release.wat +++ b/tests/compiler/std/trace.release.wat @@ -26,7 +26,6 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start - (local $0 i32) global.get $~started if return @@ -49,10 +48,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index cb0ef031ee..15de61b0fb 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -411,7 +411,7 @@ (data $303 (i32.const 14940) "\1c\00\00\00\00\00\00\00\00\00\00\00\0f\00\00\00\08\00\00\00\a5\00\00\00\00\00\00\00\00\00\00\00") (data $304 (i32.const 14976) "O\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00B\08\00\00\02\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\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\19\00\00\02\1a\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\01\00\00\02\n\00\00\02\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\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 166 166 funcref) - (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) + (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 (param $this i32) (param $nextWithColor i32) @@ -3497,172 +3497,172 @@ local.get $this i32.load offset=4 ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) + (func $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc local.get $val i64.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) + (func $"std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc local.get $val i64.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) + (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) local.get $acc local.get $val f32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) + (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) local.get $acc local.get $val f64.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $acc i32) (param $val i32) (param $$2 i32) (param $$3 i32) (result i32) local.get $acc local.get $val i32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc local.get $val i64.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $acc i64) (param $val i64) (param $$2 i32) (param $$3 i32) (result i64) local.get $acc local.get $val i64.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $acc f32) (param $val f32) (param $$2 i32) (param $$3 i32) (result f32) local.get $acc local.get $val f32.add ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) + (func $"std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $acc f64) (param $val f64) (param $$2 i32) (param $$3 i32) (result f64) local.get $acc local.get $val f64.add ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value local.get $value i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) local.get $value local.get $value i64.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i64) local.get $value local.get $value i64.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result f32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result f32) local.get $value local.get $value f32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result f64) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result f64) local.get $value local.get $value f64.mul ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 @@ -3718,442 +3718,442 @@ local.get $newPtr return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.gt ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.gt ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 0 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 0 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 0 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 0 f64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 4 f64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.eq ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 4 f64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 @@ -4161,13 +4161,13 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend8_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and @@ -4176,14 +4176,14 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and @@ -4192,14 +4192,14 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 @@ -4207,13 +4207,13 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.extend16_s i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and @@ -4222,57 +4222,57 @@ i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.rem_s i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.rem_u i32.const 0 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1" (param $value i32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i32.const 2 i32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.rem_s i64.const 0 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.rem_u i64.const 0 i64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1" (param $value i64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value i64.const 2 i64.eq @@ -4526,14 +4526,14 @@ f32.reinterpret_i32 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 call $~lib/math/NativeMathf.mod f32.const 0 f32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $value f32) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f32.const 2 f32.eq @@ -4793,14 +4793,14 @@ f64.reinterpret_i64 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 call $~lib/math/NativeMath.mod f64.const 0 f64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $value f64) (param $$1 i32) (param $$2 i32) (result i32) local.get $value f64.const 2 f64.eq @@ -8832,7 +8832,7 @@ i32.extend8_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.extend8_s local.get $a @@ -9336,7 +9336,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.const 255 i32.and @@ -9370,7 +9370,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.const 255 i32.and @@ -9868,7 +9868,7 @@ i32.extend16_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.extend16_s local.get $a @@ -10372,7 +10372,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b i32.const 65535 i32.and @@ -10868,7 +10868,7 @@ local.get $b i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b local.get $a i32.gt_s @@ -11360,7 +11360,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $a i32) (param $b i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $a i32) (param $b i32) (result i32) local.get $b local.get $a i32.gt_u @@ -11852,7 +11852,7 @@ i64.lt_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $a i64) (param $b i64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $a i64) (param $b i64) (result i32) local.get $b local.get $a i64.gt_s @@ -12344,7 +12344,7 @@ i64.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $a i64) (param $b i64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $a i64) (param $b i64) (result i32) local.get $b local.get $a i64.gt_u @@ -12861,7 +12861,7 @@ i32.sub return ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $a f32) (param $b f32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $a f32) (param $b f32) (result i32) local.get $b local.get $a f32.gt @@ -12870,7 +12870,7 @@ f32.lt i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $a f64) (param $b f64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $a f64) (param $b f64) (result i32) local.get $b local.get $a f64.gt @@ -16038,7 +16038,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -16156,7 +16156,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -16242,7 +16242,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -16360,7 +16360,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -17461,7 +17461,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -17579,7 +17579,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -17870,7 +17870,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -17977,7 +17977,7 @@ i32.shl memory.copy local.get $slice - br $~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/SLICE<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $18 global.get $~lib/memory/__stack_pointer @@ -18064,7 +18064,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18203,7 +18203,7 @@ i32.shl memory.copy local.get $array - br $~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/COPY_WITHIN<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $30 global.get $~lib/memory/__stack_pointer @@ -18272,7 +18272,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18334,7 +18334,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18344,7 +18344,7 @@ local.get $9 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $result i32) (local $2 i32) @@ -18487,7 +18487,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18549,7 +18549,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18559,7 +18559,7 @@ local.get $9 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $result i32) (local $2 i32) @@ -18660,7 +18660,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18722,7 +18722,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18732,7 +18732,7 @@ local.get $9 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $result i32) (local $2 i32) @@ -18880,7 +18880,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -18942,7 +18942,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18952,7 +18952,7 @@ local.get $9 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $result i32) (local $2 i32) @@ -19099,7 +19099,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19161,7 +19161,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -19171,7 +19171,7 @@ local.get $9 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $result i32) (local $2 i32) @@ -19272,7 +19272,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19334,7 +19334,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -19344,7 +19344,7 @@ local.get $9 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $result i32) (local $2 i32) @@ -19490,7 +19490,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19552,7 +19552,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -19562,7 +19562,7 @@ local.get $9 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $result i32) (local $2 i32) @@ -19709,7 +19709,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0 (result i64) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19771,7 +19771,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -19781,7 +19781,7 @@ local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $result i64) (local $2 i32) @@ -19928,7 +19928,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 (result i64) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -19990,7 +19990,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -20000,7 +20000,7 @@ local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $result i64) (local $2 i32) @@ -20147,7 +20147,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0 (result f32) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0" (result f32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -20209,7 +20209,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -20219,7 +20219,7 @@ local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $result f32) (local $2 i32) @@ -20319,7 +20319,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0 (result f64) + block $"~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0" (result f64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -20381,7 +20381,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0 + br $"~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -20391,7 +20391,7 @@ local.get $10 return ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $result f64) (local $2 i32) @@ -20528,7 +20528,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testAt<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -20691,7 +20691,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testAt<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -20854,7 +20854,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21021,7 +21021,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testAt<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21188,7 +21188,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testAt<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21355,7 +21355,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testAt<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21522,7 +21522,7 @@ local.get $3 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testAt<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21690,7 +21690,7 @@ local.get $4 return ) - (func $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testAt<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -21858,7 +21858,7 @@ local.get $4 return ) - (func $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testAt<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -22026,7 +22026,7 @@ local.get $4 return ) - (func $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testAt<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -22194,7 +22194,7 @@ local.get $4 return ) - (func $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testAt<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -22318,7 +22318,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -22380,7 +22380,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0" end local.set $8 global.get $~lib/memory/__stack_pointer @@ -22390,7 +22390,7 @@ local.get $8 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $result i32) (local $2 i32) @@ -22489,7 +22489,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -22551,7 +22551,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" end local.set $8 global.get $~lib/memory/__stack_pointer @@ -22561,7 +22561,7 @@ local.get $8 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $result i32) (local $2 i32) @@ -22661,7 +22661,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -22723,7 +22723,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" end local.set $8 global.get $~lib/memory/__stack_pointer @@ -22733,7 +22733,7 @@ local.get $8 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $result i32) (local $2 i32) @@ -22833,7 +22833,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -22895,7 +22895,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0" end local.set $8 global.get $~lib/memory/__stack_pointer @@ -22905,7 +22905,7 @@ local.get $8 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $result i32) (local $2 i32) @@ -23004,7 +23004,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23066,7 +23066,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" end local.set $8 global.get $~lib/memory/__stack_pointer @@ -23076,7 +23076,7 @@ local.get $8 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $result i32) (local $2 i32) @@ -23176,7 +23176,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23238,7 +23238,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0" end local.set $8 global.get $~lib/memory/__stack_pointer @@ -23248,7 +23248,7 @@ local.get $8 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $result i32) (local $2 i32) @@ -23346,7 +23346,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 (result i32) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23408,7 +23408,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" end local.set $8 global.get $~lib/memory/__stack_pointer @@ -23418,7 +23418,7 @@ local.get $8 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $result i32) (local $2 i32) @@ -23517,7 +23517,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0 (result i64) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23579,7 +23579,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -23589,7 +23589,7 @@ local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $result i64) (local $2 i32) @@ -23688,7 +23688,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 (result i64) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23750,7 +23750,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -23760,7 +23760,7 @@ local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $result i64) (local $2 i32) @@ -23859,7 +23859,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0 (result f32) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0" (result f32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -23921,7 +23921,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -23931,7 +23931,7 @@ local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $result f32) (local $2 i32) @@ -24030,7 +24030,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0 (result f64) + block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0" (result f64) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -24092,7 +24092,7 @@ end end local.get $initialValue|5 - br $~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0 + br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -24102,7 +24102,7 @@ local.get $9 return ) - (func $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $result f64) (local $2 i32) @@ -24201,7 +24201,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -24294,7 +24294,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -24304,7 +24304,7 @@ local.get $10 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $2 i32) @@ -24449,7 +24449,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -24542,7 +24542,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -24597,7 +24597,7 @@ local.get $2 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -24742,7 +24742,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -24835,7 +24835,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -24845,7 +24845,7 @@ local.get $10 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -24990,7 +24990,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -25083,7 +25083,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -25142,7 +25142,7 @@ local.get $2 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $2 i32) @@ -25287,7 +25287,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -25380,7 +25380,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -25439,7 +25439,7 @@ local.get $2 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $2 i32) @@ -25584,7 +25584,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -25677,7 +25677,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -25687,7 +25687,7 @@ local.get $10 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $2 i32) @@ -25832,7 +25832,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -25925,7 +25925,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -25984,7 +25984,7 @@ local.get $2 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $2 i32) @@ -26129,7 +26129,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -26222,7 +26222,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -26282,7 +26282,7 @@ local.get $3 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $2 i32) @@ -26427,7 +26427,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -26520,7 +26520,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -26580,7 +26580,7 @@ local.get $3 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $2 i32) @@ -26725,7 +26725,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -26818,7 +26818,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -26878,7 +26878,7 @@ local.get $3 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $2 i32) @@ -27023,7 +27023,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -27116,7 +27116,7 @@ local.get $byteLength i32.store offset=8 local.get $out - br $~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $10 global.get $~lib/memory/__stack_pointer @@ -27126,7 +27126,7 @@ local.get $10 return ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $2 i32) @@ -27275,7 +27275,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -27386,7 +27386,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -27396,7 +27396,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $2 i32) @@ -27599,7 +27599,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -27710,7 +27710,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -27720,7 +27720,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -27923,7 +27923,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -28034,7 +28034,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -28044,7 +28044,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -28247,7 +28247,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -28358,7 +28358,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -28368,7 +28368,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $2 i32) @@ -28571,7 +28571,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -28682,7 +28682,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -28692,7 +28692,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $2 i32) @@ -28895,7 +28895,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -29006,7 +29006,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -29016,7 +29016,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $2 i32) @@ -29219,7 +29219,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -29330,7 +29330,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -29340,7 +29340,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $2 i32) @@ -29543,7 +29543,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -29654,7 +29654,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -29664,7 +29664,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $2 i32) @@ -29867,7 +29867,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -29978,7 +29978,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -29988,7 +29988,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $2 i32) @@ -30191,7 +30191,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -30302,7 +30302,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -30312,7 +30312,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $2 i32) @@ -30515,7 +30515,7 @@ i32.const 0 i32.const 20 memory.fill - block $~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -30626,7 +30626,7 @@ local.get $data i32.store offset=4 local.get $out - br $~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FILTER<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $14 global.get $~lib/memory/__stack_pointer @@ -30636,7 +30636,7 @@ local.get $14 return ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $2 i32) @@ -30834,7 +30834,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -30886,7 +30886,7 @@ call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $i i32.const 1 @@ -30896,7 +30896,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -30906,7 +30906,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31029,7 +31029,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31081,7 +31081,7 @@ call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $i i32.const 1 @@ -31091,7 +31091,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -31101,7 +31101,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31224,7 +31224,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31276,7 +31276,7 @@ call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $i i32.const 1 @@ -31286,7 +31286,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -31296,7 +31296,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31419,7 +31419,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31471,7 +31471,7 @@ call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $i i32.const 1 @@ -31481,7 +31481,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -31491,7 +31491,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31614,7 +31614,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31666,7 +31666,7 @@ call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $i i32.const 1 @@ -31676,7 +31676,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -31686,7 +31686,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -31809,7 +31809,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -31861,7 +31861,7 @@ call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $i i32.const 1 @@ -31871,7 +31871,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -31881,7 +31881,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32004,7 +32004,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32056,7 +32056,7 @@ call_indirect (type $1) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $i i32.const 1 @@ -32066,7 +32066,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -32076,7 +32076,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32199,7 +32199,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32251,7 +32251,7 @@ call_indirect (type $7) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $i i32.const 1 @@ -32261,7 +32261,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -32271,7 +32271,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32394,7 +32394,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32446,7 +32446,7 @@ call_indirect (type $7) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $i i32.const 1 @@ -32456,7 +32456,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -32466,7 +32466,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32589,7 +32589,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32641,7 +32641,7 @@ call_indirect (type $9) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $i i32.const 1 @@ -32651,7 +32651,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -32661,7 +32661,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32784,7 +32784,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -32836,7 +32836,7 @@ call_indirect (type $10) if i32.const 1 - br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $i i32.const 1 @@ -32846,7 +32846,7 @@ end end i32.const 0 - br $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -32856,7 +32856,7 @@ local.get $7 return ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -32979,7 +32979,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33031,7 +33031,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $i i32.const 1 @@ -33041,7 +33041,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -33051,7 +33051,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33175,7 +33175,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33227,7 +33227,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $i i32.const 1 @@ -33237,7 +33237,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -33247,7 +33247,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33371,7 +33371,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33423,7 +33423,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $i i32.const 1 @@ -33433,7 +33433,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -33443,7 +33443,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33567,7 +33567,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33619,7 +33619,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $i i32.const 1 @@ -33629,7 +33629,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -33639,7 +33639,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33763,7 +33763,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -33815,7 +33815,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $i i32.const 1 @@ -33825,7 +33825,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -33835,7 +33835,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -33959,7 +33959,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34011,7 +34011,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $i i32.const 1 @@ -34021,7 +34021,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -34031,7 +34031,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34155,7 +34155,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34207,7 +34207,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $i i32.const 1 @@ -34217,7 +34217,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -34227,7 +34227,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34351,7 +34351,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34403,7 +34403,7 @@ call_indirect (type $7) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $i i32.const 1 @@ -34413,7 +34413,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -34423,7 +34423,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34547,7 +34547,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34599,7 +34599,7 @@ call_indirect (type $7) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $i i32.const 1 @@ -34609,7 +34609,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -34619,7 +34619,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34743,7 +34743,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34795,7 +34795,7 @@ call_indirect (type $9) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $i i32.const 1 @@ -34805,7 +34805,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -34815,7 +34815,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -34939,7 +34939,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -34991,7 +34991,7 @@ call_indirect (type $10) if local.get $i - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $i i32.const 1 @@ -35001,7 +35001,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -35011,7 +35011,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35134,7 +35134,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35186,7 +35186,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $i i32.const 1 @@ -35196,7 +35196,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -35206,7 +35206,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35329,7 +35329,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35381,7 +35381,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $i i32.const 1 @@ -35391,7 +35391,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -35401,7 +35401,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35524,7 +35524,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35576,7 +35576,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $i i32.const 1 @@ -35586,7 +35586,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -35596,7 +35596,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35719,7 +35719,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35771,7 +35771,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $i i32.const 1 @@ -35781,7 +35781,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -35791,7 +35791,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -35914,7 +35914,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -35966,7 +35966,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $i i32.const 1 @@ -35976,7 +35976,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -35986,7 +35986,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36109,7 +36109,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36161,7 +36161,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $i i32.const 1 @@ -36171,7 +36171,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -36181,7 +36181,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36304,7 +36304,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36356,7 +36356,7 @@ call_indirect (type $1) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $i i32.const 1 @@ -36366,7 +36366,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -36376,7 +36376,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36499,7 +36499,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36551,7 +36551,7 @@ call_indirect (type $7) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $i i32.const 1 @@ -36561,7 +36561,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -36571,7 +36571,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36694,7 +36694,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36746,7 +36746,7 @@ call_indirect (type $7) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $i i32.const 1 @@ -36756,7 +36756,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -36766,7 +36766,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -36889,7 +36889,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -36941,7 +36941,7 @@ call_indirect (type $9) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $i i32.const 1 @@ -36951,7 +36951,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -36961,7 +36961,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37084,7 +37084,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37136,7 +37136,7 @@ call_indirect (type $10) if local.get $i - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $i i32.const 1 @@ -37146,7 +37146,7 @@ end end i32.const -1 - br $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $6 global.get $~lib/memory/__stack_pointer @@ -37156,7 +37156,7 @@ local.get $6 return ) - (func $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37280,7 +37280,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37335,7 +37335,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $i i32.const 1 @@ -37345,7 +37345,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -37355,7 +37355,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37478,7 +37478,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37533,7 +37533,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $i i32.const 1 @@ -37543,7 +37543,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -37553,7 +37553,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37676,7 +37676,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37731,7 +37731,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $i i32.const 1 @@ -37741,7 +37741,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -37751,7 +37751,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $failResult i32) @@ -37874,7 +37874,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -37929,7 +37929,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $i i32.const 1 @@ -37939,7 +37939,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -37949,7 +37949,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38072,7 +38072,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38127,7 +38127,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $i i32.const 1 @@ -38137,7 +38137,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -38147,7 +38147,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38270,7 +38270,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38325,7 +38325,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $i i32.const 1 @@ -38335,7 +38335,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -38345,7 +38345,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38468,7 +38468,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38523,7 +38523,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $i i32.const 1 @@ -38533,7 +38533,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -38543,7 +38543,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38666,7 +38666,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38721,7 +38721,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $i i32.const 1 @@ -38731,7 +38731,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -38741,7 +38741,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -38864,7 +38864,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -38919,7 +38919,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $i i32.const 1 @@ -38929,7 +38929,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -38939,7 +38939,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -39062,7 +39062,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -39117,7 +39117,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $i i32.const 1 @@ -39127,7 +39127,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -39137,7 +39137,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $failResult i32) @@ -39260,7 +39260,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -39315,7 +39315,7 @@ br $for-continue|0 end i32.const 0 - br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $i i32.const 1 @@ -39325,7 +39325,7 @@ end end i32.const 1 - br $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $7 global.get $~lib/memory/__stack_pointer @@ -39335,7 +39335,7 @@ local.get $7 return ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $failResult i32) @@ -39440,7 +39440,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -39586,7 +39586,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -39691,7 +39691,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -39839,7 +39839,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -39947,7 +39947,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -40095,7 +40095,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -40203,7 +40203,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -40349,7 +40349,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -40454,7 +40454,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -40602,7 +40602,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -40710,7 +40710,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -40854,7 +40854,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -40956,7 +40956,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $value i32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $value i32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -41100,7 +41100,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41202,7 +41202,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $value i64) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $value i64) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -41347,7 +41347,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41452,7 +41452,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $value i64) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $value i64) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -41597,7 +41597,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41702,7 +41702,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $value f32) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $value f32) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -41847,7 +41847,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41952,7 +41952,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $value f64) (param $index i32) (param $self i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $value f64) (param $index i32) (param $self i32) (local $matchedValue i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -42097,7 +42097,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -42236,7 +42236,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" (local $values i32) (local $length i32) (local $array i32) @@ -42541,7 +42541,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -42659,7 +42659,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -42669,7 +42669,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -42977,7 +42977,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -43095,7 +43095,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -43105,7 +43105,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -43413,7 +43413,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -43531,7 +43531,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -43541,7 +43541,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" (local $values i32) (local $length i32) (local $array i32) @@ -43846,7 +43846,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -43964,7 +43964,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -43974,7 +43974,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" (local $values i32) (local $length i32) (local $array i32) @@ -44253,7 +44253,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" (local $values i32) (local $length i32) (local $array i32) @@ -44555,7 +44555,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -44673,7 +44673,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -44683,7 +44683,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" (local $values i32) (local $length i32) (local $array i32) @@ -44985,7 +44985,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -45103,7 +45103,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -45113,7 +45113,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" (local $values i32) (local $length i32) (local $array i32) @@ -45418,7 +45418,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -45536,7 +45536,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -45546,7 +45546,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" (local $values i32) (local $length i32) (local $array i32) @@ -45851,7 +45851,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -45969,7 +45969,7 @@ i32.shl i32.store offset=8 local.get $out - br $~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/SUBARRAY<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $19 global.get $~lib/memory/__stack_pointer @@ -45979,7 +45979,7 @@ local.get $19 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" (local $values i32) (local $length i32) (local $array i32) @@ -46255,7 +46255,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" (local $values i32) (local $length i32) (local $array i32) @@ -46515,7 +46515,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -46546,7 +46546,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $index i32.const 0 @@ -46588,7 +46588,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $index i32.const 1 @@ -46598,7 +46598,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -46624,7 +46624,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -46648,7 +46648,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $index i32.const 0 @@ -46693,7 +46693,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.get $index i32.const 1 @@ -46703,7 +46703,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -46758,7 +46758,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" (local $values i32) (local $length i32) (local $array i32) @@ -47412,7 +47412,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -47443,7 +47443,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $index i32.const 0 @@ -47486,7 +47486,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $index i32.const 1 @@ -47496,7 +47496,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -47522,7 +47522,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -47546,7 +47546,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $index i32.const 0 @@ -47592,7 +47592,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.get $index i32.const 1 @@ -47602,7 +47602,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -47657,7 +47657,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -48312,7 +48312,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -48343,7 +48343,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $index i32.const 0 @@ -48386,7 +48386,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $index i32.const 1 @@ -48396,7 +48396,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -48422,7 +48422,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -48446,7 +48446,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $index i32.const 0 @@ -48492,7 +48492,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.get $index i32.const 1 @@ -48502,7 +48502,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -48557,7 +48557,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -49212,7 +49212,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -49243,7 +49243,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $index i32.const 0 @@ -49285,7 +49285,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $index i32.const 1 @@ -49295,7 +49295,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -49321,7 +49321,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -49345,7 +49345,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $index i32.const 0 @@ -49390,7 +49390,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.get $index i32.const 1 @@ -49400,7 +49400,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -49455,7 +49455,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" (local $values i32) (local $length i32) (local $array i32) @@ -50109,7 +50109,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -50140,7 +50140,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $index i32.const 0 @@ -50183,7 +50183,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $index i32.const 1 @@ -50193,7 +50193,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -50219,7 +50219,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -50243,7 +50243,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $index i32.const 0 @@ -50289,7 +50289,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.get $index i32.const 1 @@ -50299,7 +50299,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -50354,7 +50354,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" (local $values i32) (local $length i32) (local $array i32) @@ -51009,7 +51009,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -51040,7 +51040,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $index i32.const 0 @@ -51081,7 +51081,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $index i32.const 1 @@ -51091,7 +51091,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -51117,7 +51117,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -51141,7 +51141,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $index i32.const 0 @@ -51185,7 +51185,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.get $index i32.const 1 @@ -51195,7 +51195,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -51250,7 +51250,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" (local $values i32) (local $length i32) (local $array i32) @@ -51903,7 +51903,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -51934,7 +51934,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $index i32.const 0 @@ -51975,7 +51975,7 @@ i32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $index i32.const 1 @@ -51985,7 +51985,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -52011,7 +52011,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -52035,7 +52035,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $index i32.const 0 @@ -52079,7 +52079,7 @@ i32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.get $index i32.const 1 @@ -52089,7 +52089,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -52144,7 +52144,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" (local $values i32) (local $length i32) (local $array i32) @@ -52797,7 +52797,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -52828,7 +52828,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $index i32.const 0 @@ -52869,7 +52869,7 @@ i64.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $index i32.const 1 @@ -52879,7 +52879,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -52905,7 +52905,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -52929,7 +52929,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $index i32.const 0 @@ -52973,7 +52973,7 @@ i64.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.get $index i32.const 1 @@ -52983,7 +52983,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -53038,7 +53038,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" (local $values i32) (local $length i32) (local $array i32) @@ -53692,7 +53692,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -53723,7 +53723,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $index i32.const 0 @@ -53764,7 +53764,7 @@ i64.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $index i32.const 1 @@ -53774,7 +53774,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -53800,7 +53800,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -53824,7 +53824,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $index i32.const 0 @@ -53868,7 +53868,7 @@ i64.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.get $index i32.const 1 @@ -53878,7 +53878,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -53933,7 +53933,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" (local $values i32) (local $length i32) (local $array i32) @@ -54587,7 +54587,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -54618,7 +54618,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 0 @@ -54659,7 +54659,7 @@ f32.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 1 @@ -54669,7 +54669,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -54695,7 +54695,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -54719,7 +54719,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 0 @@ -54763,7 +54763,7 @@ f32.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 1 @@ -54773,7 +54773,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -54828,7 +54828,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" (local $values i32) (local $length i32) (local $array i32) @@ -55482,7 +55482,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -55513,7 +55513,7 @@ end if i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 0 @@ -55554,7 +55554,7 @@ f64.eq if local.get $index - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 1 @@ -55564,7 +55564,7 @@ end end i32.const -1 - br $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $11 global.get $~lib/memory/__stack_pointer @@ -55590,7 +55590,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -55614,7 +55614,7 @@ i32.eq if i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 0 @@ -55658,7 +55658,7 @@ f64.eq if local.get $index - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 1 @@ -55668,7 +55668,7 @@ end end i32.const -1 - br $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -55723,7 +55723,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" (local $values i32) (local $length i32) (local $array i32) @@ -56378,7 +56378,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -56411,7 +56411,7 @@ end if i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 0 @@ -56465,7 +56465,7 @@ end if i32.const 1 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" end local.get $index i32.const 1 @@ -56475,7 +56475,7 @@ end end i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $12 global.get $~lib/memory/__stack_pointer @@ -56504,7 +56504,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -56537,7 +56537,7 @@ end if i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 0 @@ -56591,7 +56591,7 @@ end if i32.const 1 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" end local.get $index i32.const 1 @@ -56601,7 +56601,7 @@ end end i32.const 0 - br $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $12 global.get $~lib/memory/__stack_pointer @@ -57105,7 +57105,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -57486,7 +57486,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -57688,7 +57688,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -58069,7 +58069,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -58450,7 +58450,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -58831,7 +58831,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -59212,7 +59212,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -59595,7 +59595,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -59976,7 +59976,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -60350,7 +60350,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -60721,7 +60721,7 @@ local.get $1 return ) - (func $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64>" (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -60872,7 +60872,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -60976,7 +60976,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint8Array,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -61161,7 +61161,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -61265,7 +61265,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Int8Array,i8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -61318,7 +61318,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" (local $values i32) (local $length i32) (local $array i32) @@ -61484,7 +61484,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -61672,7 +61672,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -61776,7 +61776,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -61829,7 +61829,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" (local $values i32) (local $length i32) (local $array i32) @@ -62019,7 +62019,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -62123,7 +62123,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Int16Array,i16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -62176,7 +62176,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" (local $values i32) (local $length i32) (local $array i32) @@ -62367,7 +62367,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -62471,7 +62471,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint16Array,u16>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -62524,7 +62524,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" (local $values i32) (local $length i32) (local $array i32) @@ -62718,7 +62718,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -62822,7 +62822,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Int32Array,i32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -62875,7 +62875,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" (local $values i32) (local $length i32) (local $array i32) @@ -63069,7 +63069,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -63173,7 +63173,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint32Array,u32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -63226,7 +63226,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" (local $values i32) (local $length i32) (local $array i32) @@ -63422,7 +63422,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -63526,7 +63526,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Int64Array,i64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -63579,7 +63579,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" (local $values i32) (local $length i32) (local $array i32) @@ -63778,7 +63778,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -63882,7 +63882,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Uint64Array,u64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -63935,7 +63935,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" (local $values i32) (local $length i32) (local $array i32) @@ -64136,7 +64136,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -64240,7 +64240,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Float32Array,f32>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -64293,7 +64293,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" (local $values i32) (local $length i32) (local $array i32) @@ -64496,7 +64496,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $"~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $buffer local.tee $buffer|3 @@ -64600,7 +64600,7 @@ i32.add i32.store offset=4 local.get $out - br $~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0 + br $"~lib/typedarray/WRAP<~lib/typedarray/Float64Array,f64>|inlined.0" end local.set $9 global.get $~lib/memory/__stack_pointer @@ -64653,7 +64653,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" (local $values i32) (local $length i32) (local $array i32) @@ -81189,7 +81189,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" (local $source i32) (local $result i32) (local $2 i32) @@ -81950,7 +81950,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -82237,7 +82237,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>" (local $source i32) (local $result i32) (local $2 i32) @@ -83000,7 +83000,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>" (local $source i32) (local $result i32) (local $2 i32) @@ -83761,7 +83761,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>" (local $source i32) (local $result i32) (local $2 i32) @@ -84524,7 +84524,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>" (local $source i32) (local $result i32) (local $2 i32) @@ -85285,7 +85285,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>" (local $source i32) (local $result i32) (local $2 i32) @@ -86048,7 +86048,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>" (local $source i32) (local $result i32) (local $2 i32) @@ -86809,7 +86809,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>" (local $source i32) (local $result i32) (local $2 i32) @@ -87574,7 +87574,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>" (local $source i32) (local $result i32) (local $2 i32) @@ -87768,7 +87768,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>" (local $source i32) (local $result i32) (local $2 i32) @@ -90799,138 +90799,138 @@ call $~lib/builtins/abort unreachable end - call $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testAt<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testAt<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testAt<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testAt<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testAt<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testAt<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testAt<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testAt<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testAt<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testAt<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> - 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> - call $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - 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> + call $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testAt<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testAt<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testAt<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testAt<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testAt<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testAt<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testAt<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testAt<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testAt<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testAt<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testAt<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" + 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>" + call $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" + 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 0 i32.const 1 @@ -91045,17 +91045,17 @@ call $~lib/builtins/abort unreachable end - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64>" global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 0 @@ -91132,17 +91132,17 @@ call $~lib/builtins/abort unreachable end - call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> @@ -91447,17 +91447,17 @@ i32.store offset=20 local.get $100 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>" global.get $~lib/memory/__heap_base global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 7ea4d1b913..6b63063fcc 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32) (result i32))) (type $4 (func (param i32 i32 i32))) (type $5 (func (param i32 i32))) @@ -674,7 +674,7 @@ (data $304 (i32.const 16000) "O\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00B\08\00\00\02\t") (data $304.1 (i32.const 16252) "\02\19\00\00\02\1a\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\01\00\00\02\n\00\00\02\02") (table $0 166 166 funcref) - (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/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,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/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~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|0 $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,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) + (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/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,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/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" $~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|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,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/visitRoots @@ -1744,11 +1744,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2135,14 +2134,13 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2205,7 +2203,6 @@ local.get $1 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - (local $2 i32) local.get $1 i32.eqz if @@ -2222,7 +2219,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $2 local.get $1 i32.const 20 i32.sub @@ -2239,7 +2235,7 @@ i32.const 3 i32.and local.tee $0 - local.get $2 + global.get $~lib/rt/itcms/white i32.eqz i32.eq if @@ -2722,47 +2718,47 @@ i64.lt_s i32.sub ) - (func $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + (func $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) local.get $0 local.get $1 i64.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) local.get $0 local.get $1 f32.add ) - (func $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) local.get $0 local.get $1 f64.add ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $0 i32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i64) local.get $0 local.get $0 i64.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result f32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result f32) local.get $0 local.get $0 f32.mul ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result f64) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result f64) local.get $0 local.get $0 f64.mul ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.extend8_s i32.const 2 @@ -2806,181 +2802,181 @@ memory.copy local.get $2 ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.extend16_s i32.const 2 i32.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.gt_s ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.gt_u ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.gt ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.gt ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 2 i64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.eqz ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 2 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 0 f32.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 2 f64.eq ) - (func $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 0 f64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 255 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 65535 i32.and i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 4 i32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 4 i64.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 f32.const 4 f32.eq ) - (func $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 f64.const 4 f64.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.extend8_s i32.const 1 i32.and i32.eqz ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 i32.and i32.eqz ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.extend16_s i32.const 1 i32.and i32.eqz ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 i64.const 1 i64.and i64.eqz ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) block $__inlined_func$~lib/math/NativeMathf.mod (result f32) @@ -3130,7 +3126,7 @@ f32.const 0 f32.eq ) - (func $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) (local $3 i64) (local $4 i64) (local $5 i64) @@ -5067,7 +5063,6 @@ i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -5076,8 +5071,8 @@ f64.add local.tee $1 i32.trunc_sat_f64_s - local.tee $8 - local.get $8 + local.tee $7 + local.get $7 f64.convert_i32_s local.get $1 f64.ne @@ -5086,18 +5081,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $8 i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $8 + local.get $7 i32.const 1 i32.shl i32.const 10560 @@ -5216,8 +5211,8 @@ i64.shr_u i64.add local.get $6 - local.get $7 global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub @@ -5723,7 +5718,7 @@ i32.extend8_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.extend8_s local.tee $1 @@ -6144,7 +6139,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.const 255 i32.and @@ -6596,7 +6591,7 @@ i32.extend16_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.extend16_s local.tee $1 @@ -7054,7 +7049,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.const 65535 i32.and @@ -7504,7 +7499,7 @@ local.get $1 i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.lt_s @@ -7952,7 +7947,7 @@ i32.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.lt_u @@ -8403,7 +8398,7 @@ i64.lt_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i64) (result i32) local.get $0 local.get $1 i64.lt_s @@ -8854,7 +8849,7 @@ i64.lt_u i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i64) (result i32) local.get $0 local.get $1 i64.lt_u @@ -9325,7 +9320,7 @@ i32.lt_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 f32) (result i32) local.get $0 local.get $1 f32.lt @@ -9334,7 +9329,7 @@ f32.gt i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 f64) (result i32) local.get $0 local.get $1 f64.lt @@ -9344,7 +9339,6 @@ i32.sub ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner3 block $folding-inner2 block $folding-inner1 @@ -9376,10 +9370,9 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9400,10 +9393,9 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9435,7 +9427,6 @@ call $start:std/typedarray ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -9452,16 +9443,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $0 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -9543,7 +9533,6 @@ ) (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9560,20 +9549,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 0 @@ -9588,7 +9575,6 @@ ) (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9605,31 +9591,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + local.get $1 local.get $0 i32.load i32.sub local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/typedarray/Int8Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9646,16 +9630,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=8 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9663,7 +9646,6 @@ ) (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9680,20 +9662,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 5 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 0 @@ -9708,7 +9688,6 @@ ) (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9725,20 +9704,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 0 @@ -9753,7 +9730,6 @@ ) (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9770,20 +9746,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 1 @@ -9797,7 +9771,6 @@ local.get $0 ) (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9814,10 +9787,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9825,7 +9797,7 @@ i32.const 1 i32.shr_u local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9833,7 +9805,6 @@ ) (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9850,20 +9821,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 1 @@ -9878,7 +9847,6 @@ ) (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9895,20 +9863,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 2 @@ -9922,7 +9888,6 @@ local.get $0 ) (func $~lib/typedarray/Int32Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9939,10 +9904,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -9950,7 +9914,7 @@ i32.const 2 i32.shr_u local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -9958,7 +9922,6 @@ ) (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9975,20 +9938,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 2 @@ -10003,7 +9964,6 @@ ) (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10020,20 +9980,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 3 @@ -10047,7 +10005,6 @@ local.get $0 ) (func $~lib/typedarray/Int64Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10064,10 +10021,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -10075,7 +10031,7 @@ i32.const 3 i32.shr_u local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -10083,7 +10039,6 @@ ) (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10100,20 +10055,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 3 @@ -10128,7 +10081,6 @@ ) (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10145,20 +10097,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 2 @@ -10173,7 +10123,6 @@ ) (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10190,20 +10139,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 14 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 i32.const 3 @@ -10234,11 +10181,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 48 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/typedarray/Int8Array#constructor local.tee $1 @@ -10788,7 +10734,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10805,10 +10750,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -10826,7 +10770,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -10837,13 +10780,12 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10860,10 +10802,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -10881,7 +10822,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -10892,7 +10832,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -10918,42 +10858,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 i32.load - local.tee $4 + local.tee $5 i32.store - local.get $3 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -10961,7 +10900,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $5 + local.get $3 i32.add local.tee $0 i32.const 0 @@ -10971,9 +10910,9 @@ select else local.get $1 - local.get $5 + local.get $3 local.get $1 - local.get $5 + local.get $3 i32.lt_s select end @@ -10982,13 +10921,13 @@ i32.shl i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $5 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -10998,9 +10937,9 @@ select else local.get $2 - local.get $5 + local.get $3 local.get $2 - local.get $5 + local.get $3 i32.lt_s select end @@ -11019,10 +10958,9 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11039,10 +10977,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -11060,7 +10997,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -11071,7 +11007,7 @@ i32.add local.get $2 f64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -11096,42 +11032,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 14 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 i32.load - local.tee $4 + local.tee $5 i32.store - local.get $3 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -11139,7 +11074,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $5 + local.get $3 i32.add local.tee $0 i32.const 0 @@ -11149,9 +11084,9 @@ select else local.get $1 - local.get $5 + local.get $3 local.get $1 - local.get $5 + local.get $3 i32.lt_s select end @@ -11160,13 +11095,13 @@ i32.shl i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $5 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -11176,9 +11111,9 @@ select else local.get $2 - local.get $5 + local.get $3 local.get $2 - local.get $5 + local.get $3 i32.lt_s select end @@ -11197,7 +11132,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -11654,16 +11589,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -11684,7 +11618,6 @@ ) (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11701,10 +11634,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 block $1of1 @@ -11722,10 +11654,9 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 @@ -11740,7 +11671,6 @@ ) (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) (local $2 f64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11757,10 +11687,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -11778,7 +11707,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -11789,14 +11717,13 @@ i32.add f64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11813,10 +11740,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -11832,7 +11758,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -11853,13 +11778,12 @@ i32.xor i32.and i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11876,10 +11800,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -11895,7 +11818,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -11904,14 +11826,13 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11928,10 +11849,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -11947,7 +11867,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -11956,14 +11875,13 @@ i32.add local.get $2 i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11980,16 +11898,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -12039,7 +11956,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12056,23 +11972,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12089,10 +12003,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -12108,7 +12021,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -12117,7 +12029,7 @@ i32.add i32.load8_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -12128,7 +12040,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12140,10 +12051,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -12162,10 +12072,10 @@ i32.store local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $5 + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -12174,7 +12084,7 @@ local.get $0 local.get $2 call $~lib/typedarray/Int8Array#__get - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -12187,10 +12097,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $2 @@ -12206,7 +12115,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $1 i32.store local.get $2 @@ -12214,13 +12122,13 @@ i32.load offset=4 i32.add i32.load8_s - local.set $6 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $6 + local.get $5 i32.ne br_if $folding-inner1 local.get $2 @@ -12320,42 +12228,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 i32.load - local.tee $4 + local.tee $5 i32.store - local.get $3 local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -12363,7 +12270,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $5 + local.get $3 i32.add local.tee $0 i32.const 0 @@ -12373,22 +12280,22 @@ select else local.get $1 - local.get $5 + local.get $3 local.get $1 - local.get $5 + local.get $3 i32.lt_s select end local.tee $0 i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $5 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -12398,9 +12305,9 @@ select else local.get $2 - local.get $5 + local.get $3 local.get $2 - local.get $5 + local.get $3 i32.lt_s select end @@ -12417,11 +12324,10 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12438,16 +12344,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $5 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $2 @@ -12492,7 +12397,7 @@ local.get $2 i32.gt_s if - local.get $5 + local.get $4 local.get $2 i32.const 2 i32.shl @@ -12512,7 +12417,7 @@ local.get $2 i32.gt_s if - local.get $5 + local.get $4 local.get $2 i32.const 2 i32.shl @@ -12533,7 +12438,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12550,10 +12454,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -12569,7 +12472,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -12580,7 +12482,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -12606,10 +12508,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -12724,7 +12625,6 @@ (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -12741,16 +12641,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -12808,36 +12707,35 @@ i32.const 0 i32.gt_s select - local.tee $3 + local.tee $2 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $5 - local.get $2 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 + local.get $4 local.get $0 i32.load offset=4 local.get $1 i32.const 2 i32.shl i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl memory.copy - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/typedarray/Int32Array#slice@varargs (param $0 i32) (result i32) (local $1 i32) @@ -12903,13 +12801,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -13069,7 +12966,6 @@ local.get $0 ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13086,10 +12982,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13105,7 +13000,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $1 @@ -13114,7 +13008,7 @@ i32.add local.get $2 i32.store8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13141,25 +13035,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -13202,7 +13095,6 @@ local.get $3 ) (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13219,10 +13111,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13240,7 +13131,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -13251,13 +13141,12 @@ i32.add local.get $2 i32.store16 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13274,10 +13163,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13295,7 +13183,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -13306,13 +13193,12 @@ i32.add local.get $2 i32.store16 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13329,10 +13215,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13350,7 +13235,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -13361,13 +13245,12 @@ i32.add local.get $2 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13384,10 +13267,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13405,7 +13287,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -13416,13 +13297,12 @@ i32.add local.get $2 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13439,10 +13319,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13460,7 +13339,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -13471,13 +13349,12 @@ i32.add local.get $2 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13494,10 +13371,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13515,7 +13391,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -13526,7 +13401,7 @@ i32.add local.get $2 f32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13549,10 +13424,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13577,7 +13451,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -13586,7 +13459,7 @@ i32.add i32.load8_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13610,10 +13483,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13638,7 +13510,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -13647,7 +13518,7 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13671,10 +13542,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13699,7 +13569,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -13708,7 +13577,7 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13732,10 +13601,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13762,7 +13630,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -13773,7 +13640,7 @@ i32.add i32.load16_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13797,10 +13664,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13827,7 +13693,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -13838,7 +13703,7 @@ i32.add i32.load16_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13862,10 +13727,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13892,7 +13756,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -13903,7 +13766,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -13927,10 +13790,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -13957,7 +13819,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -13968,15 +13829,15 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -13993,10 +13854,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -14004,7 +13864,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const 0 local.get $1 i32.const 0 @@ -14012,7 +13872,7 @@ select i32.add local.tee $1 - local.get $3 + local.get $2 i32.ge_u if i32.const 1360 @@ -14023,7 +13883,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -14033,16 +13892,16 @@ i32.shl i32.add i64.load - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14059,10 +13918,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -14070,7 +13928,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const 0 local.get $1 i32.const 0 @@ -14078,7 +13936,7 @@ select i32.add local.tee $1 - local.get $3 + local.get $2 i32.ge_u if i32.const 1360 @@ -14089,7 +13947,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -14099,16 +13956,16 @@ i32.shl i32.add i64.load - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) - (local $2 f32) - (local $3 i32) + (local $2 i32) + (local $3 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14125,10 +13982,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -14136,7 +13992,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.const 0 local.get $1 i32.const 0 @@ -14144,7 +14000,7 @@ select i32.add local.tee $1 - local.get $3 + local.get $2 i32.ge_u if i32.const 1360 @@ -14155,7 +14011,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -14165,16 +14020,16 @@ i32.shl i32.add f32.load - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) - (local $3 i32) + (local $2 i32) + (local $3 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14191,10 +14046,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -14202,7 +14056,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const 0 local.get $1 i32.const 0 @@ -14210,7 +14064,7 @@ select i32.add local.tee $1 - local.get $3 + local.get $2 i32.ge_u if i32.const 1360 @@ -14221,7 +14075,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -14231,12 +14084,12 @@ i32.shl i32.add f64.load - local.set $2 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -14259,25 +14112,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -14321,7 +14173,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -14340,42 +14192,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $6 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3600 @@ -14389,95 +14240,94 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=4 - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $6 + local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=8 - local.get $6 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $3 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.get $3 + local.get $2 + local.get $6 i32.add i32.load8_s - local.set $4 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $7 + local.get $2 + local.get $3 i32.add - local.get $4 + local.get $7 + local.get $2 local.get $0 - local.get $6 i32.const 3600 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.store8 - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $5 - local.get $7 + local.get $1 + local.get $3 i32.store - local.get $5 - local.get $7 + local.get $1 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 - local.get $7 + local.get $1 + local.get $3 i32.store offset=4 - local.get $5 local.get $1 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 @@ -14491,9 +14341,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -14507,9 +14357,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 @@ -14536,7 +14386,6 @@ unreachable ) (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14553,10 +14402,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -14572,7 +14420,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $1 @@ -14581,13 +14428,13 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -14606,42 +14453,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3632 @@ -14655,95 +14501,94 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=4 - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $6 + local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=8 - local.get $6 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $3 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.get $3 + local.get $2 + local.get $6 i32.add i32.load8_u - local.set $4 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $7 + local.get $2 + local.get $3 i32.add - local.get $4 + local.get $7 + local.get $2 local.get $0 - local.get $6 i32.const 3632 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.store8 - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $5 - local.get $7 + local.get $1 + local.get $3 i32.store - local.get $5 - local.get $7 + local.get $1 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 - local.get $7 + local.get $1 + local.get $3 i32.store offset=4 - local.get $5 local.get $1 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 @@ -14757,9 +14602,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 @@ -14773,9 +14618,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 @@ -14801,7 +14646,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -14820,42 +14665,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3664 @@ -14869,95 +14713,94 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3664 i32.store offset=4 - local.get $1 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $6 + local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=8 - local.get $6 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $3 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.get $3 + local.get $2 + local.get $6 i32.add i32.load8_u - local.set $4 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $7 + local.get $2 + local.get $3 i32.add - local.get $4 + local.get $7 + local.get $2 local.get $0 - local.get $6 i32.const 3664 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.store8 - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end - local.get $5 - local.get $7 + local.get $1 + local.get $3 i32.store - local.get $5 - local.get $7 + local.get $1 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 - local.get $7 + local.get $1 + local.get $3 i32.store offset=4 - local.get $5 local.get $1 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 @@ -14971,9 +14814,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 @@ -14987,9 +14830,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 + local.get $1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 @@ -15016,7 +14859,6 @@ unreachable ) (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15033,10 +14875,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -15054,7 +14895,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -15065,13 +14905,13 @@ i32.add i32.load16_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -15092,42 +14932,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3696 @@ -15141,101 +14980,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3696 i32.store offset=4 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 1 i32.shl - local.tee $4 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.lt_s if + local.get $6 local.get $3 - local.get $0 i32.const 1 i32.shl - local.tee $5 + local.tee $8 i32.add i32.load16_s - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $8 i32.add - local.get $6 + local.get $9 + local.get $3 local.get $0 - local.get $8 i32.const 3696 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.store16 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 local.get $7 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 @@ -15249,9 +15087,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 @@ -15265,9 +15103,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 9 @@ -15294,7 +15132,6 @@ unreachable ) (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15311,10 +15148,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -15332,7 +15168,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -15343,13 +15178,13 @@ i32.add i32.load16_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -15370,42 +15205,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3728 @@ -15419,101 +15253,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3728 i32.store offset=4 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 1 i32.shl - local.tee $4 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.lt_s if + local.get $6 local.get $3 - local.get $0 i32.const 1 i32.shl - local.tee $5 + local.tee $8 i32.add i32.load16_u - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $8 i32.add - local.get $6 + local.get $9 + local.get $3 local.get $0 - local.get $8 i32.const 3728 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.store16 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 local.get $7 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 @@ -15527,9 +15360,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 @@ -15543,9 +15376,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 9 @@ -15571,7 +15404,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -15592,42 +15425,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3760 @@ -15641,101 +15473,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3760 i32.store offset=4 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 2 i32.shl - local.tee $4 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.lt_s if + local.get $6 local.get $3 - local.get $0 i32.const 2 i32.shl - local.tee $5 + local.tee $8 i32.add i32.load - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $8 i32.add - local.get $6 + local.get $9 + local.get $3 local.get $0 - local.get $8 i32.const 3760 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 local.get $7 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 @@ -15749,9 +15580,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 @@ -15765,9 +15596,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 9 @@ -15794,7 +15625,6 @@ unreachable ) (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15811,10 +15641,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -15832,7 +15661,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store local.get $0 @@ -15843,13 +15671,13 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -15870,42 +15698,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3792 @@ -15919,101 +15746,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3792 i32.store offset=4 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 2 i32.shl - local.tee $4 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.lt_s if + local.get $6 local.get $3 - local.get $0 i32.const 2 i32.shl - local.tee $5 + local.tee $8 i32.add i32.load - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $8 i32.add - local.get $6 + local.get $9 + local.get $3 local.get $0 - local.get $8 i32.const 3792 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 local.get $7 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 @@ -16027,9 +15853,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 @@ -16043,9 +15869,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 9 @@ -16073,7 +15899,6 @@ ) (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) (local $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16090,10 +15915,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -16111,7 +15935,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -16122,23 +15945,23 @@ i32.add i64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -16149,42 +15972,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3824 @@ -16198,101 +16020,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3824 i32.store offset=4 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 3 i32.shl - local.tee $4 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.lt_s if + local.get $6 local.get $3 - local.get $0 i32.const 3 i32.shl - local.tee $5 + local.tee $8 i32.add i64.load - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $8 i32.add - local.get $6 + local.get $9 + local.get $3 local.get $0 - local.get $8 i32.const 3824 i32.load call_indirect (type $24) i64.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 local.get $7 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 @@ -16306,9 +16127,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 @@ -16322,9 +16143,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 9 @@ -16352,7 +16173,6 @@ ) (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) (local $2 i64) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16369,10 +16189,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -16390,7 +16209,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -16401,23 +16219,23 @@ i32.add i64.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -16428,42 +16246,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3856 @@ -16477,101 +16294,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3856 i32.store offset=4 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 3 i32.shl - local.tee $4 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.lt_s if + local.get $6 local.get $3 - local.get $0 i32.const 3 i32.shl - local.tee $5 + local.tee $8 i32.add i64.load - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $8 i32.add - local.get $6 + local.get $9 + local.get $3 local.get $0 - local.get $8 i32.const 3856 i32.load call_indirect (type $24) i64.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 local.get $7 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 @@ -16585,9 +16401,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 @@ -16601,9 +16417,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 9 @@ -16631,7 +16447,6 @@ ) (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) (local $2 f32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16648,10 +16463,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -16669,7 +16483,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store local.get $0 @@ -16680,23 +16493,23 @@ i32.add f32.load local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f32) + (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 f32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -16707,42 +16520,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3888 @@ -16756,101 +16568,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3888 i32.store offset=4 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 2 i32.shl - local.tee $4 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.lt_s if + local.get $6 local.get $3 - local.get $0 i32.const 2 i32.shl - local.tee $5 + local.tee $8 i32.add f32.load - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $8 i32.add - local.get $6 + local.get $9 + local.get $3 local.get $0 - local.get $8 i32.const 3888 i32.load call_indirect (type $29) f32.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 local.get $7 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 @@ -16864,9 +16675,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 @@ -16880,9 +16691,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 9 @@ -16908,17 +16719,17 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f64) + (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 f64) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -16929,42 +16740,41 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 + local.get $0 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3920 @@ -16978,101 +16788,100 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3920 i32.store offset=4 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.load offset=4 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 14 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 3 i32.shl - local.tee $4 + local.tee $7 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.store offset=16 loop $for-loop|0 - local.get $0 - local.get $1 + local.get $3 + local.get $4 i32.lt_s if + local.get $6 local.get $3 - local.get $0 i32.const 3 i32.shl - local.tee $5 + local.tee $8 i32.add f64.load - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $8 i32.add - local.get $6 + local.get $9 + local.get $3 local.get $0 - local.get $8 i32.const 3920 i32.load call_indirect (type $30) f64.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 - local.get $9 + local.get $1 + local.get $2 i32.store offset=4 + local.get $1 local.get $7 - local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $5 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 1 @@ -17086,9 +16895,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 @@ -17102,9 +16911,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 9 @@ -17130,7 +16939,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -17150,56 +16959,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $6 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3952 @@ -17213,105 +17021,104 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3952 i32.store offset=4 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $6 + local.get $8 call $~lib/typedarray/Int8Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=8 - local.get $6 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $1 - local.get $5 + local.get $2 + local.get $7 i32.add i32.load8_s - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $6 + local.get $5 + local.get $2 + local.get $8 i32.const 3952 i32.load - call_indirect (type $2) + call_indirect (type $1) if local.get $0 - local.get $2 + local.get $4 i32.add - local.get $3 + local.get $5 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $2 + local.get $1 + local.get $4 local.get $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $7 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 + local.get $1 local.get $0 i32.store offset=8 - local.get $7 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 + local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -17322,9 +17129,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.ne @@ -17337,9 +17144,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -17353,9 +17160,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -17369,9 +17176,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 5 @@ -17397,7 +17204,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -17417,56 +17224,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3984 @@ -17480,105 +17286,104 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3984 i32.store offset=4 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $6 + local.get $8 call $~lib/typedarray/Int8Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=8 - local.get $6 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $1 - local.get $5 + local.get $2 + local.get $7 i32.add i32.load8_u - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $6 + local.get $5 + local.get $2 + local.get $8 i32.const 3984 i32.load - call_indirect (type $2) + call_indirect (type $1) if local.get $0 - local.get $2 + local.get $4 i32.add - local.get $3 + local.get $5 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $2 + local.get $1 + local.get $4 local.get $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $7 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 + local.get $1 local.get $0 i32.store offset=8 - local.get $7 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 + local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -17589,9 +17394,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.ne @@ -17604,9 +17409,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 @@ -17620,9 +17425,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 @@ -17636,9 +17441,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 5 @@ -17664,7 +17469,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -17684,56 +17489,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 - local.get $6 + local.get $8 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4016 @@ -17747,105 +17551,104 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4016 i32.store offset=4 - local.get $2 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $6 + local.get $8 call $~lib/typedarray/Int8Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=8 - local.get $6 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $1 - local.get $5 + local.get $2 + local.get $7 i32.add i32.load8_u - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $6 + local.get $5 + local.get $2 + local.get $8 i32.const 4016 i32.load - call_indirect (type $2) + call_indirect (type $1) if local.get $0 - local.get $2 + local.get $4 i32.add - local.get $3 + local.get $5 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $7 - local.get $2 + local.get $1 + local.get $4 local.get $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $7 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $7 + local.get $1 local.get $0 i32.store offset=8 - local.get $7 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 + local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -17856,9 +17659,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.ne @@ -17871,9 +17674,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 @@ -17887,9 +17690,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 @@ -17903,9 +17706,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 @@ -17931,7 +17734,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -17951,56 +17754,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Int16Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 5 i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4048 @@ -18014,114 +17816,113 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4048 i32.store offset=4 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $7 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_s - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 + local.get $5 + local.get $2 + local.get $8 i32.const 4048 i32.load - call_indirect (type $2) + call_indirect (type $1) if - local.get $2 + local.get $4 local.get $0 i32.const 1 i32.shl i32.add - local.get $3 + local.get $5 i32.store16 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 + local.get $1 + local.get $4 local.get $0 i32.const 1 i32.shl local.tee $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $6 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $6 + local.get $1 local.get $0 i32.store offset=8 - local.get $6 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -18132,9 +17933,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/typedarray/Int16Array#get:length i32.const 3 i32.ne @@ -18147,9 +17948,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 @@ -18163,9 +17964,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 @@ -18179,9 +17980,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 5 @@ -18207,7 +18008,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -18227,56 +18028,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Uint16Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 5 i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4080 @@ -18290,114 +18090,113 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4080 i32.store offset=4 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $7 + local.get $2 i32.const 1 i32.shl i32.add i32.load16_u - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 + local.get $5 + local.get $2 + local.get $8 i32.const 4080 i32.load - call_indirect (type $2) + call_indirect (type $1) if - local.get $2 + local.get $4 local.get $0 i32.const 1 i32.shl i32.add - local.get $3 + local.get $5 i32.store16 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 + local.get $1 + local.get $4 local.get $0 i32.const 1 i32.shl local.tee $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $6 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $6 + local.get $1 local.get $0 i32.store offset=8 - local.get $6 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -18408,9 +18207,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/typedarray/Int16Array#get:length i32.const 3 i32.ne @@ -18423,9 +18222,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 @@ -18439,9 +18238,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 @@ -18455,9 +18254,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 5 @@ -18483,7 +18282,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -18503,56 +18302,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Int32Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 5 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4112 @@ -18566,114 +18364,113 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4112 i32.store offset=4 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 2 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $7 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 + local.get $5 + local.get $2 + local.get $8 i32.const 4112 i32.load - call_indirect (type $2) + call_indirect (type $1) if - local.get $2 + local.get $4 local.get $0 i32.const 2 i32.shl i32.add - local.get $3 + local.get $5 i32.store local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 + local.get $1 + local.get $4 local.get $0 i32.const 2 i32.shl local.tee $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $6 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $6 + local.get $1 local.get $0 i32.store offset=8 - local.get $6 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -18684,9 +18481,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.ne @@ -18699,9 +18496,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -18715,9 +18512,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 @@ -18731,9 +18528,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -18759,7 +18556,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -18779,56 +18576,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Uint32Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 5 i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4144 @@ -18842,114 +18638,113 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4144 i32.store offset=4 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 2 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $7 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 + local.get $5 + local.get $2 + local.get $8 i32.const 4144 i32.load - call_indirect (type $2) + call_indirect (type $1) if - local.get $2 + local.get $4 local.get $0 i32.const 2 i32.shl i32.add - local.get $3 + local.get $5 i32.store local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 + local.get $1 + local.get $4 local.get $0 i32.const 2 i32.shl local.tee $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $6 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $6 + local.get $1 local.get $0 i32.store offset=8 - local.get $6 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -18960,9 +18755,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.ne @@ -18975,9 +18770,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 @@ -18991,9 +18786,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 @@ -19007,9 +18802,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -19035,13 +18830,13 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) (local $7 i32) (local $8 i32) @@ -19055,56 +18850,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4176 @@ -19118,114 +18912,113 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4176 i32.store offset=4 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 3 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $7 + local.get $2 i32.const 3 i32.shl i32.add i64.load - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 + local.get $5 + local.get $2 + local.get $8 i32.const 4176 i32.load call_indirect (type $8) if - local.get $2 + local.get $4 local.get $0 i32.const 3 i32.shl i32.add - local.get $3 + local.get $5 i64.store local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 + local.get $1 + local.get $4 local.get $0 i32.const 3 i32.shl local.tee $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $6 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $6 + local.get $1 local.get $0 i32.store offset=8 - local.get $6 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -19236,9 +19029,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/typedarray/Int64Array#get:length i32.const 3 i32.ne @@ -19251,9 +19044,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -19267,9 +19060,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 @@ -19283,9 +19076,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 5 @@ -19311,13 +19104,13 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) (local $7 i32) (local $8 i32) @@ -19331,56 +19124,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Uint64Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 5 i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4208 @@ -19394,114 +19186,113 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4208 i32.store offset=4 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 3 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $7 + local.get $2 i32.const 3 i32.shl i32.add i64.load - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 + local.get $5 + local.get $2 + local.get $8 i32.const 4208 i32.load call_indirect (type $8) if - local.get $2 + local.get $4 local.get $0 i32.const 3 i32.shl i32.add - local.get $3 + local.get $5 i64.store local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 + local.get $1 + local.get $4 local.get $0 i32.const 3 i32.shl local.tee $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $6 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $6 + local.get $1 local.get $0 i32.store offset=8 - local.get $6 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -19512,9 +19303,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/typedarray/Int64Array#get:length i32.const 3 i32.ne @@ -19527,9 +19318,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 @@ -19543,9 +19334,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 @@ -19559,9 +19350,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 5 @@ -19587,13 +19378,13 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -19607,56 +19398,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4240 @@ -19670,114 +19460,113 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4240 i32.store offset=4 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 2 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $7 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 + local.get $5 + local.get $2 + local.get $8 i32.const 4240 i32.load call_indirect (type $14) if - local.get $2 + local.get $4 local.get $0 i32.const 2 i32.shl i32.add - local.get $3 + local.get $5 f32.store local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 + local.get $1 + local.get $4 local.get $0 i32.const 2 i32.shl local.tee $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $6 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $6 + local.get $1 local.get $0 i32.store offset=8 - local.get $6 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -19788,9 +19577,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.ne @@ -19803,9 +19592,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -19819,9 +19608,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 @@ -19835,9 +19624,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 5 @@ -19863,13 +19652,13 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) @@ -19883,56 +19672,55 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Float64Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4272 @@ -19946,114 +19734,113 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4272 i32.store offset=4 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 14 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 3 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.load offset=4 - local.set $5 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $2 + local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $7 + local.get $2 i32.const 3 i32.shl i32.add f64.load - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $7 + local.get $5 + local.get $2 + local.get $8 i32.const 4272 i32.load call_indirect (type $15) if - local.get $2 + local.get $4 local.get $0 i32.const 3 i32.shl i32.add - local.get $3 + local.get $5 f64.store local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $6 - local.get $2 + local.get $1 + local.get $4 local.get $0 i32.const 3 i32.shl local.tee $0 call $~lib/rt/itcms/__renew - local.tee $1 + local.tee $2 i32.store - local.get $6 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $6 + local.get $1 local.get $0 i32.store offset=8 - local.get $6 local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 @@ -20064,9 +19851,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 call $~lib/typedarray/Int64Array#get:length i32.const 3 i32.ne @@ -20079,9 +19866,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 3 @@ -20095,9 +19882,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 @@ -20111,9 +19898,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -20160,26 +19947,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -20206,8 +19992,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" drop local.get $2 i32.const 1 @@ -20246,26 +20032,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -20292,8 +20077,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" drop local.get $2 i32.const 1 @@ -20332,26 +20117,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -20380,8 +20164,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" drop local.get $2 i32.const 1 @@ -20420,26 +20204,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -20468,8 +20251,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" drop local.get $2 i32.const 1 @@ -20508,114 +20291,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -20644,8 +20338,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" drop local.get $2 i32.const 1 @@ -20663,10 +20357,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) + (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -20684,56 +20378,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $5 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 + call $~lib/typedarray/Int32Array#get:length + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load - local.set $4 + i32.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $8) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" drop local.get $2 i32.const 1 @@ -20751,11 +20444,11 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20772,34 +20465,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $5 + block $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -20808,20 +20500,20 @@ i32.shl i32.add i64.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $8) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" drop local.get $2 i32.const 1 @@ -20839,11 +20531,11 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $4 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20860,56 +20552,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $5 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $5 + call $~lib/typedarray/Int64Array#get:length + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 local.get $2 - i32.const 2 + i32.const 3 i32.shl i32.add - f32.load - local.set $4 + i64.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $14) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + call_indirect (type $8) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" drop local.get $2 i32.const 1 @@ -20927,11 +20618,11 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f64) - (local $5 i32) + (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20948,56 +20639,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $5 + block $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $5 + call $~lib/typedarray/Int32Array#get:length + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load - local.set $4 + f32.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $15) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + call_indirect (type $14) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $2 i32.const 1 @@ -21015,11 +20705,11 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21036,53 +20726,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 - local.get $0 - i32.store - local.get $4 - local.get $1 - i32.store offset=4 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $4 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + block $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $2 local.get $3 + local.get $2 + i32.const 3 + i32.shl i32.add - i32.load8_s + f64.load local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 1 local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + call_indirect (type $15) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" + drop local.get $2 i32.const 1 i32.add @@ -21090,16 +20783,16 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + i32.const 0 end + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) - (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -21120,31 +20813,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int8Array#get:length local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" loop $for-loop|0 local.get $2 local.get $4 @@ -21153,7 +20845,7 @@ local.get $2 local.get $3 i32.add - i32.load8_u + i32.load8_s local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 @@ -21165,8 +20857,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21183,7 +20875,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -21204,42 +20896,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int16Array#get:length + call $~lib/typedarray/Int8Array#get:length local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $3 local.get $2 - i32.const 1 - i32.shl + local.get $3 i32.add - i32.load16_s + i32.load8_u local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 @@ -21251,8 +20940,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21269,7 +20958,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -21290,31 +20979,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int16Array#get:length local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" loop $for-loop|0 local.get $2 local.get $4 @@ -21325,7 +21013,7 @@ i32.const 1 i32.shl i32.add - i32.load16_u + i32.load16_s local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 @@ -21337,8 +21025,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21355,7 +21043,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -21376,31 +21064,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#get:length + call $~lib/typedarray/Int16Array#get:length local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" loop $for-loop|0 local.get $2 local.get $4 @@ -21408,10 +21095,10 @@ if local.get $3 local.get $2 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load + i32.load16_u local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 @@ -21423,8 +21110,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21441,7 +21128,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -21462,31 +21149,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#get:length local.set $4 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" loop $for-loop|0 local.get $2 local.get $4 @@ -21509,8 +21195,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21527,10 +21213,10 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) + (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -21548,34 +21234,118 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Int64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -21584,19 +21354,19 @@ i32.shl i32.add i64.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $8) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21616,8 +21386,8 @@ (func $~lib/typedarray/Uint64Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21634,34 +21404,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -21670,19 +21439,19 @@ i32.shl i32.add i64.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $8) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21702,8 +21471,8 @@ (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21720,34 +21489,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $5 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -21756,19 +21524,19 @@ i32.shl i32.add f32.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $14) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21788,8 +21556,8 @@ (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f64) - (local $5 i32) + (local $4 i32) + (local $5 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21806,34 +21574,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -21842,19 +21609,19 @@ i32.shl i32.add f64.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $15) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" local.get $2 i32.const 1 i32.add @@ -21891,25 +21658,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -21917,7 +21683,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -21938,8 +21704,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -21976,25 +21742,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22002,7 +21767,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22023,8 +21788,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22061,25 +21826,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22087,7 +21851,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22110,8 +21874,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22148,25 +21912,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22174,7 +21937,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22197,8 +21960,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22235,25 +21998,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22261,7 +22023,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22284,8 +22046,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22322,25 +22084,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22348,7 +22109,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22371,8 +22132,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22409,25 +22170,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22435,7 +22195,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22459,7 +22219,7 @@ local.get $1 i32.load call_indirect (type $8) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22496,25 +22256,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22522,7 +22281,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22546,7 +22305,7 @@ local.get $1 i32.load call_indirect (type $8) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22583,25 +22342,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22609,7 +22367,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22633,7 +22391,7 @@ local.get $1 i32.load call_indirect (type $14) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22670,25 +22428,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22696,7 +22453,7 @@ i32.const 1 i32.sub local.set $2 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22720,7 +22477,7 @@ local.get $1 i32.load call_indirect (type $15) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22758,26 +22515,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22804,9 +22560,9 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" drop local.get $2 i32.const 1 @@ -22845,26 +22601,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22891,9 +22646,9 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" drop local.get $2 i32.const 1 @@ -22932,26 +22687,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -22980,9 +22734,9 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" drop local.get $2 i32.const 1 @@ -23021,26 +22775,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -23069,9 +22822,9 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" drop local.get $2 i32.const 1 @@ -23110,26 +22863,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -23158,9 +22910,9 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" drop local.get $2 i32.const 1 @@ -23199,26 +22951,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -23247,9 +22998,9 @@ local.get $0 local.get $1 i32.load - call_indirect (type $2) + call_indirect (type $1) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" drop local.get $2 i32.const 1 @@ -23270,8 +23021,8 @@ (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23288,34 +23039,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $5 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -23324,21 +23074,21 @@ i32.shl i32.add i64.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $8) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" drop local.get $2 i32.const 1 @@ -23359,8 +23109,8 @@ (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23377,34 +23127,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $5 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -23413,21 +23162,21 @@ i32.shl i32.add i64.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $8) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" drop local.get $2 i32.const 1 @@ -23448,8 +23197,8 @@ (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23466,34 +23215,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $5 + block $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $5 + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -23502,21 +23250,21 @@ i32.shl i32.add f32.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $14) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $2 i32.const 1 @@ -23537,8 +23285,8 @@ (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f64) - (local $5 i32) + (local $4 i32) + (local $5 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23555,34 +23303,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $5 + block $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.set $4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $4 i32.lt_s if local.get $3 @@ -23591,21 +23338,21 @@ i32.shl i32.add f64.load - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $4 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $15) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" drop local.get $2 i32.const 1 @@ -23623,8 +23370,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23641,10 +23387,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store local.get $0 @@ -23716,25 +23461,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -23773,8 +23517,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23791,10 +23534,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store local.get $0 @@ -23845,8 +23587,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23863,10 +23604,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store i32.const 7152 @@ -23913,8 +23653,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23931,10 +23670,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store i32.const 7152 @@ -23982,8 +23720,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 (param $0 f32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24000,10 +23737,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store i32.const 7152 @@ -24051,8 +23787,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 (param $0 f64) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24069,10 +23804,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store i32.const 7152 @@ -24145,29 +23879,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int8Array#get:length - local.tee $4 + local.tee $5 i32.const 1 i32.gt_u if - local.get $4 + local.get $5 i32.const 1 i32.shr_u - local.set $5 - local.get $4 + local.set $4 + local.get $5 i32.const 8 i32.sub local.set $6 @@ -24175,7 +23908,7 @@ local.get $1 i32.const 7 i32.add - local.get $5 + local.get $4 i32.lt_u if local.get $1 @@ -24250,13 +23983,13 @@ br $while-continue|0 end end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 loop $while-continue|1 local.get $1 - local.get $5 + local.get $4 i32.lt_u if local.get $1 @@ -24267,7 +24000,7 @@ local.set $7 local.get $6 local.get $2 - local.get $4 + local.get $5 local.get $1 i32.sub i32.add @@ -24291,7 +24024,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -24313,42 +24046,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Int8Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $2 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -24376,31 +24107,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/typedarray/Int8Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $~lib/typedarray/Int8Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $4 + local.get $2 i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -24424,7 +24155,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -24529,60 +24261,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 4 i32.gt_s select local.tee $0 i32.add i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -24592,9 +24323,9 @@ select else local.get $1 - local.get $4 + local.get $2 local.get $1 - local.get $4 + local.get $2 i32.lt_s select end @@ -24611,9 +24342,9 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -24635,42 +24366,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Uint8Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $2 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -24700,31 +24429,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/typedarray/Int8Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $~lib/typedarray/Uint8Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $4 + local.get $2 i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -24749,7 +24478,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -24853,60 +24583,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 4 i32.gt_s select local.tee $0 i32.add i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -24916,9 +24645,9 @@ select else local.get $1 - local.get $4 + local.get $2 local.get $1 - local.get $4 + local.get $2 i32.lt_s select end @@ -24935,9 +24664,9 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -24959,42 +24688,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $2 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -25024,31 +24751,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/typedarray/Int8Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $4 + local.get $2 i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -25073,7 +24800,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -25181,29 +24909,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int16Array#get:length - local.tee $3 + local.tee $4 i32.const 1 i32.gt_u if - local.get $3 + local.get $4 i32.const 1 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 2 i32.sub local.set $5 @@ -25211,7 +24938,7 @@ local.get $1 i32.const 1 i32.add - local.get $4 + local.get $3 i32.lt_u if local.get $2 @@ -25247,13 +24974,13 @@ br $while-continue|0 end end - local.get $3 + local.get $4 i32.const 1 i32.sub - local.set $3 + local.set $4 loop $while-continue|1 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $2 @@ -25266,7 +24993,7 @@ local.set $6 local.get $5 local.get $2 - local.get $3 + local.get $4 local.get $1 i32.sub i32.const 1 @@ -25312,47 +25039,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 4 i32.gt_s select @@ -25361,13 +25087,13 @@ i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -25377,9 +25103,9 @@ select else local.get $1 - local.get $4 + local.get $2 local.get $1 - local.get $4 + local.get $2 i32.lt_s select end @@ -25398,9 +25124,9 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -25422,42 +25148,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Int16Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $2 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -25485,31 +25209,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/typedarray/Int16Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $~lib/typedarray/Int16Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $4 + local.get $2 i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -25533,7 +25257,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -25637,47 +25362,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 4 i32.gt_s select @@ -25686,13 +25410,13 @@ i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -25702,9 +25426,9 @@ select else local.get $1 - local.get $4 + local.get $2 local.get $1 - local.get $4 + local.get $2 i32.lt_s select end @@ -25723,9 +25447,9 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -25747,42 +25471,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Uint16Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $2 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -25812,31 +25534,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/typedarray/Int16Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $~lib/typedarray/Uint16Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $4 + local.get $2 i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -25861,7 +25583,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -25968,35 +25691,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int32Array#get:length - local.tee $3 + local.tee $4 i32.const 1 i32.gt_u if - local.get $3 + local.get $4 i32.const 1 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 1 i32.sub local.set $5 loop $while-continue|0 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $2 @@ -26006,7 +25728,7 @@ i32.add local.tee $6 i32.load - local.set $3 + local.set $4 local.get $6 local.get $2 local.get $5 @@ -26019,7 +25741,7 @@ i32.load i32.store local.get $6 - local.get $3 + local.get $4 i32.store local.get $1 i32.const 1 @@ -26035,7 +25757,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -26057,42 +25779,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Int32Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $2 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -26118,36 +25838,36 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/typedarray/Int32Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $~lib/typedarray/Int32Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 i32.sub call $~lib/array/Array#__get - local.get $4 + local.get $2 i32.ne if i32.const 0 @@ -26165,7 +25885,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -26270,47 +25991,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 4 i32.gt_s select @@ -26319,13 +26039,13 @@ i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -26335,9 +26055,9 @@ select else local.get $1 - local.get $4 + local.get $2 local.get $1 - local.get $4 + local.get $2 i32.lt_s select end @@ -26356,9 +26076,9 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -26380,42 +26100,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/typedarray/Uint32Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $2 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -26441,36 +26159,36 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/typedarray/Int32Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $~lib/typedarray/Uint32Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 i32.sub call $~lib/array/Array#__get - local.get $4 + local.get $2 i32.ne if i32.const 0 @@ -26488,7 +26206,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -26575,8 +26294,8 @@ (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer @@ -26595,35 +26314,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int64Array#get:length - local.tee $4 + local.tee $5 i32.const 1 i32.gt_u if - local.get $4 + local.get $5 i32.const 1 i32.shr_u - local.set $5 - local.get $4 + local.set $3 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 loop $while-continue|0 local.get $1 - local.get $5 + local.get $3 i32.lt_u if local.get $2 @@ -26633,10 +26351,10 @@ i32.add local.tee $6 i64.load - local.set $3 + local.set $4 local.get $6 local.get $2 - local.get $4 + local.get $5 local.get $1 i32.sub i32.const 3 @@ -26646,7 +26364,7 @@ i64.load i64.store local.get $6 - local.get $3 + local.get $4 i64.store local.get $1 i32.const 1 @@ -26682,47 +26400,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 4 i32.gt_s select @@ -26731,13 +26448,13 @@ i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -26747,9 +26464,9 @@ select else local.get $1 - local.get $4 + local.get $2 local.get $1 - local.get $4 + local.get $2 i32.lt_s select end @@ -26768,15 +26485,14 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -26793,42 +26509,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/typedarray/Int64Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $3 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $4 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -26856,31 +26570,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $~lib/typedarray/Int64Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $~lib/typedarray/Int64Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $3 + local.get $2 i32.const 7616 - local.get $5 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -26904,7 +26618,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -27008,47 +26723,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 4 i32.gt_s select @@ -27057,13 +26771,13 @@ i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -27073,9 +26787,9 @@ select else local.get $1 - local.get $4 + local.get $2 local.get $1 - local.get $4 + local.get $2 i32.lt_s select end @@ -27094,15 +26808,14 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -27119,42 +26832,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/typedarray/Uint64Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $3 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $4 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -27182,31 +26893,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $~lib/typedarray/Int64Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $~lib/typedarray/Uint64Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $3 + local.get $2 i32.const 7616 - local.get $5 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -27230,7 +26941,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -27317,8 +27029,8 @@ (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 f32) - (local $4 i32) + (local $3 i32) + (local $4 f32) (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer @@ -27337,35 +27049,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int32Array#get:length - local.tee $4 + local.tee $5 i32.const 1 i32.gt_u if - local.get $4 + local.get $5 i32.const 1 i32.shr_u - local.set $5 - local.get $4 + local.set $3 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 loop $while-continue|0 local.get $1 - local.get $5 + local.get $3 i32.lt_u if local.get $2 @@ -27375,10 +27086,10 @@ i32.add local.tee $6 f32.load - local.set $3 + local.set $4 local.get $6 local.get $2 - local.get $4 + local.get $5 local.get $1 i32.sub i32.const 2 @@ -27388,7 +27099,7 @@ f32.load f32.store local.get $6 - local.get $3 + local.get $4 f32.store local.get $1 i32.const 1 @@ -27424,47 +27135,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 4 i32.gt_s select @@ -27473,13 +27183,13 @@ i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -27489,9 +27199,9 @@ select else local.get $1 - local.get $4 + local.get $2 local.get $1 - local.get $4 + local.get $2 i32.lt_s select end @@ -27510,15 +27220,14 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) + (local $2 f32) + (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -27535,42 +27244,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/typedarray/Float32Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $3 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $4 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -27598,31 +27305,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $~lib/typedarray/Float32Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $~lib/typedarray/Float32Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $3 + local.get $2 i32.const 7616 - local.get $5 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -27646,7 +27353,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -27733,8 +27441,8 @@ (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 i32) + (local $3 i32) + (local $4 f64) (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer @@ -27753,35 +27461,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int64Array#get:length - local.tee $4 + local.tee $5 i32.const 1 i32.gt_u if - local.get $4 + local.get $5 i32.const 1 i32.shr_u - local.set $5 - local.get $4 + local.set $3 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 loop $while-continue|0 local.get $1 - local.get $5 + local.get $3 i32.lt_u if local.get $2 @@ -27791,10 +27498,10 @@ i32.add local.tee $6 f64.load - local.set $3 + local.set $4 local.get $6 local.get $2 - local.get $4 + local.get $5 local.get $1 i32.sub i32.const 3 @@ -27804,7 +27511,7 @@ f64.load f64.store local.get $6 - local.get $3 + local.get $4 f64.store local.get $1 i32.const 1 @@ -27820,13 +27527,12 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f64) + (local $2 f64) + (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -27843,42 +27549,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 i32.const 7616 call $~lib/array/Array#get:length - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/typedarray/Float64Array#constructor local.tee $1 i32.store offset=12 loop $for-loop|0 local.get $0 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 + local.get $3 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=16 - local.get $4 + local.get $3 local.get $0 i32.const 7616 local.get $0 @@ -27906,31 +27610,31 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 call $~lib/typedarray/Float64Array#reverse drop i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $~lib/typedarray/Float64Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $3 + local.get $2 i32.const 7616 - local.get $5 + local.get $4 i32.const 1 i32.sub local.get $0 @@ -27954,7 +27658,8 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 local.get $1 @@ -28057,14 +27762,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -28076,7 +27780,7 @@ local.get $3 i32.ge_s i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" drop local.get $2 i32.const 0 @@ -28113,7 +27817,7 @@ i32.const 255 i32.and i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" drop local.get $2 i32.const 1 @@ -28149,14 +27853,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -28164,7 +27867,7 @@ call $~lib/typedarray/Int8Array#get:length local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" drop local.get $2 local.get $3 @@ -28202,7 +27905,7 @@ i32.const 255 i32.and i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" drop local.get $2 i32.const 1 @@ -28271,11 +27974,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -28292,37 +27994,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Int8Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -28337,9 +28037,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -28352,9 +28052,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 11 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -28369,9 +28069,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -28386,9 +28086,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -28403,9 +28103,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int8Array#indexOf @@ -28420,9 +28120,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int8Array#indexOf @@ -28437,9 +28137,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#indexOf @@ -28454,9 +28154,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 10 call $~lib/typedarray/Int8Array#indexOf @@ -28471,9 +28171,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -100 call $~lib/typedarray/Int8Array#indexOf @@ -28488,11 +28188,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#lastIndexOf@varargs if @@ -28504,11 +28204,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 11 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const -1 @@ -28522,11 +28222,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const -1 @@ -28540,11 +28240,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 3 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const 3 @@ -28558,9 +28258,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#lastIndexOf @@ -28575,9 +28275,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int8Array#lastIndexOf @@ -28592,9 +28292,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int8Array#lastIndexOf @@ -28609,9 +28309,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 100 call $~lib/typedarray/Int8Array#lastIndexOf @@ -28626,9 +28326,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -10 call $~lib/typedarray/Int8Array#lastIndexOf @@ -28643,9 +28343,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -11 call $~lib/typedarray/Int8Array#lastIndexOf @@ -28660,11 +28360,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Int8Array#subarray @@ -28809,11 +28508,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -28830,37 +28528,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -28876,9 +28572,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -28891,9 +28587,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 11 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -28908,9 +28604,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -28925,9 +28621,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -28942,9 +28638,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int8Array#indexOf @@ -28959,9 +28655,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int8Array#indexOf @@ -28976,9 +28672,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#indexOf @@ -28993,9 +28689,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 10 call $~lib/typedarray/Int8Array#indexOf @@ -29010,9 +28706,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -100 call $~lib/typedarray/Int8Array#indexOf @@ -29027,11 +28723,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#lastIndexOf@varargs if @@ -29043,11 +28739,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 11 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const -1 @@ -29061,11 +28757,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const -1 @@ -29079,11 +28775,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 3 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const 3 @@ -29097,9 +28793,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29114,9 +28810,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29131,9 +28827,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29148,9 +28844,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 100 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29165,9 +28861,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -10 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29182,9 +28878,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -11 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29199,11 +28895,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9 call $~lib/typedarray/Uint8Array#subarray local.tee $0 @@ -29347,11 +29042,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29368,37 +29062,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -29414,9 +29106,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -29429,9 +29121,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 11 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -29446,9 +29138,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -29463,9 +29155,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/typedarray/Int8Array#indexOf @@ -29480,9 +29172,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int8Array#indexOf @@ -29497,9 +29189,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int8Array#indexOf @@ -29514,9 +29206,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#indexOf @@ -29531,9 +29223,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 10 call $~lib/typedarray/Int8Array#indexOf @@ -29548,9 +29240,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -100 call $~lib/typedarray/Int8Array#indexOf @@ -29565,11 +29257,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#lastIndexOf@varargs if @@ -29581,11 +29273,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 11 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const -1 @@ -29599,11 +29291,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const -1 @@ -29617,11 +29309,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 3 call $~lib/typedarray/Int8Array#lastIndexOf@varargs i32.const 3 @@ -29635,9 +29327,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29652,9 +29344,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29669,9 +29361,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29686,9 +29378,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 100 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29703,9 +29395,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -10 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29720,9 +29412,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -11 call $~lib/typedarray/Int8Array#lastIndexOf @@ -29737,11 +29429,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9 call $~lib/typedarray/Uint8ClampedArray#subarray local.tee $0 @@ -29903,14 +29594,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -29922,7 +29612,7 @@ local.get $3 i32.ge_s i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" drop local.get $2 i32.const 0 @@ -29961,7 +29651,7 @@ i32.const 65535 i32.and i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" drop local.get $2 i32.const 1 @@ -29997,14 +29687,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -30012,7 +29701,7 @@ call $~lib/typedarray/Int16Array#get:length local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" drop local.get $2 local.get $3 @@ -30052,7 +29741,7 @@ i32.const 65535 i32.and i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" drop local.get $2 i32.const 1 @@ -30121,11 +29810,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -30142,37 +29830,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -30187,9 +29873,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -30202,9 +29888,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 11 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -30219,9 +29905,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -30236,9 +29922,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -30253,9 +29939,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int16Array#indexOf @@ -30270,9 +29956,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int16Array#indexOf @@ -30287,9 +29973,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#indexOf @@ -30304,9 +29990,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 10 call $~lib/typedarray/Int16Array#indexOf @@ -30321,9 +30007,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -100 call $~lib/typedarray/Int16Array#indexOf @@ -30338,11 +30024,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#lastIndexOf@varargs if @@ -30354,11 +30040,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 11 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 @@ -30372,11 +30058,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 @@ -30390,11 +30076,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 3 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const 3 @@ -30408,9 +30094,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30425,9 +30111,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30442,9 +30128,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30459,9 +30145,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30476,9 +30162,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -10 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30493,9 +30179,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -11 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30510,11 +30196,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9 call $~lib/typedarray/Int16Array#subarray local.tee $0 @@ -30658,11 +30343,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -30679,37 +30363,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -30725,9 +30407,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -30740,9 +30422,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 11 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -30757,9 +30439,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -30774,9 +30456,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/typedarray/Int16Array#indexOf @@ -30791,9 +30473,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int16Array#indexOf @@ -30808,9 +30490,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int16Array#indexOf @@ -30825,9 +30507,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#indexOf @@ -30842,9 +30524,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 10 call $~lib/typedarray/Int16Array#indexOf @@ -30859,9 +30541,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -100 call $~lib/typedarray/Int16Array#indexOf @@ -30876,11 +30558,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#lastIndexOf@varargs if @@ -30892,11 +30574,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 11 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 @@ -30910,11 +30592,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 @@ -30928,11 +30610,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 3 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const 3 @@ -30946,9 +30628,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30963,9 +30645,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30980,9 +30662,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int16Array#lastIndexOf @@ -30997,9 +30679,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#lastIndexOf @@ -31014,9 +30696,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -10 call $~lib/typedarray/Int16Array#lastIndexOf @@ -31031,9 +30713,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -11 call $~lib/typedarray/Int16Array#lastIndexOf @@ -31048,11 +30730,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9 call $~lib/typedarray/Uint16Array#subarray local.tee $0 @@ -31214,14 +30895,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -31233,7 +30913,7 @@ local.get $3 i32.ge_s i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" drop local.get $2 i32.const 0 @@ -31270,7 +30950,7 @@ i32.load local.get $1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" drop local.get $2 i32.const 1 @@ -31306,14 +30986,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -31321,7 +31000,7 @@ call $~lib/typedarray/Int32Array#get:length local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" drop local.get $2 local.get $3 @@ -31359,7 +31038,7 @@ i32.load local.get $1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" drop local.get $2 i32.const 1 @@ -31428,11 +31107,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -31449,37 +31127,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -31493,9 +31169,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -31508,9 +31184,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 11 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -31525,9 +31201,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -31542,9 +31218,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/typedarray/Int32Array#indexOf @@ -31559,9 +31235,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int32Array#indexOf @@ -31576,9 +31252,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int32Array#indexOf @@ -31593,9 +31269,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#indexOf @@ -31610,9 +31286,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 10 call $~lib/typedarray/Int32Array#indexOf @@ -31627,9 +31303,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -100 call $~lib/typedarray/Int32Array#indexOf @@ -31644,11 +31320,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int32Array#lastIndexOf@varargs if @@ -31660,11 +31336,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 11 call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const -1 @@ -31678,11 +31354,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const -1 @@ -31696,11 +31372,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 3 call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const 3 @@ -31714,9 +31390,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#lastIndexOf @@ -31731,9 +31407,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Int32Array#lastIndexOf @@ -31748,9 +31424,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Int32Array#lastIndexOf @@ -31765,9 +31441,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 100 call $~lib/typedarray/Int32Array#lastIndexOf @@ -31782,9 +31458,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -10 call $~lib/typedarray/Int32Array#lastIndexOf @@ -31799,9 +31475,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -11 call $~lib/typedarray/Int32Array#lastIndexOf @@ -31816,11 +31492,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Int32Array#subarray @@ -31983,14 +31658,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -32002,7 +31676,7 @@ local.get $3 i32.ge_s i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" drop local.get $2 i32.const 0 @@ -32039,7 +31713,7 @@ i32.load local.get $1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" drop local.get $2 i32.const 1 @@ -32075,14 +31749,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -32090,7 +31763,7 @@ call $~lib/typedarray/Int32Array#get:length local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" drop local.get $2 local.get $3 @@ -32128,7 +31801,7 @@ i32.load local.get $1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" drop local.get $2 i32.const 1 @@ -32197,11 +31870,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -32218,37 +31890,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -32262,9 +31932,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/typedarray/Uint32Array#indexOf @@ -32277,9 +31947,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 11 i32.const 0 call $~lib/typedarray/Uint32Array#indexOf @@ -32294,9 +31964,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/typedarray/Uint32Array#indexOf @@ -32311,9 +31981,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 0 call $~lib/typedarray/Uint32Array#indexOf @@ -32328,9 +31998,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Uint32Array#indexOf @@ -32345,9 +32015,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Uint32Array#indexOf @@ -32362,9 +32032,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#indexOf @@ -32379,9 +32049,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 10 call $~lib/typedarray/Uint32Array#indexOf @@ -32396,9 +32066,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -100 call $~lib/typedarray/Uint32Array#indexOf @@ -32413,11 +32083,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Uint32Array#lastIndexOf@varargs if @@ -32429,11 +32099,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 11 call $~lib/typedarray/Uint32Array#lastIndexOf@varargs i32.const -1 @@ -32447,11 +32117,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 call $~lib/typedarray/Uint32Array#lastIndexOf@varargs i32.const -1 @@ -32465,11 +32135,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 3 call $~lib/typedarray/Uint32Array#lastIndexOf@varargs i32.const 3 @@ -32483,9 +32153,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#lastIndexOf @@ -32500,9 +32170,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 3 call $~lib/typedarray/Uint32Array#lastIndexOf @@ -32517,9 +32187,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 3 i32.const 2 call $~lib/typedarray/Uint32Array#lastIndexOf @@ -32534,9 +32204,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 100 call $~lib/typedarray/Uint32Array#lastIndexOf @@ -32551,9 +32221,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -10 call $~lib/typedarray/Uint32Array#lastIndexOf @@ -32568,9 +32238,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -11 call $~lib/typedarray/Uint32Array#lastIndexOf @@ -32585,11 +32255,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9 call $~lib/typedarray/Uint32Array#subarray local.tee $0 @@ -32751,14 +32420,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -32770,7 +32438,7 @@ local.get $3 i32.ge_s i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" drop local.get $2 i32.const 0 @@ -32807,7 +32475,7 @@ i64.load local.get $1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" drop local.get $2 i32.const 1 @@ -32843,14 +32511,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -32858,7 +32525,7 @@ call $~lib/typedarray/Int64Array#get:length local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" drop local.get $2 local.get $3 @@ -32896,7 +32563,7 @@ i64.load local.get $1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" drop local.get $2 i32.const 1 @@ -32965,11 +32632,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -32986,37 +32652,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -33031,9 +32695,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 0 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -33046,9 +32710,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 11 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -33063,9 +32727,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const -1 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -33080,9 +32744,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 0 call $~lib/typedarray/Int64Array#indexOf @@ -33097,9 +32761,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 2 call $~lib/typedarray/Int64Array#indexOf @@ -33114,9 +32778,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 3 call $~lib/typedarray/Int64Array#indexOf @@ -33131,9 +32795,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 4 call $~lib/typedarray/Int64Array#indexOf @@ -33148,9 +32812,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const 10 call $~lib/typedarray/Int64Array#indexOf @@ -33165,9 +32829,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const -100 call $~lib/typedarray/Int64Array#indexOf @@ -33182,11 +32846,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i64.const 0 call $~lib/typedarray/Int64Array#lastIndexOf@varargs if @@ -33198,11 +32862,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i64.const 11 call $~lib/typedarray/Int64Array#lastIndexOf@varargs i32.const -1 @@ -33216,11 +32880,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i64.const -1 call $~lib/typedarray/Int64Array#lastIndexOf@varargs i32.const -1 @@ -33234,11 +32898,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i64.const 3 call $~lib/typedarray/Int64Array#lastIndexOf@varargs i32.const 3 @@ -33252,9 +32916,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 4 call $~lib/typedarray/Int64Array#lastIndexOf @@ -33269,9 +32933,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 3 call $~lib/typedarray/Int64Array#lastIndexOf @@ -33286,9 +32950,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 2 call $~lib/typedarray/Int64Array#lastIndexOf @@ -33303,9 +32967,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const 100 call $~lib/typedarray/Int64Array#lastIndexOf @@ -33320,9 +32984,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const -10 call $~lib/typedarray/Int64Array#lastIndexOf @@ -33337,9 +33001,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const -11 call $~lib/typedarray/Int64Array#lastIndexOf @@ -33354,11 +33018,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9 call $~lib/typedarray/Int64Array#subarray local.tee $0 @@ -33520,14 +33183,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -33539,7 +33201,7 @@ local.get $3 i32.ge_s i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" drop local.get $2 i32.const 0 @@ -33576,7 +33238,7 @@ i64.load local.get $1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" drop local.get $2 i32.const 1 @@ -33612,14 +33274,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -33627,7 +33288,7 @@ call $~lib/typedarray/Int64Array#get:length local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" drop local.get $2 local.get $3 @@ -33665,7 +33326,7 @@ i64.load local.get $1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" drop local.get $2 i32.const 1 @@ -33734,11 +33395,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -33755,37 +33415,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -33800,9 +33458,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 0 i32.const 0 call $~lib/typedarray/Uint64Array#indexOf @@ -33815,9 +33473,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 11 i32.const 0 call $~lib/typedarray/Uint64Array#indexOf @@ -33832,9 +33490,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const -1 i32.const 0 call $~lib/typedarray/Uint64Array#indexOf @@ -33849,9 +33507,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 0 call $~lib/typedarray/Uint64Array#indexOf @@ -33866,9 +33524,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 2 call $~lib/typedarray/Uint64Array#indexOf @@ -33883,9 +33541,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 3 call $~lib/typedarray/Uint64Array#indexOf @@ -33900,9 +33558,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 4 call $~lib/typedarray/Uint64Array#indexOf @@ -33917,9 +33575,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const 10 call $~lib/typedarray/Uint64Array#indexOf @@ -33934,9 +33592,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const -100 call $~lib/typedarray/Uint64Array#indexOf @@ -33951,11 +33609,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i64.const 0 call $~lib/typedarray/Uint64Array#lastIndexOf@varargs if @@ -33967,11 +33625,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i64.const 11 call $~lib/typedarray/Uint64Array#lastIndexOf@varargs i32.const -1 @@ -33985,11 +33643,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i64.const -1 call $~lib/typedarray/Uint64Array#lastIndexOf@varargs i32.const -1 @@ -34003,11 +33661,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i64.const 3 call $~lib/typedarray/Uint64Array#lastIndexOf@varargs i32.const 3 @@ -34021,9 +33679,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 4 call $~lib/typedarray/Uint64Array#lastIndexOf @@ -34038,9 +33696,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 3 call $~lib/typedarray/Uint64Array#lastIndexOf @@ -34055,9 +33713,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 3 i32.const 2 call $~lib/typedarray/Uint64Array#lastIndexOf @@ -34072,9 +33730,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const 100 call $~lib/typedarray/Uint64Array#lastIndexOf @@ -34089,9 +33747,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const -10 call $~lib/typedarray/Uint64Array#lastIndexOf @@ -34106,9 +33764,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i64.const 1 i32.const -11 call $~lib/typedarray/Uint64Array#lastIndexOf @@ -34123,11 +33781,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9 call $~lib/typedarray/Uint64Array#subarray local.tee $0 @@ -34289,14 +33946,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -34308,7 +33964,7 @@ local.get $3 i32.ge_s i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $2 i32.const 0 @@ -34345,7 +34001,7 @@ f32.load local.get $1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $2 i32.const 1 @@ -34381,14 +34037,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -34396,7 +34051,7 @@ call $~lib/typedarray/Int32Array#get:length local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $2 local.get $3 @@ -34434,7 +34089,7 @@ f32.load local.get $1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $2 i32.const 1 @@ -34503,11 +34158,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -34524,37 +34178,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -34569,9 +34221,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 0 i32.const 0 call $~lib/typedarray/Float32Array#indexOf @@ -34584,9 +34236,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 11 i32.const 0 call $~lib/typedarray/Float32Array#indexOf @@ -34601,9 +34253,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const -1 i32.const 0 call $~lib/typedarray/Float32Array#indexOf @@ -34618,9 +34270,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 3 i32.const 0 call $~lib/typedarray/Float32Array#indexOf @@ -34635,9 +34287,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 3 i32.const 2 call $~lib/typedarray/Float32Array#indexOf @@ -34652,9 +34304,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 3 i32.const 3 call $~lib/typedarray/Float32Array#indexOf @@ -34669,9 +34321,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 3 i32.const 4 call $~lib/typedarray/Float32Array#indexOf @@ -34686,9 +34338,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 1 i32.const 10 call $~lib/typedarray/Float32Array#indexOf @@ -34703,9 +34355,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 1 i32.const -100 call $~lib/typedarray/Float32Array#indexOf @@ -34720,11 +34372,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const 0 call $~lib/typedarray/Float32Array#lastIndexOf@varargs if @@ -34736,11 +34388,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const 11 call $~lib/typedarray/Float32Array#lastIndexOf@varargs i32.const -1 @@ -34754,11 +34406,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const -1 call $~lib/typedarray/Float32Array#lastIndexOf@varargs i32.const -1 @@ -34772,11 +34424,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const 3 call $~lib/typedarray/Float32Array#lastIndexOf@varargs i32.const 3 @@ -34790,9 +34442,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 3 i32.const 4 call $~lib/typedarray/Float32Array#lastIndexOf @@ -34807,9 +34459,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 3 i32.const 3 call $~lib/typedarray/Float32Array#lastIndexOf @@ -34824,9 +34476,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 3 i32.const 2 call $~lib/typedarray/Float32Array#lastIndexOf @@ -34841,9 +34493,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 1 i32.const 100 call $~lib/typedarray/Float32Array#lastIndexOf @@ -34858,9 +34510,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 1 i32.const -10 call $~lib/typedarray/Float32Array#lastIndexOf @@ -34875,9 +34527,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f32.const 1 i32.const -11 call $~lib/typedarray/Float32Array#lastIndexOf @@ -34892,11 +34544,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9 call $~lib/typedarray/Float32Array#subarray local.tee $0 @@ -35058,14 +34709,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -35077,7 +34727,7 @@ local.get $3 i32.ge_s i32.or - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" drop local.get $2 i32.const 0 @@ -35114,7 +34764,7 @@ f64.load local.get $1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" drop local.get $2 i32.const 1 @@ -35150,14 +34800,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $3 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const -1 @@ -35165,7 +34814,7 @@ call $~lib/typedarray/Int64Array#get:length local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" drop local.get $2 local.get $3 @@ -35203,7 +34852,7 @@ f64.load local.get $1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" drop local.get $2 i32.const 1 @@ -35272,11 +34921,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -35293,37 +34941,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=4 i32.const 7728 call $~lib/array/Array#get:length - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=4 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 7728 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -35338,9 +34984,9 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 0 i32.const 0 call $~lib/typedarray/Float64Array#indexOf @@ -35353,9 +34999,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 11 i32.const 0 call $~lib/typedarray/Float64Array#indexOf @@ -35370,9 +35016,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const -1 i32.const 0 call $~lib/typedarray/Float64Array#indexOf @@ -35387,9 +35033,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 3 i32.const 0 call $~lib/typedarray/Float64Array#indexOf @@ -35404,9 +35050,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 3 i32.const 2 call $~lib/typedarray/Float64Array#indexOf @@ -35421,9 +35067,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 3 i32.const 3 call $~lib/typedarray/Float64Array#indexOf @@ -35438,9 +35084,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 3 i32.const 4 call $~lib/typedarray/Float64Array#indexOf @@ -35455,9 +35101,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 1 i32.const 10 call $~lib/typedarray/Float64Array#indexOf @@ -35472,9 +35118,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 1 i32.const -100 call $~lib/typedarray/Float64Array#indexOf @@ -35489,11 +35135,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f64.const 0 call $~lib/typedarray/Float64Array#lastIndexOf@varargs if @@ -35505,11 +35151,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f64.const 11 call $~lib/typedarray/Float64Array#lastIndexOf@varargs i32.const -1 @@ -35523,11 +35169,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f64.const -1 call $~lib/typedarray/Float64Array#lastIndexOf@varargs i32.const -1 @@ -35541,11 +35187,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f64.const 3 call $~lib/typedarray/Float64Array#lastIndexOf@varargs i32.const 3 @@ -35559,9 +35205,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 3 i32.const 4 call $~lib/typedarray/Float64Array#lastIndexOf @@ -35576,9 +35222,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 3 i32.const 3 call $~lib/typedarray/Float64Array#lastIndexOf @@ -35593,9 +35239,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 3 i32.const 2 call $~lib/typedarray/Float64Array#lastIndexOf @@ -35610,9 +35256,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 1 i32.const 100 call $~lib/typedarray/Float64Array#lastIndexOf @@ -35627,9 +35273,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 1 i32.const -10 call $~lib/typedarray/Float64Array#lastIndexOf @@ -35644,9 +35290,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 f64.const 1 i32.const -11 call $~lib/typedarray/Float64Array#lastIndexOf @@ -35661,11 +35307,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Float64Array#subarray @@ -35814,7 +35459,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -35831,10 +35475,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -35863,7 +35506,7 @@ select i32.const 1 i32.shl - local.set $4 + local.set $3 local.get $2 i32.const 0 local.get $2 @@ -35872,22 +35515,22 @@ select i32.const 1 i32.shl - local.tee $5 - local.get $4 + local.tee $4 + local.get $3 i32.sub local.tee $2 i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 return end - local.get $4 + local.get $3 i32.eqz - local.get $5 + local.get $4 local.get $1 i32.const 1 i32.shl @@ -35909,7 +35552,7 @@ i32.store offset=4 local.get $1 local.get $0 - local.get $4 + local.get $3 i32.add local.get $2 memory.copy @@ -35936,16 +35579,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -35964,17 +35606,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -35982,20 +35623,19 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$6 end block $folding-inner0 - local.get $5 + local.get $6 i32.eqz if - local.get $3 + local.get $4 i32.load8_s call $~lib/util/number/itoa32 local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 @@ -36003,29 +35643,29 @@ local.tee $0 i32.const 11 i32.add - local.get $5 + local.get $6 i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $6 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add local.get $2 - local.get $3 + local.get $4 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -36034,7 +35674,7 @@ local.set $1 local.get $0 if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl @@ -36056,14 +35696,14 @@ br $for-loop|0 end end - local.get $6 - local.get $4 + local.get $3 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $5 + local.get $4 + local.get $6 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -36073,9 +35713,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $0 call $~lib/string/String#substring local.set $0 @@ -36085,7 +35725,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray$6 end global.get $~lib/memory/__stack_pointer @@ -36130,14 +35770,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -36152,8 +35791,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -36163,7 +35800,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -36175,12 +35812,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -36291,16 +35928,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -36319,17 +35955,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -36337,20 +35972,19 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$7 end block $folding-inner0 - local.get $5 + local.get $6 i32.eqz if - local.get $3 + local.get $4 i32.load8_u call $~lib/util/number/utoa32 local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 @@ -36358,29 +35992,29 @@ local.tee $0 i32.const 10 i32.add - local.get $5 + local.get $6 i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $6 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add local.get $2 - local.get $3 + local.get $4 i32.add i32.load8_u call $~lib/util/number/itoa_buffered @@ -36389,7 +36023,7 @@ local.set $1 local.get $0 if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl @@ -36411,14 +36045,14 @@ br $for-loop|0 end end - local.get $6 - local.get $4 + local.get $3 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $5 + local.get $4 + local.get $6 i32.add i32.load8_u call $~lib/util/number/itoa_buffered @@ -36428,9 +36062,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $0 call $~lib/string/String#substring local.set $0 @@ -36440,7 +36074,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray$7 end global.get $~lib/memory/__stack_pointer @@ -36465,7 +36099,6 @@ unreachable ) (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -36482,13 +36115,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -36517,16 +36149,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -36545,17 +36176,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -36563,20 +36193,19 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$8 end block $folding-inner0 - local.get $5 + local.get $6 i32.eqz if - local.get $3 + local.get $4 i32.load16_s call $~lib/util/number/itoa32 local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 @@ -36584,28 +36213,28 @@ local.tee $0 i32.const 11 i32.add - local.get $5 + local.get $6 i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $6 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 + local.get $4 local.get $2 i32.const 1 i32.shl @@ -36617,7 +36246,7 @@ local.set $1 local.get $0 if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl @@ -36639,14 +36268,14 @@ br $for-loop|0 end end - local.get $6 - local.get $4 + local.get $3 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $5 + local.get $4 + local.get $6 i32.const 1 i32.shl i32.add @@ -36658,9 +36287,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $0 call $~lib/string/String#substring local.set $0 @@ -36670,7 +36299,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray$8 end global.get $~lib/memory/__stack_pointer @@ -36711,16 +36340,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -36739,17 +36367,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -36757,20 +36384,19 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$9 end block $folding-inner0 - local.get $5 + local.get $6 i32.eqz if - local.get $3 + local.get $4 i32.load16_u call $~lib/util/number/utoa32 local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 @@ -36778,28 +36404,28 @@ local.tee $0 i32.const 10 i32.add - local.get $5 + local.get $6 i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $6 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 + local.get $4 local.get $2 i32.const 1 i32.shl @@ -36811,7 +36437,7 @@ local.set $1 local.get $0 if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl @@ -36833,14 +36459,14 @@ br $for-loop|0 end end - local.get $6 - local.get $4 + local.get $3 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $5 + local.get $4 + local.get $6 i32.const 1 i32.shl i32.add @@ -36852,9 +36478,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $0 call $~lib/string/String#substring local.set $0 @@ -36864,7 +36490,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray$9 end global.get $~lib/memory/__stack_pointer @@ -36905,16 +36531,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -36933,17 +36558,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -36951,20 +36575,19 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$10 end block $folding-inner0 - local.get $5 + local.get $6 i32.eqz if - local.get $3 + local.get $4 i32.load call $~lib/util/number/itoa32 local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 @@ -36972,28 +36595,28 @@ local.tee $0 i32.const 11 i32.add - local.get $5 + local.get $6 i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $6 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 + local.get $4 local.get $2 i32.const 2 i32.shl @@ -37005,7 +36628,7 @@ local.set $1 local.get $0 if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl @@ -37027,14 +36650,14 @@ br $for-loop|0 end end - local.get $6 - local.get $4 + local.get $3 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $5 + local.get $4 + local.get $6 i32.const 2 i32.shl i32.add @@ -37046,9 +36669,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $0 call $~lib/string/String#substring local.set $0 @@ -37058,7 +36681,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray$10 end global.get $~lib/memory/__stack_pointer @@ -37099,16 +36722,15 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -37127,17 +36749,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -37145,20 +36766,19 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$11 end block $folding-inner0 - local.get $5 + local.get $6 i32.eqz if - local.get $3 + local.get $4 i32.load call $~lib/util/number/utoa32 local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 @@ -37166,28 +36786,28 @@ local.tee $0 i32.const 10 i32.add - local.get $5 + local.get $6 i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $3 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store offset=4 loop $for-loop|0 local.get $2 - local.get $5 + local.get $6 i32.lt_s if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 + local.get $4 local.get $2 i32.const 2 i32.shl @@ -37199,7 +36819,7 @@ local.set $1 local.get $0 if - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.shl @@ -37221,14 +36841,14 @@ br $for-loop|0 end end - local.get $6 - local.get $4 + local.get $3 + local.get $5 local.get $1 i32.const 1 i32.shl i32.add - local.get $3 - local.get $5 + local.get $4 + local.get $6 i32.const 2 i32.shl i32.add @@ -37240,9 +36860,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $0 call $~lib/string/String#substring local.set $0 @@ -37252,7 +36872,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray$11 end global.get $~lib/memory/__stack_pointer @@ -37278,8 +36898,8 @@ ) (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -37294,21 +36914,20 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $6 - local.get $2 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store @@ -37321,18 +36940,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinIntegerArray$12 - local.get $2 + local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -37341,14 +36959,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$12 end block $folding-inner0 - local.get $5 + local.get $6 i32.eqz if block $__inlined_func$~lib/util/number/itoa64 (result i32) - local.get $6 + local.get $5 i64.load i64.extend32_s - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -37358,13 +36976,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $2 i64.eqz if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -37372,154 +36989,154 @@ br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 - local.get $3 + local.get $2 i64.sub - local.get $3 - local.get $3 + local.get $2 + local.get $2 i64.const 63 i64.shr_u i32.wrap_i64 i32.const 1 i32.shl - local.tee $4 + local.tee $0 select - local.tee $3 + local.tee $2 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.wrap_i64 - local.tee $2 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 + local.tee $4 i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new local.tee $1 i32.store + local.get $0 local.get $1 - local.get $4 i32.add - local.get $2 - local.get $0 + local.get $3 + local.get $4 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $3 + local.get $2 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $3 + local.get $2 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $3 + local.get $2 i64.const 10000000000 i64.ge_u i32.add else - local.get $3 + local.get $2 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $3 + local.get $2 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $3 + local.get $2 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $3 + local.get $2 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $3 + local.get $2 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $3 + local.get $2 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $0 + local.tee $3 i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new local.tee $1 i32.store + local.get $0 local.get $1 - local.get $4 i32.add + local.get $2 local.get $3 - local.get $0 call $~lib/util/number/utoa64_dec_lut end - local.get $4 + local.get $0 if local.get $1 i32.const 45 @@ -37535,22 +37152,21 @@ br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $7 i32.const 21 i32.add - local.get $5 + local.get $6 i32.mul i32.const 21 i32.add - local.tee $2 + local.tee $4 i32.const 1 i32.shl i32.const 2 @@ -37558,17 +37174,17 @@ local.tee $0 i32.store offset=4 loop $for-loop|0 - local.get $5 - local.get $7 - i32.gt_s + local.get $3 + local.get $6 + i32.lt_s if local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $6 - local.get $7 + local.get $5 + local.get $3 i32.const 3 i32.shl i32.add @@ -37577,7 +37193,7 @@ local.get $1 i32.add local.set $1 - local.get $4 + local.get $7 if local.get $0 local.get $1 @@ -37585,19 +37201,19 @@ i32.shl i32.add i32.const 9584 - local.get $4 + local.get $7 i32.const 1 i32.shl memory.copy local.get $1 - local.get $4 + local.get $7 i32.add local.set $1 end - local.get $7 + local.get $3 i32.const 1 i32.add - local.set $7 + local.set $3 br $for-loop|0 end end @@ -37606,8 +37222,8 @@ i32.const 1 i32.shl i32.add - local.get $6 local.get $5 + local.get $6 i32.const 3 i32.shl i32.add @@ -37616,7 +37232,7 @@ local.get $1 i32.add local.tee $1 - local.get $2 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -37671,24 +37287,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $7 i32.const 0 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 return end - local.get $6 + local.get $7 i32.eqz if local.get $0 @@ -37703,14 +37318,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store block $__inlined_func$~lib/util/number/utoa64$749 local.get $3 i64.eqz if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -37854,10 +37468,9 @@ br $folding-inner1 end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 9584 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 @@ -37865,23 +37478,23 @@ local.tee $1 i32.const 20 i32.add - local.get $6 + local.get $7 i32.mul i32.const 20 i32.add - local.tee $7 + local.tee $5 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 loop $for-loop|0 local.get $4 - local.get $6 + local.get $7 i32.lt_s if - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -37898,7 +37511,7 @@ local.set $2 local.get $1 if - local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl @@ -37920,14 +37533,14 @@ br $for-loop|0 end end - local.get $7 local.get $5 + local.get $6 local.get $2 i32.const 1 i32.shl i32.add local.get $0 - local.get $6 + local.get $7 i32.const 3 i32.shl i32.add @@ -37939,9 +37552,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 local.get $0 call $~lib/string/String#substring local.set $1 @@ -37951,7 +37564,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return end i32.const 49120 @@ -37969,7 +37582,6 @@ ) (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -37986,16 +37598,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -38004,7 +37615,7 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/util/string/joinIntegerArray local.set $0 @@ -38031,21 +37642,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $6 - local.get $2 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store @@ -38058,18 +37668,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinFloatArray$1393 - local.get $2 + local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $6 i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -38077,10 +37686,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray$1393 end - local.get $3 + local.get $6 i32.eqz if - local.get $6 + local.get $5 f32.load f64.promote_f32 call $~lib/util/number/dtoa @@ -38092,22 +37701,21 @@ br $__inlined_func$~lib/util/string/joinFloatArray$1393 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $2 + local.tee $4 i32.const 28 i32.add - local.get $3 + local.get $6 i32.mul i32.const 28 i32.add - local.tee $4 + local.tee $2 i32.const 1 i32.shl i32.const 2 @@ -38116,16 +37724,16 @@ i32.store offset=4 loop $for-loop|0 local.get $3 - local.get $5 - i32.gt_s + local.get $6 + i32.lt_s if local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $6 local.get $5 + local.get $3 i32.const 2 i32.shl i32.add @@ -38135,7 +37743,7 @@ local.get $1 i32.add local.set $1 - local.get $2 + local.get $4 if local.get $0 local.get $1 @@ -38143,30 +37751,30 @@ i32.shl i32.add i32.const 9584 - local.get $2 + local.get $4 i32.const 1 i32.shl memory.copy local.get $1 - local.get $2 + local.get $4 i32.add local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $4 + local.get $2 local.get $0 local.get $1 i32.const 1 i32.shl i32.add + local.get $5 local.get $6 - local.get $3 i32.const 2 i32.shl i32.add @@ -38227,21 +37835,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 - local.set $6 - local.get $2 + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store @@ -38254,18 +37861,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinFloatArray$1394 - local.get $2 + local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $6 i32.const 0 i32.lt_s if - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -38273,10 +37879,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray$1394 end - local.get $3 + local.get $6 i32.eqz if - local.get $6 + local.get $5 f64.load call $~lib/util/number/dtoa local.set $0 @@ -38287,22 +37893,21 @@ br $__inlined_func$~lib/util/string/joinFloatArray$1394 end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 9584 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $2 + local.tee $4 i32.const 28 i32.add - local.get $3 + local.get $6 i32.mul i32.const 28 i32.add - local.tee $4 + local.tee $2 i32.const 1 i32.shl i32.const 2 @@ -38311,16 +37916,16 @@ i32.store offset=4 loop $for-loop|0 local.get $3 - local.get $5 - i32.gt_s + local.get $6 + i32.lt_s if local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $6 local.get $5 + local.get $3 i32.const 3 i32.shl i32.add @@ -38329,7 +37934,7 @@ local.get $1 i32.add local.set $1 - local.get $2 + local.get $4 if local.get $0 local.get $1 @@ -38337,30 +37942,30 @@ i32.shl i32.add i32.const 9584 - local.get $2 + local.get $4 i32.const 1 i32.shl memory.copy local.get $1 - local.get $2 + local.get $4 i32.add local.set $1 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $4 + local.get $2 local.get $0 local.get $1 i32.const 1 i32.shl i32.add + local.get $5 local.get $6 - local.get $3 i32.const 3 i32.shl i32.add @@ -38436,10 +38041,9 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -38448,16 +38052,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -38566,10 +38169,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -38646,7 +38248,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -38663,14 +38265,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 @@ -38687,10 +38288,9 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 local.get $2 @@ -38708,17 +38308,18 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.load - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -38731,8 +38332,8 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 - local.get $0 local.get $3 + local.get $0 local.get $4 local.get $5 local.get $2 @@ -38760,10 +38361,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -38772,16 +38372,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -38868,7 +38467,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -38885,14 +38484,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 @@ -38909,10 +38507,9 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 local.get $2 @@ -38931,17 +38528,18 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.load - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -38954,8 +38552,8 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 - local.get $0 local.get $3 + local.get $0 local.get $4 local.get $5 local.get $2 @@ -38983,10 +38581,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -38995,16 +38592,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -39091,7 +38687,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -39108,37 +38704,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $2 + local.get $1 local.get $0 i32.const 10928 local.get $0 @@ -39153,34 +38747,35 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $3 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 local.get $3 + local.get $0 local.get $4 local.get $5 - local.get $2 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -39205,10 +38800,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -39217,16 +38811,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -39277,13 +38870,13 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 local.get $0 call $~lib/typedarray/Int16Array#__get local.set $3 @@ -39323,7 +38916,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -39340,37 +38933,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $2 + local.get $1 local.get $0 i32.const 10928 local.get $0 @@ -39386,34 +38977,35 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $3 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 local.get $3 + local.get $0 local.get $4 local.get $5 - local.get $2 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -39438,10 +39030,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -39450,16 +39041,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -39510,13 +39100,13 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 local.get $0 call $~lib/typedarray/Uint16Array#__get local.set $3 @@ -39556,7 +39146,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -39573,37 +39163,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $2 + local.get $1 local.get $0 i32.const 10928 local.get $0 @@ -39617,34 +39205,35 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $3 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 local.get $3 + local.get $0 local.get $4 local.get $5 - local.get $2 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -39669,10 +39258,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -39681,16 +39269,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -39741,13 +39328,13 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 local.get $0 call $~lib/typedarray/Int32Array#__get local.set $3 @@ -39787,7 +39374,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -39804,37 +39391,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $2 + local.get $1 local.get $0 i32.const 10928 local.get $0 @@ -39848,34 +39433,35 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.set $3 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 local.get $3 + local.get $0 local.get $4 local.get $5 - local.get $2 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -39900,10 +39486,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -39912,16 +39497,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -39972,13 +39556,13 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 local.get $0 call $~lib/typedarray/Uint32Array#__get local.set $3 @@ -40018,11 +39602,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" (local $0 i32) (local $1 i32) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -40036,37 +39620,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 + local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $3 + local.get $1 local.get $0 i32.const 10928 local.get $0 @@ -40081,34 +39663,35 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $1 i32.store offset=12 - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $4 + local.tee $0 i32.store offset=4 - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=12 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $4 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=12 - local.get $3 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=12 - local.get $0 local.get $4 + local.get $0 local.get $5 local.get $6 - local.get $3 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -40133,10 +39716,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -40145,16 +39727,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -40205,23 +39786,23 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 call $~lib/typedarray/Int64Array#__get - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 local.get $0 call $~lib/typedarray/Int64Array#__get - local.get $2 + local.get $3 i64.ne if i32.const 0 @@ -40251,11 +39832,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" (local $0 i32) (local $1 i32) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -40269,37 +39850,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 + local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $3 + local.get $1 local.get $0 i32.const 10928 local.get $0 @@ -40314,34 +39893,35 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $1 i32.store offset=12 - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $4 + local.tee $0 i32.store offset=4 - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=12 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $4 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=12 - local.get $3 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=12 - local.get $0 local.get $4 + local.get $0 local.get $5 local.get $6 - local.get $3 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -40366,10 +39946,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -40378,16 +39957,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -40438,23 +40016,23 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 call $~lib/typedarray/Uint64Array#__get - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 local.get $0 call $~lib/typedarray/Uint64Array#__get - local.get $2 + local.get $3 i64.ne if i32.const 0 @@ -40484,11 +40062,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 i32) + (local $2 i32) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -40502,37 +40080,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 + local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $3 + local.get $1 local.get $0 i32.const 10928 local.get $0 @@ -40547,34 +40123,35 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $1 i32.store offset=12 - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $4 + local.tee $0 i32.store offset=4 - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=12 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $4 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=12 - local.get $3 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=12 - local.get $0 local.get $4 + local.get $0 local.get $5 local.get $6 - local.get $3 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -40599,10 +40176,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -40611,16 +40187,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -40671,23 +40246,23 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 call $~lib/typedarray/Float32Array#__get - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 local.get $0 call $~lib/typedarray/Float32Array#__get - local.get $2 + local.get $3 f32.ne if i32.const 0 @@ -40717,11 +40292,11 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" (local $0 i32) (local $1 i32) - (local $2 f64) - (local $3 i32) + (local $2 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -40735,37 +40310,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 + local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $3 + local.get $1 local.get $0 i32.const 10928 local.get $0 @@ -40780,34 +40353,35 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $1 i32.store offset=12 - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.load - local.tee $4 + local.tee $0 i32.store offset=4 - local.get $0 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=12 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.set $4 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=12 - local.get $3 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $6 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=12 - local.get $0 local.get $4 + local.get $0 local.get $5 local.get $6 - local.get $3 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -40832,10 +40406,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -40844,16 +40417,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -40904,23 +40476,23 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 call $~lib/typedarray/Float64Array#__get - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 local.get $0 call $~lib/typedarray/Float64Array#__get - local.get $2 + local.get $3 f64.ne if i32.const 0 @@ -40970,19 +40542,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11008 @@ -41004,18 +40575,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11012 i32.load - local.set $2 + local.set $3 i32.const 0 local.set $0 loop $for-loop|0 @@ -41024,9 +40594,9 @@ i32.lt_s if local.get $0 - local.get $3 - i32.add local.get $2 + i32.add + local.get $3 local.get $0 i32.const 2 i32.shl @@ -41050,7 +40620,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -41061,21 +40630,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $5 + local.get $3 i32.ne if i32.const 0 @@ -41087,14 +40655,13 @@ end loop $for-loop|0 local.get $2 - local.get $5 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -41103,10 +40670,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $2 @@ -41114,8 +40680,8 @@ i32.load offset=4 i32.add i32.load8_s - local.set $3 - local.get $4 + local.set $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -41131,10 +40697,9 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $2 @@ -41142,13 +40707,13 @@ i32.load offset=4 i32.add i32.load8_s - local.set $6 - local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 + local.get $4 + local.get $5 i32.ne if global.get $~lib/memory/__stack_pointer @@ -41158,9 +40723,9 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $3 + local.get $4 f64.convert_i32_s - local.get $6 + local.get $5 f64.convert_i32_s f64.const 0 f64.const 0 @@ -41195,7 +40760,6 @@ (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -41212,30 +40776,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.get $3 + local.get $2 i32.const 6 i32.add i32.lt_s @@ -41248,15 +40811,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 6 i32.add - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -41266,11 +40828,11 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 - local.get $2 + local.get $3 i32.add local.get $1 local.get $0 @@ -41293,7 +40855,6 @@ ) (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -41310,19 +40871,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -41344,13 +40904,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 @@ -41358,7 +40917,7 @@ i32.load offset=4 local.get $2 memory.copy - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -41366,7 +40925,6 @@ (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -41383,30 +40941,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int16Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.get $3 + local.get $2 i32.const 4 i32.add i32.lt_s @@ -41419,15 +40976,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 4 i32.add - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -41437,11 +40993,11 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 - local.get $2 + local.get $3 i32.add local.get $1 local.get $0 @@ -41464,7 +41020,6 @@ ) (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -41481,19 +41036,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11264 @@ -41517,7 +41071,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 local.get $0 @@ -41525,7 +41078,7 @@ i32.const 7 i32.add local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 local.get $0 @@ -41533,17 +41086,17 @@ i32.load local.get $1 memory.copy - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -41560,125 +41113,124 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + 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 $7 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 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 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 16 i32.const 11312 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 - local.get $4 - local.get $5 + local.get $0 + local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -41692,28 +41244,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $8 i32.const 3 @@ -41721,48 +41272,47 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 3 i32.add - local.set $5 - local.get $9 + local.set $6 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load local.set $9 loop $for-loop|0 - local.get $0 + local.get $1 local.get $8 i32.lt_s if - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.add local.get $9 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $1 + local.tee $3 i32.trunc_sat_f32_s i32.const 0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f32.sub f32.const 0 f32.eq select i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -41771,46 +41321,46 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 16 i32.const 11392 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=20 - local.get $4 - local.get $6 + local.get $0 + local.get $7 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 16 i32.const 11424 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -41824,79 +41374,77 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int8Array#get:length - local.get $5 + local.get $6 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 2 i32.add - local.set $6 - local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if - local.get $0 - local.get $6 + local.get $1 + local.get $7 i32.add local.get $8 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $2 + local.tee $4 i32.trunc_sat_f64_s i32.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 f64.sub f64.const 0 f64.eq select i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -41905,60 +41453,60 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 16 i32.const 11456 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=20 - local.get $4 - local.get $3 + local.get $0 + local.get $5 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=20 - local.get $4 - local.get $7 + local.get $0 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 16 i32.const 11488 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -41981,7 +41529,6 @@ unreachable ) (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -41998,10 +41545,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 @@ -42010,7 +41556,7 @@ i32.add i32.load8_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -42037,21 +41583,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.ne if i32.const 0 @@ -42063,7 +41608,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -42072,15 +41617,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Uint8Array#__uget - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Uint8Array#__uget - local.tee $3 - local.get $5 + local.tee $5 + local.get $4 i32.ne if global.get $~lib/memory/__stack_pointer @@ -42090,9 +41635,9 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $5 + local.get $4 f64.convert_i32_u - local.get $3 + local.get $5 f64.convert_i32_u f64.const 0 f64.const 0 @@ -42118,10 +41663,10 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -42138,125 +41683,124 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + 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 $7 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 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 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11520 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 - local.get $4 - local.get $5 + local.get $0 + local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -42270,28 +41814,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $8 i32.const 3 @@ -42299,48 +41842,47 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 3 i32.add - local.set $5 - local.get $9 + local.set $6 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load local.set $9 loop $for-loop|0 - local.get $0 + local.get $1 local.get $8 i32.lt_s if - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.add local.get $9 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $1 + local.tee $3 i32.trunc_sat_f32_u i32.const 0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f32.sub f32.const 0 f32.eq select i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -42349,46 +41891,46 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11600 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=20 - local.get $4 - local.get $6 + local.get $0 + local.get $7 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11632 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -42402,79 +41944,77 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int8Array#get:length - local.get $5 + local.get $6 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 2 i32.add - local.set $6 - local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if - local.get $0 - local.get $6 + local.get $1 + local.get $7 i32.add local.get $8 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $2 + local.tee $4 i32.trunc_sat_f64_u i32.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 f64.sub f64.const 0 f64.eq select i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -42483,60 +42023,60 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11664 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=20 - local.get $4 - local.get $3 + local.get $0 + local.get $5 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=20 - local.get $4 - local.get $7 + local.get $0 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11696 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -42579,21 +42119,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.ne if i32.const 0 @@ -42605,7 +42144,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -42614,15 +42153,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Uint8Array#__uget - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Uint8Array#__uget - local.tee $3 - local.get $5 + local.tee $5 + local.get $4 i32.ne if global.get $~lib/memory/__stack_pointer @@ -42632,9 +42171,9 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $5 + local.get $4 f64.convert_i32_u - local.get $3 + local.get $5 f64.convert_i32_u f64.const 0 f64.const 0 @@ -42659,8 +42198,8 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -42678,24 +42217,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $4 + local.set $3 local.get $2 i32.const 0 i32.lt_s @@ -42708,7 +42246,7 @@ local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $2 - local.get $4 + local.get $3 i32.add i32.lt_s end @@ -42721,7 +42259,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 i32.store offset=8 local.get $2 @@ -42729,7 +42266,7 @@ i32.load offset=4 i32.add local.set $2 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -42739,7 +42276,7 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 @@ -42751,7 +42288,7 @@ i32.shl i32.add i64.load - local.tee $3 + local.tee $4 i32.wrap_i64 local.tee $5 i32.const 31 @@ -42765,7 +42302,7 @@ i32.const 31 i32.shr_s i64.extend_i32_s - local.get $3 + local.get $4 i64.or i64.and i64.store8 @@ -42800,19 +42337,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -42843,7 +42379,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $2 @@ -42851,12 +42386,12 @@ i32.load offset=4 i32.add local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 - local.set $1 + local.set $4 i32.const 0 local.set $0 loop $for-loop|0 @@ -42868,19 +42403,19 @@ local.get $2 i32.add i32.const 255 - local.get $1 + local.get $4 local.get $0 i32.const 1 i32.shl i32.add i32.load16_s - local.tee $4 + local.tee $1 i32.sub i32.const 31 i32.shr_s - local.get $4 + local.get $1 i32.or - local.get $4 + local.get $1 i32.const 31 i32.shr_s i32.const -1 @@ -42901,9 +42436,9 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -42922,11 +42457,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $5 @@ -43014,10 +42548,10 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -43031,56 +42565,54 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11008 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $8 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 local.set $9 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11012 i32.load local.set $10 loop $for-loop|0 - local.get $0 + local.get $1 local.get $8 i32.lt_s if - local.get $0 + local.get $1 local.get $9 i32.add i32.const 255 local.get $10 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -43098,10 +42630,10 @@ i32.xor i32.and i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -43110,22 +42642,22 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11728 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -43139,28 +42671,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $4 i32.const 3 @@ -43168,43 +42699,42 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 i32.const 3 i32.add local.set $8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load local.set $9 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 + local.get $1 local.get $4 i32.lt_s if - local.get $0 + local.get $1 local.get $8 i32.add local.get $9 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 f32.sub f32.const 0 f32.eq if (result i32) - local.get $1 + local.get $2 f32.const 255 f32.min f32.const 0 @@ -43214,10 +42744,10 @@ i32.const 0 end i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -43226,47 +42756,47 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11824 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=20 - local.get $3 + local.get $0 local.get $5 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11856 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -43280,28 +42810,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $4 i32.const 2 @@ -43309,43 +42838,42 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 i32.const 2 i32.add local.set $5 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|01 - local.get $0 + local.get $1 local.get $4 i32.lt_s if - local.get $0 + local.get $1 local.get $5 i32.add local.get $8 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.sub f64.const 0 f64.eq if (result i32) - local.get $2 + local.get $3 f64.const 255 f64.min f64.const 0 @@ -43355,10 +42883,10 @@ i32.const 0 end i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|01 end end @@ -43367,41 +42895,41 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11888 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=20 - local.get $3 + local.get $0 local.get $6 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=20 - local.get $3 + local.get $0 local.get $7 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -43415,28 +42943,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11264 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $4 i32.const 7 @@ -43444,32 +42971,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 i32.const 7 i32.add local.set $5 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11268 i32.load local.set $6 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|02 - local.get $0 + local.get $1 local.get $4 i32.lt_s if - local.get $0 + local.get $1 local.get $5 i32.add i32.const 255 - local.get $0 + local.get $1 local.get $6 i32.add i32.load8_s @@ -43486,10 +43012,10 @@ i32.xor i32.and i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|02 end end @@ -43498,19 +43024,19 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 0 i32.const 64 i32.const 11920 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -43552,19 +43078,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11008 @@ -43586,18 +43111,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11012 i32.load - local.set $2 + local.set $3 i32.const 0 local.set $0 loop $for-loop|0 @@ -43605,12 +43129,12 @@ local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -43630,7 +43154,6 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -43647,10 +43170,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -43661,7 +43183,7 @@ i32.add i32.load16_s local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -43688,21 +43210,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.ne if i32.const 0 @@ -43714,7 +43235,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -43723,15 +43244,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Int16Array#__uget - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Int16Array#__uget - local.tee $3 - local.get $5 + local.tee $5 + local.get $4 i32.ne if global.get $~lib/memory/__stack_pointer @@ -43741,9 +43262,9 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $5 + local.get $4 f64.convert_i32_s - local.get $3 + local.get $5 f64.convert_i32_s f64.const 0 f64.const 0 @@ -43770,7 +43291,6 @@ (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -43787,30 +43307,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int16Array#get:length - local.get $3 + local.get $2 i32.const 6 i32.add i32.lt_s @@ -43823,15 +43342,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 12 i32.add - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -43841,10 +43359,10 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 1 i32.shl @@ -43871,7 +43389,6 @@ (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -43888,30 +43405,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int8Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int16Array#get:length - local.get $3 + local.get $2 i32.lt_s if i32.const 1360 @@ -43922,13 +43438,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -43938,10 +43453,10 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 1 i32.shl @@ -43965,7 +43480,6 @@ ) (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -43982,19 +43496,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -44018,7 +43531,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 local.get $0 @@ -44026,7 +43538,7 @@ i32.const 8 i32.add local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 @@ -44036,7 +43548,7 @@ i32.const 1 i32.shl memory.copy - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -44061,19 +43573,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11264 @@ -44097,20 +43608,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 14 i32.add - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11268 i32.load - local.set $2 + local.set $3 i32.const 0 local.set $0 loop $for-loop|0 @@ -44118,13 +43628,13 @@ local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 1 i32.shl i32.add local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_s i32.store16 @@ -44142,10 +43652,10 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -44162,125 +43672,124 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + 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 $7 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 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 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 65 i32.const 11952 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 - local.get $4 - local.get $5 + local.get $0 + local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44294,28 +43803,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int16Array#get:length local.get $8 i32.const 3 @@ -44323,50 +43831,49 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 6 i32.add - local.set $5 - local.get $9 + local.set $6 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load local.set $9 loop $for-loop|0 - local.get $0 + local.get $1 local.get $8 i32.lt_s if - local.get $5 - local.get $0 + local.get $6 + local.get $1 i32.const 1 i32.shl i32.add local.get $9 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $1 + local.tee $3 i32.trunc_sat_f32_s i32.const 0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f32.sub f32.const 0 f32.eq select i32.store16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -44375,46 +43882,46 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 65 i32.const 12048 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=20 - local.get $4 - local.get $6 + local.get $0 + local.get $7 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 65 i32.const 12096 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -44428,81 +43935,79 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int16Array#get:length - local.get $5 + local.get $6 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 4 i32.add - local.set $6 - local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if - local.get $6 - local.get $0 + local.get $7 + local.get $1 i32.const 1 i32.shl i32.add local.get $8 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $2 + local.tee $4 i32.trunc_sat_f64_s i32.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 f64.sub f64.const 0 f64.eq select i32.store16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -44511,60 +44016,60 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 65 i32.const 12144 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=20 - local.get $4 - local.get $3 + local.get $0 + local.get $5 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=20 - local.get $4 - local.get $7 + local.get $0 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 65 i32.const 12192 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -44587,7 +44092,6 @@ unreachable ) (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -44604,10 +44108,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -44618,7 +44121,7 @@ i32.add i32.load16_u local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -44645,21 +44148,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.ne if i32.const 0 @@ -44671,7 +44173,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -44680,15 +44182,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Uint16Array#__uget - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Uint16Array#__uget - local.tee $3 - local.get $5 + local.tee $5 + local.get $4 i32.ne if global.get $~lib/memory/__stack_pointer @@ -44698,9 +44200,9 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $5 + local.get $4 f64.convert_i32_u - local.get $3 + local.get $5 f64.convert_i32_u f64.const 0 f64.const 0 @@ -44726,10 +44228,10 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -44746,125 +44248,124 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + 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 $7 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=4 - local.get $7 + local.get $2 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 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 66 i32.const 12240 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 - local.get $4 - local.get $5 + local.get $0 + local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44878,28 +44379,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length local.set $8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int16Array#get:length local.get $8 i32.const 3 @@ -44907,50 +44407,49 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 6 i32.add - local.set $5 - local.get $9 + local.set $6 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load local.set $9 loop $for-loop|0 - local.get $0 + local.get $1 local.get $8 i32.lt_s if - local.get $5 - local.get $0 + local.get $6 + local.get $1 i32.const 1 i32.shl i32.add local.get $9 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $1 + local.tee $3 i32.trunc_sat_f32_u i32.const 0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f32.sub f32.const 0 f32.eq select i32.store16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -44959,46 +44458,46 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 66 i32.const 12336 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=20 - local.get $4 - local.get $6 + local.get $0 + local.get $7 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 66 i32.const 12384 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -45012,81 +44511,79 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int16Array#get:length - local.get $5 + local.get $6 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 4 i32.add - local.set $6 - local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if - local.get $6 - local.get $0 + local.get $7 + local.get $1 i32.const 1 i32.shl i32.add local.get $8 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $2 + local.tee $4 i32.trunc_sat_f64_u i32.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 f64.sub f64.const 0 f64.eq select i32.store16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -45095,60 +44592,60 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 66 i32.const 12432 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=20 - local.get $4 - local.get $3 + local.get $0 + local.get $5 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=20 - local.get $4 - local.get $7 + local.get $0 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 1 i32.const 66 i32.const 12480 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -45172,7 +44669,6 @@ ) (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -45189,24 +44685,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/array/Array#get:length - local.set $4 + local.set $3 local.get $2 i32.const 0 i32.lt_s @@ -45219,7 +44714,7 @@ local.get $0 call $~lib/typedarray/Int32Array#get:length local.get $2 - local.get $4 + local.get $3 i32.add i32.lt_s end @@ -45232,7 +44727,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 local.get $0 @@ -45242,23 +44736,22 @@ i32.shl i32.add local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 local.get $1 i32.load offset=4 - local.get $4 + local.get $3 i32.const 2 i32.shl memory.copy - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -45275,10 +44768,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -45289,7 +44781,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -45316,21 +44808,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.ne if i32.const 0 @@ -45342,7 +44833,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -45351,15 +44842,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Int32Array#__uget - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Int32Array#__uget - local.tee $3 - local.get $5 + local.tee $5 + local.get $4 i32.ne if global.get $~lib/memory/__stack_pointer @@ -45369,9 +44860,9 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $5 + local.get $4 f64.convert_i32_s - local.get $3 + local.get $5 f64.convert_i32_s f64.const 0 f64.const 0 @@ -45398,7 +44889,6 @@ (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -45415,30 +44905,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $3 + local.get $2 i32.const 6 i32.add i32.lt_s @@ -45451,15 +44940,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 24 i32.add - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -45469,10 +44957,10 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -45499,7 +44987,6 @@ (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -45516,30 +45003,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int8Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $3 + local.get $2 i32.lt_s if i32.const 1360 @@ -45550,13 +45036,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -45566,10 +45051,10 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -45594,7 +45079,6 @@ (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -45611,30 +45095,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int16Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $3 + local.get $2 i32.const 4 i32.add i32.lt_s @@ -45647,15 +45130,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 16 i32.add - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -45665,10 +45147,10 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -45712,19 +45194,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11264 @@ -45748,20 +45229,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 28 i32.add - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11268 i32.load - local.set $2 + local.set $3 i32.const 0 local.set $0 loop $for-loop|0 @@ -45769,13 +45249,13 @@ local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 2 i32.shl i32.add local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_s i32.store @@ -45793,10 +45273,10 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -45814,127 +45294,126 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 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 $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + 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 $8 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store offset=4 - local.get $8 + local.get $2 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store offset=4 - local.get $8 + local.get $2 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store offset=4 - local.get $8 + local.get $2 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 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=20 - local.get $4 + local.get $0 i32.const 11008 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 17 i32.const 12528 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 - local.get $4 - local.get $5 + local.get $0 + local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -45948,79 +45427,77 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $5 + local.get $6 i32.const 3 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 12 i32.add local.set $9 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load local.set $10 loop $for-loop|0 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if local.get $10 - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $6 + local.tee $7 i32.add f32.load - local.set $1 - local.get $6 + local.set $3 + local.get $7 local.get $9 i32.add - local.get $1 + local.get $3 i32.trunc_sat_f32_s i32.const 0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f32.sub f32.const 0 f32.eq select i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -46029,46 +45506,46 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 17 i32.const 12640 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=20 - local.get $4 - local.get $7 + local.get $0 + local.get $8 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 17 i32.const 12704 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -46082,81 +45559,79 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $5 + local.get $6 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 8 i32.add - local.set $6 - local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load - local.set $7 + local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if - local.get $6 - local.get $0 + local.get $7 + local.get $1 i32.const 2 i32.shl i32.add - local.get $7 - local.get $0 + local.get $8 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $2 + local.tee $4 i32.trunc_sat_f64_s i32.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 f64.sub f64.const 0 f64.eq select i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -46165,60 +45640,60 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 17 i32.const 12768 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=20 - local.get $4 - local.get $3 + local.get $0 + local.get $5 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store offset=20 - local.get $4 - local.get $8 + local.get $0 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 17 i32.const 12832 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -46241,7 +45716,6 @@ unreachable ) (func $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -46258,10 +45732,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -46272,7 +45745,7 @@ i32.add i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -46299,21 +45772,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.ne if i32.const 0 @@ -46325,7 +45797,7 @@ end loop $for-loop|0 local.get $2 - local.get $4 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -46334,15 +45806,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Uint32Array#__uget - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Uint32Array#__uget - local.tee $3 - local.get $5 + local.tee $5 + local.get $4 i32.ne if global.get $~lib/memory/__stack_pointer @@ -46352,9 +45824,9 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $5 + local.get $4 f64.convert_i32_u - local.get $3 + local.get $5 f64.convert_i32_u f64.const 0 f64.const 0 @@ -46380,10 +45852,10 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) - (local $4 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -46401,127 +45873,126 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 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 $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + 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 $8 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store offset=4 - local.get $8 + local.get $2 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store offset=4 - local.get $8 + local.get $2 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store offset=4 - local.get $8 + local.get $2 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 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=20 - local.get $4 + local.get $0 i32.const 11008 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 67 i32.const 12896 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 - local.get $4 - local.get $5 + local.get $0 + local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -46535,79 +46006,77 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $5 + local.get $6 i32.const 3 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 12 i32.add local.set $9 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load local.set $10 loop $for-loop|0 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if local.get $10 - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $6 + local.tee $7 i32.add f32.load - local.set $1 - local.get $6 + local.set $3 + local.get $7 local.get $9 i32.add - local.get $1 + local.get $3 i32.trunc_sat_f32_u i32.const 0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f32.sub f32.const 0 f32.eq select i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -46616,46 +46085,46 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 67 i32.const 13008 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=20 - local.get $4 - local.get $7 + local.get $0 + local.get $8 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 67 i32.const 13072 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -46669,81 +46138,79 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $5 + local.get $6 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 8 i32.add - local.set $6 - local.get $0 + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load - local.set $7 + local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if - local.get $6 - local.get $0 + local.get $7 + local.get $1 i32.const 2 i32.shl i32.add - local.get $7 - local.get $0 + local.get $8 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $2 + local.tee $4 i32.trunc_sat_f64_u i32.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 f64.sub f64.const 0 f64.eq select i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -46752,60 +46219,60 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 67 i32.const 13136 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=20 - local.get $4 - local.get $3 + local.get $0 + local.get $5 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $2 i32.store offset=20 - local.get $4 - local.get $8 + local.get $0 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 67 i32.const 13200 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -46847,19 +46314,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11008 @@ -46881,18 +46347,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11012 i32.load - local.set $2 + local.set $3 i32.const 0 local.set $0 loop $for-loop|0 @@ -46900,12 +46365,12 @@ local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 3 i32.shl i32.add - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -46925,8 +46390,7 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) - (local $3 i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -46943,10 +46407,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -46956,18 +46419,18 @@ i32.shl i32.add i64.load - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i64) - (local $5 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -46984,21 +46447,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $5 + local.get $3 i32.ne if i32.const 0 @@ -47010,7 +46472,7 @@ end loop $for-loop|0 local.get $2 - local.get $5 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -47019,15 +46481,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Int64Array#__uget - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Int64Array#__uget - local.tee $4 - local.get $3 + local.tee $5 + local.get $4 i64.ne if global.get $~lib/memory/__stack_pointer @@ -47037,10 +46499,10 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $3 - f64.convert_i64_s local.get $4 f64.convert_i64_s + local.get $5 + f64.convert_i64_s f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -47065,7 +46527,6 @@ ) (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -47082,19 +46543,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -47118,7 +46578,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 local.get $0 @@ -47126,7 +46585,7 @@ i32.const 48 i32.add local.set $0 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $0 @@ -47136,7 +46595,7 @@ i32.const 3 i32.shl memory.copy - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -47144,7 +46603,6 @@ (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -47161,30 +46619,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int8Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.get $3 + local.get $2 i32.lt_s if i32.const 1360 @@ -47195,13 +46652,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -47211,10 +46667,10 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -47239,7 +46695,6 @@ (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -47256,30 +46711,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 call $~lib/typedarray/Int16Array#get:length - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.get $3 + local.get $2 i32.const 4 i32.add i32.lt_s @@ -47292,15 +46746,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 32 i32.add - local.set $2 - local.get $4 + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -47310,10 +46763,10 @@ local.set $0 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -47357,19 +46810,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11264 @@ -47393,20 +46845,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 i32.const 56 i32.add - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11268 i32.load - local.set $2 + local.set $3 i32.const 0 local.set $0 loop $for-loop|0 @@ -47414,13 +46865,13 @@ local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 3 i32.shl i32.add local.get $0 - local.get $2 + local.get $3 i32.add i64.load8_s i64.store @@ -47438,10 +46889,10 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> (local $0 i32) - (local $1 f64) - (local $2 f32) - (local $3 i32) - (local $4 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -47458,110 +46909,109 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - 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 $3 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + 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.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 + local.get $2 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 + local.get $2 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 + local.get $2 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 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 @@ -47572,11 +47022,11 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=20 - local.get $4 + local.get $0 local.get $7 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -47590,28 +47040,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $7 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length local.set $7 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int64Array#get:length local.get $7 i32.const 3 @@ -47619,50 +47068,49 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 24 i32.add - local.set $9 - local.get $8 + local.set $8 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load - local.set $8 + local.set $9 loop $for-loop|0 - local.get $0 + local.get $1 local.get $7 i32.lt_s if - local.get $9 - local.get $0 + local.get $8 + local.get $1 i32.const 3 i32.shl i32.add - local.get $8 - local.get $0 + local.get $9 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $2 + local.tee $4 i64.trunc_sat_f32_s i64.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 f32.sub f32.const 0 f32.eq select i64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -47671,46 +47119,46 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 68 i32.const 13424 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 - local.get $4 - local.get $5 + local.get $0 + local.get $6 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 68 i32.const 13536 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -47724,81 +47172,79 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int64Array#get:length - local.get $5 + local.get $6 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 16 i32.add local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if local.get $8 - local.get $0 + local.get $1 i32.const 3 i32.shl local.tee $9 i32.add f64.load - local.set $1 + local.set $3 local.get $7 local.get $9 i32.add - local.get $1 + local.get $3 i64.trunc_sat_f64_s i64.const 0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.sub f64.const 0 f64.eq select i64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -47807,60 +47253,60 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 68 i32.const 13648 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=20 - local.get $4 - local.get $3 + local.get $0 + local.get $5 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=20 - local.get $4 - local.get $6 + local.get $0 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 68 i32.const 13760 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -47883,8 +47329,7 @@ unreachable ) (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) - (local $3 i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -47901,10 +47346,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -47914,18 +47358,18 @@ i32.shl i32.add i64.load - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i64) - (local $5 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -47942,21 +47386,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $5 + local.get $3 i32.ne if i32.const 0 @@ -47968,7 +47411,7 @@ end loop $for-loop|0 local.get $2 - local.get $5 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -47977,15 +47420,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Uint64Array#__uget - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Uint64Array#__uget - local.tee $4 - local.get $3 + local.tee $5 + local.get $4 i64.ne if global.get $~lib/memory/__stack_pointer @@ -47995,10 +47438,10 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $3 - f64.convert_i64_u local.get $4 f64.convert_i64_u + local.get $5 + f64.convert_i64_u f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -48023,10 +47466,10 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (local $0 i32) - (local $1 f64) - (local $2 f32) - (local $3 i32) - (local $4 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -48043,110 +47486,109 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 i32.const 0 i32.const 24 memory.fill - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - 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 $3 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=4 - local.get $3 + 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.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 + local.get $2 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 + local.get $2 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=4 - local.get $6 + local.get $2 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 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 @@ -48157,11 +47599,11 @@ global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=20 - local.get $4 + local.get $0 local.get $7 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -48175,28 +47617,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $7 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length local.set $7 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int64Array#get:length local.get $7 i32.const 3 @@ -48204,50 +47645,49 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $8 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 24 i32.add - local.set $9 - local.get $8 + local.set $8 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load - local.set $8 + local.set $9 loop $for-loop|0 - local.get $0 + local.get $1 local.get $7 i32.lt_s if - local.get $9 - local.get $0 + local.get $8 + local.get $1 i32.const 3 i32.shl i32.add - local.get $8 - local.get $0 + local.get $9 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $2 + local.tee $4 i64.trunc_sat_f32_u i64.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 f32.sub f32.const 0 f32.eq select i64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -48256,46 +47696,46 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 69 i32.const 14032 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 - local.get $4 - local.get $5 + local.get $0 + local.get $6 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 69 i32.const 14144 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -48309,81 +47749,79 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11184 call $~lib/array/Array#get:length - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 call $~lib/typedarray/Int64Array#get:length - local.get $5 + local.get $6 i32.const 2 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 + local.get $0 i32.store offset=8 - local.get $4 + local.get $0 i32.load offset=4 i32.const 16 i32.add local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=8 i32.const 11188 i32.load local.set $8 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.lt_s if local.get $8 - local.get $0 + local.get $1 i32.const 3 i32.shl local.tee $9 i32.add f64.load - local.set $1 + local.set $3 local.get $7 local.get $9 i32.add - local.get $1 + local.get $3 i64.trunc_sat_f64_u i64.const 0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.sub f64.const 0 f64.eq select i64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -48392,60 +47830,60 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 69 i32.const 14256 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=20 - local.get $4 - local.get $3 + local.get $0 + local.get $5 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store offset=20 - local.get $4 - local.get $6 + local.get $0 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=20 - local.get $4 + local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 69 i32.const 14368 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $4 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -48468,8 +47906,7 @@ unreachable ) (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) - (local $2 i32) - (local $3 f32) + (local $2 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -48486,10 +47923,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -48499,18 +47935,18 @@ i32.shl i32.add f32.load - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 f32) - (local $5 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -48527,21 +47963,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $5 + local.get $3 i32.ne if i32.const 0 @@ -48553,7 +47988,7 @@ end loop $for-loop|0 local.get $2 - local.get $5 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -48562,15 +47997,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Float32Array#__uget - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Float32Array#__uget - local.tee $4 - local.get $3 + local.tee $5 + local.get $4 f32.ne if global.get $~lib/memory/__stack_pointer @@ -48580,10 +48015,10 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $3 - f64.promote_f32 local.get $4 f64.promote_f32 + local.get $5 + f64.promote_f32 f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -48627,11 +48062,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $6 @@ -48660,69 +48094,69 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 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 $2 + local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -48736,52 +48170,50 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 i64.const 0 i64.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $4 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11008 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 call $~lib/typedarray/Int32Array#get:length local.get $4 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 local.set $7 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11012 i32.load local.set $8 loop $for-loop|0 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $7 - local.get $0 + local.get $1 i32.const 2 i32.shl local.tee $5 @@ -48792,10 +48224,10 @@ i32.load f32.convert_i32_s f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -48804,47 +48236,47 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 62 i32.const 14480 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=20 - local.get $3 + local.get $0 i32.const 11088 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 62 i32.const 14592 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $6 @@ -48858,28 +48290,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int64Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 call $~lib/typedarray/Int32Array#get:length local.get $4 i32.const 6 @@ -48887,44 +48318,43 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 i32.const 24 i32.add local.set $5 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $6 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add local.get $6 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add i64.load f32.convert_i64_s f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -48933,25 +48363,25 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 62 i32.const 14656 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -48962,67 +48392,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 i32.store - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 call $~lib/typedarray/Int8Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 call $~lib/typedarray/Int32Array#get:length local.get $4 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 local.set $5 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 + local.set $2 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|01 - local.get $0 + local.get $1 local.get $4 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u f32.convert_i32_u f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|01 end end @@ -49031,10 +48459,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -49045,73 +48473,71 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 i32.store - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int16Array#get:length - local.set $1 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $1 + local.get $2 i32.const 4 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 i32.const 16 i32.add local.set $4 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $3 i32.store offset=8 - local.get $2 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|02 - local.get $0 local.get $1 + local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s f32.convert_i32_s f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|02 end end @@ -49120,7 +48546,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -49134,71 +48560,69 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11264 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 call $~lib/typedarray/Int32Array#get:length - local.get $1 + local.get $2 i32.const 7 i32.add i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $0 i32.store offset=8 - local.get $3 + local.get $0 i32.load offset=4 i32.const 28 i32.add - local.set $2 - local.get $0 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11268 i32.load local.set $4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|03 - local.get $0 local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.shl i32.add - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|03 end end @@ -49207,19 +48631,19 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 i32.const 10 i32.const 2 i32.const 62 i32.const 14720 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 - local.get $3 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -49242,8 +48666,7 @@ unreachable ) (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) - (local $2 i32) - (local $3 f64) + (local $2 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -49260,10 +48683,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -49273,18 +48695,18 @@ i32.shl i32.add f64.load - local.set $3 - local.get $2 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 f64) - (local $5 i32) + (local $5 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -49301,21 +48723,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 call $~lib/array/Array#get:length - local.get $5 + local.get $3 i32.ne if i32.const 0 @@ -49327,7 +48748,7 @@ end loop $for-loop|0 local.get $2 - local.get $5 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -49336,15 +48757,15 @@ local.get $0 local.get $2 call $~lib/typedarray/Float64Array#__uget - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 local.get $2 call $~lib/typedarray/Float64Array#__uget - local.tee $4 - local.get $3 + local.tee $5 + local.get $4 f64.ne if global.get $~lib/memory/__stack_pointer @@ -49354,8 +48775,8 @@ i32.const 3 local.get $2 f64.convert_i32_s - local.get $3 local.get $4 + local.get $5 f64.const 0 f64.const 0 call $~lib/builtins/trace @@ -49398,11 +48819,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 24 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $2 @@ -49490,10 +48910,10 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -49507,67 +48927,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $5 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11008 call $~lib/array/Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#get:length local.get $5 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 - local.set $7 - local.get $6 + local.set $6 + global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=8 i32.const 11012 i32.load - local.set $6 + local.set $7 loop $for-loop|0 - local.get $0 + local.get $1 local.get $5 i32.lt_s if - local.get $7 - local.get $0 + local.get $6 + local.get $1 i32.const 3 i32.shl i32.add - local.get $6 - local.get $0 + local.get $7 + local.get $1 i32.const 2 i32.shl i32.add i32.load f64.convert_i32_s f64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -49576,22 +48994,22 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 63 i32.const 14784 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $1 + i32.store offset=20 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -49605,28 +49023,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11088 call $~lib/array/Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#get:length local.get $5 i32.const 3 @@ -49634,44 +49051,43 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 i32.const 24 i32.add local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=8 i32.const 11092 i32.load local.set $7 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|00 - local.get $0 + local.get $1 local.get $5 i32.lt_s if local.get $6 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add local.get $7 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load f64.promote_f32 f64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|00 end end @@ -49680,22 +49096,22 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 63 i32.const 14944 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $1 + i32.store offset=20 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 @@ -49709,28 +49125,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 call $~lib/typedarray/Int64Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#get:length local.get $5 i32.const 6 @@ -49738,29 +49153,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 i32.const 48 i32.add local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 local.get $2 i32.load offset=4 local.set $2 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|01 - local.get $0 + local.get $1 local.get $5 i32.lt_s if local.get $6 - local.get $0 + local.get $1 i32.const 3 i32.shl local.tee $7 @@ -49771,10 +49185,10 @@ i64.load f64.convert_i64_s f64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|01 end end @@ -49783,22 +49197,22 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 63 i32.const 15056 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $1 + i32.store offset=20 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $3 @@ -49812,67 +49226,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 local.get $3 call $~lib/typedarray/Int8Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#get:length local.get $2 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 local.set $5 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 local.get $3 i32.load offset=4 local.set $3 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|02 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $0 + local.get $1 local.get $3 i32.add i32.load8_u f64.convert_i32_u f64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|02 end end @@ -49881,7 +49293,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -49895,28 +49307,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 call $~lib/typedarray/Int16Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#get:length local.get $2 i32.const 4 @@ -49924,44 +49335,43 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 i32.const 32 i32.add local.set $3 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 i32.load offset=4 local.set $4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|03 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $3 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s f64.convert_i32_s f64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|03 end end @@ -49970,7 +49380,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -49984,28 +49394,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11264 call $~lib/array/Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#get:length local.get $2 i32.const 7 @@ -50013,42 +49422,41 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 i32.const 56 i32.add local.set $3 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 i32.const 11268 i32.load local.set $4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|04 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $3 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|04 end end @@ -50057,19 +49465,19 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 i32.const 10 i32.const 3 i32.const 63 i32.const 15168 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $1 + i32.store offset=20 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -50541,16 +49949,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -50569,215 +49976,6 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15344 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15344 - i32.store offset=8 - local.get $0 - i32.const 15344 - call $~lib/typedarray/Int8Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15376 - i32.store offset=12 - local.get $0 - i32.const 15376 - call $~lib/typedarray/Int8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) @@ -51228,16 +50426,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -51256,425 +50453,486 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15408 - i32.store offset=8 - local.get $0 - i32.const 15408 - call $~lib/typedarray/Uint8Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $folding-inner0 local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne + i32.const 48 + i32.le_s if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store16 + local.get $0 + i32.load16_s offset=4 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store16 offset=2 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 i32.const 2 - i32.ne + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.ne + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15440 - i32.store offset=12 - local.get $0 - i32.const 15440 - call $~lib/typedarray/Uint8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $2 + i32.store local.get $0 i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 i32.const 1 - i32.ne + i32.add + local.tee $1 + i32.const 32 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int16Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15472 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15472 - i32.store offset=8 - local.get $0 - i32.const 15472 - call $~lib/typedarray/Uint8Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15504 - i32.store offset=12 - local.get $0 - i32.const 15504 - call $~lib/typedarray/Uint8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $2 + local.get $3 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -51728,10 +50986,10 @@ br $break|0 end local.get $0 - i32.load16_s + i32.load16_u local.set $1 local.get $0 - i32.load16_s offset=2 + i32.load16_u offset=2 local.set $3 i32.const 2 global.set $~argumentsLength @@ -51749,7 +51007,7 @@ select i32.store16 local.get $0 - i32.load16_s offset=4 + i32.load16_u offset=4 local.set $5 i32.const 2 global.set $~argumentsLength @@ -51778,10 +51036,10 @@ i32.store16 offset=4 end local.get $0 - i32.load16_s + i32.load16_u local.set $1 local.get $0 - i32.load16_s offset=2 + i32.load16_u offset=2 local.set $3 i32.const 2 global.set $~argumentsLength @@ -51816,7 +51074,7 @@ i32.sub i32.const 0 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort br $folding-inner0 end i32.const 33 @@ -51886,7 +51144,7 @@ i32.sub local.tee $9 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $4 i32.const 1 i32.add @@ -51908,7 +51166,7 @@ local.tee $4 local.get $1 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end i32.const 0 local.set $1 @@ -51929,7 +51187,7 @@ local.tee $6 local.get $9 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $5 local.get $6 i32.sub @@ -51956,7 +51214,7 @@ local.tee $5 local.get $7 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end local.get $3 local.get $6 @@ -52017,7 +51275,7 @@ local.get $4 local.get $12 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns local.get $15 i32.const -1 i32.store @@ -52083,7 +51341,7 @@ local.get $9 local.get $12 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns end local.get $1 i32.const 1 @@ -52107,7 +51365,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -52126,16 +51384,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -52147,223 +51404,14 @@ local.get $2 local.get $3 local.get $1 - call $~lib/util/sort/SORT + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15536 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15536 - i32.store offset=8 - local.get $0 - i32.const 15536 - call $~lib/typedarray/Int16Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15568 - i32.store offset=12 - local.get $0 - i32.const 15568 - call $~lib/typedarray/Int16Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -52417,10 +51465,10 @@ br $break|0 end local.get $0 - i32.load16_u + i32.load local.set $1 local.get $0 - i32.load16_u offset=2 + i32.load offset=4 local.set $3 i32.const 2 global.set $~argumentsLength @@ -52436,9 +51484,9 @@ i32.gt_s local.tee $4 select - i32.store16 + i32.store local.get $0 - i32.load16_u offset=4 + i32.load offset=8 local.set $5 i32.const 2 global.set $~argumentsLength @@ -52458,19 +51506,19 @@ i32.gt_s local.tee $3 select - i32.store16 offset=2 + i32.store offset=4 local.get $0 local.get $1 local.get $5 local.get $3 select - i32.store16 offset=4 + i32.store offset=8 end local.get $0 - i32.load16_u + i32.load local.set $1 local.get $0 - i32.load16_u offset=2 + i32.load offset=4 local.set $3 i32.const 2 global.set $~argumentsLength @@ -52486,13 +51534,13 @@ i32.gt_s local.tee $2 select - i32.store16 + i32.store local.get $0 local.get $1 local.get $3 local.get $2 select - i32.store16 offset=2 + i32.store offset=4 br $folding-inner0 end global.get $~lib/memory/__stack_pointer @@ -52505,7 +51553,7 @@ i32.sub i32.const 0 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort br $folding-inner0 end i32.const 33 @@ -52559,7 +51607,7 @@ end global.get $~lib/rt/tlsf/ROOT local.get $1 - i32.const 1 + i32.const 2 i32.shl call $~lib/rt/tlsf/allocateBlock i32.const 4 @@ -52575,7 +51623,7 @@ i32.sub local.tee $9 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $4 i32.const 1 i32.add @@ -52597,7 +51645,7 @@ local.tee $4 local.get $1 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end i32.const 0 local.set $1 @@ -52618,7 +51666,7 @@ local.tee $6 local.get $9 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $5 local.get $6 i32.sub @@ -52645,7 +51693,7 @@ local.tee $5 local.get $7 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end local.get $3 local.get $6 @@ -52706,7 +51754,7 @@ local.get $4 local.get $12 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns local.get $15 i32.const -1 i32.store @@ -52772,7 +51820,7 @@ local.get $9 local.get $12 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns end local.get $1 i32.const 1 @@ -52796,7 +51844,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -52815,20 +51863,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int16Array#get:length + call $~lib/typedarray/Int32Array#get:length local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 @@ -52836,223 +51883,14 @@ local.get $2 local.get $3 local.get $1 - call $~lib/util/sort/SORT + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15600 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15600 - i32.store offset=8 - local.get $0 - i32.const 15600 - call $~lib/typedarray/Uint16Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15632 - i32.store offset=12 - local.get $0 - i32.const 15632 - call $~lib/typedarray/Uint16Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -53194,7 +52032,7 @@ i32.sub i32.const 0 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort br $folding-inner0 end i32.const 33 @@ -53264,7 +52102,7 @@ i32.sub local.tee $9 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $4 i32.const 1 i32.add @@ -53286,7 +52124,7 @@ local.tee $4 local.get $1 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end i32.const 0 local.set $1 @@ -53307,7 +52145,7 @@ local.tee $6 local.get $9 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $5 local.get $6 i32.sub @@ -53334,7 +52172,7 @@ local.tee $5 local.get $7 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end local.get $3 local.get $6 @@ -53395,7 +52233,7 @@ local.get $4 local.get $12 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns local.get $15 i32.const -1 i32.store @@ -53461,7 +52299,7 @@ local.get $9 local.get $12 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns end local.get $1 i32.const 1 @@ -53485,7 +52323,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -53504,16 +52342,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -53525,236 +52362,29 @@ local.get $2 local.get $3 local.get $1 - call $~lib/util/sort/SORT + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15664 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15664 - i32.store offset=8 - local.get $0 - i32.const 15664 - call $~lib/typedarray/Int32Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15696 - i32.store offset=12 - local.get $0 - i32.const 15696 - call $~lib/typedarray/Int32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i64) + (local $13 i32) (local $14 i32) (local $15 i32) + (local $16 i64) + (local $17 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -53795,82 +52425,82 @@ br $break|0 end local.get $0 - i32.load - local.set $1 + i64.load + local.set $9 local.get $0 - i32.load offset=4 - local.set $3 + i64.load offset=8 + local.set $16 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 + local.get $16 + local.get $9 + local.get $9 + local.get $16 local.get $2 i32.load - call_indirect (type $0) + call_indirect (type $7) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select - i32.store + i64.store local.get $0 - i32.load offset=8 - local.set $5 + i64.load offset=16 + local.set $17 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $5 + local.get $17 + local.get $9 + local.get $16 local.get $1 - local.get $3 - local.get $4 select - local.tee $1 - local.get $1 - local.get $5 + local.tee $9 + local.get $9 + local.get $17 local.get $2 i32.load - call_indirect (type $0) + call_indirect (type $7) i32.const 0 i32.gt_s - local.tee $3 + local.tee $1 select - i32.store offset=4 + i64.store offset=8 local.get $0 + local.get $9 + local.get $17 local.get $1 - local.get $5 - local.get $3 select - i32.store offset=8 + i64.store offset=16 end local.get $0 - i32.load - local.set $1 + i64.load + local.set $9 local.get $0 - i32.load offset=4 - local.set $3 + i64.load offset=8 + local.set $16 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 + local.get $16 + local.get $9 + local.get $9 + local.get $16 local.get $2 i32.load - call_indirect (type $0) + call_indirect (type $7) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select - i32.store + i64.store local.get $0 + local.get $9 + local.get $16 local.get $1 - local.get $3 - local.get $2 select - i32.store offset=4 + i64.store offset=8 br $folding-inner0 end global.get $~lib/memory/__stack_pointer @@ -53883,7 +52513,7 @@ i32.sub i32.const 0 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort br $folding-inner0 end i32.const 33 @@ -53908,15 +52538,15 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $10 + local.tee $11 i32.add - local.set $11 + local.set $12 loop $for-loop|1 local.get $3 local.get $4 i32.lt_u if - local.get $10 + local.get $11 local.get $3 i32.const 2 i32.shl @@ -53937,12 +52567,12 @@ end global.get $~lib/rt/tlsf/ROOT local.get $1 - i32.const 2 + i32.const 3 i32.shl call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $12 + local.set $13 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -53951,9 +52581,9 @@ local.get $1 i32.const 1 i32.sub - local.tee $9 + local.tee $10 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $4 i32.const 1 i32.add @@ -53967,15 +52597,15 @@ local.get $0 i32.const 0 i32.const 31 - local.get $9 - local.get $9 + local.get $10 + local.get $10 i32.const 31 i32.ge_s select local.tee $4 local.get $1 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end i32.const 0 local.set $1 @@ -53983,7 +52613,7 @@ local.set $3 loop $while-continue|2 local.get $4 - local.get $9 + local.get $10 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -53994,9 +52624,9 @@ i32.const 1 i32.add local.tee $6 - local.get $9 + local.get $10 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $5 local.get $6 i32.sub @@ -54011,19 +52641,19 @@ i32.store local.get $0 local.get $6 - local.get $9 + local.get $10 local.get $6 i32.const 31 i32.add local.tee $5 local.get $5 - local.get $9 + local.get $10 i32.gt_s select local.tee $5 local.get $7 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end local.get $3 local.get $6 @@ -54031,11 +52661,11 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $10 i32.const 1 i32.add i64.extend_i32_u - local.tee $13 + local.tee $9 i64.div_u local.get $5 local.get $6 @@ -54045,7 +52675,7 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $9 i64.div_u i64.xor i32.wrap_i64 @@ -54060,7 +52690,7 @@ i32.const 2 i32.shl local.tee $14 - local.get $10 + local.get $11 i32.add local.tee $15 i32.load @@ -54068,7 +52698,7 @@ i32.const -1 i32.ne if - local.get $11 + local.get $12 local.get $14 i32.add i32.load @@ -54082,9 +52712,9 @@ local.get $8 local.get $3 local.get $4 - local.get $12 + local.get $13 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns local.get $15 i32.const -1 i32.store @@ -54102,12 +52732,12 @@ i32.const 2 i32.shl local.tee $1 - local.get $10 + local.get $11 i32.add local.get $3 i32.store local.get $1 - local.get $11 + local.get $12 i32.add local.get $4 i32.store @@ -54127,7 +52757,7 @@ i32.const 2 i32.shl local.tee $3 - local.get $10 + local.get $11 i32.add i32.load local.tee $4 @@ -54135,7 +52765,7 @@ i32.ne if local.get $3 - local.get $11 + local.get $12 i32.add i32.load i32.const 1 @@ -54147,10 +52777,10 @@ local.get $0 local.get $4 local.get $3 - local.get $9 - local.get $12 + local.get $10 + local.get $13 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns end local.get $1 i32.const 1 @@ -54159,9 +52789,9 @@ br $for-loop|4 end end - local.get $12 + local.get $13 call $~lib/rt/tlsf/__free - local.get $10 + local.get $11 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 4 @@ -54174,7 +52804,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -54193,20 +52823,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int32Array#get:length + call $~lib/typedarray/Int64Array#get:length local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 @@ -54214,260 +52843,51 @@ local.get $2 local.get $3 local.get $1 - call $~lib/util/sort/SORT + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + (local $17 i64) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15728 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15728 - i32.store offset=8 - local.get $0 - i32.const 15728 - call $~lib/typedarray/Uint32Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $folding-inner0 local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15760 - i32.store offset=12 - local.get $0 - i32.const 15760 - call $~lib/typedarray/Uint32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i64) - (local $17 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s + i32.const 48 + i32.le_s if local.get $1 i32.const 1 @@ -54574,7 +52994,7 @@ i32.sub i32.const 0 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort br $folding-inner0 end i32.const 33 @@ -54644,7 +53064,7 @@ i32.sub local.tee $10 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $4 i32.const 1 i32.add @@ -54666,7 +53086,7 @@ local.tee $4 local.get $1 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end i32.const 0 local.set $1 @@ -54687,7 +53107,7 @@ local.tee $6 local.get $10 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $5 local.get $6 i32.sub @@ -54714,7 +53134,7 @@ local.tee $5 local.get $7 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end local.get $3 local.get $6 @@ -54775,7 +53195,7 @@ local.get $4 local.get $13 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns local.get $15 i32.const -1 i32.store @@ -54841,7 +53261,7 @@ local.get $10 local.get $13 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns end local.get $1 i32.const 1 @@ -54865,7 +53285,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -54884,16 +53304,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -54905,238 +53324,30 @@ local.get $2 local.get $3 local.get $1 - call $~lib/util/sort/SORT + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15792 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15792 - i32.store offset=8 - local.get $0 - i32.const 15792 - call $~lib/typedarray/Int64Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15824 - i32.store offset=12 - local.get $0 - i32.const 15824 - call $~lib/typedarray/Int64Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 f32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 i64) (local $15 i32) - (local $16 i64) - (local $17 i64) + (local $16 i32) + (local $17 f32) + (local $18 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -55177,82 +53388,82 @@ br $break|0 end local.get $0 - i64.load + f32.load local.set $9 local.get $0 - i64.load offset=8 - local.set $16 + f32.load offset=4 + local.set $17 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $16 + local.get $17 local.get $9 local.get $9 - local.get $16 + local.get $17 local.get $2 i32.load - call_indirect (type $7) + call_indirect (type $11) i32.const 0 i32.gt_s local.tee $1 select - i64.store + f32.store local.get $0 - i64.load offset=16 - local.set $17 + f32.load offset=8 + local.set $18 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $17 + local.get $18 local.get $9 - local.get $16 + local.get $17 local.get $1 select local.tee $9 local.get $9 - local.get $17 + local.get $18 local.get $2 i32.load - call_indirect (type $7) + call_indirect (type $11) i32.const 0 i32.gt_s local.tee $1 select - i64.store offset=8 + f32.store offset=4 local.get $0 local.get $9 - local.get $17 + local.get $18 local.get $1 select - i64.store offset=16 + f32.store offset=8 end local.get $0 - i64.load + f32.load local.set $9 local.get $0 - i64.load offset=8 - local.set $16 + f32.load offset=4 + local.set $17 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $16 + local.get $17 local.get $9 local.get $9 - local.get $16 + local.get $17 local.get $2 i32.load - call_indirect (type $7) + call_indirect (type $11) i32.const 0 i32.gt_s local.tee $1 select - i64.store + f32.store local.get $0 local.get $9 - local.get $16 + local.get $17 local.get $1 select - i64.store offset=8 + f32.store offset=4 br $folding-inner0 end global.get $~lib/memory/__stack_pointer @@ -55265,7 +53476,7 @@ i32.sub i32.const 0 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort br $folding-inner0 end i32.const 33 @@ -55319,7 +53530,7 @@ end global.get $~lib/rt/tlsf/ROOT local.get $1 - i32.const 3 + i32.const 2 i32.shl call $~lib/rt/tlsf/allocateBlock i32.const 4 @@ -55335,7 +53546,7 @@ i32.sub local.tee $10 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $4 i32.const 1 i32.add @@ -55357,7 +53568,7 @@ local.tee $4 local.get $1 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end i32.const 0 local.set $1 @@ -55378,7 +53589,7 @@ local.tee $6 local.get $10 local.get $2 - call $~lib/util/sort/extendRunRight + call $~lib/util/sort/extendRunRight local.tee $5 local.get $6 i32.sub @@ -55405,7 +53616,7 @@ local.tee $5 local.get $7 local.get $2 - call $~lib/util/sort/insertionSort + call $~lib/util/sort/insertionSort end local.get $3 local.get $6 @@ -55417,7 +53628,7 @@ i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $14 i64.div_u local.get $5 local.get $6 @@ -55427,7 +53638,7 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $14 i64.div_u i64.xor i32.wrap_i64 @@ -55441,17 +53652,17 @@ local.get $1 i32.const 2 i32.shl - local.tee $14 + local.tee $15 local.get $11 i32.add - local.tee $15 + local.tee $16 i32.load local.tee $8 i32.const -1 i32.ne if local.get $12 - local.get $14 + local.get $15 i32.add i32.load i32.const 1 @@ -55466,8 +53677,8 @@ local.get $4 local.get $13 local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 + call $~lib/util/sort/mergeRuns + local.get $16 i32.const -1 i32.store local.get $8 @@ -55532,7 +53743,7 @@ local.get $10 local.get $13 local.get $2 - call $~lib/util/sort/mergeRuns + call $~lib/util/sort/mergeRuns end local.get $1 i32.const 1 @@ -55556,7 +53767,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -55575,20 +53786,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 i64.const 0 i64.store - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=4 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length + call $~lib/typedarray/Int32Array#get:length local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 @@ -55596,930 +53806,29 @@ local.get $2 local.get $3 local.get $1 - call $~lib/util/sort/SORT + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> + (func $start:std/typedarray (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15856 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15856 - i32.store offset=8 - local.get $0 - i32.const 15856 - call $~lib/typedarray/Uint64Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15888 - i32.store offset=12 - local.get $0 - i32.const 15888 - call $~lib/typedarray/Uint64Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (local $3 i64) + (local $4 f32) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i32) - (local $17 f32) - (local $18 f32) + (local $9 i32) + (local $10 i64) + (local $11 f32) + (local $12 f64) global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - f32.load offset=8 - local.set $18 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $18 - local.get $9 - local.get $17 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $18 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store offset=4 - local.get $0 - local.get $9 - local.get $18 - local.get $1 - select - f32.store offset=8 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - f32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $14 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $14 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $15 - local.get $11 - i32.add - local.tee $16 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $15 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $16 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $3 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15920 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store offset=4 - local.get $2 - i32.const 15920 - i32.store offset=8 - local.get $0 - i32.const 15920 - call $~lib/typedarray/Float32Array#sort - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 2 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 15952 - i32.store offset=12 - local.get $0 - i32.const 15952 - call $~lib/typedarray/Float32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 2 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $start:std/typedarray - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 f32) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 f32) - (local $12 f64) - global.get $~lib/memory/__stack_pointer - i32.const 124 + i32.const 124 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner25 @@ -56704,10 +54013,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 2 @@ -57227,10 +54535,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 4 @@ -57542,10 +54849,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 4 @@ -57773,10 +55079,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 5 @@ -57845,10 +55150,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 4 @@ -58001,12 +55305,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58046,12 +55349,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58091,12 +55393,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58136,12 +55437,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58180,12 +55480,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58224,12 +55523,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58268,12 +55566,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58313,12 +55610,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58357,12 +55653,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58401,12 +55696,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58445,12 +55739,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $7 i32.store offset=4 i32.const 1 global.set $~argumentsLength - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $7 call $~lib/typedarray/Int32Array#slice@varargs local.tee $6 @@ -58585,10 +55878,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $6 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.const 1 i32.const 3 @@ -58671,10 +55963,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $7 i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $7 i32.const 1 i32.const 2 @@ -58741,12 +56032,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $6 i32.store offset=4 i32.const 0 global.set $~argumentsLength - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 call $~lib/typedarray/Int32Array#slice@varargs local.tee $7 @@ -58805,13 +56095,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $7 i32.store offset=4 local.get $7 i32.load offset=8 local.set $7 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $7 @@ -58835,13 +56124,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $6 @@ -58882,37 +56170,36 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 2896 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int8Array#get:length - local.set $7 + local.set $8 loop $for-loop|0 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $1 - local.get $8 + local.get $0 + local.get $7 i32.add i32.load8_s local.set $9 @@ -58921,18 +56208,18 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 2896 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -58940,7 +56227,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -58959,13 +56246,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -59018,13 +56304,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -59069,7 +56354,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 12 i32.sub @@ -59079,13 +56364,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $6 @@ -59126,39 +56410,38 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 2992 i32.store offset=4 i32.const 0 - local.set $0 - local.get $7 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int16Array#get:length - local.set $7 + local.set $8 loop $for-loop|02 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + local.get $7 + local.get $0 i32.const 1 i32.shl i32.add @@ -59169,18 +56452,18 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 2992 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|02 end end @@ -59188,7 +56471,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 6 @@ -59199,7 +56482,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 12 i32.sub @@ -59209,13 +56492,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $6 @@ -59256,39 +56538,38 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 3024 i32.store offset=4 i32.const 0 - local.set $0 - local.get $7 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int16Array#get:length - local.set $7 + local.set $8 loop $for-loop|03 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + local.get $7 + local.get $0 i32.const 1 i32.shl i32.add @@ -59299,18 +56580,18 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 3024 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|03 end end @@ -59318,7 +56599,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 6 @@ -59329,7 +56610,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 12 i32.sub @@ -59339,13 +56620,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $6 @@ -59386,39 +56666,38 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 3056 i32.store offset=4 i32.const 0 - local.set $0 - local.get $7 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int32Array#get:length - local.set $7 + local.set $8 loop $for-loop|04 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + local.get $7 + local.get $0 i32.const 2 i32.shl i32.add @@ -59429,18 +56708,18 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 3056 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|04 end end @@ -59448,7 +56727,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 6 i32.ne br_if $folding-inner18 @@ -59457,7 +56736,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 12 i32.sub @@ -59467,13 +56746,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $6 @@ -59514,39 +56792,38 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $7 i64.const 0 i64.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $7 + global.get $~lib/memory/__stack_pointer i32.const 3088 i32.store offset=4 i32.const 0 - local.set $0 - local.get $7 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 - local.set $8 - local.get $7 + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 call $~lib/typedarray/Int32Array#get:length - local.set $7 + local.set $8 loop $for-loop|05 - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + local.get $7 + local.get $0 i32.const 2 i32.shl i32.add @@ -59557,18 +56834,18 @@ i32.store offset=8 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $9 local.get $1 + local.get $9 + local.get $0 local.get $6 i32.const 3088 i32.load call_indirect (type $6) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05 end end @@ -59576,7 +56853,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 6 i32.ne br_if $folding-inner18 @@ -59585,7 +56862,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 12 i32.sub @@ -59595,40 +56872,39 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3120 @@ -59642,59 +56918,58 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3120 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 + local.set $7 loop $for-loop|06 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add i64.load local.set $10 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 4 global.set $~argumentsLength local.get $3 local.get $10 - local.get $1 local.get $0 + local.get $1 i32.const 3120 i32.load call_indirect (type $17) local.set $3 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|06 end end @@ -59711,7 +56986,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 i64.const 0 local.set $3 global.get $~lib/memory/__stack_pointer @@ -59723,40 +56998,39 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3152 @@ -59770,59 +57044,58 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3152 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 + local.set $7 loop $for-loop|07 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add i64.load local.set $10 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 4 global.set $~argumentsLength local.get $3 local.get $10 - local.get $1 local.get $0 + local.get $1 i32.const 3152 i32.load call_indirect (type $17) local.set $3 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|07 end end @@ -59839,7 +57112,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 12 i32.sub @@ -59849,40 +57122,39 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3184 @@ -59896,59 +57168,58 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3184 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#get:length - local.set $6 + local.set $7 loop $for-loop|08 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 2 i32.shl i32.add f32.load local.set $11 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 4 global.set $~argumentsLength local.get $4 local.get $11 - local.get $1 local.get $0 + local.get $1 i32.const 3184 i32.load call_indirect (type $22) local.set $4 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|08 end end @@ -59965,7 +57236,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 12 i32.sub @@ -59975,40 +57246,39 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3216 @@ -60022,59 +57292,58 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 3216 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 + local.set $7 loop $for-loop|09 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add f64.load local.set $12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 4 global.set $~argumentsLength local.get $5 local.get $12 - local.get $1 local.get $0 + local.get $1 i32.const 3216 i32.load call_indirect (type $23) local.set $5 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|09 end end @@ -60099,10 +57368,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -60168,10 +57436,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -60237,10 +57504,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -60306,10 +57572,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -60375,10 +57640,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -60444,10 +57708,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -60513,10 +57776,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -60582,10 +57844,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -60651,10 +57912,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -60720,10 +57980,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -60789,10 +58048,9 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -60858,13 +58116,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $6 @@ -60905,27 +58162,26 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3248 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -60986,13 +58242,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -61045,13 +58300,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -61104,13 +58358,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $6 @@ -61151,27 +58404,26 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -61234,13 +58486,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $6 @@ -61281,27 +58532,26 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -61364,13 +58614,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $6 @@ -61411,27 +58660,26 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -61492,13 +58740,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $6 @@ -61539,27 +58786,26 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=4 i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 i32.load offset=4 local.set $7 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=8 local.get $6 @@ -61622,13 +58868,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $1 @@ -61669,25 +58914,24 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -61750,13 +58994,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $1 @@ -61797,25 +59040,24 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -61878,13 +59120,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $1 @@ -61925,25 +59166,24 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -62006,13 +59246,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $1 @@ -62053,25 +59292,24 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 i32.load offset=4 local.set $6 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 local.get $1 @@ -62123,28 +59361,28 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64> - 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> + call $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" + 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 12 i32.sub @@ -62154,13 +59392,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -62198,10 +59435,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4336 i32.store offset=8 local.get $0 @@ -62221,13 +59457,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -62265,10 +59500,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4400 i32.store offset=8 local.get $0 @@ -62288,13 +59522,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -62332,10 +59565,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4464 i32.store offset=8 local.get $0 @@ -62355,13 +59587,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -62399,10 +59630,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4528 i32.store offset=8 local.get $0 @@ -62422,13 +59652,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -62466,10 +59695,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4592 i32.store offset=8 local.get $0 @@ -62489,13 +59717,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -62533,10 +59760,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4656 i32.store offset=8 local.get $0 @@ -62556,13 +59782,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -62600,10 +59825,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4720 i32.store offset=8 local.get $0 @@ -62623,13 +59847,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -62667,10 +59890,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4784 i32.store offset=8 local.get $0 @@ -62690,13 +59912,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -62734,10 +59955,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4848 i32.store offset=8 local.get $0 @@ -62757,13 +59977,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -62801,10 +60020,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4912 i32.store offset=8 local.get $0 @@ -62824,13 +60042,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -62868,10 +60085,9 @@ i32.eqz br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4976 i32.store offset=8 local.get $0 @@ -62891,13 +60107,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -62936,10 +60151,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5040 i32.store offset=8 local.get $0 @@ -62961,13 +60175,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -63006,10 +60219,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5104 i32.store offset=8 local.get $0 @@ -63031,13 +60243,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -63076,10 +60287,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5168 i32.store offset=8 local.get $0 @@ -63101,13 +60311,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -63146,10 +60355,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5232 i32.store offset=8 local.get $0 @@ -63171,13 +60379,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -63216,10 +60423,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5296 i32.store offset=8 local.get $0 @@ -63241,13 +60447,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -63286,10 +60491,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5360 i32.store offset=8 local.get $0 @@ -63311,13 +60515,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -63356,10 +60559,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5424 i32.store offset=8 local.get $0 @@ -63381,13 +60583,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -63426,10 +60627,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5488 i32.store offset=8 local.get $0 @@ -63451,13 +60651,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -63496,10 +60695,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5552 i32.store offset=8 local.get $0 @@ -63521,13 +60719,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -63566,10 +60763,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5616 i32.store offset=8 local.get $0 @@ -63591,13 +60787,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -63636,10 +60831,9 @@ i32.ne br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5680 i32.store offset=8 local.get $0 @@ -63661,13 +60855,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -63706,10 +60899,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5744 i32.store offset=8 local.get $0 @@ -63731,13 +60923,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -63776,10 +60967,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5808 i32.store offset=8 local.get $0 @@ -63801,13 +60991,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -63846,10 +61035,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5872 i32.store offset=8 local.get $0 @@ -63871,13 +61059,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -63916,10 +61103,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5936 i32.store offset=8 local.get $0 @@ -63941,13 +61127,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -63986,10 +61171,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6000 i32.store offset=8 local.get $0 @@ -64011,13 +61195,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -64056,10 +61239,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6064 i32.store offset=8 local.get $0 @@ -64081,13 +61263,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -64126,10 +61307,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=8 local.get $0 @@ -64151,13 +61331,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -64196,10 +61375,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6192 i32.store offset=8 local.get $0 @@ -64221,13 +61399,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -64266,10 +61443,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6256 i32.store offset=8 local.get $0 @@ -64291,13 +61467,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -64336,10 +61511,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6320 i32.store offset=8 local.get $0 @@ -64361,13 +61535,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -64406,10 +61579,9 @@ i32.ne br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=8 local.get $0 @@ -64431,13 +61603,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -64475,10 +61646,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6448 i32.store offset=8 local.get $0 @@ -64498,13 +61668,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -64542,10 +61711,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6512 i32.store offset=8 local.get $0 @@ -64565,13 +61733,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -64609,10 +61776,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6576 i32.store offset=8 local.get $0 @@ -64632,13 +61798,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -64676,10 +61841,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6640 i32.store offset=8 local.get $0 @@ -64699,13 +61863,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -64743,10 +61906,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6704 i32.store offset=8 local.get $0 @@ -64766,13 +61928,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -64810,10 +61971,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6768 i32.store offset=8 local.get $0 @@ -64833,13 +61993,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -64877,10 +62036,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6832 i32.store offset=8 local.get $0 @@ -64900,13 +62058,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -64944,10 +62101,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6896 i32.store offset=8 local.get $0 @@ -64967,13 +62123,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -65011,10 +62166,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6960 i32.store offset=8 local.get $0 @@ -65034,13 +62188,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -65078,10 +62231,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7024 i32.store offset=8 local.get $0 @@ -65101,13 +62253,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -65145,10 +62296,9 @@ i32.eqz br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 7088 i32.store offset=8 local.get $0 @@ -65160,7 +62310,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 12 i32.sub @@ -65170,28 +62320,27 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 @@ -65199,12 +62348,12 @@ i32.extend8_s call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 @@ -65212,12 +62361,12 @@ i32.extend8_s call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 @@ -65225,7 +62374,7 @@ i32.extend8_s call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7200 @@ -65239,55 +62388,54 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7200 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int8Array#get:length - local.set $6 + local.set $7 loop $for-loop|019 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $1 - local.get $7 + local.get $0 + local.get $6 i32.add i32.load8_s local.set $8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $1 local.get $0 + local.get $1 i32.const 7200 i32.load call_indirect (type $4) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|019 end end @@ -65312,15 +62460,14 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -65395,15 +62542,14 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -65470,7 +62616,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 12 i32.sub @@ -65480,28 +62626,27 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 @@ -65509,12 +62654,12 @@ i32.extend16_s call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 @@ -65522,12 +62667,12 @@ i32.extend16_s call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 @@ -65535,7 +62680,7 @@ i32.extend16_s call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7296 @@ -65549,57 +62694,56 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7296 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int16Array#get:length - local.set $6 + local.set $7 loop $for-loop|020 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl i32.add i32.load16_s local.set $8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $1 local.get $0 + local.get $1 i32.const 7296 i32.load call_indirect (type $4) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|020 end end @@ -65616,7 +62760,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 12 i32.sub @@ -65626,28 +62770,27 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 @@ -65656,12 +62799,12 @@ i32.and call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 @@ -65670,12 +62813,12 @@ i32.and call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 @@ -65684,7 +62827,7 @@ i32.and call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7328 @@ -65698,57 +62841,56 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7328 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int16Array#get:length - local.set $6 + local.set $7 loop $for-loop|021 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl i32.add i32.load16_u local.set $8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $1 local.get $0 + local.get $1 i32.const 7328 i32.load call_indirect (type $4) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|021 end end @@ -65765,7 +62907,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 12 i32.sub @@ -65775,59 +62917,58 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7360 @@ -65841,57 +62982,56 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7360 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#get:length - local.set $6 + local.set $7 loop $for-loop|022 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 2 i32.shl i32.add i32.load local.set $8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $1 local.get $0 + local.get $1 i32.const 7360 i32.load call_indirect (type $4) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|022 end end @@ -65908,7 +63048,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 12 i32.sub @@ -65918,59 +63058,58 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 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 - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 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.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 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 $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7392 @@ -65984,57 +63123,56 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7392 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#get:length - local.set $6 + local.set $7 loop $for-loop|023 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 2 i32.shl i32.add i32.load local.set $8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $8 - local.get $1 local.get $0 + local.get $1 i32.const 7392 i32.load call_indirect (type $4) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|023 end end @@ -66051,7 +63189,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 12 i32.sub @@ -66061,28 +63199,27 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 @@ -66090,12 +63227,12 @@ i64.extend_i32_s call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 @@ -66103,12 +63240,12 @@ i64.extend_i32_s call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 @@ -66116,7 +63253,7 @@ i64.extend_i32_s call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7424 @@ -66130,57 +63267,56 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7424 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 + local.set $7 loop $for-loop|024 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add i64.load local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $3 - local.get $1 local.get $0 + local.get $1 i32.const 7424 i32.load call_indirect (type $28) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|024 end end @@ -66197,7 +63333,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 12 i32.sub @@ -66207,28 +63343,27 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 @@ -66236,12 +63371,12 @@ i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 @@ -66249,12 +63384,12 @@ i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 @@ -66262,7 +63397,7 @@ i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7456 @@ -66276,57 +63411,56 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7456 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 + local.set $7 loop $for-loop|025 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add i64.load local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $3 - local.get $1 local.get $0 + local.get $1 i32.const 7456 i32.load call_indirect (type $28) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|025 end end @@ -66343,7 +63477,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 12 i32.sub @@ -66353,28 +63487,27 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 @@ -66382,12 +63515,12 @@ f32.convert_i32_s call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 @@ -66395,12 +63528,12 @@ f32.convert_i32_s call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 @@ -66408,7 +63541,7 @@ f32.convert_i32_s call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7488 @@ -66422,57 +63555,56 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7488 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#get:length - local.set $6 + local.set $7 loop $for-loop|026 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 2 i32.shl i32.add f32.load local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $4 - local.get $1 local.get $0 + local.get $1 i32.const 7488 i32.load call_indirect (type $31) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|026 end end @@ -66489,7 +63621,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 12 i32.sub @@ -66499,28 +63631,27 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 @@ -66528,12 +63659,12 @@ f64.convert_i32_s call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 @@ -66541,12 +63672,12 @@ f64.convert_i32_s call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 @@ -66554,7 +63685,7 @@ f64.convert_i32_s call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 7520 @@ -66568,57 +63699,56 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 7520 i32.store offset=4 - local.get $6 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $6 - local.get $0 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#get:length - local.set $6 + local.set $7 loop $for-loop|027 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $7 - local.get $1 + local.get $6 + local.get $0 i32.const 3 i32.shl i32.add f64.load local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $5 - local.get $1 local.get $0 + local.get $1 i32.const 7520 i32.load call_indirect (type $32) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|027 end end @@ -66634,28 +63764,28 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16> - 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> + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" + 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 @@ -66686,12 +63816,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $1 i32.store offset=4 i32.const 0 local.set $0 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -66700,14 +63829,13 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $6 + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 i32.const 0 @@ -66719,7 +63847,7 @@ i32.const 0 i32.le_s i32.or - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" drop global.get $~lib/memory/__stack_pointer local.get $1 @@ -66742,7 +63870,7 @@ local.tee $5 local.get $5 f64.ne - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" drop local.get $0 i32.const 1 @@ -66798,12 +63926,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $1 i32.store offset=4 i32.const 0 local.set $0 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -66812,14 +63939,13 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $6 i64.const 0 i64.store - block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $6 + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 i32.const 0 @@ -66831,7 +63957,7 @@ i32.const 0 i32.le_s i32.or - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" drop global.get $~lib/memory/__stack_pointer local.get $1 @@ -66854,7 +63980,7 @@ local.tee $4 local.get $4 f32.ne - br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" drop local.get $0 i32.const 1 @@ -66889,11 +64015,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int8Array#constructor local.tee $0 @@ -66954,10 +64079,9 @@ i32.eqz br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -66966,13 +64090,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -67006,11 +64129,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint8Array#constructor local.tee $0 @@ -67100,11 +64222,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $0 @@ -67194,11 +64315,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int16Array#constructor local.tee $0 @@ -67259,10 +64379,9 @@ i32.eqz br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -67271,13 +64390,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -67311,11 +64429,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint16Array#constructor local.tee $0 @@ -67376,10 +64493,9 @@ i32.eqz br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -67388,13 +64504,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -67428,11 +64543,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor local.tee $0 @@ -67493,10 +64607,9 @@ i32.eqz br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -67505,13 +64618,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -67545,11 +64657,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint32Array#constructor local.tee $0 @@ -67610,10 +64721,9 @@ i32.eqz br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -67622,13 +64732,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -67662,11 +64771,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int64Array#constructor local.tee $0 @@ -67727,10 +64835,9 @@ i32.eqz br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -67739,13 +64846,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -67779,11 +64885,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint64Array#constructor local.tee $0 @@ -67844,10 +64949,9 @@ i32.eqz br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -67856,13 +64960,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -67896,11 +64999,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Float32Array#constructor local.tee $0 @@ -67961,10 +65063,9 @@ i32.eqz br_if $folding-inner24 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -67973,13 +65074,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -68013,11 +65113,10 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -68078,10 +65177,9 @@ i32.eqz br_if $folding-inner24 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -68090,13 +65188,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=4 local.get $0 @@ -68179,7 +65276,7 @@ call $~lib/builtins/abort unreachable end - call $std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8> + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -68189,14 +65286,13 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 24 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=4 i32.const 10928 @@ -68213,10 +65309,9 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $6 local.get $1 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 local.get $1 @@ -68235,17 +65330,18 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load - local.tee $6 + local.tee $2 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $6 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $7 @@ -68258,8 +65354,8 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $2 local.get $6 + local.get $2 local.get $7 local.get $8 local.get $1 @@ -68320,15 +65416,15 @@ i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64> + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> @@ -68438,19 +65534,18 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -68467,7 +65562,6 @@ i32.lt_s br_if $folding-inner17 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=8 local.get $1 @@ -68475,7 +65569,7 @@ i32.const 1 i32.add local.set $9 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -68512,332 +65606,2338 @@ else i32.const 0 end - i32.store8 - local.get $2 - i32.const 1 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $1 + local.get $6 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 + i32.const 8 + i32.add + i32.lt_s + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + i32.const 8 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $2 + loop $for-loop|01213 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.const 255 + local.get $7 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.sub + i32.const 31 + i32.shr_s + local.get $8 + i32.or + local.get $8 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01213 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 15280 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store offset=116 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 300 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const -1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=120 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $6 + i32.lt_s + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|02324 + local.get $0 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $7 + i32.add + i32.const 255 + local.get $8 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $9 + i32.const 255 + i32.gt_u + select + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|02324 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $1 + local.get $2 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 15312 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + block $folding-inner036 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner036 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner036 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15344 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15344 + i32.store offset=8 + local.get $1 + i32.const 15344 + call $~lib/typedarray/Int8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15376 + i32.store offset=12 + local.get $1 + i32.const 15376 + call $~lib/typedarray/Int8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" + block $folding-inner037 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner037 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner037 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15408 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15408 + i32.store offset=8 + local.get $1 + i32.const 15408 + call $~lib/typedarray/Uint8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15440 + i32.store offset=12 + local.get $1 + i32.const 15440 + call $~lib/typedarray/Uint8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" + block $folding-inner038 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner038 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner038 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15472 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15472 + i32.store offset=8 + local.get $1 + i32.const 15472 + call $~lib/typedarray/Uint8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15504 + i32.store offset=12 + local.get $1 + i32.const 15504 + call $~lib/typedarray/Uint8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" + block $folding-inner039 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner039 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner039 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15536 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15536 + i32.store offset=8 + local.get $1 + i32.const 15536 + call $~lib/typedarray/Int16Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15568 + i32.store offset=12 + local.get $1 + i32.const 15568 + call $~lib/typedarray/Int16Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" + block $folding-inner040 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner040 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner040 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15600 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15600 + i32.store offset=8 + local.get $1 + i32.const 15600 + call $~lib/typedarray/Uint16Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15632 + i32.store offset=12 + local.get $1 + i32.const 15632 + call $~lib/typedarray/Uint16Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" + block $folding-inner041 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner041 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner041 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15664 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15664 + i32.store offset=8 + local.get $1 + i32.const 15664 + call $~lib/typedarray/Int32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15696 + i32.store offset=12 + local.get $1 + i32.const 15696 + call $~lib/typedarray/Int32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" + block $folding-inner042 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner042 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner042 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15728 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15728 + i32.store offset=8 + local.get $1 + i32.const 15728 + call $~lib/typedarray/Uint32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15760 + i32.store offset=12 + local.get $1 + i32.const 15760 + call $~lib/typedarray/Uint32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" + block $folding-inner043 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner043 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner043 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15792 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15792 + i32.store offset=8 + local.get $1 + i32.const 15792 + call $~lib/typedarray/Int64Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15824 + i32.store offset=12 + local.get $1 + i32.const 15824 + call $~lib/typedarray/Int64Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" + block $folding-inner044 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner044 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner044 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15856 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15856 + i32.store offset=8 + local.get $1 + i32.const 15856 + call $~lib/typedarray/Uint64Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15888 + i32.store offset=12 + local.get $1 + i32.const 15888 + call $~lib/typedarray/Uint64Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 - br $for-loop|00 + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $1 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $7 - i32.store offset=4 - local.get $0 - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $0 - i32.const 8 - i32.add - i32.lt_s - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 8 - i32.add - local.set $6 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $2 - loop $for-loop|01213 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $2 - local.get $6 - i32.add - i32.const 255 - local.get $7 - local.get $2 + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" + block $folding-inner045 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner045 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.sub - i32.const 31 - i32.shr_s - local.get $8 - i32.or - local.get $8 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - local.get $2 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner045 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15920 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15920 + i32.store offset=8 + local.get $1 + i32.const 15920 + call $~lib/typedarray/Float32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.set $2 - br $for-loop|01213 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 15280 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store offset=116 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 300 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 100 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const -1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=120 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const -10 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 10 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 300 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store - local.get $6 - local.get $0 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $6 - i32.lt_s - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - local.tee $7 - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $8 - local.get $7 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $0 - loop $for-loop|02324 - local.get $0 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $8 - i32.add - i32.const 255 - local.get $7 + global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $9 - i32.const 255 - i32.gt_u - select - i32.store8 - local.get $0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15952 + i32.store offset=12 + local.get $1 + i32.const 15952 + call $~lib/typedarray/Float32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|02324 + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $1 - local.get $2 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 15312 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32> - global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer @@ -68846,13 +67946,12 @@ i32.lt_s br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $0 @@ -68937,10 +68036,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 15984 i32.store offset=12 local.get $0 @@ -69199,9 +68297,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $4 local.get $0 local.get $1 i32.shl @@ -69263,13 +68362,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -69286,49 +68384,49 @@ i32.shr_u i32.const 1 i32.shl - local.tee $2 - select local.tee $0 + select + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -69337,19 +68435,19 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new local.tee $3 i32.store - local.get $2 + local.get $0 local.get $3 i32.add - local.get $0 + local.get $2 local.get $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 if local.get $3 i32.const 45 @@ -69380,13 +68478,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -69440,22 +68537,22 @@ i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 - local.get $0 local.get $1 + local.get $0 + local.get $2 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) @@ -69476,14 +68573,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 f64.const 0 f64.eq if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -69524,22 +68620,22 @@ call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - i32.const 9808 local.get $2 + i32.const 9808 + local.get $1 memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index b82c1ed0b1..e5e37589ca 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -1190,11 +1190,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1379,8 +1378,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -2646,7 +2644,6 @@ call $start:std/uri ) (func $~lib/uri/encodeURIComponent (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2663,10 +2660,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2706,14 +2702,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2728,8 +2723,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -2739,7 +2732,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -2751,12 +2744,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -2851,7 +2844,6 @@ i32.const 0 ) (func $~lib/uri/encodeURI (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2868,10 +2860,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2891,7 +2882,6 @@ local.get $0 ) (func $~lib/uri/decodeURIComponent (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2908,10 +2898,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2931,7 +2920,6 @@ local.get $0 ) (func $~lib/uri/decodeURI (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2948,10 +2936,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2988,10 +2975,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 memory.size @@ -3026,7 +3012,7 @@ i32.store i32.const 1472 global.set $~lib/rt/itcms/fromSpace - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 i32.const 1056 diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index 7fe25b0471..bafd07b72f 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1081,11 +1081,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1187,8 +1186,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1420,7 +1418,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1491,20 +1488,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 call $super-inline/Foo#constructor local.tee $0 i32.store @@ -1535,7 +1530,6 @@ ) (func $super-inline/Foo#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1546,23 +1540,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1571,13 +1565,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -1605,7 +1598,6 @@ unreachable ) (func $super-inline/Bar#a (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1622,13 +1614,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/tablebase.release.wat b/tests/compiler/tablebase.release.wat index 1d985e2553..6ed678709b 100644 --- a/tests/compiler/tablebase.release.wat +++ b/tests/compiler/tablebase.release.wat @@ -11,7 +11,6 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28,10 +27,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 688d5f4e11..556b3108ac 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -1174,11 +1174,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1363,8 +1362,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1649,7 +1647,6 @@ unreachable end global.get $~lib/rt/itcms/white - local.tee $3 local.get $1 i32.const 20 i32.sub @@ -1659,8 +1656,6 @@ i32.and i32.eq if - local.get $3 - i32.eqz local.get $0 i32.const 20 i32.sub @@ -1669,6 +1664,8 @@ i32.const 3 i32.and local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if local.get $0 @@ -1815,14 +1812,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32$75 local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -2672,10 +2668,10 @@ (local $1 i64) (local $2 i32) (local $3 i64) - (local $4 i64) + (local $4 i32) (local $5 i64) (local $6 i64) - (local $7 i32) + (local $7 i64) (local $8 i32) (local $9 i32) (local $10 i64) @@ -2703,9 +2699,9 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $7 + local.tee $4 i32.const 1 - local.get $7 + local.get $4 select i32.const 1075 i32.sub @@ -2715,7 +2711,7 @@ local.get $1 i64.const 4503599627370495 i64.and - local.get $7 + local.get $4 i32.const 0 i32.ne i64.extend_i32_u @@ -2730,11 +2726,11 @@ local.tee $3 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $9 i32.sub - local.set $9 + local.set $4 local.get $3 - local.get $7 + local.get $9 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -2744,25 +2740,24 @@ i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $9 i64.extend_i32_s i64.shl i64.const 1 i64.sub local.get $8 - local.get $7 - i32.sub local.get $9 i32.sub + local.get $4 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $9 + local.get $4 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -2771,8 +2766,8 @@ f64.add local.tee $0 i32.trunc_sat_f64_s - local.tee $8 - local.get $8 + local.tee $4 + local.get $4 f64.convert_i32_s local.get $0 f64.ne @@ -2781,18 +2776,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $8 + local.tee $4 i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $8 i32.const 3976 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $8 + local.get $4 i32.const 1 i32.shl i32.const 4672 @@ -2806,7 +2801,7 @@ local.tee $1 i64.const 4294967295 i64.and - local.set $4 + local.set $5 global.get $~lib/util/number/_frc_pow local.tee $10 i64.const 4294967295 @@ -2817,13 +2812,13 @@ i64.shr_u local.tee $1 i64.mul - local.get $4 + local.get $5 local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $5 + local.set $6 global.get $~lib/util/number/_frc_plus local.tee $3 i64.const 4294967295 @@ -2841,7 +2836,7 @@ i64.const 32 i64.shr_u i64.add - local.set $6 + local.set $7 global.get $~lib/util/number/_frc_minus local.tee $13 i64.const 4294967295 @@ -2871,14 +2866,14 @@ i64.shr_u local.tee $1 i64.mul - local.get $5 + local.get $6 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $4 - i64.mul local.get $5 + i64.mul + local.get $6 i64.const 4294967295 i64.and i64.add @@ -2890,14 +2885,14 @@ local.get $1 local.get $3 i64.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i64.add local.get $1 local.get $12 i64.mul - local.get $6 + local.get $7 i64.const 4294967295 i64.and i64.add @@ -2909,8 +2904,8 @@ i64.const 1 i64.sub local.tee $3 - local.get $7 global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub @@ -2965,7 +2960,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/util/number/dtoa$79 @@ -2973,7 +2967,7 @@ f64.const 0 f64.eq if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3081,20 +3075,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 32 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=12 i32.const 1056 @@ -3110,10 +3103,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=20 i32.const 1056 @@ -3139,16 +3131,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store offset=24 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=28 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1744 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=20 i32.const 1748 @@ -3480,11 +3471,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 36 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1 call $templateliteral/Ref#constructor local.tee $2 @@ -3559,10 +3549,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $2 i32.store offset=16 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 call $templateliteral/Ref#toString local.tee $1 @@ -3641,14 +3630,13 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 24 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5552 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5552 i32.const 0 call $templateliteral/RecursiveObject#constructor @@ -3825,14 +3813,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -3847,8 +3834,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -3858,7 +3843,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -3870,12 +3855,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -3973,7 +3958,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3990,10 +3974,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4003,7 +3986,7 @@ i32.const -2 i32.and local.set $2 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -4018,7 +4001,7 @@ local.tee $4 i32.eqz if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -4053,7 +4036,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -4070,10 +4052,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 i64.const 0 i64.store - local.get $5 + global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 local.get $1 @@ -4083,7 +4064,7 @@ i32.const 0 i32.lt_s if - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer @@ -4094,12 +4075,11 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.load local.tee $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer @@ -4115,22 +4095,21 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $0 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 if + global.get $~lib/memory/__stack_pointer local.get $5 - local.get $6 i32.store offset=8 local.get $2 - local.get $6 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -4149,24 +4128,23 @@ i32.const 0 local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 1184 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $4 i32.const 1180 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $1 + local.get $4 i32.mul i32.add i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=12 i32.const 0 local.set $2 @@ -4176,55 +4154,54 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $7 local.get $0 local.get $2 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $1 + local.get $6 if - local.get $7 - local.get $1 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $6 + i32.store offset=8 + local.get $5 local.get $3 i32.const 1 i32.shl i32.add - local.get $1 - local.get $1 + local.get $6 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 + local.tee $6 i32.const 1 i32.shl memory.copy - local.get $1 local.get $3 + local.get $6 i32.add local.set $3 end - local.get $5 + local.get $1 if - local.get $6 + local.get $5 local.get $3 i32.const 1 i32.shl i32.add i32.const 1184 - local.get $5 + local.get $1 i32.const 1 i32.shl memory.copy + local.get $1 local.get $3 - local.get $5 i32.add local.set $3 end @@ -4236,7 +4213,6 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 local.get $4 i32.const 2 @@ -4247,10 +4223,10 @@ i32.store offset=4 local.get $0 if - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $6 + local.get $5 local.get $3 i32.const 1 i32.shl @@ -4268,11 +4244,10 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4289,10 +4264,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 @@ -4301,12 +4275,12 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 - local.get $1 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/util/string/joinStringArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -4317,7 +4291,6 @@ ) (func $templateliteral/test_fast_paths_string (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -4334,11 +4307,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.const 20 memory.fill - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store i32.const 2 @@ -4363,10 +4335,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=8 i32.const 1088 @@ -4413,10 +4384,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 5104 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=16 i32.const 5104 @@ -4445,10 +4415,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5200 i32.store offset=16 local.get $0 @@ -4474,10 +4443,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5200 i32.store offset=16 i32.const 1088 @@ -4506,10 +4474,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=16 local.get $0 @@ -4541,7 +4508,6 @@ ) (func $templateliteral/Ref#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4558,30 +4524,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 5 call $~lib/rt/itcms/__new local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=4 local.get $1 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 ) (func $templateliteral/Ref#toString (param $0 i32) (result i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4592,16 +4555,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5328 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 @@ -4620,13 +4582,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5328 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 i32.const 5328 @@ -4653,7 +4614,6 @@ ) (func $templateliteral/RecursiveObject#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4670,23 +4630,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 6 call $~lib/rt/itcms/__new local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $2 @@ -4717,7 +4675,6 @@ ) (func $templateliteral/RecursiveObject#toString (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -4734,14 +4691,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.const 20 memory.fill - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.tee $1 @@ -4749,13 +4705,13 @@ local.get $1 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load local.set $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer @@ -4763,18 +4719,17 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load local.tee $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 call $templateliteral/RecursiveObject#toString local.tee $1 diff --git a/tests/compiler/ternary.release.wat b/tests/compiler/ternary.release.wat index af33f14eda..fda76df259 100644 --- a/tests/compiler/ternary.release.wat +++ b/tests/compiler/ternary.release.wat @@ -37,13 +37,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index f7ebdcef76..8fad062a65 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -1044,18 +1044,16 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state end ) (func $throw/doThrow - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1072,10 +1070,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1696 @@ -1116,7 +1113,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) block $__inlined_func$start:throw$1 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -1128,20 +1124,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i64.const 0 i64.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 1216 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -1154,11 +1148,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.const 20 memory.fill - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store loop $while-continue|0 @@ -1170,14 +1163,13 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 1088 i32.store offset=4 local.get $0 i32.const 10 i32.gt_s if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1216 i32.store offset=8 i32.const 1248 @@ -1194,10 +1186,9 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1328 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/typealias.release.wat b/tests/compiler/typealias.release.wat index 3b7cdfe076..de77169cc1 100644 --- a/tests/compiler/typealias.release.wat +++ b/tests/compiler/typealias.release.wat @@ -23,7 +23,6 @@ local.get $0 ) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -40,16 +39,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -96,14 +94,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -118,8 +115,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -129,7 +124,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -141,12 +136,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -241,7 +236,6 @@ i32.const 0 ) (func $typealias/outer_function~inner_function - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -258,13 +252,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store offset=4 i32.const 1136 diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 2652ce4768..2be7d98141 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1097,11 +1097,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1203,8 +1202,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1400,7 +1398,6 @@ local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $invalid block $typeof/SomeClass block $~lib/function/Function<%28%29=>void> @@ -1445,10 +1442,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -1494,14 +1490,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 i64.const 0 i64.store local.get $0 local.get $1 i32.eq if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -1516,8 +1511,6 @@ i32.or br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.tee $2 local.get $0 i32.store local.get $0 @@ -1527,7 +1520,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $3 @@ -1539,12 +1532,12 @@ i32.shr_u i32.ne br_if $folding-inner0 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.set $2 - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $3 @@ -1641,7 +1634,6 @@ (func $start:typeof (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1652,13 +1644,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -1674,10 +1665,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1136 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store offset=4 i32.const 1136 @@ -1693,10 +1683,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1136 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store offset=4 i32.const 1136 @@ -1712,10 +1701,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1136 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store offset=4 i32.const 1136 @@ -1731,10 +1719,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store offset=4 i32.const 1168 @@ -1750,10 +1737,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store offset=4 i32.const 1168 @@ -1769,10 +1755,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1216 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1216 i32.store offset=4 i32.const 1216 @@ -1788,10 +1773,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1136 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store offset=4 i32.const 1136 @@ -1807,10 +1791,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -1826,10 +1809,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -1845,10 +1827,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -1864,10 +1845,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1296 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store offset=4 i32.const 1296 @@ -1883,10 +1863,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1216 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1216 i32.store offset=4 i32.const 1216 @@ -1902,10 +1881,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -1921,10 +1899,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -1940,10 +1917,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -1959,10 +1935,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -1978,10 +1953,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1296 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store offset=4 i32.const 1296 @@ -1997,10 +1971,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store offset=4 i32.const 1168 @@ -2056,19 +2029,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2077,13 +2050,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 @@ -2093,7 +2065,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2121,10 +2093,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1168 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store offset=4 i32.const 1168 @@ -2140,10 +2111,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1760 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1760 i32.store offset=4 i32.const 1760 @@ -2159,10 +2129,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1760 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1760 i32.store offset=4 i32.const 1760 @@ -2178,10 +2147,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1760 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1760 i32.store offset=4 i32.const 1760 diff --git a/tests/compiler/unicode-identifier.debug.wat b/tests/compiler/unicode-identifier.debug.wat index 22481cd95a..cf2105a944 100644 --- a/tests/compiler/unicode-identifier.debug.wat +++ b/tests/compiler/unicode-identifier.debug.wat @@ -1,12 +1,12 @@ (module - (global $unicode-identifier/ÀÈ (mut i32) (i32.const 0)) - (global $unicode-identifier/变量 (mut i32) (i32.const 0)) - (global $unicode-identifier/𠜎𠜱 (mut i32) (i32.const 0)) + (global $"unicode-identifier/\c3\80\c3\88" (mut i32) (i32.const 0)) + (global $"unicode-identifier/\e5\8f\98\e9\87\8f" (mut i32) (i32.const 0)) + (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1" (mut i32) (i32.const 0)) (memory $0 0) (table $0 1 1 funcref) (elem $0 (i32.const 1)) - (export "ÀÈ" (global $unicode-identifier/ÀÈ)) - (export "变量" (global $unicode-identifier/变量)) - (export "𠜎𠜱" (global $unicode-identifier/𠜎𠜱)) + (export "ÀÈ" (global $"unicode-identifier/\c3\80\c3\88")) + (export "变量" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) + (export "𠜎𠜱" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) (export "memory" (memory $0)) ) diff --git a/tests/compiler/unicode-identifier.release.wat b/tests/compiler/unicode-identifier.release.wat index 36d442b9c4..f0072ed5f6 100644 --- a/tests/compiler/unicode-identifier.release.wat +++ b/tests/compiler/unicode-identifier.release.wat @@ -1,10 +1,10 @@ (module - (global $unicode-identifier/ÀÈ (mut i32) (i32.const 0)) - (global $unicode-identifier/变量 (mut i32) (i32.const 0)) - (global $unicode-identifier/𠜎𠜱 (mut i32) (i32.const 0)) + (global $"unicode-identifier/\c3\80\c3\88" (mut i32) (i32.const 0)) + (global $"unicode-identifier/\e5\8f\98\e9\87\8f" (mut i32) (i32.const 0)) + (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1" (mut i32) (i32.const 0)) (memory $0 0) - (export "ÀÈ" (global $unicode-identifier/ÀÈ)) - (export "变量" (global $unicode-identifier/变量)) - (export "𠜎𠜱" (global $unicode-identifier/𠜎𠜱)) + (export "ÀÈ" (global $"unicode-identifier/\c3\80\c3\88")) + (export "变量" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) + (export "𠜎𠜱" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) (export "memory" (memory $0)) ) diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index cba8c845b8..57ed01f821 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1069,11 +1069,10 @@ return end global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1175,8 +1174,7 @@ br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1686,12 +1684,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store i32.const 0 local.set $1 - local.get $0 + global.get $~lib/memory/__stack_pointer call $while/Ref#constructor local.tee $0 i32.store @@ -1749,12 +1746,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store i32.const 0 local.set $0 - local.get $1 + global.get $~lib/memory/__stack_pointer call $while/Ref#constructor local.tee $1 i32.store @@ -1925,7 +1921,6 @@ (func $while/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1936,19 +1931,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1957,13 +1952,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 0 i32.store local.get $0 i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/itcms/__new local.tee $0 From 67579debd580cdba3774425269515de5b402d9f3 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Mon, 15 Jan 2024 12:50:08 +0800 Subject: [PATCH 11/86] fix: clear garbage bits before cast short integer to float (#2813) Co-authored-by: CountBleck --- src/compiler.ts | 38 ++---- tests/compiler/number-convert.debug.wat | 157 ++++++++++++++++++++++ tests/compiler/number-convert.json | 4 + tests/compiler/number-convert.release.wat | 4 + tests/compiler/number-convert.ts | 29 ++++ 5 files changed, 206 insertions(+), 26 deletions(-) create mode 100644 tests/compiler/number-convert.debug.wat create mode 100644 tests/compiler/number-convert.json create mode 100644 tests/compiler/number-convert.release.wat create mode 100644 tests/compiler/number-convert.ts diff --git a/src/compiler.ts b/src/compiler.ts index 3e721dd4b2..bc15cd2143 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -3647,43 +3647,29 @@ export class Compiler extends DiagnosticEmitter { // int to float } else if (fromType.isIntegerValue && toType.isFloatValue) { - + // Clear extra bits. + expr = this.ensureSmallIntegerWrap(expr, fromType); + let op: UnaryOp; // int to f32 if (toType.kind == TypeKind.F32) { if (fromType.isLongIntegerValue) { - expr = module.unary( - fromType.isSignedIntegerValue - ? UnaryOp.ConvertI64ToF32 - : UnaryOp.ConvertU64ToF32, - expr - ); + if (fromType.isSignedIntegerValue) op = UnaryOp.ConvertI64ToF32; + else op = UnaryOp.ConvertU64ToF32; } else { - expr = module.unary( - fromType.isSignedIntegerValue - ? UnaryOp.ConvertI32ToF32 - : UnaryOp.ConvertU32ToF32, - expr - ); + if (fromType.isSignedIntegerValue) op = UnaryOp.ConvertI32ToF32; + else op = UnaryOp.ConvertU32ToF32; } - // int to f64 } else { if (fromType.isLongIntegerValue) { - expr = module.unary( - fromType.isSignedIntegerValue - ? UnaryOp.ConvertI64ToF64 - : UnaryOp.ConvertU64ToF64, - expr - ); + if (fromType.isSignedIntegerValue) op = UnaryOp.ConvertI64ToF64; + else op = UnaryOp.ConvertU64ToF64; } else { - expr = module.unary( - fromType.isSignedIntegerValue - ? UnaryOp.ConvertI32ToF64 - : UnaryOp.ConvertU32ToF64, - expr - ); + if (fromType.isSignedIntegerValue) op = UnaryOp.ConvertI32ToF64; + else op = UnaryOp.ConvertU32ToF64; } } + expr = module.unary(op, expr); // v128 to bool } else if (fromType == Type.v128 && toType.isBooleanValue) { diff --git a/tests/compiler/number-convert.debug.wat b/tests/compiler/number-convert.debug.wat new file mode 100644 index 0000000000..b555a169ff --- /dev/null +++ b/tests/compiler/number-convert.debug.wat @@ -0,0 +1,157 @@ +(module + (type $0 (func)) + (global $~lib/memory/__data_end i32 (i32.const 8)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32776)) + (global $~lib/memory/__heap_base i32 (i32.const 32776)) + (memory $0 0) + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $start:number-convert + i32.const 1 + f32.convert_i32_u + f32.const 1 + f32.eq + drop + i32.const 255 + f32.convert_i32_u + f32.const 255 + f32.eq + drop + i32.const 256 + i32.const 255 + i32.and + f32.convert_i32_u + f32.const 0 + f32.eq + drop + i32.const 257 + i32.const 255 + i32.and + f32.convert_i32_u + f32.const 1 + f32.eq + drop + i32.const 1 + f32.convert_i32_s + f32.const 1 + f32.eq + drop + i32.const 255 + i32.extend8_s + f32.convert_i32_s + f32.const -1 + f32.eq + drop + i32.const 256 + i32.extend8_s + f32.convert_i32_s + f32.const 0 + f32.eq + drop + i32.const 257 + i32.extend8_s + f32.convert_i32_s + f32.const 1 + f32.eq + drop + i32.const 1 + f32.convert_i32_u + f32.const 1 + f32.eq + drop + i32.const 65535 + f32.convert_i32_u + f32.const 65535 + f32.eq + drop + i32.const 65536 + i32.const 65535 + i32.and + f32.convert_i32_u + f32.const 0 + f32.eq + drop + i32.const 65537 + i32.const 65535 + i32.and + f32.convert_i32_u + f32.const 1 + f32.eq + drop + i32.const 1 + f32.convert_i32_s + f32.const 1 + f32.eq + drop + i32.const 65535 + i32.extend16_s + f32.convert_i32_s + f32.const -1 + f32.eq + drop + i32.const 65536 + i32.extend16_s + f32.convert_i32_s + f32.const 0 + f32.eq + drop + i32.const 65537 + i32.extend16_s + f32.convert_i32_s + f32.const 1 + f32.eq + drop + i32.const 1 + f64.convert_i32_u + f64.const 1 + f64.eq + drop + i32.const 255 + f64.convert_i32_u + f64.const 255 + f64.eq + drop + i32.const 256 + i32.const 255 + i32.and + f64.convert_i32_u + f64.const 0 + f64.eq + drop + i32.const 257 + i32.const 255 + i32.and + f64.convert_i32_u + f64.const 1 + f64.eq + drop + i32.const 1 + f64.convert_i32_s + f64.const 1 + f64.eq + drop + i32.const 255 + i32.extend8_s + f64.convert_i32_s + f64.const -1 + f64.eq + drop + i32.const 256 + i32.extend8_s + f64.convert_i32_s + f64.const 0 + f64.eq + drop + i32.const 257 + i32.extend8_s + f64.convert_i32_s + f64.const 1 + f64.eq + drop + ) + (func $~start + call $start:number-convert + ) +) diff --git a/tests/compiler/number-convert.json b/tests/compiler/number-convert.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/number-convert.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/number-convert.release.wat b/tests/compiler/number-convert.release.wat new file mode 100644 index 0000000000..23da3862e2 --- /dev/null +++ b/tests/compiler/number-convert.release.wat @@ -0,0 +1,4 @@ +(module + (memory $0 0) + (export "memory" (memory $0)) +) diff --git a/tests/compiler/number-convert.ts b/tests/compiler/number-convert.ts new file mode 100644 index 0000000000..5eb4bc47f1 --- /dev/null +++ b/tests/compiler/number-convert.ts @@ -0,0 +1,29 @@ +assert((1) == 1); +assert((255) == 255); +assert((256) == 0); +assert((257) == 1); + +assert((1) == 1); +assert((255) == -1); +assert((256) == 0); +assert((257) == 1); + +assert((1) == 1); +assert((65535) == 65535); +assert((65536) == 0); +assert((65537) == 1); + +assert((1) == 1); +assert((65535) == -1); +assert((65536) == 0); +assert((65537) == 1); + +assert((1) == 1); +assert((255) == 255); +assert((256) == 0); +assert((257) == 1); + +assert((1) == 1); +assert((255) == -1); +assert((256) == 0); +assert((257) == 1); From 4655745c011a80a1e419953d27d0738ad0bbbb57 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Tue, 30 Jan 2024 09:37:15 +0800 Subject: [PATCH 12/86] fix: asinit support --noColors opinion (#2817) --- bin/asinit.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bin/asinit.js b/bin/asinit.js index 5023e5c09a..1da4ddedd1 100755 --- a/bin/asinit.js +++ b/bin/asinit.js @@ -55,11 +55,20 @@ const asinitOptions = { ], "type": "b", "alias": "y" - } + }, + "noColors": { + "description": "Disables terminal colors.", + "type": "b", + "default": false + }, }; const cliOptions = optionsUtil.parse(process.argv.slice(2), asinitOptions); +if (cliOptions.options.noColors) { + stdoutColors.enabled = false; +} + if (cliOptions.options.help || cliOptions.arguments.length === 0) printHelp(); function printHelp() { From de174c5f2863ea7947ba4496be4f9028c99d3367 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 8 Mar 2024 21:18:34 +0800 Subject: [PATCH 13/86] fix: select correct override function (#2822) --- src/compiler.ts | 9 +- src/module.ts | 20 +- tests/compiler/class-override.debug.wat | 2673 +++++++++++++++++++++ tests/compiler/class-override.json | 4 + tests/compiler/class-override.release.wat | 1745 ++++++++++++++ tests/compiler/class-override.ts | 24 + 6 files changed, 4472 insertions(+), 3 deletions(-) create mode 100644 tests/compiler/class-override.debug.wat create mode 100644 tests/compiler/class-override.json create mode 100644 tests/compiler/class-override.release.wat create mode 100644 tests/compiler/class-override.ts diff --git a/src/compiler.ts b/src/compiler.ts index bc15cd2143..648b6fa24d 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -6618,6 +6618,7 @@ export class Compiler extends DiagnosticEmitter { ); let overrideInstances = this.resolver.resolveOverrides(instance); if (overrideInstances) { + let mostRecentInheritanceMapping = new Map(); for (let i = 0, k = overrideInstances.length; i < k; ++i) { let overrideInstance = overrideInstances[i]; if (!overrideInstance.is(CommonFlags.Compiled)) continue; // errored @@ -6680,7 +6681,13 @@ export class Compiler extends DiagnosticEmitter { if (instanceMembers && instanceMembers.has(instance.declaration.name.text)) { continue; // skip those not inheriting } - builder.addCase(extender.id, stmts); + if ( + !mostRecentInheritanceMapping.has(extender) || + !assert(mostRecentInheritanceMapping.get(extender)).extends(classInstance) + ) { + mostRecentInheritanceMapping.set(extender, classInstance); + builder.addOrReplaceCase(extender.id, stmts); + } } } } diff --git a/src/module.ts b/src/module.ts index 92d8ea9e48..24d1fb4c8c 100644 --- a/src/module.ts +++ b/src/module.ts @@ -3418,16 +3418,32 @@ export class SwitchBuilder { this.condition = condition; } + /** Links a case to the specified branch, replace old case if it is linked. */ + addOrReplaceCase(value: i32, code: ExpressionRef[]): void { + const valueIndex = this.values.indexOf(value); + const codeIndex = this.addCode(code); + if (valueIndex >= 0) { + this.indexes[valueIndex] = codeIndex; + } else { + this.values.push(value); + this.indexes.push(codeIndex); + } + } + /** Links a case to the specified branch. */ addCase(value: i32, code: ExpressionRef[]): void { + this.values.push(value); + this.indexes.push(this.addCode(code)); + } + + private addCode(code: ExpressionRef[]): i32 { let cases = this.cases; let index = cases.indexOf(code); if (index < 0) { index = cases.length; cases.push(code); } - this.values.push(value); - this.indexes.push(index); + return index; } /** Links the default branch. */ diff --git a/tests/compiler/class-override.debug.wat b/tests/compiler/class-override.debug.wat new file mode 100644 index 0000000000..5fb98225b9 --- /dev/null +++ b/tests/compiler/class-override.debug.wat @@ -0,0 +1,2673 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func)) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (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 $class-override/x (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 516)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33284)) + (global $~lib/memory/__heap_base i32 (i32.const 33284)) + (memory $0 1) + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00r\00i\00d\00e\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 480) "\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\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "fn" (func $class-override/fn)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (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 + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (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 + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter 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 + 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 160 + 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 (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 (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (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 (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 128 + 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 132 + 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 (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (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 + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (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 2 + 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 + return + ) + (func $~lib/rt/itcms/Object#linkTo (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 (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 148 + 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 (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 (param $cookie i32) + (local $ptr 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 + if + local.get $ptr + i32.load + 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 (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (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 + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (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 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + 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 offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + 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 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 (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 + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + 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 + 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 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + 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 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 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + 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 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 382 + 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 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + 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 389 + 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 + 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 402 + 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|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 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 + 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 + 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 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + 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 + local.get $head + i32.store 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 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (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 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (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 (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 (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 (result i32) + (local $obj i32) + (local $1 i32) + (local $black 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 + 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 + 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 229 + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (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 (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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + 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 + return + ) + (func $~lib/rt/tlsf/searchBlock (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 + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + 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 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + 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 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|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 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (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 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + 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 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (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 361 + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (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 499 + 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 501 + 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 + return + ) + (func $~lib/rt/tlsf/__alloc (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 + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (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 261 + 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 + local.get $ptr + return + ) + (func $class-override/A#f (param $this i32) (param $a i32) (result i32) + local.get $a + i32.const 1 + i32.add + return + ) + (func $start:class-override + memory.size + 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 $class-override/D#constructor + global.set $class-override/x + i32.const 0 + call $class-override/fn + i32.const 111 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $class-override/A#f@override (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $default + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.set $2 + local.get $2 + i32.const 7 + i32.eq + br_if $case0 + local.get $2 + i32.const 5 + i32.eq + br_if $case1 + local.get $2 + i32.const 6 + i32.eq + br_if $case1 + br $default + end + local.get $0 + local.get $1 + call $class-override/B#f + return + end + local.get $0 + local.get $1 + call $class-override/C#f + return + end + local.get $0 + local.get $1 + call $class-override/A#f + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $class-override/x + 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 (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $class-override/B + block $class-override/C + block $class-override/D + block $class-override/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-override/A $class-override/D $class-override/C $class-override/B $invalid + end + return + 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 + call $start:class-override + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33312 + i32.const 33360 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $class-override/A#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $class-override/B#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $class-override/A#constructor + local.tee $this + i32.store + 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 $class-override/C#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $class-override/B#constructor + local.tee $this + i32.store + 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 $class-override/D#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $class-override/C#constructor + local.tee $this + i32.store + 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 $class-override/fn (param $n 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 + global.get $class-override/x + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $n + call $class-override/A#f@override + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $class-override/B#f (param $this i32) (param $a 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 + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $a + call $class-override/A#f + i32.const 10 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $class-override/C#f (param $this i32) (param $a 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 + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $a + call $class-override/B#f + i32.const 100 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/object/Object#constructor (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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/class-override.json b/tests/compiler/class-override.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/class-override.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/class-override.release.wat b/tests/compiler/class-override.release.wat new file mode 100644 index 0000000000..83f4b7874c --- /dev/null +++ b/tests/compiler/class-override.release.wat @@ -0,0 +1,1745 @@ +(module + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (result i32))) + (type $7 (func (param i32 i32) (result i32))) + (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 $class-override/x (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34308)) + (memory $0 1) + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00\"\00\00\00c\00l\00a\00s\00s\00-\00o\00v\00e\00r\00r\00i\00d\00e\00.\00t\00s") + (data $9 (i32.const 1504) "\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 ") + (export "fn" (func $class-override/fn)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $class-override/x + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$120 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34308 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$120 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1504 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1508 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + 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 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34320 + i32.const 0 + i32.store + i32.const 35888 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34320 + i32.add + i32.const 0 + i32.store 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 34320 + i32.add + i32.const 0 + i32.store 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 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34308 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34308 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34308 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (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$69 + 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$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 + local.tee $1 + i32.const 4 + local.get $2 + i32.load 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 + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 501 + 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 + 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 + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $class-override/B + block $class-override/C + block $class-override/D + block $class-override/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-override/A $class-override/D $class-override/C $class-override/B $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $__inlined_func$start:class-override + memory.size + i32.const 16 + i32.shl + i32.const 34308 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + 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 + end + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + 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 + end + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-override/x + i32.const 0 + call $class-override/fn + i32.const 111 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$start:class-override + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $class-override/fn (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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $class-override/x + local.tee $1 + i32.store + block $__inlined_func$class-override/A#f@override$126 + block $default + block $case1 + block $case0 + local.get $1 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case1 $case1 $case0 $default + end + local.get $1 + local.get $0 + call $class-override/B#f + local.set $0 + br $__inlined_func$class-override/A#f@override$126 + end + 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 1540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $class-override/B#f + i32.const 100 + i32.add + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$class-override/A#f@override$126 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $class-override/B#f (param $0 i32) (param $1 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 1540 + i32.lt_s + if + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 11 + i32.add + ) +) diff --git a/tests/compiler/class-override.ts b/tests/compiler/class-override.ts new file mode 100644 index 0000000000..08121693e6 --- /dev/null +++ b/tests/compiler/class-override.ts @@ -0,0 +1,24 @@ +export function fn(n: i32): i32 { + return x.f(n); +} + +class A { + f(a: i32): i32 { + return a + 1; + } +} +class B extends A { + f(a: i32): i32 { + return super.f(a) + 10; + } +} +class C extends B { + f(a: i32): i32 { + return super.f(a) + 100; + } +} +class D extends C {} + +let x: A = new D(); + +assert(fn(0) == 111); From 9605c037bbf47a81b55120d6bb36fa3f85d56859 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Wed, 27 Mar 2024 19:09:21 -0700 Subject: [PATCH 14/86] Binaryen on transform (#2832) * Expose binaryen instance on transform * Fix invalid import in generated output --- cli/index.d.ts | 8 ++++++-- cli/index.js | 1 + scripts/build-dts.js | 10 +++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/cli/index.d.ts b/cli/index.d.ts index 16e070529e..58c7fb4ef6 100644 --- a/cli/index.d.ts +++ b/cli/index.d.ts @@ -240,7 +240,8 @@ export function createMemoryStream(fn?: (chunk: Uint8Array | string) => void): M /** Compatible TypeScript compiler options for syntax highlighting etc. */ export const tscOptions: Record; -import { Program, Parser, Module } from "../src"; +import binaryen from "../lib/binaryen"; +import { Program, Parser } from "../src"; /** Compiler transform base class. */ export abstract class Transform { @@ -248,6 +249,9 @@ export abstract class Transform { /** Program reference. */ readonly program: Program; + /** Binaryen reference. */ + readonly binaryen: typeof binaryen; + /** Base directory. */ readonly baseDir: string; @@ -276,5 +280,5 @@ export abstract class Transform { afterInitialize?(program: Program): void | Promise; /** Called when compilation is complete, before the module is being validated. */ - afterCompile?(module: Module): void | Promise; + afterCompile?(module: binaryen.Module): void | Promise; } diff --git a/cli/index.js b/cli/index.js index 91634a8c01..b7b4a836e5 100644 --- a/cli/index.js +++ b/cli/index.js @@ -450,6 +450,7 @@ export async function main(argv, options) { if (typeof transform === "function") { Object.assign(transform.prototype, { program, + binaryen, baseDir, stdout, stderr, diff --git a/scripts/build-dts.js b/scripts/build-dts.js index 07215c9be9..0493075824 100644 --- a/scripts/build-dts.js +++ b/scripts/build-dts.js @@ -373,9 +373,13 @@ export function generateCli() { prefix, stdout, resolveModuleImport: ({ importedModuleId, currentModuleId }) => { - return currentModuleId == "cli/index" && importedModuleId == "../src" - ? prefix + "/src/index" - : null; + if (currentModuleId == "cli/index" && importedModuleId == "../src") + return prefix + "/src/index"; + + if (importedModuleId == "binaryen") + return "binaryen"; + + return null; }, }); From 9102c050b7be1fb482f85ea0c1427cfc63bc5e39 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Mon, 1 Apr 2024 23:18:17 -0700 Subject: [PATCH 15/86] Compile incrementors in for loops within the initializer's flow (#2826) It turns out that incrementors were compiled with the body's flow, which meant that the incrementor had access to local variables declared in the body. Now, incrementors no longer have access to such variables. Fixes #2825. --- src/compiler.ts | 1 + tests/compiler/issues/2825.debug.wat | 55 ++++++++++++++++++++++++++ tests/compiler/issues/2825.json | 1 + tests/compiler/issues/2825.release.wat | 36 +++++++++++++++++ tests/compiler/issues/2825.ts | 8 ++++ 5 files changed, 101 insertions(+) create mode 100644 tests/compiler/issues/2825.debug.wat create mode 100644 tests/compiler/issues/2825.json create mode 100644 tests/compiler/issues/2825.release.wat create mode 100644 tests/compiler/issues/2825.ts diff --git a/src/compiler.ts b/src/compiler.ts index 648b6fa24d..8e5ee85615 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -2600,6 +2600,7 @@ export class Compiler extends DiagnosticEmitter { if (possiblyLoops) { let incrementor = statement.incrementor; if (incrementor) { + this.currentFlow = flow; bodyStmts.push( this.compileExpression(incrementor, Type.void, Constraints.ConvImplicit | Constraints.WillDrop) ); diff --git a/tests/compiler/issues/2825.debug.wat b/tests/compiler/issues/2825.debug.wat new file mode 100644 index 0000000000..7c0913c266 --- /dev/null +++ b/tests/compiler/issues/2825.debug.wat @@ -0,0 +1,55 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (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)) + (memory $0 1) + (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\002\005\00.\00t\00s\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $issues/2825/increment (param $x i32) (result i32) + local.get $x + i32.const 1234 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 2 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $x + i32.const 1 + i32.add + return + ) + (func $start:issues/2825 + (local $i i32) + (local $i|1 i32) + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + i32.const 10 + i32.lt_s + if + i32.const 1234 + local.set $i|1 + local.get $i + call $issues/2825/increment + local.set $i + br $for-loop|0 + end + end + ) + (func $~start + call $start:issues/2825 + ) +) diff --git a/tests/compiler/issues/2825.json b/tests/compiler/issues/2825.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/tests/compiler/issues/2825.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/tests/compiler/issues/2825.release.wat b/tests/compiler/issues/2825.release.wat new file mode 100644 index 0000000000..67c8c965ac --- /dev/null +++ b/tests/compiler/issues/2825.release.wat @@ -0,0 +1,36 @@ +(module + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data $0 (i32.const 1036) ",") + (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\002\005\00.\00t\00s") + (export "memory" (memory $0)) + (start $~start) + (func $~start + (local $0 i32) + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + if + local.get $0 + i32.const 1234 + i32.eq + if + i32.const 0 + i32.const 1056 + i32.const 2 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + ) +) diff --git a/tests/compiler/issues/2825.ts b/tests/compiler/issues/2825.ts new file mode 100644 index 0000000000..556a24a0d5 --- /dev/null +++ b/tests/compiler/issues/2825.ts @@ -0,0 +1,8 @@ +function increment(x: i32): i32 { + assert(x !== 1234); + return x + 1; +} + +for (let i = 0; i < 10; i = increment(i)) { + let i = 1234; +} \ No newline at end of file From b640ff25e40edc98f599f2493ae4a0d40e69cb8e Mon Sep 17 00:00:00 2001 From: CountBleck Date: Tue, 2 Apr 2024 20:19:52 -0700 Subject: [PATCH 16/86] fix: ignore this (#2834) This is a dummy commit to create a new release. From 9e23c8cdbd62c17d92dffae6786fb6c3590102e7 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Sat, 6 Apr 2024 13:09:17 +0800 Subject: [PATCH 17/86] chore: add action to check PR title prefix (#2836) --- .github/workflows/pr.yml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/pr.yml diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 0000000000..bf0538c5f2 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,33 @@ +name: PR + +on: + pull_request: + types: [opened, edited, synchronize] + +jobs: + check-title: + runs-on: ubuntu-latest + steps: + - name: Check PR Title Prefix + id: title-check + uses: actions/github-script@v7 + with: + script: | + const titlePrefixes = ["feat", "fix", "break", "chore"]; + const title = context.payload.pull_request.title.toLowerCase(); + const titleHasValidPrefix = titlePrefixes.some((prefix) => title.startsWith(`${prefix}:`)); + if (!titleHasValidPrefix) { process.exit(-1); } + + - uses: thollander/actions-comment-pull-request@v2 + if: success() + with: + message: | + ✅ PR title meet the requirements. + comment_tag: PR title check result + + - uses: thollander/actions-comment-pull-request@v2 + if: failure() + with: + message: | + 🚨 PR title does not meet the requirements. It must start with one of the following prefixes: 'feat:', 'fix:', 'chore:', 'break:'. + comment_tag: PR title check result From 721236d892b65ef2e9b296ca513e179775bfb204 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Sun, 7 Apr 2024 12:34:14 +0800 Subject: [PATCH 18/86] chore: remove comment in PR title check pipeline (#2837) --- .github/workflows/pr.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index bf0538c5f2..88232d9ff3 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -17,17 +17,3 @@ jobs: const title = context.payload.pull_request.title.toLowerCase(); const titleHasValidPrefix = titlePrefixes.some((prefix) => title.startsWith(`${prefix}:`)); if (!titleHasValidPrefix) { process.exit(-1); } - - - uses: thollander/actions-comment-pull-request@v2 - if: success() - with: - message: | - ✅ PR title meet the requirements. - comment_tag: PR title check result - - - uses: thollander/actions-comment-pull-request@v2 - if: failure() - with: - message: | - 🚨 PR title does not meet the requirements. It must start with one of the following prefixes: 'feat:', 'fix:', 'chore:', 'break:'. - comment_tag: PR title check result From 64cba2e22bc415994274dd14eeae50a5a9369d70 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Wed, 10 Apr 2024 14:15:21 +0800 Subject: [PATCH 19/86] fix: for statement increment will be processed in correct context (#2839) --- src/compiler.ts | 16 ++++++++-------- tests/compiler/issues/2825.debug.wat | 14 ++++++++++++++ tests/compiler/issues/2825.json | 2 +- tests/compiler/issues/2825.release.wat | 11 +++++++++-- tests/compiler/issues/2825.ts | 9 ++++++++- 5 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index 8e5ee85615..d40804d9e0 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -2595,6 +2595,14 @@ export class Compiler extends DiagnosticEmitter { bodyStmts.length = 1; } + if (condKind == ConditionKind.True) { + // Body executes at least once + flow.inherit(bodyFlow); + } else { + // Otherwise executes conditionally + flow.mergeBranch(bodyFlow); + } + // Compile the incrementor if it possibly executes let possiblyLoops = possiblyContinues || possiblyFallsThrough; if (possiblyLoops) { @@ -2618,14 +2626,6 @@ export class Compiler extends DiagnosticEmitter { } } - // Body executes at least once - if (condKind == ConditionKind.True) { - flow.inherit(bodyFlow); - - // Otherwise executes conditionally - } else { - flow.mergeBranch(bodyFlow); - } // Finalize outerFlow.inherit(flow); diff --git a/tests/compiler/issues/2825.debug.wat b/tests/compiler/issues/2825.debug.wat index 7c0913c266..4ecc4ddd57 100644 --- a/tests/compiler/issues/2825.debug.wat +++ b/tests/compiler/issues/2825.debug.wat @@ -10,6 +10,7 @@ (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\002\005\00.\00t\00s\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) + (export "init" (func $issues/2825/init)) (export "memory" (memory $0)) (start $~start) (func $issues/2825/increment (param $x i32) (result i32) @@ -49,6 +50,19 @@ end end ) + (func $issues/2825/init + (local $not_unassigned i32) + loop $for-loop|0 + i32.const 1 + if + i32.const 0 + local.set $not_unassigned + local.get $not_unassigned + drop + br $for-loop|0 + end + end + ) (func $~start call $start:issues/2825 ) diff --git a/tests/compiler/issues/2825.json b/tests/compiler/issues/2825.json index 9e26dfeeb6..0967ef424b 100644 --- a/tests/compiler/issues/2825.json +++ b/tests/compiler/issues/2825.json @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/tests/compiler/issues/2825.release.wat b/tests/compiler/issues/2825.release.wat index 67c8c965ac..c11fb2dae0 100644 --- a/tests/compiler/issues/2825.release.wat +++ b/tests/compiler/issues/2825.release.wat @@ -1,12 +1,19 @@ (module - (type $0 (func (param i32 i32 i32 i32))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\008\002\005\00.\00t\00s") + (export "init" (func $issues/2825/init)) (export "memory" (memory $0)) (start $~start) + (func $issues/2825/init + loop $for-loop|0 + br $for-loop|0 + end + unreachable + ) (func $~start (local $0 i32) loop $for-loop|0 diff --git a/tests/compiler/issues/2825.ts b/tests/compiler/issues/2825.ts index 556a24a0d5..f563fd5bf7 100644 --- a/tests/compiler/issues/2825.ts +++ b/tests/compiler/issues/2825.ts @@ -5,4 +5,11 @@ function increment(x: i32): i32 { for (let i = 0; i < 10; i = increment(i)) { let i = 1234; -} \ No newline at end of file +} + +export function init(): void { + let not_unassigned: i32; + for (; ; not_unassigned) { + not_unassigned = 0; + } +} From be4961084a02e7a8dc5be90f1ba2340a4fc7bec7 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 21 Jun 2024 00:04:05 +0800 Subject: [PATCH 20/86] chore: temporary disable std/math.release.wat check in aarch64 osx (#2856) --- tests/compiler.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/compiler.js b/tests/compiler.js index 68efc56c19..0b6018fa80 100644 --- a/tests/compiler.js +++ b/tests/compiler.js @@ -199,6 +199,11 @@ async function runTest(basename) { // If a fixture/generated file is missing, false will be compared to a // string. If both are missing, nothing happens below (as it should). if (actual !== expected) { + if (filename == "std/math.release.wat" && os.version().startsWith("Darwin Kernel") && os.arch() == "arm64") { + // FIXME: in arm64 macos, binaryen will optimize math.ts with different output. + compareFixture.end(SKIPPED); + return; + } compareFixture.end(FAILURE); return prepareResult(FAILURE, "fixture mismatch"); } From 78963c5311b1ba9506d9a81e6faf30bb35b90a5c Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 21 Jun 2024 09:18:49 +0800 Subject: [PATCH 21/86] fix: detect execution environment when loading wasm module (#2855) --- src/bindings/js.ts | 5 +++-- tests/compiler/bindings/esm.debug.js | 5 +++-- tests/compiler/bindings/esm.release.js | 5 +++-- tests/compiler/bindings/noExportRuntime.debug.js | 5 +++-- tests/compiler/bindings/noExportRuntime.release.js | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/bindings/js.ts b/src/bindings/js.ts index a86f77dec4..8876118b11 100644 --- a/src/bindings/js.ts +++ b/src/bindings/js.ts @@ -976,8 +976,9 @@ export class JSBuilder extends ExportsWalker { } sb.push(`} = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { `); let needsMaybeDefault = false; diff --git a/tests/compiler/bindings/esm.debug.js b/tests/compiler/bindings/esm.debug.js index d2d89456b8..8ebfcb8c8f 100644 --- a/tests/compiler/bindings/esm.debug.js +++ b/tests/compiler/bindings/esm.debug.js @@ -553,8 +553,9 @@ export const { fn, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("esm.debug.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/esm.release.js b/tests/compiler/bindings/esm.release.js index 30c529402d..7f0ac87f85 100644 --- a/tests/compiler/bindings/esm.release.js +++ b/tests/compiler/bindings/esm.release.js @@ -553,8 +553,9 @@ export const { fn, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("esm.release.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/noExportRuntime.debug.js b/tests/compiler/bindings/noExportRuntime.debug.js index 9db98d97b4..2521ab12b1 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.js +++ b/tests/compiler/bindings/noExportRuntime.debug.js @@ -162,8 +162,9 @@ export const { takesFunction, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("noExportRuntime.debug.wasm", import.meta.url)); diff --git a/tests/compiler/bindings/noExportRuntime.release.js b/tests/compiler/bindings/noExportRuntime.release.js index de99664237..26ab44837a 100644 --- a/tests/compiler/bindings/noExportRuntime.release.js +++ b/tests/compiler/bindings/noExportRuntime.release.js @@ -162,8 +162,9 @@ export const { takesFunction, } = await (async url => instantiate( await (async () => { - try { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } - catch { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + const isNodeOrBun = typeof process != "undefined" && process.versions != null && (process.versions.node != null || process.versions.bun != null); + if (isNodeOrBun) { return globalThis.WebAssembly.compile(await (await import("node:fs/promises")).readFile(url)); } + else { return await globalThis.WebAssembly.compileStreaming(globalThis.fetch(url)); } })(), { } ))(new URL("noExportRuntime.release.wasm", import.meta.url)); From acdb2423f00f145394d8caece0e9be301241f487 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 30 Jun 2024 22:28:03 +0800 Subject: [PATCH 22/86] chore: bump braces from 3.0.2 to 3.0.3 (#2850) --- package-lock.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c0924a072..e4bc84df7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -891,12 +891,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1332,9 +1332,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -2920,12 +2920,12 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "callsites": { @@ -3261,9 +3261,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" From f79391c91a0875e98a6e887b3353210b4125dc87 Mon Sep 17 00:00:00 2001 From: Jairus Date: Sat, 6 Jul 2024 11:29:26 -0700 Subject: [PATCH 23/86] fix: std/portable included twice (#2860) --- std/portable/index.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/std/portable/index.js b/std/portable/index.js index d35ce63ee2..e1a658683b 100644 --- a/std/portable/index.js +++ b/std/portable/index.js @@ -412,6 +412,4 @@ if (typeof globalScope.ASC_TARGET === "undefined") { if (n) message += Array.prototype.slice.call(arguments, 2, 2 + n); console.error("trace: " + message); }; -} else { - console.warn("compiler mismatch: std/portable included twice"); -} +} \ No newline at end of file From 4bd1c122461eefdc64082f16677e239b9e8ea93f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Heredia=20Montiel?= <303897+fabianhjr@users.noreply.github.com> Date: Thu, 26 Sep 2024 00:02:34 -0600 Subject: [PATCH 24/86] =?UTF-8?q?chore:=20typescript:=204.7.4=20=E2=86=92?= =?UTF-8?q?=205.5.4=20(#2868)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NOTICE | 1 + package-lock.json | 17 +++++++++-------- package.json | 2 +- src/builtins.ts | 2 ++ src/tokenizer.ts | 3 +++ tests/compiler/std/string-encoding.ts | 2 +- tests/compiler/std/string.ts | 2 +- 7 files changed, 18 insertions(+), 11 deletions(-) diff --git a/NOTICE b/NOTICE index adca27c800..aacf76c8e7 100644 --- a/NOTICE +++ b/NOTICE @@ -57,6 +57,7 @@ under the licensing terms detailed in LICENSE: * Bach Le * Xinquan Xu * Matt Johnson-Pint +* Fabián Heredia Montiel Portions of this software are derived from third-party works licensed under the following terms: diff --git a/package-lock.json b/package-lock.json index e4bc84df7e..28afa0645c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "esbuild": "^0.19.4", "eslint": "^8.33.0", "glob": "^10.3.0", - "typescript": "~4.7.4" + "typescript": "^5.5.4" }, "engines": { "node": ">=16", @@ -2273,16 +2273,17 @@ } }, "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/undici-types": { @@ -3924,9 +3925,9 @@ "dev": true }, "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true }, "undici-types": { diff --git a/package.json b/package.json index 4d414afdde..b2a0ee359d 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "esbuild": "^0.19.4", "eslint": "^8.33.0", "glob": "^10.3.0", - "typescript": "~4.7.4" + "typescript": "^5.5.4" }, "type": "module", "exports": { diff --git a/src/builtins.ts b/src/builtins.ts index e9f563e1e6..956ab08a2f 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -1623,6 +1623,7 @@ function builtin_max(ctx: BuiltinFunctionContext): ExpressionRef { } else { arg1 = compiler.compileExpression(operands[1], type, Constraints.ConvImplicit | Constraints.MustWrap); } + // @ts-expect-error let op: BinaryOp = -1; switch (type.kind) { case TypeKind.I8: @@ -1691,6 +1692,7 @@ function builtin_min(ctx: BuiltinFunctionContext): ExpressionRef { } else { arg1 = compiler.compileExpression(operands[1], type, Constraints.ConvImplicit | Constraints.MustWrap); } + // @ts-expect-error let op: BinaryOp = -1; switch (type.kind) { case TypeKind.I8: diff --git a/src/tokenizer.ts b/src/tokenizer.ts index a4bf9e9aa4..08a9e10dec 100644 --- a/src/tokenizer.ts +++ b/src/tokenizer.ts @@ -463,9 +463,11 @@ export class Tokenizer extends DiagnosticEmitter { end: i32 = 0; pos: i32 = 0; + // @ts-expect-error token: Token = -1; tokenPos: i32 = 0; + // @ts-expect-error nextToken: Token = -1; nextTokenPos: i32 = 0; nextTokenOnNewLine: OnNewLine = OnNewLine.Unknown; @@ -1055,6 +1057,7 @@ export class Tokenizer extends DiagnosticEmitter { } clearNextToken(): void { + // @ts-expect-error this.nextToken = -1; this.nextTokenPos = 0; this.nextTokenOnNewLine = OnNewLine.Unknown; diff --git a/tests/compiler/std/string-encoding.ts b/tests/compiler/std/string-encoding.ts index b184dc9f0d..7a131280dc 100644 --- a/tests/compiler/std/string-encoding.ts +++ b/tests/compiler/std/string-encoding.ts @@ -118,7 +118,7 @@ testUTF8Decode(); function testUTF8DecodeNullTerminated(): void { var buf = String.UTF8.encode(str, true); assert(String.UTF8.decode(buf, true) == str); - var str2 = "123\0456"; + var str2 = "123\x00456"; assert(String.UTF8.byteLength(str2, true) == 4); var buf2 = String.UTF8.encode(str2, true); assert(buf2.byteLength == 4); diff --git a/tests/compiler/std/string.ts b/tests/compiler/std/string.ts index 3f3e281a4d..7b9281c8e4 100644 --- a/tests/compiler/std/string.ts +++ b/tests/compiler/std/string.ts @@ -27,7 +27,7 @@ assert(String.fromCharCode(65600) == "@"); assert(String.fromCharCode(54) == "6"); assert(String.fromCharCode(0x10000 + 54) == "6"); assert(String.fromCharCode(0xD800, 0xDF00) == "𐌀"); -assert(String.fromCharCodes([0, 54]) == "\06"); +assert(String.fromCharCodes([0, 54]) == "\x006"); assert(String.fromCharCodes([65, 66, 67]) == "ABC"); assert(String.fromCharCodes([0xD834, 0xDF06, 0x61, 0xD834, 0xDF07]) == "\uD834\uDF06a\uD834\uDF07"); From 1847c8fe409cbbf4b57a694198d09a3482174e65 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Thu, 26 Sep 2024 14:03:23 +0800 Subject: [PATCH 25/86] fix: report error for mulitple union type (#2872) --- src/parser.ts | 2 +- tests/parser/union.ts | 9 +++++++++ tests/parser/union.ts.fixture.ts | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tests/parser/union.ts create mode 100644 tests/parser/union.ts.fixture.ts diff --git a/src/parser.ts b/src/parser.ts index 58050e837e..7c69843973 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -631,7 +631,7 @@ export class Parser extends DiagnosticEmitter { } // ... | type while (tn.skip(Token.Bar)) { - let nextType = this.parseType(tn, false, true); + let nextType = this.parseType(tn, true, false); if (!nextType) return null; let typeIsNull = type.kind == NodeKind.NamedType && (type).isNull; let nextTypeIsNull = nextType.kind == NodeKind.NamedType && (nextType).isNull; diff --git a/tests/parser/union.ts b/tests/parser/union.ts new file mode 100644 index 0000000000..3d947fe09a --- /dev/null +++ b/tests/parser/union.ts @@ -0,0 +1,9 @@ +export function foo(a: aaa | bbb | ccc): i32 { + return 1; +} + +export function bar(a: i32 | u32 | f32): i32 { + return 1; +} + +export let a: i32 | u32 | f32 | null = 1; diff --git a/tests/parser/union.ts.fixture.ts b/tests/parser/union.ts.fixture.ts new file mode 100644 index 0000000000..b2fb8611bf --- /dev/null +++ b/tests/parser/union.ts.fixture.ts @@ -0,0 +1,4 @@ +export let a = 1; +// ERROR 100: "Not implemented: union types" in union.ts(1,36+3) +// ERROR 100: "Not implemented: union types" in union.ts(5,36+3) +// ERROR 100: "Not implemented: union types" in union.ts(9,27+10) From dfc8a65f2e7ce8971f5d3be0a9a0f1c1c41c91e6 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Thu, 26 Sep 2024 14:26:24 +0800 Subject: [PATCH 26/86] fix: strictly check operator overload ambiguity (#2762) Operator overload is an internal mechanism, it can support to compare user-defined class, but it need to be limited. a == b and b == a should run the same function and get the same result in semantic level. Allowing ambiguity is bug prone. --- src/compiler.ts | 415 ++- src/diagnosticMessages.json | 1 + src/program.ts | 6 +- src/types.ts | 12 +- .../compiler/operator-overload-ambiguity.json | 14 + tests/compiler/operator-overload-ambiguity.ts | 38 + .../operator-overload-non-ambiguity.debug.wat | 2615 +++++++++++++++++ .../operator-overload-non-ambiguity.json | 3 + ...perator-overload-non-ambiguity.release.wat | 1659 +++++++++++ .../operator-overload-non-ambiguity.ts | 19 + 10 files changed, 4549 insertions(+), 233 deletions(-) create mode 100644 tests/compiler/operator-overload-ambiguity.json create mode 100644 tests/compiler/operator-overload-ambiguity.ts create mode 100644 tests/compiler/operator-overload-non-ambiguity.debug.wat create mode 100644 tests/compiler/operator-overload-non-ambiguity.json create mode 100644 tests/compiler/operator-overload-non-ambiguity.release.wat create mode 100644 tests/compiler/operator-overload-non-ambiguity.ts diff --git a/src/compiler.ts b/src/compiler.ts index d40804d9e0..bf4e482b94 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -3784,10 +3784,10 @@ export class Compiler extends DiagnosticEmitter { private i32PowInstance: Function | null = null; private i64PowInstance: Function | null = null; - private compileBinaryExpression( + /** compile `==` `===` `!=` `!==` BinaryExpression */ + private compileCommutativeCompareBinaryExpression( expression: BinaryExpression, contextualType: Type, - constraints: Constraints ): ExpressionRef { let module = this.module; let left = expression.left; @@ -3799,255 +3799,186 @@ export class Compiler extends DiagnosticEmitter { let rightType: Type; let commonType: Type | null; - let expr: ExpressionRef; - let compound = false; - let operator = expression.operator; - switch (operator) { - case Token.LessThan: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; + let operatorString = operatorTokenToString(operator); - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Lt); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } - - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType, true); - if (!commonType || !commonType.isNumericValue) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, "<", leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } + leftExpr = this.compileExpression(left, contextualType); + leftType = this.currentType; - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; + rightExpr = this.compileExpression(right, leftType); + rightType = this.currentType; + + // check operator overload + const operatorKind = OperatorKind.fromBinaryToken(operator); + const leftOverload = leftType.lookupOverload(operatorKind, this.program); + const rightOverload = rightType.lookupOverload(operatorKind, this.program); + if (leftOverload && rightOverload && leftOverload != rightOverload) { + this.error( + DiagnosticCode.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2, expression.range, + operatorString, + leftOverload.internalName, + rightOverload.internalName + ); + this.currentType = contextualType; + return module.unreachable(); + } + if (leftOverload) { + return this.compileCommutativeBinaryOverload( + leftOverload, + left, leftExpr, leftType, + right, rightExpr, rightType, + expression + ); + } + if (rightOverload) { + return this.compileCommutativeBinaryOverload( + rightOverload, + right, rightExpr, rightType, + left, leftExpr, leftType, + expression + ); + } + const signednessIsRelevant = false; + commonType = Type.commonType(leftType, rightType, contextualType, signednessIsRelevant); + if (!commonType) { + this.error( + DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, + expression.range, + operatorString, + leftType.toString(), + rightType.toString() + ); + this.currentType = contextualType; + return module.unreachable(); + } - expr = this.makeLt(leftExpr, rightExpr, commonType); - this.currentType = Type.bool; - break; + if (commonType.isFloatValue) { + if (isConstExpressionNaN(module, rightExpr) || isConstExpressionNaN(module, leftExpr)) { + this.warning( + DiagnosticCode._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead, + expression.range + ); } - case Token.GreaterThan: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; - - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Gt); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } - - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType, true); - if (!commonType || !commonType.isNumericValue) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, ">", leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } - - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; - - expr = this.makeGt(leftExpr, rightExpr, commonType); - this.currentType = Type.bool; - break; + if (isConstNegZero(rightExpr) || isConstNegZero(leftExpr)) { + this.warning( + DiagnosticCode.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters, + expression.range + ); } - case Token.LessThan_Equals: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; + } - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Le); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } + leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); + leftType = commonType; + rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); + rightType = commonType; - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType, true); - if (!commonType || !commonType.isNumericValue) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, "<=", leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } + this.currentType = Type.bool; + switch (operator) { + case Token.Equals_Equals_Equals: + case Token.Equals_Equals: + return this.makeEq(leftExpr, rightExpr, commonType, expression); + case Token.Exclamation_Equals_Equals: + case Token.Exclamation_Equals: + return this.makeNe(leftExpr, rightExpr, commonType, expression); + default: + assert(false); + return module.unreachable(); + } + } - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; + /** compile `>` `>=` `<` `<=` BinaryExpression */ + private compileNonCommutativeCompareBinaryExpression( + expression: BinaryExpression, + contextualType: Type, + ): ExpressionRef { + let module = this.module; + let left = expression.left; + let right = expression.right; + let leftExpr: ExpressionRef; + let leftType: Type; + let rightExpr: ExpressionRef; + let rightType: Type; + let commonType: Type | null; + let operator = expression.operator; + let operatorString = operatorTokenToString(operator); - expr = this.makeLe(leftExpr, rightExpr, commonType); - this.currentType = Type.bool; - break; - } - case Token.GreaterThan_Equals: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; + leftExpr = this.compileExpression(left, contextualType); + leftType = this.currentType; + + // check operator overload + const operatorKind = OperatorKind.fromBinaryToken(operator); + const leftOverload = leftType.lookupOverload(operatorKind, this.program); + if (leftOverload) return this.compileBinaryOverload(leftOverload, left, leftExpr, leftType, right, expression); - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Ge); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } + rightExpr = this.compileExpression(right, leftType); + rightType = this.currentType; - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType, true); - if (!commonType || !commonType.isNumericValue) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, ">=", leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } + const signednessIsRelevant = true; + commonType = Type.commonType(leftType, rightType, contextualType, signednessIsRelevant); + if (!commonType || !commonType.isNumericValue) { + this.error( + DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, + expression.range, + operatorString, + leftType.toString(), + rightType.toString() + ); + this.currentType = contextualType; + return module.unreachable(); + } - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; + leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); + leftType = commonType; + rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); + rightType = commonType; - expr = this.makeGe(leftExpr, rightExpr, commonType); - this.currentType = Type.bool; - break; - } + this.currentType = Type.bool; + switch (operator) { + case Token.LessThan: + return this.makeLt(leftExpr, rightExpr, commonType); + case Token.GreaterThan: + return this.makeGt(leftExpr, rightExpr, commonType); + case Token.LessThan_Equals: + return this.makeLe(leftExpr, rightExpr, commonType); + case Token.GreaterThan_Equals: + return this.makeGe(leftExpr, rightExpr, commonType); + default: + assert(false); + return module.unreachable(); + } + } - case Token.Equals_Equals_Equals: - case Token.Equals_Equals: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; + private compileBinaryExpression( + expression: BinaryExpression, + contextualType: Type, + constraints: Constraints + ): ExpressionRef { + let module = this.module; + let left = expression.left; + let right = expression.right; - // check operator overload - let classReference = leftType.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Eq); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } + let leftExpr: ExpressionRef; + let leftType: Type; + let rightExpr: ExpressionRef; + let rightType: Type; + let commonType: Type | null; - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType); - if (!commonType) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, operatorTokenToString(expression.operator), leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } - if (commonType.isFloatValue) { - if ( - isConstExpressionNaN(module, rightExpr) || - isConstExpressionNaN(module, leftExpr) - ) { - this.warning( - DiagnosticCode._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead, - expression.range - ); - } - if (isConstNegZero(rightExpr) || isConstNegZero(leftExpr)) { - this.warning( - DiagnosticCode.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters, - expression.range - ); - } - } - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; + let expr: ExpressionRef; + let compound = false; - expr = this.makeEq(leftExpr, rightExpr, commonType, expression); - this.currentType = Type.bool; - break; + let operator = expression.operator; + switch (operator) { + case Token.LessThan: + case Token.GreaterThan: + case Token.LessThan_Equals: + case Token.GreaterThan_Equals:{ + return this.compileNonCommutativeCompareBinaryExpression(expression, contextualType); } + case Token.Equals_Equals_Equals: + case Token.Equals_Equals: case Token.Exclamation_Equals_Equals: case Token.Exclamation_Equals: { - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; - - // check operator overload - let classReference = leftType.getClass(); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.Ne); - if (overload) { - expr = this.compileBinaryOverload(overload, left, leftExpr, leftType, right, expression); - break; - } - } - - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; - commonType = Type.commonType(leftType, rightType, contextualType); - if (!commonType) { - this.error( - DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, operatorTokenToString(expression.operator), leftType.toString(), rightType.toString() - ); - this.currentType = contextualType; - return module.unreachable(); - } - if (commonType.isFloatValue) { - if ( - isConstExpressionNaN(module, rightExpr) || - isConstExpressionNaN(module, leftExpr) - ) { - this.warning( - DiagnosticCode._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead, - expression.range - ); - } - if (isConstNegZero(rightExpr) || isConstNegZero(leftExpr)) { - this.warning( - DiagnosticCode.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters, - expression.range - ); - } - } - leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); - leftType = commonType; - rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); - rightType = commonType; - - expr = this.makeNe(leftExpr, rightExpr, commonType, expression); - this.currentType = Type.bool; - break; + return this.compileCommutativeCompareBinaryExpression(expression, contextualType); } case Token.Equals: { return this.compileAssignment(left, right, contextualType); @@ -4714,6 +4645,7 @@ export class Compiler extends DiagnosticEmitter { default: { assert(false); expr = this.module.unreachable(); + break; } } if (!compound) return expr; @@ -5581,6 +5513,29 @@ export class Compiler extends DiagnosticEmitter { return this.makeCallDirect(operatorInstance, [ leftExpr, rightExpr ], reportNode); } + + private compileCommutativeBinaryOverload( + operatorInstance: Function, + first: Expression, + firstExpr: ExpressionRef, + firstType: Type, + second: Expression, + secondExpr: ExpressionRef, + secondType: Type, + reportNode: Node + ): ExpressionRef { + let signature = operatorInstance.signature; + let parameterTypes = signature.parameterTypes; + if (operatorInstance.is(CommonFlags.Instance)) { + firstExpr = this.convertExpression(firstExpr, firstType, assert(signature.thisType), false, first); + secondExpr = this.convertExpression(secondExpr, secondType, parameterTypes[0], false, second); + } else { + firstExpr = this.convertExpression(firstExpr, firstType, parameterTypes[0], false, first); + secondExpr = this.convertExpression(secondExpr, secondType, parameterTypes[1], false, second); + } + return this.makeCallDirect(operatorInstance, [ firstExpr, secondExpr ], reportNode); + } + private compileAssignment( expression: Expression, valueExpression: Expression, diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index 3cc11f3825..5b0249f9b2 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -51,6 +51,7 @@ "Index signature accessors in type '{0}' differ in types.": 237, "Initializer, definitive assignment or nullable type expected.": 238, "Definitive assignment has no effect on local variables.": 239, + "Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').": 240, "Importing the table disables some indirect call optimizations.": 901, "Exporting the table disables some indirect call optimizations.": 902, diff --git a/src/program.ts b/src/program.ts index 3f9044e2d9..bf8dcc433c 100644 --- a/src/program.ts +++ b/src/program.ts @@ -390,8 +390,10 @@ export namespace OperatorKind { case Token.GreaterThan_GreaterThan_Equals: return OperatorKind.BitwiseShr; case Token.GreaterThan_GreaterThan_GreaterThan: case Token.GreaterThan_GreaterThan_GreaterThan_Equals: return OperatorKind.BitwiseShrU; - case Token.Equals_Equals: return OperatorKind.Eq; - case Token.Exclamation_Equals: return OperatorKind.Ne; + case Token.Equals_Equals: + case Token.Equals_Equals_Equals: return OperatorKind.Eq; + case Token.Exclamation_Equals: + case Token.Exclamation_Equals_Equals: return OperatorKind.Ne; case Token.GreaterThan: return OperatorKind.Gt; case Token.GreaterThan_Equals: return OperatorKind.Ge; case Token.LessThan: return OperatorKind.Lt; diff --git a/src/types.ts b/src/types.ts index f137ddb5ba..ecfecd5b5f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -10,7 +10,9 @@ import { import { Class, Program, - DecoratorFlags + DecoratorFlags, + OperatorKind, + Function } from "./program"; import { @@ -320,6 +322,14 @@ export class Type { return null; } + lookupOverload(kind: OperatorKind, program: Program): Function | null { + let classReference = this.getClassOrWrapper(program); + if (classReference) { + return classReference.lookupOverload(kind); + } + return null; + } + /** Gets the underlying function signature of this type, if any. */ getSignature(): Signature | null { return this.isInternalReference diff --git a/tests/compiler/operator-overload-ambiguity.json b/tests/compiler/operator-overload-ambiguity.json new file mode 100644 index 0000000000..1b66bc25e7 --- /dev/null +++ b/tests/compiler/operator-overload-ambiguity.json @@ -0,0 +1,14 @@ +{ + "asc_flags": [], + "stderr": [ + "AS240: Ambiguous operator overload '==' (conflicting overloads 'operator-overload-ambiguity/A#__eq' and 'operator-overload-ambiguity/B#__eq').", + "compare_nonnull_a == compare_nonnull_b;", + "AS240: Ambiguous operator overload '==' (conflicting overloads 'operator-overload-ambiguity/B#__eq' and 'operator-overload-ambiguity/A#__eq').", + "compare_nonnull_b == compare_nonnull_a;", + "AS240: Ambiguous operator overload '==' (conflicting overloads 'operator-overload-ambiguity/C.__eq' and 'operator-overload-ambiguity/D#__eq').", + "compare_nonnull_c == compare_nonnull_d;", + "AS240: Ambiguous operator overload '==' (conflicting overloads 'operator-overload-ambiguity/A#__eq' and 'operator-overload-ambiguity/B#__eq').", + "compare_extend_1 == compare_extend_2;", + "EOF" + ] +} diff --git a/tests/compiler/operator-overload-ambiguity.ts b/tests/compiler/operator-overload-ambiguity.ts new file mode 100644 index 0000000000..b7826adc4b --- /dev/null +++ b/tests/compiler/operator-overload-ambiguity.ts @@ -0,0 +1,38 @@ +class A { + @operator("==") __eq(other: B): bool { + return true; + } +} +class B { + @operator("==") __eq(other: A): bool { + return true; + } +} +export function compare_nonnull(compare_nonnull_a: A, compare_nonnull_b: B): void { + compare_nonnull_a == compare_nonnull_b; + compare_nonnull_b == compare_nonnull_a; +} + +class C { + @operator("==") static __eq(self: C | null, other: D | null): bool { + return true; + } +} +class D { + @operator("==") __eq(other: i32): bool { + return true; + } +} +export function compare_null(compare_nonnull_c: C | null, compare_nonnull_d: D | null): void { + compare_nonnull_c == compare_nonnull_d; +} + +class PA extends A {} +class PB extends B {} +export function compare_extend(compare_extend_1: PA, compare_extend_2: PB): void { + compare_extend_1 == compare_extend_2; +} + +export function end(): void { + ERROR("EOF"); +} diff --git a/tests/compiler/operator-overload-non-ambiguity.debug.wat b/tests/compiler/operator-overload-non-ambiguity.debug.wat new file mode 100644 index 0000000000..4906ce43bf --- /dev/null +++ b/tests/compiler/operator-overload-non-ambiguity.debug.wat @@ -0,0 +1,2615 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (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 $~lib/rt/__rtti_base i32 (i32.const 512)) + (global $~lib/memory/__data_end i32 (i32.const 548)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33316)) + (global $~lib/memory/__heap_base i32 (i32.const 33316)) + (memory $0 1) + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \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 $2 (i32.const 144) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 412) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00D\00\00\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00-\00n\00o\00n\00-\00a\00m\00b\00i\00g\00u\00i\00t\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 512) "\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\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (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 + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (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 + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter 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 + 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 160 + 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 (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 (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (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 (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 128 + 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 132 + 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 (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (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 + i32.gt_u + if + i32.const 224 + i32.const 288 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (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 2 + 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 + return + ) + (func $~lib/rt/itcms/Object#linkTo (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 (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 148 + 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 (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 (param $cookie i32) + (local $ptr 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 + if + local.get $ptr + i32.load + 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 (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (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 + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (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 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + 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 offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + 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 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 (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 + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + 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 + 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 + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + 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 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 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + 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 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 382 + 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 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + 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 389 + 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 + 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 402 + 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|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 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 + 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 + 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 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + 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 + local.get $head + i32.store 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 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (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 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (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 (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 (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 (result i32) + (local $obj i32) + (local $1 i32) + (local $black 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 + 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 + 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 229 + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (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 (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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + 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 + return + ) + (func $~lib/rt/tlsf/searchBlock (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 + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + 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 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + 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 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|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 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (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 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + 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 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (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 361 + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (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 499 + 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 501 + 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 + return + ) + (func $~lib/rt/tlsf/__alloc (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 + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (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 261 + 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 + local.get $ptr + return + ) + (func $operator-overload-non-ambiguity/Base#__eq (param $this i32) (param $other i32) (result i32) + i32.const 1 + return + ) + (func $operator-overload-non-ambiguity/T1#__eq (param $this i32) (param $other i32) (result i32) + local.get $other + i32.const 123 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + return + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + 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 (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $operator-overload-non-ambiguity/T1 + block $operator-overload-non-ambiguity/P2 + block $operator-overload-non-ambiguity/Base + block $operator-overload-non-ambiguity/P1 + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $operator-overload-non-ambiguity/P1 $operator-overload-non-ambiguity/Base $operator-overload-non-ambiguity/P2 $operator-overload-non-ambiguity/T1 $invalid + end + return + 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 + call $start:operator-overload-non-ambiguity + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33344 + i32.const 33392 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $operator-overload-non-ambiguity/Base#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $operator-overload-non-ambiguity/P1#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $operator-overload-non-ambiguity/Base#constructor + local.tee $this + i32.store + 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 $operator-overload-non-ambiguity/P2#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $operator-overload-non-ambiguity/Base#constructor + local.tee $this + i32.store + 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 $operator-overload-non-ambiguity/T1#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $start:operator-overload-non-ambiguity + (local $0 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 + memory.size + 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 $operator-overload-non-ambiguity/P1#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + call $operator-overload-non-ambiguity/P2#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $operator-overload-non-ambiguity/Base#__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $operator-overload-non-ambiguity/T1#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 123 + call $operator-overload-non-ambiguity/T1#__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $operator-overload-non-ambiguity/T1#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 123 + call $operator-overload-non-ambiguity/T1#__eq + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/object/Object#constructor (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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/operator-overload-non-ambiguity.json b/tests/compiler/operator-overload-non-ambiguity.json new file mode 100644 index 0000000000..ea57a955e1 --- /dev/null +++ b/tests/compiler/operator-overload-non-ambiguity.json @@ -0,0 +1,3 @@ +{ + "asc_flags": [] +} diff --git a/tests/compiler/operator-overload-non-ambiguity.release.wat b/tests/compiler/operator-overload-non-ambiguity.release.wat new file mode 100644 index 0000000000..abbf89d89c --- /dev/null +++ b/tests/compiler/operator-overload-non-ambiguity.release.wat @@ -0,0 +1,1659 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func)) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) + (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 $~lib/memory/__stack_pointer (mut i32) (i32.const 34340)) + (memory $0 1) + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $4 (i32.const 1228) "<") + (data $4.1 (i32.const 1240) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $5 (i32.const 1292) ",") + (data $5.1 (i32.const 1304) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $7 (i32.const 1372) "<") + (data $7.1 (i32.const 1384) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $8 (i32.const 1436) "\\") + (data $8.1 (i32.const 1448) "\02\00\00\00D\00\00\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00-\00n\00o\00n\00-\00a\00m\00b\00i\00g\00u\00i\00t\00y\00.\00t\00s") + (data $9 (i32.const 1536) "\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 ") + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$116 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34340 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$116 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1536 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1540 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + 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 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34352 + i32.const 0 + i32.store + i32.const 35920 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34352 + i32.add + i32.const 0 + i32.store 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 34352 + i32.add + i32.const 0 + i32.store 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 34352 + i32.const 35924 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34352 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34340 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34340 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34340 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (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$69 + 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$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 + local.tee $1 + i32.const 4 + local.get $2 + i32.load 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 + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 501 + 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 + 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 + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $operator-overload-non-ambiguity/T1 + block $operator-overload-non-ambiguity/P2 + block $operator-overload-non-ambiguity/Base + block $operator-overload-non-ambiguity/P1 + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $operator-overload-non-ambiguity/P1 $operator-overload-non-ambiguity/Base $operator-overload-non-ambiguity/P2 $operator-overload-non-ambiguity/T1 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 34340 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $operator-overload-non-ambiguity/Base#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $operator-overload-non-ambiguity/Base#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + call $operator-overload-non-ambiguity/T1#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + call $operator-overload-non-ambiguity/T1#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 $operator-overload-non-ambiguity/Base#constructor (param $0 i32) (result 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 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 + i64.const 0 + i64.store + 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 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $operator-overload-non-ambiguity/T1#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/object/Object#constructor (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 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 + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) +) diff --git a/tests/compiler/operator-overload-non-ambiguity.ts b/tests/compiler/operator-overload-non-ambiguity.ts new file mode 100644 index 0000000000..cf8c4be9ee --- /dev/null +++ b/tests/compiler/operator-overload-non-ambiguity.ts @@ -0,0 +1,19 @@ +class Base { + @operator("==") __eq(other: Base): bool { + return true; + } +} + +class P1 extends Base {} +class P2 extends Base {} + +assert(new P1() == new P2()); + +class T1 { + @operator("==") __eq(other: i32): bool { + assert(other == 123); + return true; + } +} +assert(new T1() == 123); +assert(123 == new T1()); From 155425842e32466f710173688fd0ed77665c01c4 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Sun, 27 Oct 2024 23:58:05 +0800 Subject: [PATCH 27/86] chore: update the Type.toString to support output auto (#2879) --- src/types.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/types.ts b/src/types.ts index ecfecd5b5f..695b415b26 100644 --- a/src/types.ts +++ b/src/types.ts @@ -653,6 +653,9 @@ export class Type { } } } + if (this == Type.auto) { + return "auto"; + } return this.kindToString(); } From 15b1c30b7b3aae6bd98254c094eff55ea126d639 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Mon, 4 Nov 2024 07:14:23 +0800 Subject: [PATCH 28/86] chore: fix `tlsfvis.html` label issue (#2881) --- lib/rtrace/tlsfvis.html | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/rtrace/tlsfvis.html b/lib/rtrace/tlsfvis.html index ab3f6548a6..16c022b270 100644 --- a/lib/rtrace/tlsfvis.html +++ b/lib/rtrace/tlsfvis.html @@ -169,8 +169,8 @@

TLSF visualizer

-

- Notes: +

+

Notes:

  • It is expected that there is exactly one block on initialization. This is the remaining space (< 64K) within the last page after static data.
  • It is expected that if two adjacent blocks of size K are freed, the merged block doesn't go into the first level list for K*2 because its size is actually larger than that (K + OVERHEAD + K).
  • @@ -178,7 +178,7 @@

    TLSF visualizer

  • It is expected that after other operations have already been performed, being able to allocate 1GB can't be guaranteed anymore, even if there should be enough space left in absolute terms, if prior subdivision prevents it.
  • It is expected that the second level 0 in first level 0 isn't ever used due to alignment guarantees. Smallest block is 32 bytes (16 bytes overhead + 16 bytes payload if used, respectively linking information if free) in this implementation.
-

+

Implementation constants: ? bits alignment, ? bits first level, ? bits second level, ? B overhead

First level bitmap

@@ -229,7 +229,6 @@

Allocator

-

Segments

Allocations performed above are tracked here so you can free them again. Note that TLSF alone does not keep track of used blocks (unless free'd and put in a free list again). It is expected that adjacent free blocks become merged automatically.

From d6f09f482f433bd19e5b5d96250bc2b57d0f7906 Mon Sep 17 00:00:00 2001 From: longxiangqiao Date: Tue, 5 Nov 2024 20:19:00 +0800 Subject: [PATCH 29/86] chore: remove redundant word in comment (#2883) Signed-off-by: longxiangqiao --- cli/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/index.js b/cli/index.js index b7b4a836e5..9899f4be3f 100644 --- a/cli/index.js +++ b/cli/index.js @@ -598,7 +598,7 @@ export async function main(argv, options) { return { sourceText, sourcePath }; } - // Gets all pending imported files from the the backlog + // Gets all pending imported files from the backlog function getBacklog(paths = []) { do { let internalPath = assemblyscript.nextFile(program); From e763f78259e9dd96e588ae60bbdfe2bc93489736 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Fri, 8 Nov 2024 16:16:37 -0800 Subject: [PATCH 30/86] chore: remove last instance of setup-node-nvm (#2885) --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4ccc5889bd..cc8dbb8ef5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -132,7 +132,7 @@ jobs: needs: check steps: - uses: actions/checkout@v3 - - uses: dcodeIO/setup-node-nvm@master + - uses: actions/setup-node@v3 with: node-version: current - name: Install dependencies From 285afb1ffe1cf9b3a187b8f070d8d6a87b869751 Mon Sep 17 00:00:00 2001 From: Jonas Minnberg Date: Mon, 11 Nov 2024 18:33:31 +0100 Subject: [PATCH 31/86] feat: include runtime from current directory instead of lib (#2884) --- NOTICE | 1 + std/assembly/rt/index-incremental.ts | 4 ++-- std/assembly/rt/index-minimal.ts | 4 ++-- std/assembly/rt/index-stub.ts | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/NOTICE b/NOTICE index aacf76c8e7..30596e20bd 100644 --- a/NOTICE +++ b/NOTICE @@ -58,6 +58,7 @@ under the licensing terms detailed in LICENSE: * Xinquan Xu * Matt Johnson-Pint * Fabián Heredia Montiel +* Jonas Minnberg Portions of this software are derived from third-party works licensed under the following terms: diff --git a/std/assembly/rt/index-incremental.ts b/std/assembly/rt/index-incremental.ts index 4730344b4f..2f1f115932 100644 --- a/std/assembly/rt/index-incremental.ts +++ b/std/assembly/rt/index-incremental.ts @@ -1,2 +1,2 @@ -import "rt/tlsf"; -import "rt/itcms"; +import "./tlsf"; +import "./itcms"; diff --git a/std/assembly/rt/index-minimal.ts b/std/assembly/rt/index-minimal.ts index cf88ee158f..72b6eb0873 100644 --- a/std/assembly/rt/index-minimal.ts +++ b/std/assembly/rt/index-minimal.ts @@ -1,2 +1,2 @@ -import "rt/tlsf"; -import "rt/tcms"; +import "./tlsf"; +import "./tcms"; diff --git a/std/assembly/rt/index-stub.ts b/std/assembly/rt/index-stub.ts index 47f29bebfd..924ecfb8e3 100644 --- a/std/assembly/rt/index-stub.ts +++ b/std/assembly/rt/index-stub.ts @@ -1 +1 @@ -import "rt/stub"; +import "./stub"; From 40850fea035ab998b31cef0a8b9bbe73336437f2 Mon Sep 17 00:00:00 2001 From: kam chehresa Date: Thu, 12 Dec 2024 05:20:21 -0800 Subject: [PATCH 32/86] chore: enhance comment for extract_lane functions to include "idx" argument needs to be compile time constant (#2890) --- NOTICE | 1 + std/assembly/index.d.ts | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/NOTICE b/NOTICE index 30596e20bd..e7a2601827 100644 --- a/NOTICE +++ b/NOTICE @@ -59,6 +59,7 @@ under the licensing terms detailed in LICENSE: * Matt Johnson-Pint * Fabián Heredia Montiel * Jonas Minnberg +* Kam Chehresa Portions of this software are derived from third-party works licensed under the following terms: diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 4dbee416a8..eb8a177b31 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -791,9 +791,9 @@ declare function v128(a: i8, b: i8, c: i8, d: i8, e: i8, f: i8, g: i8, h: i8, i: declare namespace v128 { /** Creates a vector with identical lanes. */ export function splat(x: T): v128; - /** Extracts one lane as a scalar. */ + /** Extracts one lane as a scalar. idx argument needs to be compile time constant. */ export function extract_lane(x: v128, idx: u8): T; - /** Replaces one lane. */ + /** Replaces one lane. idx argument needs to be compile time constant.*/ export function replace_lane(x: v128, idx: u8, value: T): v128; /** Selects lanes from either vector according to the specified lane indexes. */ export function shuffle(a: v128, b: v128, ...lanes: u8[]): v128; @@ -1051,11 +1051,11 @@ declare function i8x16(a: i8, b: i8, c: i8, d: i8, e: i8, f: i8, g: i8, h: i8, i declare namespace i8x16 { /** Creates a vector with sixteen identical 8-bit integer lanes. */ export function splat(x: i8): v128; - /** Extracts one 8-bit integer lane as a signed scalar. */ + /** Extracts one 8-bit integer lane as a signed scalar. idx argument needs to be compile time constant. */ export function extract_lane_s(x: v128, idx: u8): i8; - /** Extracts one 8-bit integer lane as an unsigned scalar. */ + /** Extracts one 8-bit integer lane as an unsigned scalar. idx argument needs to be compile time constant. */ export function extract_lane_u(x: v128, idx: u8): u8; - /** Replaces one 8-bit integer lane. */ + /** Replaces one 8-bit integer lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: i8): v128; /** Adds each 8-bit integer lane. */ export function add(a: v128, b: v128): v128; @@ -1146,11 +1146,11 @@ declare function i16x8(a: i16, b: i16, c: i16, d: i16, e: i16, f: i16, g: i16, h declare namespace i16x8 { /** Creates a vector with eight identical 16-bit integer lanes. */ export function splat(x: i16): v128; - /** Extracts one 16-bit integer lane as a signed scalar. */ + /** Extracts one 16-bit integer lane as a signed scalar. idx argument needs to be compile time constant. */ export function extract_lane_s(x: v128, idx: u8): i16; - /** Extracts one 16-bit integer lane as an unsigned scalar. */ + /** Extracts one 16-bit integer lane as an unsigned scalar. idx argument needs to be compile time constant. */ export function extract_lane_u(x: v128, idx: u8): u16; - /** Replaces one 16-bit integer lane. */ + /** Replaces one 16-bit integer lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: i16): v128; /** Adds each 16-bit integer lane. */ export function add(a: v128, b: v128): v128; @@ -1267,9 +1267,9 @@ declare function i32x4(a: i32, b: i32, c: i32, d: i32): v128; declare namespace i32x4 { /** Creates a vector with four identical 32-bit integer lanes. */ export function splat(x: i32): v128; - /** Extracts one 32-bit integer lane as a scalar. */ + /** Extracts one 32-bit integer lane as a scalar. idx argument needs to be compile time constant. */ export function extract_lane(x: v128, idx: u8): i32; - /** Replaces one 32-bit integer lane. */ + /** Replaces one 32-bit integer lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: i32): v128; /** Adds each 32-bit integer lane. */ export function add(a: v128, b: v128): v128; @@ -1416,9 +1416,9 @@ declare function i64x2(a: i64, b: i64): v128; declare namespace i64x2 { /** Creates a vector with two identical 64-bit integer lanes. */ export function splat(x: i64): v128; - /** Extracts one 64-bit integer lane as a scalar. */ + /** Extracts one 64-bit integer lane as a scalar. `idx` argument need to be compile time constant */ export function extract_lane(x: v128, idx: u8): i64; - /** Replaces one 64-bit integer lane. */ + /** Replaces one 64-bit integer lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: i64): v128; /** Adds each 64-bit integer lane. */ export function add(a: v128, b: v128): v128; @@ -1485,9 +1485,9 @@ declare function f32x4(a: f32, b: f32, c: f32, d: f32): v128; declare namespace f32x4 { /** Creates a vector with four identical 32-bit float lanes. */ export function splat(x: f32): v128; - /** Extracts one 32-bit float lane as a scalar. */ + /** Extracts one 32-bit float lane as a scalar. idx argument needs to be compile time constant. */ export function extract_lane(x: v128, idx: u8): f32; - /** Replaces one 32-bit float lane. */ + /** Replaces one 32-bit float lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: f32): v128; /** Adds each 32-bit float lane. */ export function add(a: v128, b: v128): v128; @@ -1575,9 +1575,9 @@ declare function f64x2(a: f64, b: f64): v128; declare namespace f64x2 { /** Creates a vector with two identical 64-bit float lanes. */ export function splat(x: f64): v128; - /** Extracts one 64-bit float lane as a scalar. */ + /** Extracts one 64-bit float lane as a scalar. idx argument needs to be compile time constant. */ export function extract_lane(x: v128, idx: u8): f64; - /** Replaces one 64-bit float lane. */ + /** Replaces one 64-bit float lane. idx argument needs to be compile time constant. */ export function replace_lane(x: v128, idx: u8, value: f64): v128; /** Adds each 64-bit float lane. */ export function add(a: v128, b: v128): v128; From 9a7a6e03679c12be24c55f9f05d3090e9042abb3 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Tue, 21 Jan 2025 07:46:56 -0800 Subject: [PATCH 33/86] feat: Constructor generic type inference (#2894) --- src/resolver.ts | 271 ++- tests/compiler/call-inferred.debug.wat | 2591 +++++++++++++++++++++- tests/compiler/call-inferred.release.wat | 1798 +++++++++++++++ tests/compiler/call-inferred.ts | 21 + 4 files changed, 4569 insertions(+), 112 deletions(-) diff --git a/src/resolver.ts b/src/resolver.ts index d0837282e9..389d3d8971 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -731,110 +731,158 @@ export class Resolver extends DiagnosticEmitter { // infer generic call if type arguments have been omitted if (prototype.is(CommonFlags.Generic)) { - let contextualTypeArguments = cloneMap(ctxFlow.contextualTypeArguments); + let resolvedTypeArguments = this.inferGenericTypeArguments( + node, + prototype, + prototype.typeParameterNodes, + ctxFlow, + reportMode, + ); + + return this.resolveFunction( + prototype, + resolvedTypeArguments, + cloneMap(ctxFlow.contextualTypeArguments), + reportMode + ); + } - // fill up contextual types with auto for each generic component - let typeParameterNodes = assert(prototype.typeParameterNodes); - let numTypeParameters = typeParameterNodes.length; - let typeParameterNames = new Set(); - for (let i = 0; i < numTypeParameters; ++i) { - let name = typeParameterNodes[i].name.text; - contextualTypeArguments.set(name, Type.auto); - typeParameterNames.add(name); - } - - let parameterNodes = prototype.functionTypeNode.parameters; - let numParameters = parameterNodes.length; - let argumentNodes = node.args; - let numArguments = argumentNodes.length; - - // infer types with generic components while updating contextual types - for (let i = 0; i < numParameters; ++i) { - let argumentExpression = i < numArguments - ? argumentNodes[i] - : parameterNodes[i].initializer; - if (!argumentExpression) { - // optional but not have initializer should be handled in the other place - if (parameterNodes[i].parameterKind == ParameterKind.Optional) { - continue; - } - // missing initializer -> too few arguments - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Expected_0_arguments_but_got_1, - node.range, numParameters.toString(), numArguments.toString() - ); - } - return null; + // otherwise resolve the non-generic call as usual + return this.resolveFunction(prototype, null, new Map(), reportMode); + } + + private inferGenericTypeArguments( + node: Expression, + prototype: FunctionPrototype, + typeParameterNodes: TypeParameterNode[] | null, + ctxFlow: Flow, + reportMode: ReportMode = ReportMode.Report, + ): Type[] | null { + + if (!typeParameterNodes) { + return null; + } + + let contextualTypeArguments = cloneMap(ctxFlow.contextualTypeArguments); + + // fill up contextual types with auto for each generic component + let numTypeParameters = typeParameterNodes.length; + let typeParameterNames = new Set(); + for (let i = 0; i < numTypeParameters; ++i) { + let name = typeParameterNodes[i].name.text; + contextualTypeArguments.set(name, Type.auto); + typeParameterNames.add(name); + } + + let parameterNodes = prototype.functionTypeNode.parameters; + let numParameters = parameterNodes.length; + + let argumentNodes: Expression[]; + switch (node.kind) { + case NodeKind.Call: + argumentNodes = (node).args; + break; + case NodeKind.New: + argumentNodes = (node).args; + break; + default: + assert(false); + return null; + } + + let numArguments = argumentNodes.length; + + // infer types with generic components while updating contextual types + for (let i = 0; i < numParameters; ++i) { + let argumentExpression = i < numArguments + ? argumentNodes[i] + : parameterNodes[i].initializer; + if (!argumentExpression) { + // optional but not have initializer should be handled in the other place + if (parameterNodes[i].parameterKind == ParameterKind.Optional) { + continue; + } + // missing initializer -> too few arguments + if (reportMode == ReportMode.Report) { + this.error( + DiagnosticCode.Expected_0_arguments_but_got_1, + node.range, numParameters.toString(), numArguments.toString() + ); } - let typeNode = parameterNodes[i].type; - if (typeNode.hasGenericComponent(typeParameterNodes)) { - let type = this.resolveExpression(argumentExpression, ctxFlow, Type.auto, ReportMode.Swallow); - if (type) { - this.propagateInferredGenericTypes( - typeNode, - type, - prototype, - contextualTypeArguments, - typeParameterNames - ); - } + return null; + } + let typeNode = parameterNodes[i].type; + if (typeNode.hasGenericComponent(typeParameterNodes)) { + let type = this.resolveExpression(argumentExpression, ctxFlow, Type.auto, ReportMode.Swallow); + if (type) { + this.propagateInferredGenericTypes( + typeNode, + type, + prototype, + contextualTypeArguments, + typeParameterNames + ); } } + } - // apply concrete types to the generic function signature - let resolvedTypeArguments = new Array(numTypeParameters); - for (let i = 0; i < numTypeParameters; ++i) { - let typeParameterNode = typeParameterNodes[i]; - let name = typeParameterNode.name.text; - if (contextualTypeArguments.has(name)) { - let inferredType = assert(contextualTypeArguments.get(name)); - if (inferredType != Type.auto) { - resolvedTypeArguments[i] = inferredType; - continue; - } - let defaultType = typeParameterNode.defaultType; - if (defaultType) { - // Default parameters are resolved in context of the called function, not the calling function - let parent = prototype.parent; - let defaultTypeContextualTypeArguments: Map | null = null; - if (parent.kind == ElementKind.Class) { - defaultTypeContextualTypeArguments = (parent).contextualTypeArguments; - } else if (parent.kind == ElementKind.Function) { - defaultTypeContextualTypeArguments = (parent).contextualTypeArguments; - } - let resolvedDefaultType = this.resolveType( - defaultType, - null, - prototype, - defaultTypeContextualTypeArguments, - reportMode - ); - if (!resolvedDefaultType) return null; - resolvedTypeArguments[i] = resolvedDefaultType; - continue; + // apply concrete types to the generic function signature + let resolvedTypeArguments = new Array(numTypeParameters); + for (let i = 0; i < numTypeParameters; ++i) { + let typeParameterNode = typeParameterNodes[i]; + let name = typeParameterNode.name.text; + if (contextualTypeArguments.has(name)) { + let inferredType = assert(contextualTypeArguments.get(name)); + if (inferredType != Type.auto) { + resolvedTypeArguments[i] = inferredType; + continue; + } + let defaultType = typeParameterNode.defaultType; + if (defaultType) { + // Default parameters are resolved in context of the called function, not the calling function + let parent = prototype.parent; + let defaultTypeContextualTypeArguments: Map | null = null; + if (parent.kind == ElementKind.Class) { + defaultTypeContextualTypeArguments = (parent).contextualTypeArguments; + } else if (parent.kind == ElementKind.Function) { + defaultTypeContextualTypeArguments = (parent).contextualTypeArguments; } - } - // unused template, e.g. `function test(): void {...}` called as `test()` - // invalid because the type is effectively unknown inside the function body - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Type_argument_expected, - node.expression.range.atEnd + let resolvedDefaultType = this.resolveType( + defaultType, + null, + prototype, + defaultTypeContextualTypeArguments, + reportMode ); + if (!resolvedDefaultType) return null; + resolvedTypeArguments[i] = resolvedDefaultType; + continue; } - return null; } - return this.resolveFunction( - prototype, - resolvedTypeArguments, - cloneMap(ctxFlow.contextualTypeArguments), - reportMode - ); + // unused template, e.g. `function test(): void {...}` called as `test()` + // invalid because the type is effectively unknown inside the function body + if (reportMode == ReportMode.Report) { + let range: Range; + switch (node.kind) { + case NodeKind.Call: + range = (node).expression.range; + break; + case NodeKind.New: + range = (node).typeName.range; + break; + default: + assert(false); + return null; + } + this.error( + DiagnosticCode.Type_argument_expected, + range.atEnd + ); + } + return null; } - // otherwise resolve the non-generic call as usual - return this.resolveFunction(prototype, null, new Map(), reportMode); + return resolvedTypeArguments; } /** Updates contextual types with a possibly encapsulated inferred type. */ @@ -3644,15 +3692,34 @@ export class Resolver extends DiagnosticEmitter { // Resolve type arguments if generic if (prototype.is(CommonFlags.Generic)) { - resolvedTypeArguments = this.resolveTypeArguments( // reports - assert(prototype.typeParameterNodes), // must be present if generic - typeArgumentNodes, - flow, - ctxElement, - ctxTypes, // update - reportNode, - reportMode - ); + + // find the constructor prototype, which may be on a base class + let constructorPrototype: FunctionPrototype | null = null; + for (let p: ClassPrototype | null = prototype; p && !constructorPrototype; p = p.basePrototype) { + constructorPrototype = p.constructorPrototype; + } + + // if no type arguments are provided, try to infer them from the constructor call + if (!typeArgumentNodes && constructorPrototype && flow && ctxTypes.size == 0) { + resolvedTypeArguments = this.inferGenericTypeArguments( + reportNode as NewExpression, + constructorPrototype, + prototype.typeParameterNodes, + flow, + ); + } else { + // resolve them from the provided type argument nodes + resolvedTypeArguments = this.resolveTypeArguments( // reports + assert(prototype.typeParameterNodes), // must be present if generic + typeArgumentNodes, + flow, + ctxElement, + ctxTypes, // update + reportNode, + reportMode + ); + } + if (!resolvedTypeArguments) return null; // Otherwise make sure that no type arguments have been specified diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index 9f7eb4fa7e..e080fb3da0 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -1,16 +1,46 @@ (module - (type $0 (func (param f32) (result f32))) - (type $1 (func)) - (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32 i32 i32 i32))) - (type $4 (func (param f64) (result f64))) + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func)) + (type $5 (func (param f32) (result f32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param f64) (result f64))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/memory/__data_end i32 (i32.const 76)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32844)) - (global $~lib/memory/__heap_base i32 (i32.const 32844)) + (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 $~lib/rt/__rtti_base i32 (i32.const 480)) + (global $~lib/memory/__data_end i32 (i32.const 512)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33280)) + (global $~lib/memory/__heap_base i32 (i32.const 33280)) (memory $0 1) (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 76) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\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 $2 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 240) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 268) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 332) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 384) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 412) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (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") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -46,7 +76,2423 @@ local.get $a call $call-inferred/bar ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (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 + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (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 + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter 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 + 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 160 + i32.const 160 + 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 (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 (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (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 (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 160 + i32.const 128 + 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 160 + i32.const 132 + 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 (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (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 + i32.gt_u + if + i32.const 288 + i32.const 352 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (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 2 + 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 + return + ) + (func $~lib/rt/itcms/Object#linkTo (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 (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 160 + i32.const 148 + 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 (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 (param $cookie i32) + (local $ptr 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 + if + local.get $ptr + i32.load + 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 (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (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 + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (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 432 + 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 432 + 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 432 + 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 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + 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 offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + 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 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 (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 432 + 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 432 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + 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 432 + 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 432 + 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 432 + 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 + 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 432 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + 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 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 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + 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 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 382 + 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 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + 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 432 + i32.const 389 + 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 + 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 432 + i32.const 402 + 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|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 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 + 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 + 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 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + 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 + local.get $head + i32.store 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 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (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 432 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (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 (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 (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 (result i32) + (local $obj i32) + (local $1 i32) + (local $black 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 + 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 + 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 160 + i32.const 229 + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (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 (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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 96 + i32.const 432 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + 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 + return + ) + (func $~lib/rt/tlsf/searchBlock (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 + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + 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 432 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + 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 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 432 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|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 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (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 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + 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 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (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 432 + i32.const 361 + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (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 432 + i32.const 499 + 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 432 + i32.const 501 + 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 + return + ) + (func $~lib/rt/tlsf/__alloc (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 + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (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 96 + i32.const 160 + i32.const 261 + 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 + local.get $ptr + return + ) + (func $call-inferred/Foo#set:value (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store + ) + (func $call-inferred/Foo#get:value (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $call-inferred/Foo.create (param $value i32) (result i32) + i32.const 0 + local.get $value + call $call-inferred/Foo#constructor + return + ) + (func $call-inferred/Bar#doSomething (param $this i32) (param $a i32) (result i32) + local.get $a + return + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 288 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 96 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $call-inferred/Baz + block $call-inferred/Bar + block $call-inferred/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $call-inferred/Foo $call-inferred/Bar $call-inferred/Baz $invalid + end + return + 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 + call $start:call-inferred + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33312 + i32.const 33360 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $call-inferred/Foo#constructor (param $this i32) (param $value 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 + 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 + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $value + call $call-inferred/Foo#set:value + 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 $call-inferred/Bar#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $call-inferred/Baz#constructor (param $this i32) (param $value 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 + 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 + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $value + call $call-inferred/Foo#constructor + local.tee $this + i32.store + 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:call-inferred + (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 i32.const 42 call $call-inferred/foo i32.const 42 @@ -101,8 +2547,133 @@ call $~lib/builtins/abort unreachable end + memory.size + 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 208 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 240 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 384 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 42 + call $call-inferred/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-inferred/Foo#get:value + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 42 + call $call-inferred/Foo.create + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-inferred/Foo#get:value + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $call-inferred/Bar#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 42 + call $call-inferred/Bar#doSomething + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 42 + call $call-inferred/Baz#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-inferred/Foo#get:value + i32.const 42 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 34 + 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 $~start - call $start:call-inferred + (func $~lib/object/Object#constructor (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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) ) diff --git a/tests/compiler/call-inferred.release.wat b/tests/compiler/call-inferred.release.wat index d3392d9a85..e39cd59cc2 100644 --- a/tests/compiler/call-inferred.release.wat +++ b/tests/compiler/call-inferred.release.wat @@ -1,6 +1,1804 @@ (module + (type $0 (func)) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (result i32))) + (type $7 (func (param i32) (result i32))) + (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 $~lib/memory/__stack_pointer (mut i32) (i32.const 34304)) (memory $0 1) (data $0 (i32.const 1036) "<") (data $0.1 (i32.const 1048) "\02\00\00\00 \00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s") + (data $1 (i32.const 1100) "<") + (data $1.1 (i32.const 1112) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $2 (i32.const 1164) "<") + (data $2.1 (i32.const 1176) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $5 (i32.const 1292) "<") + (data $5.1 (i32.const 1304) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $6 (i32.const 1356) ",") + (data $6.1 (i32.const 1368) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $8 (i32.const 1436) "<") + (data $8.1 (i32.const 1448) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $9 (i32.const 1504) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1312 + call $~lib/rt/itcms/__visit + i32.const 1120 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1184 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1184 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$125 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34304 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1184 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1184 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1504 + i32.load + i32.gt_u + if + i32.const 1312 + i32.const 1376 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1508 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1456 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1456 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1456 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1456 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1456 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1456 + 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 1456 + 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 + 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 1456 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1456 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1456 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1456 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34304 + i32.const 0 + i32.store + i32.const 35872 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34304 + i32.add + i32.const 0 + i32.store 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 34304 + i32.add + i32.const 0 + i32.store 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 34304 + i32.const 35876 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34304 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34304 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1184 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34304 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34304 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1456 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1456 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (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 1120 + i32.const 1184 + i32.const 261 + 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$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + 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$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1120 + i32.const 1456 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1456 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1456 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $call-inferred/Baz + block $call-inferred/Bar + block $call-inferred/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $call-inferred/Foo $call-inferred/Bar $call-inferred/Baz $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~start + (local $0 i32) + (local $1 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 1536 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34304 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/pinSpace + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/toSpace + i32.const 1412 + i32.const 1408 + i32.store + i32.const 1416 + i32.const 1408 + i32.store + i32.const 1408 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $call-inferred/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $call-inferred/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1536 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1536 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1536 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $call-inferred/Foo#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 34 + 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 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $call-inferred/Foo#constructor (param $0 i32) (result 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 1536 + i32.lt_s + if + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 42 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) ) diff --git a/tests/compiler/call-inferred.ts b/tests/compiler/call-inferred.ts index b0ec7e57b6..4c2dfb21bb 100644 --- a/tests/compiler/call-inferred.ts +++ b/tests/compiler/call-inferred.ts @@ -12,6 +12,27 @@ function bar(a: T = 42.0): T { assert(bar() == 42); +class Foo { + constructor(public value: T) {} + static create(value: T): Foo { + return new Foo(value); + } +} + +assert(new Foo(42).value == 42); +assert(Foo.create(42).value == 42); + +class Bar { + doSomething(a: T): T { + return a; + } +} + +assert(new Bar().doSomething(42) == 42); + +class Baz extends Foo {} +assert(new Baz(42).value == 42); + // TODO: this'd require return type inference, i.e., omitted return type // function baz(a: i32): T { // return a; From cdd5e01b9a8bb838ed358e5ded17ac6e85795bc4 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Thu, 6 Feb 2025 05:35:08 -0800 Subject: [PATCH 34/86] chore: update dependencies (#2907) --- .github/workflows/publish.yml | 9 +- .github/workflows/stale.yml | 2 +- .github/workflows/test.yml | 26 +- package-lock.json | 959 ++++++++++++++++++++-------------- package.json | 26 +- 5 files changed, 592 insertions(+), 430 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a8b2d99a46..422f842755 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -11,18 +11,15 @@ jobs: if: github.repository == 'AssemblyScript/assemblyscript' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: main fetch-depth: 0 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: current - name: Install dependencies - run: | # npm>=7 is currently broken: https://github.com/npm/cli/issues/1973 - npm -g install npm@6 - npm -v - npm ci + run: npm ci - name: Build packages run: | VERSION=$(npx aspublish --version) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 86853b6993..b170c52285 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -6,7 +6,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed in one week if no further activity occurs. Thank you for your contributions!' stale-issue-label: 'stale' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cc8dbb8ef5..18abf60299 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: name: "Check" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Check that distribution files are unmodified" if: github.event_name == 'pull_request' run: | @@ -29,8 +29,8 @@ jobs: os: ["ubuntu", "macos", "windows"] node_version: ["current", "lts/*"] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node_version }} - name: Install dependencies @@ -49,8 +49,8 @@ jobs: matrix: target: ["debug", "release"] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: current - name: Install dependencies @@ -70,8 +70,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: 21-v8-canary - name: Install dependencies @@ -88,8 +88,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: current - name: Install dependencies @@ -113,8 +113,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: current - name: Install dependencies @@ -131,8 +131,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: current - name: Install dependencies diff --git a/package-lock.json b/package-lock.json index 28afa0645c..bf4a3fb3b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,25 +10,25 @@ "license": "Apache-2.0", "dependencies": { "binaryen": "116.0.0-nightly.20240114", - "long": "^5.2.1" + "long": "^5.2.4" }, "bin": { "asc": "bin/asc.js", "asinit": "bin/asinit.js" }, "devDependencies": { - "@types/node": "^18.13.0", - "@typescript-eslint/eslint-plugin": "^5.51.0", - "@typescript-eslint/parser": "^5.51.0", - "diff": "^5.1.0", - "esbuild": "^0.19.4", - "eslint": "^8.33.0", - "glob": "^10.3.0", - "typescript": "^5.5.4" + "@types/node": "^18.19.75", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "diff": "^7.0.0", + "esbuild": "^0.24.2", + "eslint": "^8.57.1", + "glob": "^10.4.5", + "typescript": "^5.7.3" }, "engines": { - "node": ">=16", - "npm": ">=7" + "node": ">=18", + "npm": ">=10" }, "funding": { "type": "opencollective", @@ -44,356 +44,429 @@ "node": ">=0.10.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -421,10 +494,11 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -444,22 +518,25 @@ } }, "node_modules/@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -480,16 +557,19 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -503,10 +583,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -519,6 +600,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -569,6 +651,7 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -581,10 +664,11 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.18.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz", - "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==", + "version": "18.19.75", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.75.tgz", + "integrity": "sha512-UIksWtThob6ZVSyxcOqCLOUNg/dyO1Qvx4McgeuhrEtHTLFTf7BBhEazaE4K806FGTPtzd/2sE90qn4fVr7cyw==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } @@ -790,10 +874,11 @@ "dev": true }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -806,6 +891,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -815,6 +901,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -854,7 +941,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/array-union": { "version": "2.1.0", @@ -907,6 +995,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -952,10 +1041,11 @@ "dev": true }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -989,10 +1079,11 @@ "dev": true }, "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -1025,49 +1116,55 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escape-string-regexp": { @@ -1083,16 +1180,18 @@ } }, "node_modules/eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", - "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.52.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -1192,6 +1291,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -1268,7 +1368,8 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.1", @@ -1302,7 +1403,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -1402,23 +1504,22 @@ "dev": true }, "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -1440,15 +1541,17 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -1460,10 +1563,11 @@ } }, "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -1519,10 +1623,11 @@ } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -1573,6 +1678,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1614,16 +1720,14 @@ "dev": true }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -1636,6 +1740,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -1653,7 +1758,8 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -1705,18 +1811,17 @@ "dev": true }, "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", + "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==", + "license": "Apache-2.0" }, "node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/merge2": { "version": "1.4.1", @@ -1728,12 +1833,13 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -1753,10 +1859,11 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -1835,11 +1942,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -1875,16 +1990,17 @@ } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1925,6 +2041,7 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1954,6 +2071,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -2100,6 +2218,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2118,6 +2237,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2131,13 +2251,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2150,6 +2272,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2178,6 +2301,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2190,6 +2314,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -2265,6 +2390,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2273,9 +2399,9 @@ } }, "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -2297,6 +2423,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -2321,6 +2448,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2339,6 +2467,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2355,13 +2484,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -2372,10 +2503,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2388,6 +2520,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2400,6 +2533,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2442,157 +2576,178 @@ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true }, + "@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "dev": true, "optional": true }, @@ -2612,9 +2767,9 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -2629,19 +2784,19 @@ } }, "@eslint/js": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", - "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true }, "@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", "minimatch": "^3.0.5" } }, @@ -2652,9 +2807,9 @@ "dev": true }, "@humanwhocodes/object-schema": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "@isaacs/cliui": { @@ -2672,9 +2827,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -2728,9 +2883,9 @@ "dev": true }, "@types/node": { - "version": "18.18.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz", - "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==", + "version": "18.19.75", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.75.tgz", + "integrity": "sha512-UIksWtThob6ZVSyxcOqCLOUNg/dyO1Qvx4McgeuhrEtHTLFTf7BBhEazaE4K806FGTPtzd/2sE90qn4fVr7cyw==", "dev": true, "requires": { "undici-types": "~5.26.4" @@ -2848,9 +3003,9 @@ "dev": true }, "acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true }, "acorn-jsx": { @@ -2967,9 +3122,9 @@ "dev": true }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -2993,9 +3148,9 @@ "dev": true }, "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", + "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", "dev": true }, "dir-glob": { @@ -3029,33 +3184,36 @@ "dev": true }, "esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "escape-string-regexp": { @@ -3065,16 +3223,16 @@ "dev": true }, "eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", - "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.52.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -3314,16 +3472,17 @@ "dev": true }, "glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "dependencies": { "brace-expansion": { @@ -3336,9 +3495,9 @@ } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -3356,9 +3515,9 @@ } }, "globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -3397,9 +3556,9 @@ "dev": true }, "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -3468,9 +3627,9 @@ "dev": true }, "jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "requires": { "@isaacs/cliui": "^8.0.2", @@ -3539,14 +3698,14 @@ "dev": true }, "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", + "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==" }, "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, "merge2": { @@ -3556,12 +3715,12 @@ "dev": true }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "requires": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" } }, @@ -3575,9 +3734,9 @@ } }, "minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true }, "ms": { @@ -3639,6 +3798,12 @@ "p-limit": "^3.0.2" } }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3667,12 +3832,12 @@ "dev": true }, "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, @@ -3811,9 +3976,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "strip-ansi": { @@ -3925,9 +4090,9 @@ "dev": true }, "typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true }, "undici-types": { @@ -3966,9 +4131,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true }, "ansi-styles": { diff --git a/package.json b/package.json index b2a0ee359d..d8d5b47062 100644 --- a/package.json +++ b/package.json @@ -20,23 +20,23 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "engines": { - "node": ">=16", - "npm": ">=7" + "node": ">=18", + "npm": ">=10" }, "engineStrict": true, "dependencies": { "binaryen": "116.0.0-nightly.20240114", - "long": "^5.2.1" + "long": "^5.2.4" }, "devDependencies": { - "@types/node": "^18.13.0", - "@typescript-eslint/eslint-plugin": "^5.51.0", - "@typescript-eslint/parser": "^5.51.0", - "diff": "^5.1.0", - "esbuild": "^0.19.4", - "eslint": "^8.33.0", - "glob": "^10.3.0", - "typescript": "^5.5.4" + "@types/node": "^18.19.75", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "diff": "^7.0.0", + "esbuild": "^0.24.2", + "eslint": "^8.57.1", + "glob": "^10.4.5", + "typescript": "^5.7.3" }, "type": "module", "exports": { @@ -50,8 +50,8 @@ }, "./transform": { "import": "./dist/transform.js", - "require": "./dist/transform.cjs", - "types": "./dist/transform.d.ts" + "types": "./dist/transform.d.ts", + "require": "./dist/transform.cjs" }, "./binaryen": { "import": "./lib/binaryen.js", From 6e151f8e54d6ddace296e09e5339cde753bdc197 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Thu, 6 Feb 2025 20:06:27 -0800 Subject: [PATCH 35/86] feat: Support rest params in function calls (#2905) --- src/compiler.ts | 55 +- src/resolver.ts | 48 +- tests/compiler/call-rest-err.json | 14 + tests/compiler/call-rest-err.ts | 15 + tests/compiler/call-rest.debug.wat | 4023 ++++++++++++++++++++++++ tests/compiler/call-rest.json | 4 + tests/compiler/call-rest.release.wat | 2983 ++++++++++++++++++ tests/compiler/call-rest.ts | 54 + tests/compiler/issues/2707.debug.wat | 2593 +++++++++++++++ tests/compiler/issues/2707.json | 5 +- tests/compiler/issues/2707.release.wat | 1630 ++++++++++ 11 files changed, 11397 insertions(+), 27 deletions(-) create mode 100644 tests/compiler/call-rest-err.json create mode 100644 tests/compiler/call-rest-err.ts create mode 100644 tests/compiler/call-rest.debug.wat create mode 100644 tests/compiler/call-rest.json create mode 100644 tests/compiler/call-rest.release.wat create mode 100644 tests/compiler/call-rest.ts create mode 100644 tests/compiler/issues/2707.debug.wat create mode 100644 tests/compiler/issues/2707.release.wat diff --git a/src/compiler.ts b/src/compiler.ts index bf4e482b94..421d062a94 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -182,7 +182,8 @@ import { findDecorator, isTypeOmitted, Source, - TypeDeclaration + TypeDeclaration, + ParameterKind } from "./ast"; import { @@ -6171,16 +6172,7 @@ export class Compiler extends DiagnosticEmitter { return false; } - // not yet implemented (TODO: maybe some sort of an unmanaged/lightweight array?) let hasRest = signature.hasRest; - if (hasRest) { - this.error( - DiagnosticCode.Not_implemented_0, - reportNode.range, "Rest parameters" - ); - return false; - } - let minimum = signature.requiredParameters; let maximum = signature.parameterTypes.length; @@ -6225,6 +6217,37 @@ export class Compiler extends DiagnosticEmitter { } } + private adjustArgumentsForRestParams( + argumentExpressions: Expression[], + signature: Signature, + reportNode: Node + ) : Expression[] { + + // if no rest args, return the original args + if (!signature.hasRest) { + return argumentExpressions; + } + + // if there are fewer args than params, then the rest args were not provided + // so return the original args + const numArguments = argumentExpressions.length; + const numParams = signature.parameterTypes.length; + if (numArguments < numParams) { + return argumentExpressions; + } + + // make an array literal expression from the rest args + let elements = argumentExpressions.slice(numParams - 1); + let range = new Range(elements[0].range.start, elements[elements.length - 1].range.end); + range.source = reportNode.range.source; + let arrExpr = new ArrayLiteralExpression(elements, range); + + // return the original args, but replace the rest args with the array + const exprs = argumentExpressions.slice(0, numParams - 1); + exprs.push(arrExpr); + return exprs; + } + /** Compiles a direct call to a concrete function. */ compileCallDirect( instance: Function, @@ -6246,6 +6269,9 @@ export class Compiler extends DiagnosticEmitter { } if (instance.hasDecorator(DecoratorFlags.Unsafe)) this.checkUnsafe(reportNode); + argumentExpressions = this.adjustArgumentsForRestParams(argumentExpressions, signature, reportNode); + numArguments = argumentExpressions.length; + // handle call on `this` in constructors let sourceFunction = this.currentFlow.sourceFunction; if (sourceFunction.is(CommonFlags.Constructor) && reportNode.isAccessOnThis) { @@ -6477,7 +6503,11 @@ export class Compiler extends DiagnosticEmitter { let declaration = originalParameterDeclarations[minArguments + i]; let initializer = declaration.initializer; let initExpr: ExpressionRef; - if (initializer) { + if (declaration.parameterKind === ParameterKind.Rest) { + const arrExpr = new ArrayLiteralExpression([], declaration.range.atEnd); + initExpr = this.compileArrayLiteral(arrExpr, type, Constraints.ConvExplicit); + initExpr = module.local_set(operandIndex, initExpr, type.isManaged); + } else if (initializer) { initExpr = this.compileExpression( initializer, type, @@ -6863,6 +6893,9 @@ export class Compiler extends DiagnosticEmitter { return this.module.unreachable(); } + argumentExpressions = this.adjustArgumentsForRestParams(argumentExpressions, signature, reportNode); + numArguments = argumentExpressions.length; + let numArgumentsInclThis = thisArg ? numArguments + 1 : numArguments; let operands = new Array(numArgumentsInclThis); let index = 0; diff --git a/src/resolver.ts b/src/resolver.ts index 389d3d8971..4718529d5d 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -738,7 +738,9 @@ export class Resolver extends DiagnosticEmitter { ctxFlow, reportMode, ); - + if (!resolvedTypeArguments) { + return null; + } return this.resolveFunction( prototype, resolvedTypeArguments, @@ -778,16 +780,24 @@ export class Resolver extends DiagnosticEmitter { let numParameters = parameterNodes.length; let argumentNodes: Expression[]; + let argumentsRange: Range; switch (node.kind) { - case NodeKind.Call: - argumentNodes = (node).args; + case NodeKind.Call: { + const expr = node as CallExpression; + argumentNodes = expr.args; + argumentsRange = expr.argumentsRange; break; - case NodeKind.New: - argumentNodes = (node).args; + } + case NodeKind.New: { + const expr = node as NewExpression; + argumentNodes = expr.args; + argumentsRange = expr.argumentsRange; break; - default: + } + default: { assert(false); return null; + } } let numArguments = argumentNodes.length; @@ -802,16 +812,27 @@ export class Resolver extends DiagnosticEmitter { if (parameterNodes[i].parameterKind == ParameterKind.Optional) { continue; } - // missing initializer -> too few arguments if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Expected_0_arguments_but_got_1, - node.range, numParameters.toString(), numArguments.toString() - ); + if (parameterNodes[i].parameterKind == ParameterKind.Rest) { + // rest params are optional, but one element is needed for type inference + this.error( + DiagnosticCode.Type_argument_expected, + argumentsRange.atEnd + ); + } else { + // missing initializer -> too few arguments + this.error( + DiagnosticCode.Expected_0_arguments_but_got_1, + node.range, numParameters.toString(), numArguments.toString() + ); + } } return null; } let typeNode = parameterNodes[i].type; + if (parameterNodes[i].parameterKind == ParameterKind.Rest) { + typeNode = ( typeNode).typeArguments![0]; + } if (typeNode.hasGenericComponent(typeParameterNodes)) { let type = this.resolveExpression(argumentExpression, ctxFlow, Type.auto, ReportMode.Swallow); if (type) { @@ -2921,10 +2942,13 @@ export class Resolver extends DiagnosticEmitter { let numSignatureParameters = signatureParameters.length; let parameterTypes = new Array(numSignatureParameters); let requiredParameters = 0; + let hasRest = false; for (let i = 0; i < numSignatureParameters; ++i) { let parameterDeclaration = signatureParameters[i]; if (parameterDeclaration.parameterKind == ParameterKind.Default) { requiredParameters = i + 1; + } else if (parameterDeclaration.parameterKind == ParameterKind.Rest) { + hasRest = true; } let typeNode = parameterDeclaration.type; if (isTypeOmitted(typeNode)) { @@ -2984,7 +3008,7 @@ export class Resolver extends DiagnosticEmitter { returnType = type; } - let signature = Signature.create(this.program, parameterTypes, returnType, thisType, requiredParameters); + let signature = Signature.create(this.program, parameterTypes, returnType, thisType, requiredParameters, hasRest); let nameInclTypeParameters = prototype.name; if (instanceKey.length) nameInclTypeParameters += `<${instanceKey}>`; diff --git a/tests/compiler/call-rest-err.json b/tests/compiler/call-rest-err.json new file mode 100644 index 0000000000..6ba27c0d67 --- /dev/null +++ b/tests/compiler/call-rest-err.json @@ -0,0 +1,14 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "TS2322: Type '~lib/string/String' is not assignable to type 'i32'.", + "sum('a', 'b')", + "TS2322: Type '~lib/string/String' is not assignable to type 'i32'.", + "sum('a', 'b')", + "TS2322: Type '~lib/string/String' is not assignable to type 'i32'.", + "count(1, 'a')", + "TS1140: Type argument expected.", + "count()" + ] +} diff --git a/tests/compiler/call-rest-err.ts b/tests/compiler/call-rest-err.ts new file mode 100644 index 0000000000..8008ede2c9 --- /dev/null +++ b/tests/compiler/call-rest-err.ts @@ -0,0 +1,15 @@ +function sum(...args: i32[]): i32 { + let sum = 0; + for (let i = 0, k = args.length; i < k; ++i) { + sum += args[i]; + } + return sum; +} + +function count(...args: T[]): i32 { + return args.length; +} + +sum('a', 'b'); // expect a type mismatch error on each argument +count(1, 'a'); // expect a type mismatch error on the second argument +count(); // expect type inference error diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat new file mode 100644 index 0000000000..d4d20d6b81 --- /dev/null +++ b/tests/compiler/call-rest.debug.wat @@ -0,0 +1,4023 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32 i32) (result i32))) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func)) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (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)) + (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) + (global $~argumentsLength (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 $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $call-rest/indirect (mut i32) (i32.const 624)) + (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) + (global $~lib/rt/__rtti_base i32 (i32.const 1072)) + (global $~lib/memory/__data_end i32 (i32.const 1112)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33880)) + (global $~lib/memory/__heap_base i32 (i32.const 33880)) + (memory $0 1) + (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\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 $1 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data $2 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $4 (i32.const 220) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 288) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 320) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\00c\00a\00l\00l\00-\00r\00e\00s\00t\00.\00t\00s\00\00\00\00\00") + (data $11 (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data $13 (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data $16 (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data $17 (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") + (data $20 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data $23 (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data $24 (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data $25 (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") + (data $26 (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00\c0\03\00\00\e0\03\00\00\00\04\00\00") + (data $27 (i32.const 1072) "\t\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\01\00\00\00\00\00\00\00\00\00\00\02A\00\00") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $call-rest/fn@varargs) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (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 + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (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 + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter 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 + 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 240 + i32.const 160 + 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 (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 (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (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 (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 240 + i32.const 128 + 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 240 + i32.const 132 + 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 (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (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 + i32.gt_u + if + i32.const 32 + i32.const 368 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (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 2 + 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 + return + ) + (func $~lib/rt/itcms/Object#linkTo (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 (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 240 + i32.const 148 + 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 (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 (param $cookie i32) + (local $ptr 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 + if + local.get $ptr + i32.load + 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 (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (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 + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (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 448 + 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 448 + 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 448 + 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 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + 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 offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + 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 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 (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 448 + 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 448 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + 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 448 + 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 448 + 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 448 + 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 + 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 448 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + 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 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 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + 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 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 382 + 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 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + 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 448 + i32.const 389 + 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 + 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 448 + i32.const 402 + 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|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 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 + 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 + 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 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + 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 + local.get $head + i32.store 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 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (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 448 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (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 (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 (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 (result i32) + (local $obj i32) + (local $1 i32) + (local $black 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 + 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 + 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 240 + i32.const 229 + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (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 (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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 176 + i32.const 448 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + 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 + return + ) + (func $~lib/rt/tlsf/searchBlock (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 + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + 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 448 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + 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 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|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 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (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 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + 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 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (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 448 + i32.const 361 + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (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 448 + i32.const 499 + 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 448 + i32.const 501 + 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 + return + ) + (func $~lib/rt/tlsf/__alloc (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 + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (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 176 + i32.const 240 + i32.const 261 + 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 + local.get $ptr + return + ) + (func $~lib/rt/__newBuffer (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 + end + local.get $buffer + return + ) + (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) + (local $child i32) + (local $parent i32) + (local $parentColor i32) + local.get $childPtr + i32.eqz + if + return + end + i32.const 1 + drop + local.get $parentPtr + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $childPtr + i32.const 20 + i32.sub + local.set $child + local.get $child + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $parentPtr + i32.const 20 + i32.sub + local.set $parent + local.get $parent + call $~lib/rt/itcms/Object#get:color + local.set $parentColor + local.get $parentColor + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $expectMultiple + if + local.get $parent + call $~lib/rt/itcms/Object#makeGray + else + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $parentColor + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) + (local $oldObj i32) + (local $newPtr i32) + (local $4 i32) + (local $5 i32) + local.get $oldPtr + i32.const 20 + i32.sub + local.set $oldObj + local.get $size + local.get $oldObj + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $oldObj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $oldPtr + return + end + local.get $size + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtId + call $~lib/rt/itcms/__new + local.set $newPtr + local.get $newPtr + local.get $oldPtr + local.get $size + local.tee $4 + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtSize + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + memory.copy + local.get $newPtr + return + ) + (func $~lib/array/Array#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $call-rest/Foo#set:values (param $this i32) (param $values i32) + local.get $this + local.get $values + i32.store + local.get $this + local.get $values + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $call-rest/Foo#get:values (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 32 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 720 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 176 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32>#get:_env (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32>#__visit + ) + (func $call-rest/Foo~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/array/Array<~lib/string/String>#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array<~lib/string/String> + block $call-rest/Foo + block $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> $call-rest/Foo $~lib/array/Array<~lib/string/String> $invalid + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32>~visit + return + end + local.get $0 + local.get $1 + call $call-rest/Foo~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array<~lib/string/String>~visit + return + end + unreachable + ) + (func $~start + call $start:call-rest + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33904 + i32.const 33952 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/array/Array#get:length (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 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $~lib/array/Array#__get (param $this i32) (param $index i32) (result i32) + (local $value 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 + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + i32.const 32 + i32.const 96 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $call-rest/fn (param $a i32) (param $b i32) (param $rest i32) (result i32) + (local $sum i32) + (local $i i32) + (local $k i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $a + local.get $b + i32.add + local.set $sum + i32.const 0 + local.set $i + local.get $rest + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/array/Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $sum + local.get $rest + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $i + call $~lib/array/Array#__get + i32.add + local.set $sum + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $sum + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $call-rest/fn@varargs (param $a i32) (param $b i32) (param $rest i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $b + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 5 + i32.const 144 + call $~lib/rt/__newArray + local.tee $rest + i32.store + end + local.get $a + local.get $b + local.get $rest + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $call-rest/fn + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) + (local $oldCapacity i32) + (local $oldData i32) + (local $6 i32) + (local $7 i32) + (local $newCapacity i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $newData i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + local.set $oldCapacity + local.get $newSize + local.get $oldCapacity + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + local.get $newSize + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 720 + i32.const 96 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $oldData + local.get $newSize + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $alignLog2 + i32.shl + local.set $newCapacity + local.get $canGrow + if + local.get $oldCapacity + i32.const 1 + i32.shl + local.tee $9 + i32.const 1073741820 + local.tee $10 + local.get $9 + local.get $10 + i32.lt_u + select + local.tee $11 + local.get $newCapacity + local.tee $12 + local.get $11 + local.get $12 + i32.gt_u + select + local.set $newCapacity + end + local.get $oldData + local.get $newCapacity + call $~lib/rt/itcms/__renew + local.set $newData + i32.const 2 + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne + drop + local.get $newData + local.get $oldData + i32.ne + if + local.get $array + local.get $newData + i32.store + local.get $array + local.get $newData + i32.store offset=4 + local.get $array + local.get $newData + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $array + local.get $newCapacity + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $this i32) (param $index i32) (param $value 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 + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length_ + i32.ge_u + if + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 32 + i32.const 96 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array#set:length_ + end + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#push (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:length_ + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add + local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 0 + drop + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:dataStart + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $len + call $~lib/array/Array#set:length_ + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $call-rest/Foo#constructor (param $this i32) (param $a i32) (param $b i32) (param $rest i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $i i32) + (local $k i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $call-rest/Foo#set:values + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.tee $5 + i32.store offset=16 + local.get $4 + i32.const 0 + local.get $a + call $~lib/array/Array#__set + local.get $4 + i32.const 1 + local.get $b + call $~lib/array/Array#__set + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $call-rest/Foo#set:values + i32.const 0 + local.set $i + local.get $rest + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $call-rest/Foo#get:values + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $rest + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + local.get $i + call $~lib/array/Array#__get + call $~lib/array/Array#push + drop + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $this + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $call-rest/Foo#constructor@varargs (param $this i32) (param $a i32) (param $b i32) (param $rest i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $b + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 5 + i32.const 768 + call $~lib/rt/__newArray + local.tee $rest + i32.store + end + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $a + local.get $b + local.get $rest + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $call-rest/Foo#constructor + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $call-rest/Foo#sum (param $this i32) (result i32) + (local $sum i32) + (local $i i32) + (local $k i32) + (local $4 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 + i32.const 0 + local.set $sum + i32.const 0 + local.set $i + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $call-rest/Foo#get:values + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $sum + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $call-rest/Foo#get:values + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + local.get $i + call $~lib/array/Array#__get + i32.add + local.set $sum + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $sum + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $call-rest/count (param $args 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 + local.get $args + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $call-rest/count@varargs (param $args 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 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 5 + i32.const 864 + call $~lib/rt/__newArray + local.tee $args + i32.store + end + local.get $args + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $call-rest/count + 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/array/Array<~lib/string/String>#get:length (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 + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/string/String>#get:length_ + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $call-rest/count<~lib/string/String> (param $args 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 + local.get $args + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array<~lib/string/String>#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + ) + (func $start:call-rest + (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) + 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 + memory.size + 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 288 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 320 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 1 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $call-rest/fn@varargs + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $call-rest/fn@varargs + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 560 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/fn + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 592 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/fn + i32.const 15 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 0 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + global.get $call-rest/indirect + i32.load + call_indirect (type $3) + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 0 + i32.const 2 + global.set $~argumentsLength + global.get $call-rest/indirect + i32.load + call_indirect (type $3) + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 656 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + i32.const 3 + global.set $~argumentsLength + global.get $call-rest/indirect + i32.load + call_indirect (type $3) + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 688 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + i32.const 3 + global.set $~argumentsLength + global.get $call-rest/indirect + i32.load + call_indirect (type $3) + i32.const 15 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 0 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $call-rest/Foo#constructor@varargs + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/Foo#sum + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 2 + global.set $~argumentsLength + i32.const 0 + call $call-rest/Foo#constructor@varargs + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/Foo#sum + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 800 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $call-rest/Foo#constructor + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/Foo#sum + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 1 + i32.const 2 + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 832 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store offset=4 + local.get $18 + call $call-rest/Foo#constructor + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/Foo#sum + i32.const 15 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $call-rest/count@varargs + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 49 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 896 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/count + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 4 + i32.const 928 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/count + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 2 + i32.const 8 + i32.const 1056 + call $~lib/rt/__newArray + local.set $18 + global.get $~lib/memory/__stack_pointer + local.get $18 + i32.store + local.get $18 + call $call-rest/count<~lib/string/String> + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32>#__visit (param $this i32) (param $cookie 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 + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32>#get:_env + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#__visit (param $this i32) (param $cookie i32) + (local $cur i32) + (local $end i32) + (local $val i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + drop + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.set $cur + local.get $cur + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:length_ + i32.const 2 + i32.shl + i32.add + local.set $end + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if + local.get $cur + i32.load + local.set $val + local.get $val + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 + end + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array<~lib/string/String>#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) + (local $bufferSize i32) + (local $buffer i32) + (local $array i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $length + local.get $alignLog2 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + local.get $data + call $~lib/rt/__newBuffer + local.tee $buffer + i32.store + i32.const 16 + local.get $id + call $~lib/rt/itcms/__new + local.set $array + local.get $array + local.get $buffer + i32.store + local.get $array + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + local.get $array + local.get $buffer + i32.store offset=4 + local.get $array + local.get $bufferSize + i32.store offset=8 + local.get $array + local.get $length + i32.store offset=12 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) +) diff --git a/tests/compiler/call-rest.json b/tests/compiler/call-rest.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/call-rest.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat new file mode 100644 index 0000000000..6db2516a91 --- /dev/null +++ b/tests/compiler/call-rest.release.wat @@ -0,0 +1,2983 @@ +(module + (type $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~argumentsLength (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 $~lib/memory/__stack_pointer (mut i32) (i32.const 34904)) + (memory $0 1) + (data $0 (i32.const 1036) "<") + (data $0.1 (i32.const 1048) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $1 (i32.const 1100) ",") + (data $1.1 (i32.const 1112) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data $2 (i32.const 1148) "\1c") + (data $2.1 (i32.const 1160) "\01") + (data $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $4 (i32.const 1244) "<") + (data $4.1 (i32.const 1256) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $7 (i32.const 1372) ",") + (data $7.1 (i32.const 1384) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1452) "<") + (data $9.1 (i32.const 1464) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1516) ",") + (data $10.1 (i32.const 1528) "\02\00\00\00\18\00\00\00c\00a\00l\00l\00-\00r\00e\00s\00t\00.\00t\00s") + (data $11 (i32.const 1564) "\1c") + (data $11.1 (i32.const 1576) "\01\00\00\00\04\00\00\00\03") + (data $12 (i32.const 1596) "\1c") + (data $12.1 (i32.const 1608) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") + (data $13 (i32.const 1628) "\1c") + (data $13.1 (i32.const 1640) "\06\00\00\00\08\00\00\00\01") + (data $14 (i32.const 1660) "\1c") + (data $14.1 (i32.const 1672) "\01\00\00\00\04\00\00\00\03") + (data $15 (i32.const 1692) "\1c") + (data $15.1 (i32.const 1704) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") + (data $16 (i32.const 1724) ",") + (data $16.1 (i32.const 1736) "\02\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data $17 (i32.const 1772) "\1c") + (data $17.1 (i32.const 1784) "\01") + (data $18 (i32.const 1804) "\1c") + (data $18.1 (i32.const 1816) "\01\00\00\00\04\00\00\00\03") + (data $19 (i32.const 1836) "\1c") + (data $19.1 (i32.const 1848) "\01\00\00\00\0c\00\00\00\03\00\00\00\04\00\00\00\05") + (data $20 (i32.const 1868) "\1c") + (data $20.1 (i32.const 1880) "\01") + (data $21 (i32.const 1900) "\1c") + (data $21.1 (i32.const 1912) "\01\00\00\00\04\00\00\00\01") + (data $22 (i32.const 1932) "\1c") + (data $22.1 (i32.const 1944) "\01\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data $23 (i32.const 1964) "\1c") + (data $23.1 (i32.const 1976) "\02\00\00\00\02\00\00\00a") + (data $24 (i32.const 1996) "\1c") + (data $24.1 (i32.const 2008) "\02\00\00\00\02\00\00\00b") + (data $25 (i32.const 2028) "\1c") + (data $25.1 (i32.const 2040) "\02\00\00\00\02\00\00\00c") + (data $26 (i32.const 2060) "\1c") + (data $26.1 (i32.const 2072) "\01\00\00\00\0c\00\00\00\c0\07\00\00\e0\07\00\00\00\08") + (data $27 (i32.const 2096) "\t\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\01") + (data $27.1 (i32.const 2132) "\02A") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $call-rest/fn@varargs) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1744 + call $~lib/rt/itcms/__visit + i32.const 1200 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1264 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$158 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34904 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$158 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2096 + i32.load + i32.gt_u + if + i32.const 1056 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 2100 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1472 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1472 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1472 + 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 1472 + 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 + 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 1472 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1472 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1472 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34912 + i32.const 0 + i32.store + i32.const 36480 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34912 + i32.add + i32.const 0 + i32.store 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 34912 + i32.add + i32.const 0 + i32.store 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 34912 + i32.const 36484 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34912 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34904 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1264 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34904 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34904 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1472 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (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 1200 + i32.const 1264 + i32.const 261 + 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$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + 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$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1200 + i32.const 1472 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1472 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1472 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load 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 + ) + (func $~lib/array/Array~visit (param $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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array<~lib/string/String> + block $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> $folding-inner1 $~lib/array/Array<~lib/string/String> $invalid + end + return + 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 + 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 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + 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 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + end + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + ) + (func $~start + call $start:call-rest + ) + (func $~lib/array/Array#get:length (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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1056 + i32.const 1120 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $call-rest/fn (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $0 + i32.add + local.set $0 + 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 + local.get $0 + ) + (func $call-rest/fn@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + i32.const 1168 + call $~lib/rt/__newArray + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $1 + local.get $2 + call $call-rest/fn + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1744 + i32.const 1120 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$152 + i32.const 1073741820 + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $3 + local.get $0 + i32.load + local.tee $2 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $4 + local.get $3 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$152 + end + local.get $3 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $2 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_u + select + memory.copy + end + local.get $1 + local.get $2 + i32.ne + if + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $3 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1056 + i32.const 1120 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-rest/Foo#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + i32.store offset=16 + local.get $3 + i32.const 0 + i32.const 1 + call $~lib/array/Array#__set + local.get $3 + i32.const 1 + local.get $0 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $2 + local.get $3 + i32.store + local.get $2 + local.get $3 + call $~lib/rt/itcms/__link + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/array/Array#get:length + local.set $7 + loop $for-loop|0 + local.get $0 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + call $~lib/array/Array#__get + 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 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $6 + i32.load offset=12 + local.tee $4 + i32.const 1 + i32.add + local.tee $5 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + 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 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $call-rest/Foo#constructor@varargs (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + i32.const 1792 + call $~lib/rt/__newArray + local.tee $1 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $call-rest/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $call-rest/Foo#sum (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + local.get $3 + call $~lib/array/Array#get:length + local.set $4 + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + local.get $3 + local.get $1 + call $~lib/array/Array#__get + local.get $2 + i32.add + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $call-rest/count (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 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $start:call-rest + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 34904 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/pinSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/toSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/fromSpace + i32.const 1 + global.set $~argumentsLength + i32.const 1 + i32.const 0 + i32.const 0 + call $call-rest/fn@varargs + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + i32.const 1 + i32.const 2 + i32.const 0 + call $call-rest/fn@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4 + i32.const 1584 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 2 + local.get $0 + call $call-rest/fn + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 1616 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 2 + local.get $0 + call $call-rest/fn + i32.const 15 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + i32.const 1 + i32.const 0 + i32.const 0 + i32.const 1648 + i32.load + call_indirect (type $0) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + i32.const 1 + i32.const 2 + i32.const 0 + i32.const 1648 + i32.load + call_indirect (type $0) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4 + i32.const 1680 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + i32.const 1 + i32.const 2 + local.get $0 + i32.const 1648 + i32.load + call_indirect (type $0) + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 1712 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + i32.const 1 + i32.const 2 + local.get $0 + i32.const 1648 + i32.load + call_indirect (type $0) + i32.const 15 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $call-rest/Foo#constructor@varargs + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/Foo#sum + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + i32.const 2 + call $call-rest/Foo#constructor@varargs + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/Foo#sum + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4 + i32.const 1824 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 2 + local.get $0 + call $call-rest/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/Foo#sum + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 1856 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 2 + local.get $0 + call $call-rest/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/Foo#sum + i32.const 15 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $~argumentsLength + 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 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + i32.const 1888 + call $~lib/rt/__newArray + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $call-rest/count + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + if + i32.const 0 + i32.const 1536 + i32.const 49 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4 + i32.const 1920 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/count + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 4 + i32.const 1952 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/count + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 8 + i32.const 2080 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $call-rest/count + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.set $5 + local.get $0 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 + if + local.get $3 + local.get $2 + local.get $4 + memory.copy + end + local.get $5 + local.get $3 + i32.store + i32.const 16 + local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + call $~lib/rt/itcms/__link + local.get $1 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=12 + 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/call-rest.ts b/tests/compiler/call-rest.ts new file mode 100644 index 0000000000..bb0336a939 --- /dev/null +++ b/tests/compiler/call-rest.ts @@ -0,0 +1,54 @@ +// direct call test +function fn(a: i32, b: i32 = 0, ...rest: i32[]): i32 { + let sum = a + b; + for (let i = 0, k = rest.length; i < k; ++i) { + sum += rest[i]; + } + return sum; +} +assert(fn(1) == 1); +assert(fn(1, 2) == 3); +assert(fn(1, 2, 3) == 6); +assert(fn(1, 2, 3, 4, 5) == 15); + +// indirect call test +var indirect = fn; +assert(indirect(1) == 1); +assert(indirect(1, 2) == 3); +assert(indirect(1, 2, 3) == 6); +assert(indirect(1, 2, 3, 4, 5) == 15); + +// constructor test +class Foo{ + values: i32[]; + + constructor(a: i32, b: i32 = 0, ...rest: i32[]) { + this.values = [a, b]; + for (let i = 0, k = rest.length; i < k; ++i) { + this.values.push(rest[i]); + } + } + + sum(): i32 { + let sum = 0; + for (let i = 0, k = this.values.length; i < k; ++i) { + sum += this.values[i]; + } + return sum; + } +} +assert(new Foo(1).sum() == 1); +assert(new Foo(1, 2).sum() == 3); +assert(new Foo(1, 2, 3).sum() == 6); +assert(new Foo(1, 2, 3, 4, 5).sum() == 15); + +// generic test +function count(...args: T[]): i32 { + return args.length; +} +assert(count() == 0); +assert(count(1) == 1); +assert(count(1, 2, 3) == 3); + +// inferred generic test +assert(count('a','b','c') == 3); diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat new file mode 100644 index 0000000000..c844be10d1 --- /dev/null +++ b/tests/compiler/issues/2707.debug.wat @@ -0,0 +1,2593 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) + (type $10 (func (param i32 i32 i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $issues/2707/func (mut i32) (i32.const 32)) + (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/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 $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 496)) + (global $~lib/memory/__data_end i32 (i32.const 524)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33292)) + (global $~lib/memory/__heap_base i32 (i32.const 33292)) + (memory $0 1) + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $3 (i32.const 156) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 224) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 496) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\00\00\00\00") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $start:issues/2707~anonymous|0) + (export "memory" (memory $0)) + (start $~start) + (func $start:issues/2707~anonymous|0 (param $args i32) (result i32) + i32.const 1 + return + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (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 + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (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 + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter 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 + 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 176 + i32.const 160 + 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 (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 (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (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 (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 176 + i32.const 128 + 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 176 + i32.const 132 + 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 (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (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 + i32.gt_u + if + i32.const 304 + i32.const 368 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (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 2 + 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 + return + ) + (func $~lib/rt/itcms/Object#linkTo (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 (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 176 + i32.const 148 + 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 (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 (param $cookie i32) + (local $ptr 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 + if + local.get $ptr + i32.load + 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 (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (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 + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (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 448 + 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 448 + 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 448 + 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 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + 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 offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + 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 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 (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 448 + 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 448 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + 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 448 + 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 448 + 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 448 + 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 + 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 448 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + 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 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 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + 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 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 382 + 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 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + 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 448 + i32.const 389 + 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 + 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 448 + i32.const 402 + 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|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 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 + 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 + 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 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + 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 + local.get $head + i32.store 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 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (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 448 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (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 (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 (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 (result i32) + (local $obj i32) + (local $1 i32) + (local $black 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 + 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 + 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 176 + i32.const 229 + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (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 (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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 112 + i32.const 448 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + 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 + return + ) + (func $~lib/rt/tlsf/searchBlock (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 + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + 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 448 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + 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 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|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 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (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 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + 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 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (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 448 + i32.const 361 + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (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 448 + i32.const 499 + 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 448 + i32.const 501 + 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 + return + ) + (func $~lib/rt/tlsf/__alloc (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 + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (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 112 + i32.const 176 + i32.const 261 + 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 + local.get $ptr + return + ) + (func $~lib/rt/__newBuffer (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 + end + local.get $buffer + return + ) + (func $~lib/rt/itcms/__link (param $parentPtr i32) (param $childPtr i32) (param $expectMultiple i32) + (local $child i32) + (local $parent i32) + (local $parentColor i32) + local.get $childPtr + i32.eqz + if + return + end + i32.const 1 + drop + local.get $parentPtr + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $childPtr + i32.const 20 + i32.sub + local.set $child + local.get $child + call $~lib/rt/itcms/Object#get:color + global.get $~lib/rt/itcms/white + i32.eq + if + local.get $parentPtr + i32.const 20 + i32.sub + local.set $parent + local.get $parent + call $~lib/rt/itcms/Object#get:color + local.set $parentColor + local.get $parentColor + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $expectMultiple + if + local.get $parent + call $~lib/rt/itcms/Object#makeGray + else + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + else + local.get $parentColor + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + else + i32.const 0 + end + if + local.get $child + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 304 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 112 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/function/Function<%28~lib/array/Array%29=>i32>#get:_env (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/function/Function<%28~lib/array/Array%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/array/Array%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/function/Function<%28~lib/array/Array%29=>i32> + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/function/Function<%28~lib/array/Array%29=>i32> $invalid + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28~lib/array/Array%29=>i32>~visit + return + end + unreachable + ) + (func $~start + call $start:issues/2707 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33312 + i32.const 33360 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $start:issues/2707 + (local $0 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 + memory.size + 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 224 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 400 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 4 + i32.const 2 + i32.const 4 + i32.const 64 + call $~lib/rt/__newArray + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + global.set $~argumentsLength + global.get $issues/2707/func + i32.load + call_indirect (type $0) + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/function/Function<%28~lib/array/Array%29=>i32>#__visit (param $this i32) (param $cookie 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 + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/function/Function<%28~lib/array/Array%29=>i32>#get:_env + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) + (local $bufferSize i32) + (local $buffer i32) + (local $array i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $length + local.get $alignLog2 + i32.shl + local.set $bufferSize + global.get $~lib/memory/__stack_pointer + local.get $bufferSize + i32.const 1 + local.get $data + call $~lib/rt/__newBuffer + local.tee $buffer + i32.store + i32.const 16 + local.get $id + call $~lib/rt/itcms/__new + local.set $array + local.get $array + local.get $buffer + i32.store + local.get $array + local.get $buffer + i32.const 0 + call $~lib/rt/itcms/__link + local.get $array + local.get $buffer + i32.store offset=4 + local.get $array + local.get $bufferSize + i32.store offset=8 + local.get $array + local.get $length + i32.store offset=12 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + ) +) diff --git a/tests/compiler/issues/2707.json b/tests/compiler/issues/2707.json index 5d2bf93db3..1bdd02b1be 100644 --- a/tests/compiler/issues/2707.json +++ b/tests/compiler/issues/2707.json @@ -1,7 +1,4 @@ { - "asc_flags": [], - "stderr": [ - "AS100: Not implemented: Rest parameters", - "func(1, 2, 3, 4);" + "asc_flags": [ ] } diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat new file mode 100644 index 0000000000..9ca1161cf6 --- /dev/null +++ b/tests/compiler/issues/2707.release.wat @@ -0,0 +1,1630 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func)) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (result i32))) + (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 $~lib/memory/__stack_pointer (mut i32) (i32.const 34316)) + (memory $0 1) + (data $0 (i32.const 1036) "\1c") + (data $0.1 (i32.const 1048) "\05\00\00\00\08\00\00\00\01") + (data $1 (i32.const 1068) ",") + (data $1.1 (i32.const 1080) "\01\00\00\00\10\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04") + (data $2 (i32.const 1116) "<") + (data $2.1 (i32.const 1128) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $3 (i32.const 1180) "<") + (data $3.1 (i32.const 1192) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $6 (i32.const 1308) "<") + (data $6.1 (i32.const 1320) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $7 (i32.const 1372) ",") + (data $7.1 (i32.const 1384) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $9 (i32.const 1452) "<") + (data $9.1 (i32.const 1464) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $10 (i32.const 1520) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $start:issues/2707~anonymous|0) + (export "memory" (memory $0)) + (start $~start) + (func $start:issues/2707~anonymous|0 (param $0 i32) (result i32) + i32.const 1 + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1328 + call $~lib/rt/itcms/__visit + i32.const 1136 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1200 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$119 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34316 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$119 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1520 + i32.load + i32.gt_u + if + i32.const 1328 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1524 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1472 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1472 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1472 + 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 1472 + 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 + 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 1472 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1472 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1472 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34320 + i32.const 0 + i32.store + i32.const 35888 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34320 + i32.add + i32.const 0 + i32.store 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 34320 + i32.add + i32.const 0 + i32.store 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 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34316 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1200 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34316 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34316 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -4 + 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 offset=96 + else + local.get $0 + i32.load + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (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$69 + 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$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65579 + 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 + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 1472 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 44 + i32.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 501 + 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 + local.tee $3 + i32.const -4 + i32.and + i32.const 44 + 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 44 + i32.or + i32.store + local.get $1 + i32.const 48 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 16 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + i64.const 0 + i64.store align=1 + local.get $0 + i64.const 0 + i64.store offset=8 align=1 + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/function/Function<%28~lib/array/Array%29=>i32> + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/function/Function<%28~lib/array/Array%29=>i32> $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~start + (local $0 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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34316 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/pinSpace + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/toSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + 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 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 1088 + i32.const 16 + memory.copy + local.get $1 + local.get $0 + i32.store + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + i32.store + local.get $0 + if + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $2 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $3 + 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 + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + local.get $2 + local.get $0 + i32.store offset=4 + local.get $2 + i32.const 16 + i32.store offset=8 + local.get $2 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1056 + i32.load + call_indirect (type $0) + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) +) From be1d94acab9fc5d8048618d521927cdb0dfc47d2 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Fri, 7 Feb 2025 17:48:50 -0800 Subject: [PATCH 36/86] fix: use single precision for dtoa with f32 (#2908) --- std/assembly/util/number.ts | 58 +- tests/compiler/issues/2873.debug.wat | 5323 +++++++++++++++++ tests/compiler/issues/2873.json | 3 + tests/compiler/issues/2873.release.wat | 3882 ++++++++++++ tests/compiler/issues/2873.ts | 8 + tests/compiler/resolve-binary.debug.wat | 468 +- .../compiler/resolve-elementaccess.debug.wat | 472 +- .../resolve-elementaccess.release.wat | 119 +- tests/compiler/resolve-ternary.debug.wat | 468 +- tests/compiler/std/array.debug.wat | 625 +- tests/compiler/std/array.release.wat | 339 +- tests/compiler/std/string.debug.wat | 1105 ++-- tests/compiler/std/string.release.wat | 1527 +++-- tests/compiler/std/string.ts | 37 +- tests/compiler/std/typedarray.debug.wat | 842 ++- tests/compiler/std/typedarray.release.wat | 1052 ++-- tests/compiler/templateliteral.debug.wat | 468 +- tests/compiler/templateliteral.release.wat | 40 +- 18 files changed, 13604 insertions(+), 3232 deletions(-) create mode 100644 tests/compiler/issues/2873.debug.wat create mode 100644 tests/compiler/issues/2873.json create mode 100644 tests/compiler/issues/2873.release.wat create mode 100644 tests/compiler/issues/2873.ts diff --git a/std/assembly/util/number.ts b/std/assembly/util/number.ts index db74792f9a..ebd9d093cd 100644 --- a/std/assembly/util/number.ts +++ b/std/assembly/util/number.ts @@ -474,7 +474,7 @@ export function itoa64(value: i64, radix: i32): String { @lazy let _frc_minus: u64 = 0; // @ts-ignore: decorator -@lazy let _frc_plus: u64 = 0; +@lazy let _frc_plus: u64 = 0; // @ts-ignore: decorator @lazy let _frc_pow: u64 = 0; @@ -511,14 +511,14 @@ function umul64e(e1: i32, e2: i32): i32 { // @ts-ignore: decorator @inline -function normalizedBoundaries(f: u64, e: i32): void { +function normalizedBoundaries(f: u64, e: i32, isSingle: bool): void { let frc = (f << 1) + 1; let exp = e - 1; let off = clz(frc); frc <<= off; exp -= off; - let m = 1 + i32(f == 0x0010000000000000); + let m = 1 + i32(f == (isSingle ? 0x00800000 : 0x0010000000000000)); _frc_plus = frc; _frc_minus = ((f << m) - 1) << e - m - exp; @@ -559,16 +559,26 @@ function getCachedPower(minExp: i32): void { // @ts-ignore: decorator @inline -function grisu2(value: f64, buffer: usize, sign: i32): i32 { +function grisu2(value: f64, buffer: usize, sign: i32, isSingle: bool): i32 { + let frc: u64; + let exp: i32; // frexp routine - let uv = reinterpret(value); - let exp = i32((uv & 0x7FF0000000000000) >>> 52); - let sid = uv & 0x000FFFFFFFFFFFFF; - let frc = (u64(exp != 0) << 52) + sid; - exp = select(exp, 1, exp) - (0x3FF + 52); + if (isSingle) { + let uv = reinterpret(value); + exp = (uv & 0x7F800000) >>> 23; + let sid = uv & 0x007FFFFF; + frc = (u64(exp != 0) << 23) + sid; + exp = (exp || 1) - (0x7F + 23); + } else { + let uv = reinterpret(value); + exp = i32((uv & 0x7FF0000000000000) >>> 52); + let sid = uv & 0x000FFFFFFFFFFFFF; + frc = (u64(exp != 0) << 52) + sid; + exp = (exp || 1) - (0x3FF + 52); + } - normalizedBoundaries(frc, exp); + normalizedBoundaries(frc, exp, isSingle); getCachedPower(_exp); // normalize @@ -716,14 +726,14 @@ function prettify(buffer: usize, length: i32, k: i32): i32 { } } -function dtoa_core(buffer: usize, value: f64): i32 { +function dtoa_core(buffer: usize, value: f64, isSingle: bool): i32 { let sign = i32(value < 0); if (sign) { value = -value; store(buffer, CharCode.MINUS); } - // assert(value > 0 && value <= 1.7976931348623157e308); - let len = grisu2(value, buffer, sign); + // assert(value > 0 && value <= (isSingle ? f32.MAX_VALUE : f64.MAX_VALUE)); + let len = grisu2(value, buffer, sign, isSingle); len = prettify(buffer + (sign << 1), len - sign, _K); return len + sign; } @@ -731,13 +741,20 @@ function dtoa_core(buffer: usize, value: f64): i32 { // @ts-ignore: decorator @lazy @inline const dtoa_buf = memory.data(MAX_DOUBLE_LENGTH << 1); -export function dtoa(value: f64): String { +export function dtoa(value: T): String { + const isSingle = isFloat() && sizeof() == 4; + return dtoa_impl(value, isSingle); +} + +// @ts-ignore: decorator +@inline +function dtoa_impl(value: f64, isSingle: bool): String { if (value == 0) return "0.0"; if (!isFinite(value)) { if (isNaN(value)) return "NaN"; return select("-Infinity", "Infinity", value < 0); } - let size = dtoa_core(dtoa_buf, value) << 1; + let size = dtoa_core(dtoa_buf, value, isSingle) << 1; let result = changetype(__new(size, idof())); memory.copy(changetype(result), dtoa_buf, size); return result; @@ -821,7 +838,14 @@ export function itoa_buffered(buffer: usize, value: T): u32 { return sign + decimals; } -export function dtoa_buffered(buffer: usize, value: f64): u32 { +export function dtoa_buffered(buffer: usize, value: T): u32 { + const isSingle = isFloat() && sizeof() == 4; + return dtoa_buffered_impl(buffer, value, isSingle); +} + +// @ts-ignore: decorator +@inline +function dtoa_buffered_impl(buffer: usize, value: f64, isSingle: bool): u32 { if (value == 0) { store(buffer, CharCode._0); store(buffer, CharCode.DOT, 2); @@ -845,5 +869,5 @@ export function dtoa_buffered(buffer: usize, value: f64): u32 { return 8 + u32(sign); } } - return dtoa_core(buffer, value); + return dtoa_core(buffer, value, isSingle); } diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat new file mode 100644 index 0000000000..bcb0349a4e --- /dev/null +++ b/tests/compiler/issues/2873.debug.wat @@ -0,0 +1,5323 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func)) + (type $5 (func (param i32 i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $8 (func (param i32 f64 i32) (result i32))) + (type $9 (func (param i32 i32 i32 i32))) + (type $10 (func (param i32 i32 i64) (result i32))) + (type $11 (func (result i32))) + (type $12 (func (param f32 i32) (result i32))) + (type $13 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $14 (func (param f64 i32) (result i32))) + (type $15 (func (param i32 f32) (result i32))) + (type $16 (func (param i32 f64) (result i32))) + (type $17 (func (param f32) (result i32))) + (type $18 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/native/ASC_SHRINK_LEVEL 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/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 $issues/2873/f32arr i32 (i32.const 2080)) + (global $issues/2873/f64arr i32 (i32.const 2288)) + (global $~lib/rt/__rtti_base i32 (i32.const 2320)) + (global $~lib/memory/__data_end i32 (i32.const 2348)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 35116)) + (global $~lib/memory/__heap_base i32 (i32.const 35116)) + (memory $0 1) + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data $2 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 176) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\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 $5 (i32.const 232) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8 + return + ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) + (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) + (local $ptr1 i32) + (local $ptr2 i32) + (local $7 i32) + (local $a i32) + (local $b i32) + local.get $str1 + local.get $index1 + i32.const 1 + i32.shl + i32.add + local.set $ptr1 + local.get $str2 + local.get $index2 + i32.const 1 + i32.shl + i32.add + local.set $ptr2 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $len + i32.const 4 + i32.ge_u + if (result i32) + local.get $ptr1 + i32.const 7 + i32.and + local.get $ptr2 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $ptr1 + i64.load + local.get $ptr2 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $ptr1 + i32.const 8 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 8 + i32.add + local.set $ptr2 + local.get $len + i32.const 4 + i32.sub + local.set $len + local.get $len + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 + end + end + i32.const 0 + return + ) + (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) + local.get $this + call $~lib/util/number/dtoa + return + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f32) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) + (local $sign i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + local.get $buffer + local.set $buffer|2 + local.get $value + f64.promote_f32 + local.set $value|3 + i32.const 1 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq + if + local.get $buffer|2 + i32.const 48 + i32.store16 + local.get $buffer|2 + i32.const 46 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne + if + local.get $buffer|2 + i32.const 78 + i32.store16 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + unreachable + end + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + return + ) + (func $~lib/array/Array#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/array/Array#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) + (local $sign i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) + local.get $buffer + local.set $buffer|2 + local.get $value + local.set $value|3 + i32.const 0 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq + if + local.get $buffer|2 + i32.const 48 + i32.store16 + local.get $buffer|2 + i32.const 46 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne + if + local.get $buffer|2 + i32.const 78 + i32.store16 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + unreachable + end + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + return + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $issues/2873/f32arr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2873/f64arr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1760 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 1568 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/array/Array#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + local.get $0 + local.get $1 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + call $start:issues/2873 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 35136 + i32.const 35184 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 + local.get $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $~lib/string/String#substring (param $this i32) (param $start i32) (param $end i32) (result i32) + (local $len i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $finalStart i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $finalEnd i32) + (local $14 i32) + (local $15 i32) + (local $fromPos i32) + (local $17 i32) + (local $18 i32) + (local $toPos i32) + (local $size i32) + (local $out i32) + (local $22 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store + local.get $22 + call $~lib/string/String#get:length + local.set $len + local.get $start + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.tee $6 + local.get $len + local.tee $7 + local.get $6 + local.get $7 + i32.lt_s + select + local.set $finalStart + local.get $end + local.tee $9 + i32.const 0 + local.tee $10 + local.get $9 + local.get $10 + i32.gt_s + select + local.tee $11 + local.get $len + local.tee $12 + local.get $11 + local.get $12 + i32.lt_s + select + local.set $finalEnd + local.get $finalStart + local.tee $14 + local.get $finalEnd + local.tee $15 + local.get $14 + local.get $15 + i32.lt_s + select + i32.const 1 + i32.shl + local.set $fromPos + local.get $finalStart + local.tee $17 + local.get $finalEnd + local.tee $18 + local.get $17 + local.get $18 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $toPos + local.get $toPos + local.get $fromPos + i32.sub + local.set $size + local.get $size + i32.eqz + if + i32.const 2128 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + end + local.get $fromPos + i32.eqz + if (result i32) + local.get $toPos + local.get $len + i32.const 1 + i32.shl + i32.eq + else + i32.const 0 + end + if + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + end + global.get $~lib/memory/__stack_pointer + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $fromPos + i32.add + local.get $size + memory.copy + local.get $out + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + ) + (func $~lib/util/string/joinFloatArray (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) + (local $lastIndex i32) + (local $sepLen i32) + (local $estLen i32) + (local $result i32) + (local $offset i32) + (local $value f32) + (local $i i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $length + i32.const 1 + i32.sub + local.set $lastIndex + local.get $lastIndex + i32.const 0 + i32.lt_s + if + i32.const 2128 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $lastIndex + i32.eqz + if + local.get $dataStart + f32.load + call $~lib/util/number/dtoa + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $separator + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + call $~lib/string/String#get:length + local.set $sepLen + i32.const 28 + local.get $sepLen + i32.add + local.get $lastIndex + i32.mul + i32.const 28 + i32.add + local.set $estLen + global.get $~lib/memory/__stack_pointer + local.get $estLen + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store offset=4 + i32.const 0 + local.set $offset + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $lastIndex + i32.lt_s + if + local.get $dataStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + local.get $offset + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $value + call $~lib/util/number/dtoa_buffered + i32.add + local.set $offset + local.get $sepLen + if + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $separator + local.get $sepLen + i32.const 1 + i32.shl + memory.copy + local.get $offset + local.get $sepLen + i32.add + local.set $offset + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $dataStart + local.get $lastIndex + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + local.get $offset + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $value + call $~lib/util/number/dtoa_buffered + i32.add + local.set $offset + local.get $estLen + local.get $offset + i32.gt_s + if + local.get $result + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.const 0 + local.get $offset + call $~lib/string/String#substring + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $result + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/array/Array#join (param $this i32) (param $separator i32) (result i32) + (local $ptr i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:dataStart + local.set $ptr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:length_ + local.set $len + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $ptr + local.get $len + local.get $separator + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/util/string/joinFloatArray + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/util/string/joinFloatArray (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) + (local $lastIndex i32) + (local $sepLen i32) + (local $estLen i32) + (local $result i32) + (local $offset i32) + (local $value f64) + (local $i i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $length + i32.const 1 + i32.sub + local.set $lastIndex + local.get $lastIndex + i32.const 0 + i32.lt_s + if + i32.const 2128 + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $lastIndex + i32.eqz + if + local.get $dataStart + f64.load + call $~lib/util/number/dtoa + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $separator + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + call $~lib/string/String#get:length + local.set $sepLen + i32.const 28 + local.get $sepLen + i32.add + local.get $lastIndex + i32.mul + i32.const 28 + i32.add + local.set $estLen + global.get $~lib/memory/__stack_pointer + local.get $estLen + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store offset=4 + i32.const 0 + local.set $offset + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $lastIndex + i32.lt_s + if + local.get $dataStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + local.get $offset + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $value + call $~lib/util/number/dtoa_buffered + i32.add + local.set $offset + local.get $sepLen + if + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $separator + local.get $sepLen + i32.const 1 + i32.shl + memory.copy + local.get $offset + local.get $sepLen + i32.add + local.set $offset + end + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + local.get $dataStart + local.get $lastIndex + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + local.get $offset + local.get $result + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $value + call $~lib/util/number/dtoa_buffered + i32.add + local.set $offset + local.get $estLen + local.get $offset + i32.gt_s + if + local.get $result + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.const 0 + local.get $offset + call $~lib/string/String#substring + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $result + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/array/Array#join (param $this i32) (param $separator i32) (result i32) + (local $ptr i32) + (local $len i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:dataStart + local.set $ptr + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:length_ + local.set $len + i32.const 0 + drop + i32.const 0 + drop + i32.const 1 + drop + local.get $ptr + local.get $len + local.get $separator + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/util/string/joinFloatArray + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $start:issues/2873 + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + 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 1680 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 1712 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 1856 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + f32.const 1.100000023841858 + i32.const 0 + call $~lib/number/F32#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1968 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2000 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1 + i32.const 0 + call $~lib/number/F64#toString + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1968 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2000 + i32.const 2 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $issues/2873/f32arr + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 2160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/array/Array#join + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 2192 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2000 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $issues/2873/f64arr + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.const 2160 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $4 + call $~lib/array/Array#join + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 2192 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 2000 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__visit (param $this i32) (param $cookie 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 + i32.const 0 + drop + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:buffer + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/dtoa (param $value f32) (result i32) + (local $value|1 f64) + (local $isSingle i32) + (local $size i32) + (local $result i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) + local.get $value + f64.promote_f32 + local.set $value|1 + i32.const 1 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 32 + br $~lib/util/number/dtoa_impl|inlined.0 + end + local.get $value|1 + local.get $value|1 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 64 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 96 + i32.const 144 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 176 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size + global.get $~lib/memory/__stack_pointer + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 176 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 + end + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) + (local $size i32) + (local $result i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/number/dtoa_impl|inlined.1 (result i32) + local.get $value + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 32 + br $~lib/util/number/dtoa_impl|inlined.1 + end + local.get $value|1 + local.get $value|1 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 64 + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 96 + i32.const 144 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 176 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size + global.get $~lib/memory/__stack_pointer + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 176 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.1 + end + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) +) diff --git a/tests/compiler/issues/2873.json b/tests/compiler/issues/2873.json new file mode 100644 index 0000000000..ea57a955e1 --- /dev/null +++ b/tests/compiler/issues/2873.json @@ -0,0 +1,3 @@ +{ + "asc_flags": [] +} diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat new file mode 100644 index 0000000000..aba1809221 --- /dev/null +++ b/tests/compiler/issues/2873.release.wat @@ -0,0 +1,3882 @@ +(module + (type $0 (func)) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 f64 i32) (result i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64))) + (type $10 (func (result i32))) + (type $11 (func (param i32) (result i32))) + (type $12 (func (param i32 f32) (result i32))) + (type $13 (func (param i32 f64) (result i32))) + (type $14 (func (param f32) (result i32))) + (type $15 (func (param f64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp (mut i32) (i32.const 0)) + (global $~lib/util/number/_K (mut i32) (i32.const 0)) + (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) + (global $~lib/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 $~lib/memory/__stack_pointer (mut i32) (i32.const 36140)) + (memory $0 1) + (data $0 (i32.const 1036) "\1c") + (data $0.1 (i32.const 1048) "\02\00\00\00\06\00\00\000\00.\000") + (data $1 (i32.const 1068) "\1c") + (data $1.1 (i32.const 1080) "\02\00\00\00\06\00\00\00N\00a\00N") + (data $2 (i32.const 1100) ",") + (data $2.1 (i32.const 1112) "\02\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data $3 (i32.const 1148) ",") + (data $3.1 (i32.const 1160) "\02\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data $5 (i32.const 1256) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8 (param $0 i32) (param $1 f32) (result i32) + (local $2 f64) + (local $3 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + local.get $1 + f64.promote_f32 + local.tee $2 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $2 + f64.const 0 + f64.lt + local.tee $3 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $3 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + unreachable + end + local.get $0 + local.get $2 + i32.const 1 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + unreachable + end + local.get $0 + local.get $1 + i32.const 0 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/array/Array~visit (param $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 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~start + (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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3372 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + i32.const 36140 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 2708 + i32.const 2704 + i32.store + i32.const 2712 + i32.const 2704 + i32.store + i32.const 2704 + global.set $~lib/rt/itcms/pinSpace + i32.const 2740 + i32.const 2736 + i32.store + i32.const 2744 + i32.const 2736 + i32.store + i32.const 2736 + global.set $~lib/rt/itcms/toSpace + i32.const 2884 + i32.const 2880 + i32.store + i32.const 2888 + i32.const 2880 + i32.store + i32.const 2880 + global.set $~lib/rt/itcms/fromSpace + f32.const 1.100000023841858 + call $~lib/util/number/dtoa + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=4 + local.get $1 + i32.const 2992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1 + call $~lib/util/number/dtoa + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=4 + local.get $1 + i32.const 2992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 2 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=12 + 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 3372 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.store + i32.const 3108 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 3104 + i32.store + i32.const 3116 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store + 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 3372 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinFloatArray$143 + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3152 + local.set $1 + br $__inlined_func$~lib/util/string/joinFloatArray$143 + end + local.get $4 + i32.eqz + if + local.get $3 + f32.load + call $~lib/util/number/dtoa + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$143 + end + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3180 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 + i32.add + local.get $4 + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 3184 + local.get $5 + i32.const 1 + i32.shl + memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$143 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=4 + local.get $1 + i32.const 3216 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3312 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=12 + 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 3372 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3312 + i32.store + i32.const 3316 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 3312 + i32.store + i32.const 3324 + i32.load + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store + 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 3372 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinFloatArray$144 + local.get $0 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3152 + local.set $1 + br $__inlined_func$~lib/util/string/joinFloatArray$144 + end + local.get $4 + i32.eqz + if + local.get $3 + f64.load + call $~lib/util/number/dtoa + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$144 + end + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3180 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 + i32.add + local.get $4 + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + i32.const 0 + local.set $0 + i32.const 0 + local.set $2 + loop $for-loop|01 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 3184 + local.get $5 + i32.const 1 + i32.shl + memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$144 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=4 + local.get $1 + i32.const 3216 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$82 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$82 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + i32.const 1 + i32.shl + local.set $3 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.ge_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3152 + return + end + local.get $3 + i32.eqz + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $3 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/dtoa (param $0 f32) (result i32) + (local $1 f64) + (local $2 i32) + (local $3 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 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1056 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + i32.const 1088 + local.set $2 + local.get $1 + local.get $1 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 1120 + i32.const 1168 + local.get $1 + f64.const 0 + f64.lt + select + local.set $2 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 1200 + local.get $1 + i32.const 1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 1200 + local.get $3 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/util/number/dtoa (param $0 f64) (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 + global.get $~lib/memory/__stack_pointer + i32.const 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1056 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if + i32.const 1088 + local.set $1 + local.get $0 + local.get $0 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.1 + i32.const 1120 + i32.const 1168 + local.get $0 + f64.const 0 + f64.lt + select + local.set $1 + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 1200 + local.get $0 + i32.const 0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 1200 + local.get $2 + memory.copy + end + 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/2873.ts b/tests/compiler/issues/2873.ts new file mode 100644 index 0000000000..2c93f8b66b --- /dev/null +++ b/tests/compiler/issues/2873.ts @@ -0,0 +1,8 @@ +assert((1.1).toString() == "1.1"); +assert((1.1).toString() == "1.1"); + +const f32arr: f32[] = [1.1, 2.2, 3.3]; +assert(f32arr.join() == "1.1,2.2,3.3"); + +const f64arr: f64[] = [1.1, 2.2, 3.3]; +assert(f64arr.join() == "1.1,2.2,3.3"); diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 2bf97efe4c..f911a1e884 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -15,7 +15,7 @@ (type $13 (func (param f64 f64) (result f64))) (type $14 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $15 (func (param i32 i32 i32) (result i32))) - (type $16 (func (param i32 f64) (result i32))) + (type $16 (func (param i32 f64 i32) (result i32))) (type $17 (func (param f64 i32) (result i32))) (type $18 (func (param f64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -4727,26 +4727,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -4762,28 +4766,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -4802,77 +4806,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -4883,12 +4937,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -4940,14 +4994,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -5032,63 +5086,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -5097,11 +5151,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -5110,63 +5164,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -5177,13 +5231,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -5206,7 +5260,7 @@ ) (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) local.get $this - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa return ) (func $~lib/math/ipow32 (param $x i32) (param $e i32) (result i32) @@ -7651,10 +7705,12 @@ local.get $14 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7663,76 +7719,66 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 8560 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - local.get $value - f64.ne + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 8592 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 8560 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8624 - i32.const 8672 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 8592 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 8624 + i32.const 8672 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 8704 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 8704 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8704 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size - global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result - i32.store - local.get $result - i32.const 8704 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) (func $~lib/object/Object#constructor (param $this i32) (result i32) diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index a8ce8b0059..ec97507c90 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -10,7 +10,7 @@ (type $8 (func (param i32 i32 i64) (result i32))) (type $9 (func (result i32))) (type $10 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $11 (func (param i32 f64) (result i32))) + (type $11 (func (param i32 f64 i32) (result i32))) (type $12 (func (param f32 i32) (result i32))) (type $13 (func (param i32 i32 i32 i32 i32) (result i32))) (type $14 (func (param i32 i64 i32))) @@ -18,7 +18,7 @@ (type $16 (func (param i32 i64 i32 i32))) (type $17 (func (param i32 i32 f32))) (type $18 (func (param i32 i32) (result f32))) - (type $19 (func (param f64) (result i32))) + (type $19 (func (param f32) (result i32))) (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)) @@ -3415,26 +3415,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -3450,28 +3454,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -3490,77 +3494,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -3571,12 +3625,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -3628,14 +3682,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -3720,63 +3774,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -3785,11 +3839,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -3798,63 +3852,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -3865,13 +3919,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -3894,8 +3948,7 @@ ) (func $~lib/number/F32#toString (param $this f32) (param $radix i32) (result i32) local.get $this - f64.promote_f32 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa return ) (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) @@ -5258,10 +5311,12 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f32) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5270,76 +5325,67 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 608 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - local.get $value - f64.ne + f64.promote_f32 + local.set $value|1 + i32.const 1 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 640 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 608 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 672 - i32.const 720 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 640 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 672 + i32.const 720 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 752 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 752 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 752 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size - global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result - i32.store - local.get $result - i32.const 752 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index 4d1e0cba3a..a161cce7e3 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -2517,10 +2517,10 @@ (local $1 i64) (local $2 i32) (local $3 i64) - (local $4 i32) + (local $4 i64) (local $5 i64) (local $6 i64) - (local $7 i64) + (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i64) @@ -2541,30 +2541,31 @@ else local.get $0 end - i64.reinterpret_f64 - local.tee $1 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $4 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $7 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.tee $8 i32.const 1 - local.get $4 + local.get $8 select - i32.const 1075 + i32.const 150 i32.sub - local.tee $8 + local.tee $9 i32.const 1 i32.sub - local.get $1 - i64.const 4503599627370495 - i64.and - local.get $4 + local.get $7 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $8 i32.const 0 i32.ne i64.extend_i32_u - i64.const 52 + i64.const 23 i64.shl i64.add local.tee $1 @@ -2575,34 +2576,34 @@ local.tee $3 i64.clz i32.wrap_i64 - local.tee $9 + local.tee $7 i32.sub - local.set $4 + local.set $8 local.get $3 - local.get $9 + local.get $7 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus local.get $1 local.get $1 - i64.const 4503599627370496 + i64.const 8388608 i64.eq i32.const 1 i32.add - local.tee $9 + local.tee $7 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $8 local.get $9 + local.get $7 i32.sub - local.get $4 + local.get $8 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $8 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 @@ -2615,8 +2616,8 @@ f64.add local.tee $0 i32.trunc_sat_f64_s - local.tee $4 - local.get $4 + local.tee $7 + local.get $7 f64.convert_i32_s local.get $0 f64.ne @@ -2625,7 +2626,7 @@ i32.shr_s i32.const 1 i32.add - local.tee $4 + local.tee $7 i32.const 3 i32.shl local.tee $8 @@ -2636,7 +2637,7 @@ i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $4 + local.get $7 i32.const 1 i32.shl i32.const 2528 @@ -2650,7 +2651,7 @@ local.tee $1 i64.const 4294967295 i64.and - local.set $5 + local.set $4 global.get $~lib/util/number/_frc_pow local.tee $10 i64.const 4294967295 @@ -2661,13 +2662,13 @@ i64.shr_u local.tee $1 i64.mul - local.get $5 + local.get $4 local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $6 + local.set $5 global.get $~lib/util/number/_frc_plus local.tee $3 i64.const 4294967295 @@ -2685,7 +2686,7 @@ i64.const 32 i64.shr_u i64.add - local.set $7 + local.set $6 global.get $~lib/util/number/_frc_minus local.tee $13 i64.const 4294967295 @@ -2715,14 +2716,14 @@ i64.shr_u local.tee $1 i64.mul - local.get $6 + local.get $5 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $5 + local.get $4 i64.mul - local.get $6 + local.get $5 i64.const 4294967295 i64.and i64.add @@ -2734,14 +2735,14 @@ local.get $1 local.get $3 i64.mul - local.get $7 + local.get $6 i64.const 32 i64.shr_u i64.add local.get $1 local.get $12 i64.mul - local.get $7 + local.get $6 i64.const 4294967295 i64.and i64.add @@ -2812,43 +2813,27 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/dtoa$77 + i32.const 1632 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.0 local.get $0 f64.promote_f32 local.tee $1 f64.const 0 f64.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1632 - local.set $2 - br $__inlined_func$~lib/util/number/dtoa$77 - end + br_if $~lib/util/number/dtoa_impl|inlined.0 local.get $1 local.get $1 f64.sub f64.const 0 f64.ne if + i32.const 1664 + local.set $2 local.get $1 local.get $1 f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1664 - local.set $2 - br $__inlined_func$~lib/util/number/dtoa$77 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + br_if $~lib/util/number/dtoa_impl|inlined.0 i32.const 1696 i32.const 1744 local.get $1 @@ -2856,7 +2841,7 @@ f64.lt select local.set $2 - br $__inlined_func$~lib/util/number/dtoa$77 + br $~lib/util/number/dtoa_impl|inlined.0 end local.get $1 call $~lib/util/number/dtoa_core @@ -2873,11 +2858,11 @@ i32.const 1776 local.get $3 memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 ) (func $~lib/number/U8#toString (param $0 i32) (result i32) diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 44786d5dcb..65d9fa68c2 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -14,7 +14,7 @@ (type $12 (func (param i32 i32 i32 i32 i32) (result i32))) (type $13 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $14 (func (param i32 i32 i32) (result i32))) - (type $15 (func (param i32 f64) (result i32))) + (type $15 (func (param i32 f64 i32) (result i32))) (type $16 (func (param f64 i32) (result i32))) (type $17 (func (param f64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -3654,26 +3654,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -3689,28 +3693,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -3729,77 +3733,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -3810,12 +3864,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -3867,14 +3921,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -3959,63 +4013,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -4024,11 +4078,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -4037,63 +4091,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -4104,13 +4158,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -4133,7 +4187,7 @@ ) (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) local.get $this - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa return ) (func $start:resolve-ternary~anonymous|0 (param $x i32) (result i32) @@ -4706,10 +4760,12 @@ local.get $14 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4718,76 +4774,66 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 2304 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - f64.ne + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 2336 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 2304 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2368 - i32.const 2416 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 2336 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2368 + i32.const 2416 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2448 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 2448 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2448 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size - global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result - i32.store - local.get $result - i32.const 2448 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) ) diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index bff2f09e20..0c7b3bfbca 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -13,22 +13,22 @@ (type $11 (func)) (type $12 (func (param i64 i32) (result i32))) (type $13 (func (result f64))) - (type $14 (func (param i32 i32 i32 i32))) - (type $15 (func (param i64) (result i64))) - (type $16 (func (param i32 i64 i32))) - (type $17 (func (param i32 i32 i32) (result f32))) - (type $18 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $19 (func (param i32 f64) (result i32))) + (type $14 (func (param i32 f64 i32) (result i32))) + (type $15 (func (param i32 i32 i32 i32))) + (type $16 (func (param i64) (result i64))) + (type $17 (func (param i32 i64 i32))) + (type $18 (func (param i32 i32 i32) (result f32))) + (type $19 (func (param i32 i32 i32 i32 i32) (result i32))) (type $20 (func (param i32 i64) (result i32))) (type $21 (func (param i32 f32 i32 i32) (result i32))) (type $22 (func (param i32 f32 i32) (result i32))) - (type $23 (func (param i32 f64 i32) (result i32))) - (type $24 (func (param i32 i32 i64) (result i32))) - (type $25 (func (result i32))) - (type $26 (func (param i32 i32 f32 i32 i32))) - (type $27 (func (param i32 i64 i32 i32))) - (type $28 (func (param i64))) - (type $29 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $23 (func (param i32 i32 i64) (result i32))) + (type $24 (func (result i32))) + (type $25 (func (param i32 i32 f32 i32 i32))) + (type $26 (func (param i32 i64 i32 i32))) + (type $27 (func (param i64))) + (type $28 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $29 (func (param i32 f64) (result i32))) (type $30 (func (param i64) (result i32))) (type $31 (func (param i32 i32) (result f32))) (type $32 (func (param i32 i32) (result f64))) @@ -7663,26 +7663,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -7698,28 +7702,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -7738,77 +7742,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -7819,12 +7873,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -7876,14 +7930,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -7968,63 +8022,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -8033,11 +8087,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -8046,63 +8100,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -8113,13 +8167,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -8140,77 +8194,90 @@ i32.add return ) - (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) (local $sign i32) - local.get $value - f64.const 0 - f64.eq - if + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) local.get $buffer - i32.const 48 - i32.store16 - local.get $buffer - i32.const 46 - i32.store16 offset=2 - local.get $buffer - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value + local.set $buffer|2 local.get $value - f64.ne + local.set $value|3 + i32.const 0 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq if - local.get $buffer - i32.const 78 + local.get $buffer|2 + i32.const 48 i32.store16 - local.get $buffer - i32.const 97 + local.get $buffer|2 + i32.const 46 i32.store16 offset=2 - local.get $buffer - i32.const 78 + local.get $buffer|2 + i32.const 48 i32.store16 offset=4 i32.const 3 - return - else - local.get $value - f64.const 0 - f64.lt - local.set $sign - local.get $sign + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne if - local.get $buffer - i32.const 45 + local.get $buffer|2 + i32.const 78 i32.store16 - local.get $buffer - i32.const 2 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign i32.add - local.set $buffer + br $~lib/util/number/dtoa_buffered_impl|inlined.0 end - local.get $buffer - i64.const 29555310648492105 - i64.store - local.get $buffer - i64.const 34058970405077102 - i64.store offset=8 - i32.const 8 - local.get $sign - i32.add - return + unreachable end - unreachable + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.0 end - local.get $buffer - local.get $value - call $~lib/util/number/dtoa_core return ) (func $std/array/Ref#toString (param $this i32) (result i32) @@ -15243,7 +15310,7 @@ global.set $~argumentsLength local.get $fn i32.load - call_indirect (type $17) + call_indirect (type $18) local.set $result local.get $outStart local.get $i @@ -28990,7 +29057,7 @@ if local.get $dataStart f64.load - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29046,7 +29113,7 @@ i32.shl i32.add local.get $value - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $sepLen @@ -29087,7 +29154,7 @@ i32.shl i32.add local.get $value - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $estLen @@ -46812,10 +46879,12 @@ local.get $12 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -46824,76 +46893,66 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 11296 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - f64.ne + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 11328 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 11296 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 11360 - i32.const 11408 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 11328 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 11360 + i32.const 11408 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 11440 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 11440 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 11440 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size - global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result - i32.store - local.get $result - i32.const 11440 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) (func $~lib/util/number/utoa64 (param $value i64) (param $radix i32) (result i32) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 6a7b54d866..4ff1aba22c 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -5260,12 +5260,12 @@ (local $2 i64) (local $3 i32) (local $4 i64) - (local $5 i64) + (local $5 i32) (local $6 i64) - (local $7 i32) - (local $8 i32) + (local $7 i64) + (local $8 i64) (local $9 i32) - (local $10 i64) + (local $10 i32) (local $11 i64) (local $12 i64) (local $13 i64) @@ -5291,19 +5291,19 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $7 + local.tee $5 i32.const 1 - local.get $7 + local.get $5 select i32.const 1075 i32.sub - local.tee $8 + local.tee $9 i32.const 1 i32.sub local.get $2 i64.const 4503599627370495 i64.and - local.get $7 + local.get $5 i32.const 0 i32.ne i64.extend_i32_u @@ -5318,11 +5318,11 @@ local.tee $4 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $10 i32.sub - local.set $9 + local.set $5 local.get $4 - local.get $7 + local.get $10 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -5332,20 +5332,20 @@ i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $10 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $8 - local.get $7 - i32.sub local.get $9 + local.get $10 + i32.sub + local.get $5 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $9 + local.get $5 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 @@ -5358,8 +5358,8 @@ f64.add local.tee $1 i32.trunc_sat_f64_s - local.tee $7 - local.get $7 + local.tee $5 + local.get $5 f64.convert_i32_s local.get $1 f64.ne @@ -5368,18 +5368,18 @@ i32.shr_s i32.const 1 i32.add - local.tee $7 + local.tee $5 i32.const 3 i32.shl - local.tee $8 + local.tee $9 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $9 i32.const 12520 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $7 + local.get $5 i32.const 1 i32.shl i32.const 13216 @@ -5393,74 +5393,80 @@ local.tee $2 i64.const 4294967295 i64.and - local.set $5 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $4 + local.set $6 global.get $~lib/util/number/_frc_pow - local.tee $10 + local.tee $11 i64.const 4294967295 i64.and - local.tee $11 + local.tee $12 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 i64.mul - local.get $5 - local.get $11 + local.get $6 + local.get $12 i64.mul i64.const 32 i64.shr_u i64.add - local.set $12 + local.set $7 global.get $~lib/util/number/_frc_plus - local.tee $2 + local.tee $4 i64.const 4294967295 i64.and local.set $13 - local.get $11 - local.get $2 + local.get $4 i64.const 32 i64.shr_u - local.tee $6 + local.tee $4 + local.get $12 i64.mul - local.get $11 + local.get $12 local.get $13 i64.mul i64.const 32 i64.shr_u i64.add - local.set $14 + local.set $8 global.get $~lib/util/number/_frc_minus - local.tee $15 + local.tee $14 i64.const 4294967295 i64.and - local.set $2 - local.get $11 - local.get $15 + local.set $15 + local.get $14 i64.const 32 i64.shr_u - local.tee $15 + local.tee $14 + local.get $12 i64.mul - local.get $2 - local.get $11 + local.get $12 + local.get $15 i64.mul i64.const 32 i64.shr_u i64.add - local.set $11 - local.get $10 + local.set $12 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $2 + local.get $11 i64.const 32 i64.shr_u - local.tee $10 - local.get $6 + local.tee $2 i64.mul - local.get $14 + local.get $7 i64.const 32 i64.shr_u i64.add - local.get $10 - local.get $13 + local.get $2 + local.get $6 i64.mul - local.get $14 + local.get $7 i64.const 4294967295 i64.and i64.add @@ -5469,26 +5475,17 @@ i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub - local.set $6 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $0 + local.get $2 local.get $4 - local.get $10 i64.mul - local.get $12 + local.get $8 i64.const 32 i64.shr_u i64.add - local.get $5 - local.get $10 + local.get $2 + local.get $13 i64.mul - local.get $12 + local.get $8 i64.const 4294967295 i64.and i64.add @@ -5497,24 +5494,26 @@ i64.const 32 i64.shr_u i64.add - local.get $6 + i64.const 1 + i64.sub + local.tee $4 global.get $~lib/util/number/_exp_pow global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub - local.get $6 - local.get $10 - local.get $15 + local.get $4 + local.get $2 + local.get $14 i64.mul - local.get $11 + local.get $12 i64.const 32 i64.shr_u i64.add local.get $2 - local.get $10 + local.get $15 i64.mul - local.get $11 + local.get $12 i64.const 4294967295 i64.and i64.add @@ -5535,75 +5534,77 @@ local.get $3 i32.add ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - local.get $1 - f64.const 0 - f64.eq - if - local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne - if + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) local.get $1 - local.get $1 - f64.ne + f64.const 0 + f64.eq if local.get $0 - i32.const 78 + i32.const 48 i32.store16 local.get $0 - i32.const 97 + i32.const 46 i32.store16 offset=2 local.get $0 - i32.const 78 + i32.const 48 i32.store16 offset=4 i32.const 3 - return - else + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if local.get $1 - f64.const 0 - f64.lt - local.tee $2 + local.get $1 + f64.ne if local.get $0 - i32.const 45 + i32.const 78 i32.store16 local.get $0 - i32.const 2 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 i32.add - local.set $0 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - local.get $2 - i32.const 8 - i32.add - return + unreachable end - unreachable + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core end - local.get $0 - local.get $1 - call $~lib/util/number/dtoa_core ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -15624,65 +15625,51 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 - f64.const 0 - f64.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 12320 - local.set $0 - br $folding-inner1 - end - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.ne - if + i32.const 12320 + local.set $0 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 local.get $3 local.get $3 + f64.sub + f64.const 0 f64.ne if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 12352 local.set $0 - br $folding-inner1 + local.get $3 + local.get $3 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 12384 + i32.const 12432 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 12384 - i32.const 12432 + i32.const 12464 local.get $3 - f64.const 0 - f64.lt - select - local.set $0 - br $folding-inner1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 12464 + local.get $1 + memory.copy end - i32.const 12464 - local.get $3 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 12464 - local.get $1 - memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -15727,7 +15714,7 @@ i32.shl i32.add f64.load - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered local.get $2 i32.add local.set $2 @@ -15766,7 +15753,7 @@ i32.shl i32.add f64.load - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered local.get $2 i32.add local.tee $0 diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index b66caa8920..7970a9b62e 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -20,10 +20,11 @@ (type $18 (func (param i32 i64 i32 i32))) (type $19 (func (param i64) (result i32))) (type $20 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $21 (func (param i32 f64) (result i32))) + (type $21 (func (param i32 f64 i32) (result i32))) (type $22 (func (param i32) (result f32))) (type $23 (func (param i32 i32 i32 i32) (result i32))) (type $24 (func (param f64) (result i32))) + (type $25 (func (param f32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $std/string/str (mut i32) (i32.const 32)) (global $std/string/nullStr (mut i32) (i32.const 0)) @@ -67,10 +68,12 @@ (global $~lib/util/number/_K (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 25392)) - (global $~lib/memory/__data_end i32 (i32.const 25420)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 58188)) - (global $~lib/memory/__heap_base i32 (i32.const 58188)) + (global $~lib/builtins/f32.EPSILON f32 (f32.const 1.1920928955078125e-07)) + (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14)) + (global $~lib/rt/__rtti_base i32 (i32.const 25584)) + (global $~lib/memory/__data_end i32 (i32.const 25612)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 58380)) + (global $~lib/memory/__heap_base i32 (i32.const 58380)) (memory $0 1) (data $0 (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g\00\00\00\00\00\00\00\00\00\00\00\00\00") (data $1 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00s\00t\00d\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00\00\00") @@ -502,48 +505,52 @@ (data $427 (i32.const 23248) "\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;") (data $428 (i32.const 23292) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\00-\002\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006\00") (data $429 (i32.const 23356) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\000\00\00\00-\001\00.\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\007\00e\00+\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $430 (i32.const 23436) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\004\00.\001\008\005\005\008\000\004\009\006\008\002\001\003\005\007\00e\00+\002\009\008\00") - (data $431 (i32.const 23500) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\002\00.\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\004\00e\00-\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $432 (i32.const 23580) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\004\00.\009\004\000\006\005\006\00e\00-\003\001\008\00\00\00") - (data $433 (i32.const 23628) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\009\000\006\000\008\000\001\001\005\003\004\003\003\006\000\000\00.\000\00\00\00\00\00\00\00\00\00") - (data $434 (i32.const 23692) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\004\007\000\008\003\005\006\000\002\004\007\001\001\005\001\002\000\000\000\00.\000\00\00\00") - (data $435 (i32.const 23756) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\009\004\000\009\003\004\000\000\001\002\005\006\008\002\004\008\000\000\000\00.\000\00\00\00") - (data $436 (i32.const 23820) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00.\000\00\00\00\00\00\00\00") - (data $437 (i32.const 23852) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\001\00.\000\00\00\00\00\00") - (data $438 (i32.const 23884) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\000\00.\001\00\00\00\00\00") - (data $439 (i32.const 23916) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00\00\00") - (data $440 (i32.const 23964) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\000\00.\000\000\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $441 (i32.const 24012) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00-\001\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00") - (data $442 (i32.const 24060) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\000\00.\000\000\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00") - (data $443 (i32.const 24108) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\000\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00") - (data $444 (i32.const 24156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\00-\007\00\00\00\00\00") - (data $445 (i32.const 24188) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00+\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $446 (i32.const 24236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00-\003\000\008\00") - (data $447 (i32.const 24268) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00-\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $448 (i32.const 24316) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00-\003\002\003\00") - (data $449 (i32.const 24348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00-\003\002\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $450 (i32.const 24396) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\004\002\009\004\009\006\007\002\007\002\00.\000\00\00\00\00\00") - (data $451 (i32.const 24444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\001\00.\002\003\001\002\001\004\005\006\007\003\004\005\006\002\003\004\00e\00-\008\00\00\00") - (data $452 (i32.const 24508) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\005\005\005\005\005\005\005\005\005\00.\005\005\005\005\005\005\006\00\00\00\00\00\00\00\00\00\00\00") - (data $453 (i32.const 24572) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\00\00\00\00\00\00\00\00\00") - (data $454 (i32.const 24636) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\002\00.\003\004\00\00\00") - (data $455 (i32.const 24668) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\00.\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\00\00\00\00\00\00\00\00\00") - (data $456 (i32.const 24732) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\002\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $457 (i32.const 24812) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00.\002\003\004\00e\00+\002\001\00\00\00\00\00\00\00\00\00\00\00") - (data $458 (i32.const 24860) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\00.\007\001\008\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $459 (i32.const 24908) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\000\00.\000\002\007\001\008\002\008\00\00\00\00\00\00\00\00\00\00\00") - (data $460 (i32.const 24956) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\007\001\00.\008\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $461 (i32.const 25004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $462 (i32.const 25052) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data $463 (i32.const 25100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009\00\00\00\00\00\00\00") - (data $464 (i32.const 25148) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00H\00e\00l\00l\00o\00 \00") - (data $465 (i32.const 25180) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00W\00o\00r\00l\00d\00\00\00") - (data $466 (i32.const 25212) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d\00\00\00\00\00\00\00") - (data $467 (i32.const 25260) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00b\00a\00r\00\00\00\00\00\00\00") - (data $468 (i32.const 25292) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\c0\00\c8\00\00\00\00\00\00\00\00\00") - (data $469 (i32.const 25324) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\d8S\cf\91\00\00\00\00\00\00\00\00") - (data $470 (i32.const 25356) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\d8\0e\dfA\d81\df\00\00\00\00") - (data $471 (i32.const 25392) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A\00\00") + (data $430 (i32.const 23436) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\001\00.\001\009\002\000\009\002\009\00e\00-\007\00\00\00\00\00") + (data $431 (i32.const 23484) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00-\001\00.\001\009\002\000\009\002\009\00e\00-\007\00\00\00") + (data $432 (i32.const 23532) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\003\00.\004\000\002\008\002\003\005\00e\00+\003\008\00\00\00") + (data $433 (i32.const 23580) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00-\003\00.\004\000\002\008\002\003\005\00e\00+\003\008\00") + (data $434 (i32.const 23628) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00,\00\00\004\00.\001\008\005\005\008\000\004\009\006\008\002\001\003\005\007\00e\00+\002\009\008\00") + (data $435 (i32.const 23692) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\002\00.\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\004\00e\00-\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $436 (i32.const 23772) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\004\00.\009\004\000\006\005\006\00e\00-\003\001\008\00\00\00") + (data $437 (i32.const 23820) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\009\000\006\000\008\000\001\001\005\003\004\003\003\006\000\000\00.\000\00\00\00\00\00\00\00\00\00") + (data $438 (i32.const 23884) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\004\007\000\008\003\005\006\000\002\004\007\001\001\005\001\002\000\000\000\00.\000\00\00\00") + (data $439 (i32.const 23948) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\009\004\000\009\003\004\000\000\001\002\005\006\008\002\004\008\000\000\000\00.\000\00\00\00") + (data $440 (i32.const 24012) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\001\00.\000\00\00\00\00\00\00\00") + (data $441 (i32.const 24044) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\001\00.\000\00\00\00\00\00") + (data $442 (i32.const 24076) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00-\000\00.\001\00\00\00\00\00") + (data $443 (i32.const 24108) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00\00\00") + (data $444 (i32.const 24156) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\000\00.\000\000\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $445 (i32.const 24204) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00-\001\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00") + (data $446 (i32.const 24252) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00-\000\00.\000\000\000\000\000\001\00\00\00\00\00\00\00\00\00\00\00") + (data $447 (i32.const 24300) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\001\000\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00") + (data $448 (i32.const 24348) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\001\00e\00-\007\00\00\00\00\00") + (data $449 (i32.const 24380) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00+\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $450 (i32.const 24428) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00-\003\000\008\00") + (data $451 (i32.const 24460) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00-\003\000\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $452 (i32.const 24508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\001\00e\00-\003\002\003\00") + (data $453 (i32.const 24540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00-\001\00e\00-\003\002\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $454 (i32.const 24588) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\18\00\00\004\002\009\004\009\006\007\002\007\002\00.\000\00\00\00\00\00") + (data $455 (i32.const 24636) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\001\00.\002\003\001\002\001\004\005\006\007\003\004\005\006\002\003\004\00e\00-\008\00\00\00") + (data $456 (i32.const 24700) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\005\005\005\005\005\005\005\005\005\00.\005\005\005\005\005\005\006\00\00\00\00\00\00\00\00\00\00\00") + (data $457 (i32.const 24764) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\00\00\00\00\00\00\00\00\00") + (data $458 (i32.const 24828) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\001\002\00.\003\004\00\00\00") + (data $459 (i32.const 24860) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\000\00.\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\00\00\00\00\00\00\00\00\00") + (data $460 (i32.const 24924) "L\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00.\00\00\001\002\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00.\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $461 (i32.const 25004) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\001\00.\002\003\004\00e\00+\002\001\00\00\00\00\00\00\00\00\00\00\00") + (data $462 (i32.const 25052) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\00.\007\001\008\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $463 (i32.const 25100) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\000\00.\000\002\007\001\008\002\008\00\00\00\00\00\00\00\00\00\00\00") + (data $464 (i32.const 25148) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\002\007\001\00.\008\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $465 (i32.const 25196) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $466 (i32.const 25244) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $467 (i32.const 25292) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009\00\00\00\00\00\00\00") + (data $468 (i32.const 25340) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0c\00\00\00H\00e\00l\00l\00o\00 \00") + (data $469 (i32.const 25372) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00W\00o\00r\00l\00d\00\00\00") + (data $470 (i32.const 25404) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d\00\00\00\00\00\00\00") + (data $471 (i32.const 25452) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00b\00a\00r\00\00\00\00\00\00\00") + (data $472 (i32.const 25484) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\c0\00\c8\00\00\00\00\00\00\00\00\00") + (data $473 (i32.const 25516) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00\d8S\cf\91\00\00\00\00\00\00\00\00") + (data $474 (i32.const 25548) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00A\d8\0e\dfA\d81\df\00\00\00\00") + (data $475 (i32.const 25584) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "getString" (func $std/string/getString)) @@ -4924,26 +4931,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -4959,28 +4970,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -4999,77 +5010,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -5080,12 +5141,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -5137,14 +5198,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -5229,63 +5290,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -5294,11 +5355,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -5307,63 +5368,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -5374,13 +5435,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -5571,8 +5632,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 58208 - i32.const 58256 + i32.const 58400 + i32.const 58448 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27042,7 +27103,7 @@ unreachable end f64.const 0 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27065,7 +27126,7 @@ unreachable end f64.const -0 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27088,7 +27149,7 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27111,7 +27172,7 @@ unreachable end f64.const inf - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27135,7 +27196,7 @@ end f64.const inf f64.neg - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27158,7 +27219,7 @@ unreachable end global.get $~lib/builtins/f64.EPSILON - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27182,7 +27243,7 @@ end global.get $~lib/builtins/f64.EPSILON f64.neg - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27205,7 +27266,7 @@ unreachable end global.get $~lib/builtins/f64.MAX_VALUE - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27229,7 +27290,7 @@ end global.get $~lib/builtins/f64.MAX_VALUE f64.neg - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27251,8 +27312,8 @@ call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 - call $~lib/util/number/dtoa + global.get $~lib/builtins/f32.EPSILON + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27274,14 +27335,15 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - call $~lib/util/number/dtoa + global.get $~lib/builtins/f32.EPSILON + f32.neg + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 23520 + i32.const 23504 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27297,8 +27359,32 @@ call $~lib/builtins/abort unreachable end - f64.const 4.940656e-318 - call $~lib/util/number/dtoa + global.get $~lib/builtins/f32.MAX_VALUE + call $~lib/util/number/dtoa + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store + local.get $55 + i32.const 23552 + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store offset=4 + local.get $55 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 747 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/f32.MAX_VALUE + f32.neg + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27315,13 +27401,13 @@ if i32.const 0 i32.const 96 - i32.const 749 + i32.const 748 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9060801153433600 - call $~lib/util/number/dtoa + f64.const 4185580496821356722454785e274 + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27338,13 +27424,13 @@ if i32.const 0 i32.const 96 - i32.const 750 + i32.const 749 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4708356024711512064 - call $~lib/util/number/dtoa + f64.const 2.2250738585072014e-308 + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27358,6 +27444,29 @@ local.get $55 call $~lib/string/String.__eq i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 750 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 4.940656e-318 + call $~lib/util/number/dtoa + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store + local.get $55 + i32.const 23792 + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store offset=4 + local.get $55 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 96 @@ -27366,14 +27475,14 @@ call $~lib/builtins/abort unreachable end - f64.const 9409340012568248320 - call $~lib/util/number/dtoa + f64.const 9060801153433600 + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 23776 + i32.const 23840 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27389,8 +27498,54 @@ call $~lib/builtins/abort unreachable end + f64.const 4708356024711512064 + call $~lib/util/number/dtoa + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store + local.get $55 + i32.const 23904 + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store offset=4 + local.get $55 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 753 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 9409340012568248320 + call $~lib/util/number/dtoa + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store + local.get $55 + i32.const 23968 + local.set $55 + global.get $~lib/memory/__stack_pointer + local.get $55 + i32.store offset=4 + local.get $55 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 754 + i32.const 1 + call $~lib/builtins/abort + unreachable + end f64.const 5e-324 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27407,19 +27562,19 @@ if i32.const 0 i32.const 96 - i32.const 753 + i32.const 755 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 23840 + i32.const 24032 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27430,13 +27585,13 @@ if i32.const 0 i32.const 96 - i32.const 759 + i32.const 757 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.1 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27453,19 +27608,19 @@ if i32.const 0 i32.const 96 - i32.const 760 + i32.const 758 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 23872 + i32.const 24064 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27476,19 +27631,19 @@ if i32.const 0 i32.const 96 - i32.const 761 + i32.const 759 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -0.1 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 23904 + i32.const 24096 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27499,19 +27654,19 @@ if i32.const 0 i32.const 96 - i32.const 762 + i32.const 760 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e6 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 23936 + i32.const 24128 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27522,19 +27677,19 @@ if i32.const 0 i32.const 96 - i32.const 764 + i32.const 762 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-06 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 23984 + i32.const 24176 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27545,19 +27700,19 @@ if i32.const 0 i32.const 96 - i32.const 765 + i32.const 763 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e6 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24032 + i32.const 24224 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27568,19 +27723,19 @@ if i32.const 0 i32.const 96 - i32.const 766 + i32.const 764 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-06 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24080 + i32.const 24272 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27591,19 +27746,19 @@ if i32.const 0 i32.const 96 - i32.const 767 + i32.const 765 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e7 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24128 + i32.const 24320 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27614,19 +27769,19 @@ if i32.const 0 i32.const 96 - i32.const 768 + i32.const 766 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-07 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24176 + i32.const 24368 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27637,13 +27792,13 @@ if i32.const 0 i32.const 96 - i32.const 769 + i32.const 767 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.e+308 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27660,19 +27815,19 @@ if i32.const 0 i32.const 96 - i32.const 771 + i32.const 769 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1.e+308 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24208 + i32.const 24400 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27683,13 +27838,13 @@ if i32.const 0 i32.const 96 - i32.const 772 + i32.const 770 i32.const 1 call $~lib/builtins/abort unreachable end f64.const inf - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27706,13 +27861,13 @@ if i32.const 0 i32.const 96 - i32.const 773 + i32.const 771 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -inf - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27729,19 +27884,19 @@ if i32.const 0 i32.const 96 - i32.const 774 + i32.const 772 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-308 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24256 + i32.const 24448 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27752,19 +27907,19 @@ if i32.const 0 i32.const 96 - i32.const 775 + i32.const 773 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-308 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24288 + i32.const 24480 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27775,19 +27930,19 @@ if i32.const 0 i32.const 96 - i32.const 776 + i32.const 774 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-323 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24336 + i32.const 24528 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27798,19 +27953,19 @@ if i32.const 0 i32.const 96 - i32.const 777 + i32.const 775 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-323 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24368 + i32.const 24560 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27821,13 +27976,13 @@ if i32.const 0 i32.const 96 - i32.const 778 + i32.const 776 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27844,19 +27999,19 @@ if i32.const 0 i32.const 96 - i32.const 779 + i32.const 777 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4294967272 - call $~lib/util/number/dtoa + i32.const -24 + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24416 + i32.const 24608 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27867,19 +28022,19 @@ if i32.const 0 i32.const 96 - i32.const 781 + i32.const 779 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.2312145673456234e-08 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24464 + i32.const 24656 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27890,19 +28045,19 @@ if i32.const 0 i32.const 96 - i32.const 782 + i32.const 780 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 555555555.5555556 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24528 + i32.const 24720 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27913,19 +28068,19 @@ if i32.const 0 i32.const 96 - i32.const 784 + i32.const 781 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.9999999999999999 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24592 + i32.const 24784 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27936,19 +28091,19 @@ if i32.const 0 i32.const 96 - i32.const 785 + i32.const 782 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 23840 + i32.const 24032 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27959,19 +28114,19 @@ if i32.const 0 i32.const 96 - i32.const 786 + i32.const 783 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 12.34 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24656 + i32.const 24848 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -27982,7 +28137,7 @@ if i32.const 0 i32.const 96 - i32.const 787 + i32.const 784 i32.const 1 call $~lib/builtins/abort unreachable @@ -27990,13 +28145,13 @@ f64.const 1 f64.const 3 f64.div - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24688 + i32.const 24880 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28007,19 +28162,19 @@ if i32.const 0 i32.const 96 - i32.const 789 + i32.const 785 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1234e17 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24752 + i32.const 24944 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28030,19 +28185,19 @@ if i32.const 0 i32.const 96 - i32.const 790 + i32.const 786 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1234e18 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24832 + i32.const 25024 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28053,19 +28208,19 @@ if i32.const 0 i32.const 96 - i32.const 791 + i32.const 787 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 2.71828 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24880 + i32.const 25072 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28076,19 +28231,19 @@ if i32.const 0 i32.const 96 - i32.const 792 + i32.const 788 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.0271828 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24928 + i32.const 25120 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28099,19 +28254,19 @@ if i32.const 0 i32.const 96 - i32.const 793 + i32.const 789 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 271.828 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 24976 + i32.const 25168 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28122,19 +28277,19 @@ if i32.const 0 i32.const 96 - i32.const 794 + i32.const 790 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.1e+128 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 25024 + i32.const 25216 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28145,19 +28300,19 @@ if i32.const 0 i32.const 96 - i32.const 795 + i32.const 791 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.1e-64 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 25072 + i32.const 25264 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28168,19 +28323,19 @@ if i32.const 0 i32.const 96 - i32.const 796 + i32.const 792 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.000035689 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 25120 + i32.const 25312 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28191,18 +28346,18 @@ if i32.const 0 i32.const 96 - i32.const 797 + i32.const 793 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25168 + i32.const 25360 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store offset=8 local.get $55 - i32.const 25200 + i32.const 25392 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28214,7 +28369,7 @@ local.get $55 i32.store local.get $55 - i32.const 25232 + i32.const 25424 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28225,7 +28380,7 @@ if i32.const 0 i32.const 96 - i32.const 802 + i32.const 820 i32.const 1 call $~lib/builtins/abort unreachable @@ -28236,7 +28391,7 @@ local.get $55 i32.store offset=8 local.get $55 - i32.const 25280 + i32.const 25472 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28248,7 +28403,7 @@ local.get $55 i32.store local.get $55 - i32.const 25280 + i32.const 25472 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28259,12 +28414,12 @@ if i32.const 0 i32.const 96 - i32.const 803 + i32.const 821 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25280 + i32.const 25472 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28282,7 +28437,7 @@ local.get $55 i32.store local.get $55 - i32.const 25280 + i32.const 25472 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28293,7 +28448,7 @@ if i32.const 0 i32.const 96 - i32.const 804 + i32.const 822 i32.const 1 call $~lib/builtins/abort unreachable @@ -28327,18 +28482,18 @@ if i32.const 0 i32.const 96 - i32.const 805 + i32.const 823 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25312 + i32.const 25504 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 25312 + i32.const 25504 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28349,18 +28504,18 @@ if i32.const 0 i32.const 96 - i32.const 816 + i32.const 831 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25312 + i32.const 25504 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 25312 + i32.const 25504 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28371,18 +28526,18 @@ if i32.const 0 i32.const 96 - i32.const 817 + i32.const 832 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25344 + i32.const 25536 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 25344 + i32.const 25536 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28393,18 +28548,18 @@ if i32.const 0 i32.const 96 - i32.const 818 + i32.const 833 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 25376 + i32.const 25568 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 i32.store local.get $55 - i32.const 25376 + i32.const 25568 local.set $55 global.get $~lib/memory/__stack_pointer local.get $55 @@ -28415,7 +28570,7 @@ if i32.const 0 i32.const 96 - i32.const 819 + i32.const 834 i32.const 1 call $~lib/builtins/abort unreachable @@ -29439,10 +29594,12 @@ local.get $18 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -29451,76 +29608,220 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 22256 - local.set $3 + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) + local.get $value + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 22256 + br $~lib/util/number/dtoa_impl|inlined.0 + end + local.get $value|1 + local.get $value|1 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 6672 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 7936 + i32.const 22288 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 22320 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 22320 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/util/number/dtoa (param $value f32) (result i32) + (local $value|1 f64) + (local $isSingle i32) + (local $size i32) + (local $result i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $~lib/util/number/dtoa_impl|inlined.1 (result i32) local.get $value - f64.ne + f64.promote_f32 + local.set $value|1 + i32.const 1 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 6672 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 22256 + br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 7936 - i32.const 22288 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 6672 + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 7936 + i32.const 22288 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 22320 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 22320 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.1 end - i32.const 22320 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/util/number/dtoa (param $value i32) (result i32) + (local $value|1 f64) + (local $isSingle i32) + (local $size i32) + (local $result i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $result - i32.const 22320 - local.get $size - memory.copy - local.get $result - local.set $3 + block $~lib/util/number/dtoa_impl|inlined.2 (result i32) + local.get $value + f64.convert_i32_u + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 22256 + br $~lib/util/number/dtoa_impl|inlined.2 + end + local.get $value|1 + local.get $value|1 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 6672 + br $~lib/util/number/dtoa_impl|inlined.2 + end + i32.const 7936 + i32.const 22288 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.2 + end + i32.const 22320 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size + global.get $~lib/memory/__stack_pointer + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 22320 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.2 + end + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) ) diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index 8518493cd8..a18ea8e7a2 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -7,18 +7,20 @@ (type $5 (func (param i32))) (type $6 (func (result i32))) (type $7 (func (param i32 i32 i32))) - (type $8 (func (param f64) (result i32))) - (type $9 (func (param i32 i32) (result f64))) - (type $10 (func (param i32) (result f64))) - (type $11 (func (param i64 i32) (result i32))) - (type $12 (func (param i32 i32 i32 i32))) - (type $13 (func (param i32 i32 i32 i32) (result i32))) - (type $14 (func (param i32 i32 i64))) - (type $15 (func (param f64 i32) (result f64))) - (type $16 (func (param i32 i64 i32 i32))) - (type $17 (func (param i32 i64 i32))) - (type $18 (func (param i64 i64 i32 i64 i32) (result i32))) + (type $8 (func (param i32 i32) (result f64))) + (type $9 (func (param i32) (result f64))) + (type $10 (func (param i64 i32) (result i32))) + (type $11 (func (param i32 i32 i32 i32))) + (type $12 (func (param i32 i32 i32 i32) (result i32))) + (type $13 (func (param i32 i32 i64))) + (type $14 (func (param f64 i32) (result f64))) + (type $15 (func (param i32 i64 i32 i32))) + (type $16 (func (param i32 i64 i32))) + (type $17 (func (param i64 i64 i32 i64 i32) (result i32))) + (type $18 (func (param f64 i32) (result i32))) (type $19 (func (result i64))) + (type $20 (func (param f64) (result i32))) + (type $21 (func (param f32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $std/string/str (mut i32) (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -39,7 +41,7 @@ (global $~lib/util/number/_K (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 59212)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 59404)) (memory $0 1) (data $0 (i32.const 1036) "<") (data $0.1 (i32.const 1048) "\02\00\00\00 \00\00\00h\00i\00,\00 \00I\00\'\00m\00 \00a\00 \00s\00t\00r\00i\00n\00g") @@ -888,89 +890,97 @@ (data $428.1 (i32.const 24328) "\02\00\00\00,\00\00\00-\002\00.\002\002\000\004\004\006\000\004\009\002\005\000\003\001\003\00e\00-\001\006") (data $429 (i32.const 24380) "L") (data $429.1 (i32.const 24392) "\02\00\00\000\00\00\00-\001\00.\007\009\007\006\009\003\001\003\004\008\006\002\003\001\005\007\00e\00+\003\000\008") - (data $430 (i32.const 24460) "<") - (data $430.1 (i32.const 24472) "\02\00\00\00,\00\00\004\00.\001\008\005\005\008\000\004\009\006\008\002\001\003\005\007\00e\00+\002\009\008") - (data $431 (i32.const 24524) "L") - (data $431.1 (i32.const 24536) "\02\00\00\00.\00\00\002\00.\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\004\00e\00-\003\000\008") - (data $432 (i32.const 24604) ",") - (data $432.1 (i32.const 24616) "\02\00\00\00\1a\00\00\004\00.\009\004\000\006\005\006\00e\00-\003\001\008") - (data $433 (i32.const 24652) "<") - (data $433.1 (i32.const 24664) "\02\00\00\00$\00\00\009\000\006\000\008\000\001\001\005\003\004\003\003\006\000\000\00.\000") - (data $434 (i32.const 24716) "<") - (data $434.1 (i32.const 24728) "\02\00\00\00*\00\00\004\007\000\008\003\005\006\000\002\004\007\001\001\005\001\002\000\000\000\00.\000") - (data $435 (i32.const 24780) "<") - (data $435.1 (i32.const 24792) "\02\00\00\00*\00\00\009\004\000\009\003\004\000\000\001\002\005\006\008\002\004\008\000\000\000\00.\000") - (data $436 (i32.const 24844) "\1c") - (data $436.1 (i32.const 24856) "\02\00\00\00\06\00\00\001\00.\000") - (data $437 (i32.const 24876) "\1c") - (data $437.1 (i32.const 24888) "\02\00\00\00\08\00\00\00-\001\00.\000") - (data $438 (i32.const 24908) "\1c") - (data $438.1 (i32.const 24920) "\02\00\00\00\08\00\00\00-\000\00.\001") - (data $439 (i32.const 24940) ",") - (data $439.1 (i32.const 24952) "\02\00\00\00\12\00\00\001\000\000\000\000\000\000\00.\000") - (data $440 (i32.const 24988) ",") - (data $440.1 (i32.const 25000) "\02\00\00\00\10\00\00\000\00.\000\000\000\000\000\001") - (data $441 (i32.const 25036) ",") - (data $441.1 (i32.const 25048) "\02\00\00\00\14\00\00\00-\001\000\000\000\000\000\000\00.\000") - (data $442 (i32.const 25084) ",") - (data $442.1 (i32.const 25096) "\02\00\00\00\12\00\00\00-\000\00.\000\000\000\000\000\001") + (data $430 (i32.const 24460) ",") + (data $430.1 (i32.const 24472) "\02\00\00\00\18\00\00\001\00.\001\009\002\000\009\002\009\00e\00-\007") + (data $431 (i32.const 24508) ",") + (data $431.1 (i32.const 24520) "\02\00\00\00\1a\00\00\00-\001\00.\001\009\002\000\009\002\009\00e\00-\007") + (data $432 (i32.const 24556) ",") + (data $432.1 (i32.const 24568) "\02\00\00\00\1a\00\00\003\00.\004\000\002\008\002\003\005\00e\00+\003\008") + (data $433 (i32.const 24604) ",") + (data $433.1 (i32.const 24616) "\02\00\00\00\1c\00\00\00-\003\00.\004\000\002\008\002\003\005\00e\00+\003\008") + (data $434 (i32.const 24652) "<") + (data $434.1 (i32.const 24664) "\02\00\00\00,\00\00\004\00.\001\008\005\005\008\000\004\009\006\008\002\001\003\005\007\00e\00+\002\009\008") + (data $435 (i32.const 24716) "L") + (data $435.1 (i32.const 24728) "\02\00\00\00.\00\00\002\00.\002\002\005\000\007\003\008\005\008\005\000\007\002\000\001\004\00e\00-\003\000\008") + (data $436 (i32.const 24796) ",") + (data $436.1 (i32.const 24808) "\02\00\00\00\1a\00\00\004\00.\009\004\000\006\005\006\00e\00-\003\001\008") + (data $437 (i32.const 24844) "<") + (data $437.1 (i32.const 24856) "\02\00\00\00$\00\00\009\000\006\000\008\000\001\001\005\003\004\003\003\006\000\000\00.\000") + (data $438 (i32.const 24908) "<") + (data $438.1 (i32.const 24920) "\02\00\00\00*\00\00\004\007\000\008\003\005\006\000\002\004\007\001\001\005\001\002\000\000\000\00.\000") + (data $439 (i32.const 24972) "<") + (data $439.1 (i32.const 24984) "\02\00\00\00*\00\00\009\004\000\009\003\004\000\000\001\002\005\006\008\002\004\008\000\000\000\00.\000") + (data $440 (i32.const 25036) "\1c") + (data $440.1 (i32.const 25048) "\02\00\00\00\06\00\00\001\00.\000") + (data $441 (i32.const 25068) "\1c") + (data $441.1 (i32.const 25080) "\02\00\00\00\08\00\00\00-\001\00.\000") + (data $442 (i32.const 25100) "\1c") + (data $442.1 (i32.const 25112) "\02\00\00\00\08\00\00\00-\000\00.\001") (data $443 (i32.const 25132) ",") - (data $443.1 (i32.const 25144) "\02\00\00\00\14\00\00\001\000\000\000\000\000\000\000\00.\000") - (data $444 (i32.const 25180) "\1c") - (data $444.1 (i32.const 25192) "\02\00\00\00\08\00\00\001\00e\00-\007") - (data $445 (i32.const 25212) ",") - (data $445.1 (i32.const 25224) "\02\00\00\00\0e\00\00\00-\001\00e\00+\003\000\008") - (data $446 (i32.const 25260) "\1c") - (data $446.1 (i32.const 25272) "\02\00\00\00\0c\00\00\001\00e\00-\003\000\008") - (data $447 (i32.const 25292) ",") - (data $447.1 (i32.const 25304) "\02\00\00\00\0e\00\00\00-\001\00e\00-\003\000\008") - (data $448 (i32.const 25340) "\1c") - (data $448.1 (i32.const 25352) "\02\00\00\00\0c\00\00\001\00e\00-\003\002\003") - (data $449 (i32.const 25372) ",") - (data $449.1 (i32.const 25384) "\02\00\00\00\0e\00\00\00-\001\00e\00-\003\002\003") - (data $450 (i32.const 25420) ",") - (data $450.1 (i32.const 25432) "\02\00\00\00\18\00\00\004\002\009\004\009\006\007\002\007\002\00.\000") - (data $451 (i32.const 25468) "<") - (data $451.1 (i32.const 25480) "\02\00\00\00*\00\00\001\00.\002\003\001\002\001\004\005\006\007\003\004\005\006\002\003\004\00e\00-\008") - (data $452 (i32.const 25532) "<") - (data $452.1 (i32.const 25544) "\02\00\00\00\"\00\00\005\005\005\005\005\005\005\005\005\00.\005\005\005\005\005\005\006") - (data $453 (i32.const 25596) "<") - (data $453.1 (i32.const 25608) "\02\00\00\00$\00\00\000\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009") - (data $454 (i32.const 25660) "\1c") - (data $454.1 (i32.const 25672) "\02\00\00\00\n\00\00\001\002\00.\003\004") - (data $455 (i32.const 25692) "<") - (data $455.1 (i32.const 25704) "\02\00\00\00$\00\00\000\00.\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003") - (data $456 (i32.const 25756) "L") - (data $456.1 (i32.const 25768) "\02\00\00\00.\00\00\001\002\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00.\000") - (data $457 (i32.const 25836) ",") - (data $457.1 (i32.const 25848) "\02\00\00\00\12\00\00\001\00.\002\003\004\00e\00+\002\001") - (data $458 (i32.const 25884) ",") - (data $458.1 (i32.const 25896) "\02\00\00\00\0e\00\00\002\00.\007\001\008\002\008") - (data $459 (i32.const 25932) ",") - (data $459.1 (i32.const 25944) "\02\00\00\00\12\00\00\000\00.\000\002\007\001\008\002\008") - (data $460 (i32.const 25980) ",") - (data $460.1 (i32.const 25992) "\02\00\00\00\0e\00\00\002\007\001\00.\008\002\008") + (data $443.1 (i32.const 25144) "\02\00\00\00\12\00\00\001\000\000\000\000\000\000\00.\000") + (data $444 (i32.const 25180) ",") + (data $444.1 (i32.const 25192) "\02\00\00\00\10\00\00\000\00.\000\000\000\000\000\001") + (data $445 (i32.const 25228) ",") + (data $445.1 (i32.const 25240) "\02\00\00\00\14\00\00\00-\001\000\000\000\000\000\000\00.\000") + (data $446 (i32.const 25276) ",") + (data $446.1 (i32.const 25288) "\02\00\00\00\12\00\00\00-\000\00.\000\000\000\000\000\001") + (data $447 (i32.const 25324) ",") + (data $447.1 (i32.const 25336) "\02\00\00\00\14\00\00\001\000\000\000\000\000\000\000\00.\000") + (data $448 (i32.const 25372) "\1c") + (data $448.1 (i32.const 25384) "\02\00\00\00\08\00\00\001\00e\00-\007") + (data $449 (i32.const 25404) ",") + (data $449.1 (i32.const 25416) "\02\00\00\00\0e\00\00\00-\001\00e\00+\003\000\008") + (data $450 (i32.const 25452) "\1c") + (data $450.1 (i32.const 25464) "\02\00\00\00\0c\00\00\001\00e\00-\003\000\008") + (data $451 (i32.const 25484) ",") + (data $451.1 (i32.const 25496) "\02\00\00\00\0e\00\00\00-\001\00e\00-\003\000\008") + (data $452 (i32.const 25532) "\1c") + (data $452.1 (i32.const 25544) "\02\00\00\00\0c\00\00\001\00e\00-\003\002\003") + (data $453 (i32.const 25564) ",") + (data $453.1 (i32.const 25576) "\02\00\00\00\0e\00\00\00-\001\00e\00-\003\002\003") + (data $454 (i32.const 25612) ",") + (data $454.1 (i32.const 25624) "\02\00\00\00\18\00\00\004\002\009\004\009\006\007\002\007\002\00.\000") + (data $455 (i32.const 25660) "<") + (data $455.1 (i32.const 25672) "\02\00\00\00*\00\00\001\00.\002\003\001\002\001\004\005\006\007\003\004\005\006\002\003\004\00e\00-\008") + (data $456 (i32.const 25724) "<") + (data $456.1 (i32.const 25736) "\02\00\00\00\"\00\00\005\005\005\005\005\005\005\005\005\00.\005\005\005\005\005\005\006") + (data $457 (i32.const 25788) "<") + (data $457.1 (i32.const 25800) "\02\00\00\00$\00\00\000\00.\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009\009") + (data $458 (i32.const 25852) "\1c") + (data $458.1 (i32.const 25864) "\02\00\00\00\n\00\00\001\002\00.\003\004") + (data $459 (i32.const 25884) "<") + (data $459.1 (i32.const 25896) "\02\00\00\00$\00\00\000\00.\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003\003") + (data $460 (i32.const 25948) "L") + (data $460.1 (i32.const 25960) "\02\00\00\00.\00\00\001\002\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\00.\000") (data $461 (i32.const 26028) ",") - (data $461.1 (i32.const 26040) "\02\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008") + (data $461.1 (i32.const 26040) "\02\00\00\00\12\00\00\001\00.\002\003\004\00e\00+\002\001") (data $462 (i32.const 26076) ",") - (data $462.1 (i32.const 26088) "\02\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004") + (data $462.1 (i32.const 26088) "\02\00\00\00\0e\00\00\002\00.\007\001\008\002\008") (data $463 (i32.const 26124) ",") - (data $463.1 (i32.const 26136) "\02\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009") - (data $464 (i32.const 26172) "\1c") - (data $464.1 (i32.const 26184) "\02\00\00\00\0c\00\00\00H\00e\00l\00l\00o\00 ") - (data $465 (i32.const 26204) "\1c") - (data $465.1 (i32.const 26216) "\02\00\00\00\n\00\00\00W\00o\00r\00l\00d") - (data $466 (i32.const 26236) ",") - (data $466.1 (i32.const 26248) "\02\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d") - (data $467 (i32.const 26284) "\1c") - (data $467.1 (i32.const 26296) "\02\00\00\00\06\00\00\00b\00a\00r") - (data $468 (i32.const 26316) "\1c") - (data $468.1 (i32.const 26328) "\02\00\00\00\04\00\00\00\c0\00\c8") - (data $469 (i32.const 26348) "\1c") - (data $469.1 (i32.const 26360) "\02\00\00\00\04\00\00\00\d8S\cf\91") - (data $470 (i32.const 26380) "\1c") - (data $470.1 (i32.const 26392) "\02\00\00\00\08\00\00\00A\d8\0e\dfA\d81\df") - (data $471 (i32.const 26416) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A") + (data $463.1 (i32.const 26136) "\02\00\00\00\12\00\00\000\00.\000\002\007\001\008\002\008") + (data $464 (i32.const 26172) ",") + (data $464.1 (i32.const 26184) "\02\00\00\00\0e\00\00\002\007\001\00.\008\002\008") + (data $465 (i32.const 26220) ",") + (data $465.1 (i32.const 26232) "\02\00\00\00\10\00\00\001\00.\001\00e\00+\001\002\008") + (data $466 (i32.const 26268) ",") + (data $466.1 (i32.const 26280) "\02\00\00\00\0e\00\00\001\00.\001\00e\00-\006\004") + (data $467 (i32.const 26316) ",") + (data $467.1 (i32.const 26328) "\02\00\00\00\16\00\00\000\00.\000\000\000\000\003\005\006\008\009") + (data $468 (i32.const 26364) "\1c") + (data $468.1 (i32.const 26376) "\02\00\00\00\0c\00\00\00H\00e\00l\00l\00o\00 ") + (data $469 (i32.const 26396) "\1c") + (data $469.1 (i32.const 26408) "\02\00\00\00\n\00\00\00W\00o\00r\00l\00d") + (data $470 (i32.const 26428) ",") + (data $470.1 (i32.const 26440) "\02\00\00\00\16\00\00\00H\00e\00l\00l\00o\00 \00W\00o\00r\00l\00d") + (data $471 (i32.const 26476) "\1c") + (data $471.1 (i32.const 26488) "\02\00\00\00\06\00\00\00b\00a\00r") + (data $472 (i32.const 26508) "\1c") + (data $472.1 (i32.const 26520) "\02\00\00\00\04\00\00\00\c0\00\c8") + (data $473 (i32.const 26540) "\1c") + (data $473.1 (i32.const 26552) "\02\00\00\00\04\00\00\00\d8S\cf\91") + (data $474 (i32.const 26572) "\1c") + (data $474.1 (i32.const 26584) "\02\00\00\00\08\00\00\00A\d8\0e\dfA\d81\df") + (data $475 (i32.const 26608) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02A") (export "getString" (func $std/string/getString)) (export "memory" (memory $0)) (start $~start) @@ -1139,7 +1149,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$284 + block $__inlined_func$~lib/rt/itcms/Object#unlink$287 local.get $0 i32.load offset=4 i32.const -4 @@ -1151,7 +1161,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 59212 + i32.const 59404 i32.lt_u i32.and i32.eqz @@ -1163,7 +1173,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$284 + br $__inlined_func$~lib/rt/itcms/Object#unlink$287 end local.get $0 i32.load offset=8 @@ -1200,7 +1210,7 @@ i32.const 1 else local.get $1 - i32.const 26416 + i32.const 26608 i32.load i32.gt_u if @@ -1214,7 +1224,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 26420 + i32.const 26612 i32.add i32.load i32.const 32 @@ -1798,10 +1808,10 @@ if unreachable end - i32.const 59216 + i32.const 59408 i32.const 0 i32.store - i32.const 60784 + i32.const 60976 i32.const 0 i32.store loop $for-loop|0 @@ -1812,7 +1822,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 59216 + i32.const 59408 i32.add i32.const 0 i32.store offset=4 @@ -1830,7 +1840,7 @@ i32.add i32.const 2 i32.shl - i32.const 59216 + i32.const 59408 i32.add i32.const 0 i32.store offset=96 @@ -1848,14 +1858,14 @@ br $for-loop|0 end end - i32.const 59216 - i32.const 60788 + i32.const 59408 + i32.const 60980 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 59216 + i32.const 59408 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1940,7 +1950,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 59212 + i32.const 59404 i32.lt_u if local.get $0 @@ -2036,7 +2046,7 @@ unreachable end local.get $0 - i32.const 59212 + i32.const 59404 i32.lt_u if local.get $0 @@ -2059,7 +2069,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 59212 + i32.const 59404 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -3937,96 +3947,132 @@ end end ) - (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i64) + (func $~lib/util/number/dtoa_core (param $0 f64) (param $1 i32) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i64) + (local $5 i32) (local $6 i64) (local $7 i64) - (local $8 i32) + (local $8 i64) (local $9 i32) - (local $10 i64) + (local $10 i32) (local $11 i64) (local $12 i64) (local $13 i64) (local $14 i64) + (local $15 i64) local.get $0 f64.const 0 f64.lt - local.tee $2 - if (result f64) + local.tee $3 + if i32.const 23344 i32.const 45 i32.store16 local.get $0 f64.neg + local.set $0 + end + local.get $1 + if (result i32) + local.get $0 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $5 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $9 + local.get $5 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $9 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add + local.set $2 + local.get $9 + i32.const 1 + local.get $9 + select + i32.const 150 + i32.sub else local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $5 + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $5 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.set $2 + local.get $5 + i32.const 1 + local.get $5 + select + i32.const 1075 + i32.sub end - i64.reinterpret_f64 - local.tee $1 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $8 + local.tee $9 i32.const 1 i32.sub - local.get $1 - i64.const 4503599627370495 - i64.and - local.get $4 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add - local.tee $1 + local.get $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $3 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $9 + local.tee $10 i32.sub - local.set $4 - local.get $3 - local.get $9 + local.set $5 + local.get $4 + local.get $10 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $1 - local.get $1 + local.get $2 + local.get $2 + i64.const 8388608 i64.const 4503599627370496 + local.get $1 + select i64.eq i32.const 1 i32.add - local.tee $9 + local.tee $1 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $8 local.get $9 + local.get $1 i32.sub - local.get $4 + local.get $5 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $5 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 @@ -4039,8 +4085,8 @@ f64.add local.tee $0 i32.trunc_sat_f64_s - local.tee $4 - local.get $4 + local.tee $1 + local.get $1 f64.convert_i32_s local.get $0 f64.ne @@ -4049,104 +4095,104 @@ i32.shr_s i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 3 i32.shl - local.tee $8 + local.tee $5 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $5 i32.const 23400 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $4 + local.get $1 i32.const 1 i32.shl i32.const 24096 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $1 - local.get $1 + local.get $2 + local.get $2 i64.clz i64.shl - local.tee $1 + local.tee $2 i64.const 4294967295 i64.and - local.set $5 + local.set $6 global.get $~lib/util/number/_frc_pow - local.tee $10 + local.tee $11 i64.const 4294967295 i64.and - local.tee $11 - local.get $1 + local.tee $12 + local.get $2 i64.const 32 i64.shr_u - local.tee $1 + local.tee $2 i64.mul - local.get $5 - local.get $11 + local.get $6 + local.get $12 i64.mul i64.const 32 i64.shr_u i64.add - local.set $6 + local.set $7 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $12 - local.get $3 + local.set $13 + local.get $4 i64.const 32 i64.shr_u - local.tee $3 - local.get $11 + local.tee $4 + local.get $12 i64.mul - local.get $11 local.get $12 + local.get $13 i64.mul i64.const 32 i64.shr_u i64.add - local.set $7 + local.set $8 global.get $~lib/util/number/_frc_minus - local.tee $13 + local.tee $14 i64.const 4294967295 i64.and - local.set $14 - local.get $13 + local.set $15 + local.get $14 i64.const 32 i64.shr_u - local.tee $13 - local.get $11 + local.tee $14 + local.get $12 i64.mul - local.get $11 - local.get $14 + local.get $12 + local.get $15 i64.mul i64.const 32 i64.shr_u i64.add - local.set $11 - local.get $2 + local.set $12 + local.get $3 i32.const 1 i32.shl i32.const 23344 i32.add - local.get $1 - local.get $10 + local.get $2 + local.get $11 i64.const 32 i64.shr_u - local.tee $1 + local.tee $2 i64.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $5 - i64.mul + local.get $2 local.get $6 + i64.mul + local.get $7 i64.const 4294967295 i64.and i64.add @@ -4155,17 +4201,17 @@ i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $3 + local.get $2 + local.get $4 i64.mul - local.get $7 + local.get $8 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $12 + local.get $2 + local.get $13 i64.mul - local.get $7 + local.get $8 i64.const 4294967295 i64.and i64.add @@ -4176,24 +4222,24 @@ i64.add i64.const 1 i64.sub - local.tee $3 + local.tee $4 global.get $~lib/util/number/_exp_pow global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub - local.get $3 - local.get $1 - local.get $13 + local.get $4 + local.get $2 + local.get $14 i64.mul - local.get $11 + local.get $12 i64.const 32 i64.shr_u i64.add - local.get $1 - local.get $14 + local.get $2 + local.get $15 i64.mul - local.get $11 + local.get $12 i64.const 4294967295 i64.and i64.add @@ -4205,13 +4251,13 @@ i64.const 1 i64.add i64.sub - local.get $2 + local.get $3 call $~lib/util/number/genDigits - local.get $2 + local.get $3 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $2 + local.get $3 i32.add ) (func $std/string/getString (result i32) @@ -4256,7 +4302,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4269,7 +4315,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4314,8 +4360,8 @@ end unreachable end - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4342,11 +4388,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4428,11 +4474,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4493,11 +4539,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4551,11 +4597,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4592,11 +4638,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4626,11 +4672,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4699,11 +4745,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4817,11 +4863,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4943,11 +4989,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5074,11 +5120,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5196,11 +5242,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5247,11 +5293,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5335,11 +5381,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5491,11 +5537,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5645,11 +5691,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5894,11 +5940,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6134,11 +6180,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6476,11 +6522,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -6522,11 +6568,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7346,11 +7392,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7387,11 +7433,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7690,11 +7736,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -7988,11 +8034,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8061,11 +8107,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8096,11 +8142,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8134,11 +8180,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8228,11 +8274,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8319,11 +8365,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8355,11 +8401,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8394,11 +8440,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8515,11 +8561,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -8682,11 +8728,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9046,11 +9092,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9155,11 +9201,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9202,11 +9248,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9294,11 +9340,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9342,11 +9388,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9459,11 +9505,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9507,11 +9553,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9605,11 +9651,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9673,7 +9719,7 @@ block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9702,7 +9748,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9998,8 +10044,8 @@ local.get $9 return end - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10031,11 +10077,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10082,11 +10128,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10153,7 +10199,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10254,7 +10300,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10263,7 +10309,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/string/String#charCodeAt$291 + block $__inlined_func$~lib/string/String#charCodeAt$294 local.get $0 i32.const 20 i32.sub @@ -10278,7 +10324,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/string/String#charCodeAt$291 + br $__inlined_func$~lib/string/String#charCodeAt$294 end local.get $0 i32.load16_u @@ -10308,7 +10354,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10317,7 +10363,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - block $__inlined_func$~lib/string/String#codePointAt$292 + block $__inlined_func$~lib/string/String#codePointAt$295 local.get $4 i32.const 20 i32.sub @@ -10334,7 +10380,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/string/String#codePointAt$292 + br $__inlined_func$~lib/string/String#codePointAt$295 end local.get $0 i32.const 2 @@ -10352,7 +10398,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#codePointAt$292 + br $__inlined_func$~lib/string/String#codePointAt$295 end local.get $4 i32.load16_u offset=4 @@ -10366,7 +10412,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#codePointAt$292 + br $__inlined_func$~lib/string/String#codePointAt$295 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10395,7 +10441,7 @@ memory.size i32.const 16 i32.shl - i32.const 59212 + i32.const 59404 i32.sub i32.const 1 i32.shr_u @@ -10856,7 +10902,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10875,7 +10921,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2176 i32.store - block $__inlined_func$~lib/string/String#startsWith$293 + block $__inlined_func$~lib/string/String#startsWith$296 local.get $4 i32.const 2172 i32.load @@ -10890,7 +10936,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - br $__inlined_func$~lib/string/String#startsWith$293 + br $__inlined_func$~lib/string/String#startsWith$296 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -10934,7 +10980,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10951,7 +10997,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -10970,7 +11016,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2208 i32.store - block $__inlined_func$~lib/string/String#endsWith$294 + block $__inlined_func$~lib/string/String#endsWith$297 i32.const 536870910 local.get $4 local.get $4 @@ -10993,7 +11039,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - br $__inlined_func$~lib/string/String#endsWith$294 + br $__inlined_func$~lib/string/String#endsWith$297 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -11039,7 +11085,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -13209,7 +13255,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -13300,7 +13346,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -13351,7 +13397,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -23135,7 +23181,7 @@ unreachable end f64.const 0 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23156,7 +23202,7 @@ unreachable end f64.const -0 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23177,7 +23223,7 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23198,7 +23244,7 @@ unreachable end f64.const inf - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23219,7 +23265,7 @@ unreachable end f64.const -inf - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23240,7 +23286,7 @@ unreachable end f64.const 2.220446049250313e-16 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23261,7 +23307,7 @@ unreachable end f64.const -2.220446049250313e-16 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23282,7 +23328,7 @@ unreachable end f64.const 1797693134862315708145274e284 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23303,7 +23349,7 @@ unreachable end f64.const -1797693134862315708145274e284 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23323,8 +23369,8 @@ call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 - call $~lib/util/number/dtoa + f32.const 1.1920928955078125e-07 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23344,17 +23390,17 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - call $~lib/util/number/dtoa + f32.const -1.1920928955078125e-07 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24544 + i32.const 24528 i32.store offset=4 local.get $0 - i32.const 24544 + i32.const 24528 call $~lib/string/String.__eq i32.eqz if @@ -23365,113 +23411,113 @@ call $~lib/builtins/abort unreachable end - f64.const 4.940656e-318 - call $~lib/util/number/dtoa + f32.const 3402823466385288598117041e14 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24624 + i32.const 24576 i32.store offset=4 local.get $0 - i32.const 24624 + i32.const 24576 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 749 + i32.const 747 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9060801153433600 - call $~lib/util/number/dtoa + f32.const -3402823466385288598117041e14 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24672 + i32.const 24624 i32.store offset=4 local.get $0 - i32.const 24672 + i32.const 24624 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 750 + i32.const 748 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4708356024711512064 - call $~lib/util/number/dtoa + f64.const 4185580496821356722454785e274 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24736 + i32.const 24672 i32.store offset=4 local.get $0 - i32.const 24736 + i32.const 24672 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 751 + i32.const 749 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9409340012568248320 - call $~lib/util/number/dtoa + f64.const 2.2250738585072014e-308 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24800 + i32.const 24736 i32.store offset=4 local.get $0 - i32.const 24800 + i32.const 24736 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 752 + i32.const 750 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 5e-324 - call $~lib/util/number/dtoa + f64.const 4.940656e-318 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8320 + i32.const 24816 i32.store offset=4 local.get $0 - i32.const 8320 + i32.const 24816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 753 + i32.const 751 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1 - call $~lib/util/number/dtoa + f64.const 9060801153433600 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23486,202 +23532,286 @@ if i32.const 0 i32.const 1120 - i32.const 759 + i32.const 752 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.1 - call $~lib/util/number/dtoa + f64.const 4708356024711512064 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 24928 i32.store offset=4 local.get $0 - i32.const 5280 + i32.const 24928 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 760 + i32.const 753 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1 - call $~lib/util/number/dtoa + f64.const 9409340012568248320 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24896 + i32.const 24992 i32.store offset=4 local.get $0 - i32.const 24896 + i32.const 24992 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 761 + i32.const 754 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 5e-324 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8320 + i32.store offset=4 + local.get $0 + i32.const 8320 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 755 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 25056 + i32.store offset=4 + local.get $0 + i32.const 25056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 757 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 5280 + i32.store offset=4 + local.get $0 + i32.const 5280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 758 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 25088 + i32.store offset=4 + local.get $0 + i32.const 25088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 759 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -0.1 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24928 + i32.const 25120 i32.store offset=4 local.get $0 - i32.const 24928 + i32.const 25120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 762 + i32.const 760 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e6 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24960 + i32.const 25152 i32.store offset=4 local.get $0 - i32.const 24960 + i32.const 25152 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 764 + i32.const 762 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-06 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25008 + i32.const 25200 i32.store offset=4 local.get $0 - i32.const 25008 + i32.const 25200 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 765 + i32.const 763 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e6 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25056 + i32.const 25248 i32.store offset=4 local.get $0 - i32.const 25056 + i32.const 25248 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 766 + i32.const 764 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-06 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25104 + i32.const 25296 i32.store offset=4 local.get $0 - i32.const 25104 + i32.const 25296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 767 + i32.const 765 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e7 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25152 + i32.const 25344 i32.store offset=4 local.get $0 - i32.const 25152 + i32.const 25344 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 768 + i32.const 766 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-07 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25200 + i32.const 25392 i32.store offset=4 local.get $0 - i32.const 25200 + i32.const 25392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 769 + i32.const 767 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.e+308 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23696,34 +23826,34 @@ if i32.const 0 i32.const 1120 - i32.const 771 + i32.const 769 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1.e+308 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25232 + i32.const 25424 i32.store offset=4 local.get $0 - i32.const 25232 + i32.const 25424 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 772 + i32.const 770 i32.const 1 call $~lib/builtins/abort unreachable end f64.const inf - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23738,13 +23868,13 @@ if i32.const 0 i32.const 1120 - i32.const 773 + i32.const 771 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -inf - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23759,97 +23889,97 @@ if i32.const 0 i32.const 1120 - i32.const 774 + i32.const 772 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-308 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25280 + i32.const 25472 i32.store offset=4 local.get $0 - i32.const 25280 + i32.const 25472 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 775 + i32.const 773 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-308 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25312 + i32.const 25504 i32.store offset=4 local.get $0 - i32.const 25312 + i32.const 25504 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 776 + i32.const 774 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1e-323 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25360 + i32.const 25552 i32.store offset=4 local.get $0 - i32.const 25360 + i32.const 25552 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 777 + i32.const 775 i32.const 1 call $~lib/builtins/abort unreachable end f64.const -1e-323 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25392 + i32.const 25584 i32.store offset=4 local.get $0 - i32.const 25392 + i32.const 25584 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 778 + i32.const 776 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -23864,350 +23994,378 @@ if i32.const 0 i32.const 1120 - i32.const 779 + i32.const 777 i32.const 1 call $~lib/builtins/abort unreachable end + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store f64.const 4294967272 - call $~lib/util/number/dtoa + i32.const 0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + i32.const 23344 + local.get $0 + memory.copy + 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 $4 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25440 + i32.const 25632 i32.store offset=4 - local.get $0 - i32.const 25440 + local.get $4 + i32.const 25632 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 781 + i32.const 779 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.2312145673456234e-08 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25488 + i32.const 25680 i32.store offset=4 local.get $0 - i32.const 25488 + i32.const 25680 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 782 + i32.const 780 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 555555555.5555556 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25552 + i32.const 25744 i32.store offset=4 local.get $0 - i32.const 25552 + i32.const 25744 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 784 + i32.const 781 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.9999999999999999 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25616 + i32.const 25808 i32.store offset=4 local.get $0 - i32.const 25616 + i32.const 25808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 785 + i32.const 782 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 24864 + i32.const 25056 i32.store offset=4 local.get $0 - i32.const 24864 + i32.const 25056 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 786 + i32.const 783 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 12.34 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25680 + i32.const 25872 i32.store offset=4 local.get $0 - i32.const 25680 + i32.const 25872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 787 + i32.const 784 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.3333333333333333 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25712 + i32.const 25904 i32.store offset=4 local.get $0 - i32.const 25712 + i32.const 25904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 789 + i32.const 785 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1234e17 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25776 + i32.const 25968 i32.store offset=4 local.get $0 - i32.const 25776 + i32.const 25968 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 790 + i32.const 786 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1234e18 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25856 + i32.const 26048 i32.store offset=4 local.get $0 - i32.const 25856 + i32.const 26048 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 791 + i32.const 787 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 2.71828 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25904 + i32.const 26096 i32.store offset=4 local.get $0 - i32.const 25904 + i32.const 26096 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 792 + i32.const 788 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.0271828 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 25952 + i32.const 26144 i32.store offset=4 local.get $0 - i32.const 25952 + i32.const 26144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 793 + i32.const 789 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 271.828 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26000 + i32.const 26192 i32.store offset=4 local.get $0 - i32.const 26000 + i32.const 26192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 794 + i32.const 790 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.1e+128 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26048 + i32.const 26240 i32.store offset=4 local.get $0 - i32.const 26048 + i32.const 26240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 795 + i32.const 791 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 1.1e-64 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26096 + i32.const 26288 i32.store offset=4 local.get $0 - i32.const 26096 + i32.const 26288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 796 + i32.const 792 i32.const 1 call $~lib/builtins/abort unreachable end f64.const 0.000035689 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26144 + i32.const 26336 i32.store offset=4 local.get $0 - i32.const 26144 + i32.const 26336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 797 + i32.const 793 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 26192 + i32.const 26384 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 26224 + i32.const 26416 i32.store offset=12 - i32.const 26192 - i32.const 26224 + i32.const 26384 + i32.const 26416 call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26256 + i32.const 26448 i32.store offset=4 local.get $0 - i32.const 26256 + i32.const 26448 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 802 + i32.const 820 i32.const 1 call $~lib/builtins/abort unreachable @@ -24216,37 +24374,37 @@ i32.const 1712 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 26304 + i32.const 26496 i32.store offset=12 i32.const 1712 - i32.const 26304 + i32.const 26496 call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26304 + i32.const 26496 i32.store offset=4 local.get $0 - i32.const 26304 + i32.const 26496 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 803 + i32.const 821 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 26304 + i32.const 26496 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=12 - i32.const 26304 + i32.const 26496 i32.const 1712 call $~lib/string/String#concat local.set $0 @@ -24254,16 +24412,16 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26304 + i32.const 26496 i32.store offset=4 local.get $0 - i32.const 26304 + i32.const 26496 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 804 + i32.const 822 i32.const 1 call $~lib/builtins/abort unreachable @@ -24291,86 +24449,86 @@ if i32.const 0 i32.const 1120 - i32.const 805 + i32.const 823 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 26336 + i32.const 26528 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26336 + i32.const 26528 i32.store offset=4 - i32.const 26336 - i32.const 26336 + i32.const 26528 + i32.const 26528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 816 + i32.const 831 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 26336 + i32.const 26528 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26336 + i32.const 26528 i32.store offset=4 - i32.const 26336 - i32.const 26336 + i32.const 26528 + i32.const 26528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 817 + i32.const 832 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 26368 + i32.const 26560 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26368 + i32.const 26560 i32.store offset=4 - i32.const 26368 - i32.const 26368 + i32.const 26560 + i32.const 26560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 818 + i32.const 833 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 26400 + i32.const 26592 i32.store global.get $~lib/memory/__stack_pointer - i32.const 26400 + i32.const 26592 i32.store offset=4 - i32.const 26400 - i32.const 26400 + i32.const 26592 + i32.const 26592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 819 + i32.const 834 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 global.set $std/string/str - i32.const 59212 + i32.const 59404 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 @@ -24411,8 +24569,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24426,11 +24584,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24474,11 +24632,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24539,11 +24697,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24617,11 +24775,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24809,7 +24967,7 @@ end else global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$170 (result i32) + block $__inlined_func$~lib/util/number/ulog_base$171 (result i32) local.get $2 i64.extend_i32_u local.set $5 @@ -24830,7 +24988,7 @@ i32.div_u i32.const 1 i32.add - br $__inlined_func$~lib/util/number/ulog_base$170 + br $__inlined_func$~lib/util/number/ulog_base$171 end local.get $1 i64.extend_i32_s @@ -24920,11 +25078,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25090,7 +25248,7 @@ end else global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$174 (result i32) + block $__inlined_func$~lib/util/number/ulog_base$175 (result i32) local.get $0 i64.extend_i32_u local.set $4 @@ -25111,7 +25269,7 @@ i32.div_u i32.const 1 i32.add - br $__inlined_func$~lib/util/number/ulog_base$174 + br $__inlined_func$~lib/util/number/ulog_base$175 end local.get $1 i64.extend_i32_s @@ -25191,11 +25349,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25429,7 +25587,7 @@ end else global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$179 (result i32) + block $__inlined_func$~lib/util/number/ulog_base$180 (result i32) local.get $0 local.set $2 local.get $1 @@ -25449,7 +25607,7 @@ i32.div_u i32.const 1 i32.add - br $__inlined_func$~lib/util/number/ulog_base$179 + br $__inlined_func$~lib/util/number/ulog_base$180 end local.get $1 i64.extend_i32_s @@ -25529,11 +25687,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25794,7 +25952,7 @@ end else global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$184 (result i32) + block $__inlined_func$~lib/util/number/ulog_base$185 (result i32) local.get $0 local.set $2 local.get $1 @@ -25814,7 +25972,7 @@ i32.div_u i32.const 1 i32.add - br $__inlined_func$~lib/util/number/ulog_base$184 + br $__inlined_func$~lib/util/number/ulog_base$185 end local.get $1 i64.extend_i32_s @@ -25892,7 +26050,7 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $~lib/util/number/dtoa (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -25900,11 +26058,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 26444 + i32.const 26636 i32.lt_s if - i32.const 59232 - i32.const 59280 + i32.const 59424 + i32.const 59472 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25913,61 +26071,126 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - f64.const 0 - f64.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 23280 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne - if + i32.const 23280 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 local.get $0 local.get $0 + f64.sub + f64.const 0 f64.ne if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 7696 - return + local.set $1 + local.get $0 + local.get $0 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 8960 + i32.const 23312 + local.get $0 + f64.const 0 + f64.lt + select + local.set $1 + br $~lib/util/number/dtoa_impl|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8960 - i32.const 23312 local.get $0 - f64.const 0 - f64.lt - select - return + i32.const 0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 23344 + local.get $2 + memory.copy end - local.get $0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 + ) + (func $~lib/util/number/dtoa (param $0 f32) (result i32) + (local $1 f64) + (local $2 i32) + (local $3 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $2 - i32.const 23344 - local.get $1 - memory.copy + i32.const 23280 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + i32.const 7696 + local.set $2 + local.get $1 + local.get $1 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.1 + i32.const 8960 + i32.const 23312 + local.get $1 + f64.const 0 + f64.lt + select + local.set $2 + br $~lib/util/number/dtoa_impl|inlined.1 + end + local.get $1 + i32.const 1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 23344 + local.get $3 + memory.copy + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/std/string.ts b/tests/compiler/std/string.ts index 7b9281c8e4..df5b2d5443 100644 --- a/tests/compiler/std/string.ts +++ b/tests/compiler/std/string.ts @@ -742,19 +742,17 @@ assert(dtoa(+f64.EPSILON) == "2.220446049250313e-16"); assert(dtoa(-f64.EPSILON) == "-2.220446049250313e-16"); assert(dtoa(+f64.MAX_VALUE) == "1.7976931348623157e+308"); assert(dtoa(-f64.MAX_VALUE) == "-1.7976931348623157e+308"); +assert(dtoa(+f32.EPSILON) == "1.1920929e-7"); +assert(dtoa(-f32.EPSILON) == "-1.1920929e-7"); +assert(dtoa(+f32.MAX_VALUE) == "3.4028235e+38"); +assert(dtoa(-f32.MAX_VALUE) == "-3.4028235e+38"); assert(dtoa(4.185580496821357e+298) == "4.185580496821357e+298"); assert(dtoa(2.2250738585072014e-308) == "2.2250738585072014e-308"); -// assert(dtoa(2.98023223876953125e-8) == "2.9802322387695312e-8"); // FIXME -// assert(dtoa(-2.109808898695963e+16) == "-21098088986959630.0"); // FIXME assert(dtoa(4.940656E-318) == "4.940656e-318"); assert(dtoa(9.0608011534336e+15) == "9060801153433600.0"); assert(dtoa(4.708356024711512e+18) == "4708356024711512000.0"); assert(dtoa(9.409340012568248e+18) == "9409340012568248000.0"); assert(dtoa(5e-324) == "5e-324"); -// Known imprecise issue for Grisu alghoritm. Need workaround -// Expeced: 1.2345e+21 -// Actual: 1.2344999999999999e+21 -// assert(dtoa(1.2345e+21) == "1.2345e+21"); assert(dtoa(1.0) == "1.0"); assert(dtoa(0.1) == "0.1"); @@ -780,12 +778,10 @@ assert(dtoa(1e-324) == "0.0"); assert(dtoa(4294967272) == "4294967272.0"); assert(dtoa(1.23121456734562345678e-8) == "1.2312145673456234e-8"); -// assert(dtoa(-0.0000010471975511965976) == "-0.0000010471975511965976"); // FIXME assert(dtoa(555555555.55555555) == "555555555.5555556"); assert(dtoa(0.9999999999999999) == "0.9999999999999999"); assert(dtoa(0.99999999999999995) == "1.0"); assert(dtoa(1234e-2) == "12.34"); -// assert(dtoa(0.1 + 0.2) == "0.30000000000000004"); // FIXME assert(dtoa(1.0 / 3.0) == "0.3333333333333333"); assert(dtoa(1.234e+20) == "123400000000000000000.0"); assert(dtoa(1.234e+21) == "1.234e+21"); @@ -796,6 +792,28 @@ assert(dtoa(1.1e+128) == "1.1e+128"); assert(dtoa(1.1e-64) == "1.1e-64"); assert(dtoa(0.000035689) == "0.000035689"); +// FIXME: The following are imprecise rounding issues for Grisu algorithm. Need workaround. + +// Expected: 1.2345e+21 +// Actual: 1.2344999999999999e+21 +// assert(dtoa(1.2345e+21) == "1.2345e+21"); + +// Expected: 2.98023223876953125e-8 +// Actual: 2.9802322387695315e-8 +// assert(dtoa(2.98023223876953125e-8) == "2.9802322387695312e-8"); + +// Expected: -2.109808898695963e+16 +// Actual: -21098088986959633.0 +// assert(dtoa(-2.109808898695963e+16) == "-21098088986959630.0"); + +// Expected: -0.0000010471975511965976 +// Actual: -0.0000010471975511965977 +// assert(dtoa(-0.0000010471975511965976) == "-0.0000010471975511965976"); + +// Expected: 0.30000000000000004 +// Actual: 0.30000000000000007 +// assert(dtoa(0.1 + 0.2) == "0.30000000000000004"); + // concat @@ -804,9 +822,6 @@ assert("".concat("bar") == "bar"); assert("bar".concat("") == "bar"); assert("".concat("") == ""); -// assert(dtoa(f32.MAX_VALUE) == "3.4028234663852886e+38"); // FIXME -// assert(dtoa(f32.EPSILON) == "1.1920928955078125e-7"); // FIXME - export function getString(): string { return str; } diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 15de61b0fb..371919deb9 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -18,40 +18,42 @@ (type $16 (func (param i64 i64 i32 i32) (result i64))) (type $17 (func (param i32 i32) (result i64))) (type $18 (func (param i32 i64 i32) (result i32))) - (type $19 (func (param f32 f32 i32 i32) (result f32))) - (type $20 (func (param f64 f64 i32 i32) (result f64))) - (type $21 (func (param i64 i32 i32) (result i64))) - (type $22 (func (param i32 i32) (result f64))) - (type $23 (func (param i32 i32 i64) (result i64))) - (type $24 (func (param i32 i32) (result f32))) - (type $25 (func (param i64 i32 i32))) - (type $26 (func (param i32 f32 i32) (result i32))) - (type $27 (func (param i32 f64 i32) (result i32))) + (type $19 (func (param i32 f64 i32) (result i32))) + (type $20 (func (param f32 f32 i32 i32) (result f32))) + (type $21 (func (param f64 f64 i32 i32) (result f64))) + (type $22 (func (param i64 i32 i32) (result i64))) + (type $23 (func (param i32 i32) (result f64))) + (type $24 (func (param i32 i32 i64) (result i64))) + (type $25 (func (param i32 i32) (result f32))) + (type $26 (func (param i64 i32 i32))) + (type $27 (func (param i32 f32 i32) (result i32))) (type $28 (func (param i64 i32) (result i32))) (type $29 (func (param i32 i32 i32 i32 i32) (result i32))) (type $30 (func (param f32 i32 i32) (result f32))) (type $31 (func (param f64 i32 i32) (result f64))) (type $32 (func (param i32 i64 i32))) (type $33 (func (param i32 i64) (result i32))) - (type $34 (func (param i32 f64) (result i32))) - (type $35 (func (param i32 i32 i64))) - (type $36 (func (param i32 i32 f32) (result f32))) - (type $37 (func (param i32 i32 f64) (result f64))) - (type $38 (func (param f32 i32 i32))) - (type $39 (func (param f64 i32 i32))) - (type $40 (func (param i32 i32 i32 i32))) - (type $41 (func (param i32 i32 i64) (result i32))) - (type $42 (func (result i32))) - (type $43 (func (param f32 f32) (result f32))) - (type $44 (func (param f64 f64) (result f64))) - (type $45 (func (param i64) (result i64))) - (type $46 (func (param i32 i64 i32 i32))) - (type $47 (func (param i64) (result i32))) - (type $48 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $49 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $50 (func (param i32 i32 f64))) - (type $51 (func (param i32 i32 f32))) - (type $52 (func (param f64) (result i32))) + (type $34 (func (param i32 i32 i64))) + (type $35 (func (param i32 i32 f32) (result f32))) + (type $36 (func (param i32 i32 f64) (result f64))) + (type $37 (func (param f32 i32 i32))) + (type $38 (func (param f64 i32 i32))) + (type $39 (func (param i32 i32 i32 i32))) + (type $40 (func (param i32 i32 i64) (result i32))) + (type $41 (func (result i32))) + (type $42 (func (param f32 f32) (result f32))) + (type $43 (func (param f64 f64) (result f64))) + (type $44 (func (param i64) (result i64))) + (type $45 (func (param i32 i64 i32 i32))) + (type $46 (func (param i64) (result i32))) + (type $47 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $48 (func (param i32 f32) (result i32))) + (type $49 (func (param i32 f64) (result i32))) + (type $50 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $51 (func (param i32 i32 f64))) + (type $52 (func (param i32 i32 f32))) + (type $53 (func (param f32) (result i32))) + (type $54 (func (param f64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) @@ -7730,26 +7732,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -7765,28 +7771,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -7805,77 +7811,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -7886,12 +7942,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -7943,14 +7999,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -8035,63 +8091,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -8100,11 +8156,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -8113,63 +8169,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -8180,13 +8236,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -8207,77 +8263,177 @@ i32.add return ) - (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f32) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) (local $sign i32) - local.get $value - f64.const 0 - f64.eq - if - local.get $buffer - i32.const 48 - i32.store16 - local.get $buffer - i32.const 46 - i32.store16 offset=2 + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) local.get $buffer - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + local.set $buffer|2 local.get $value + f64.promote_f32 + local.set $value|3 + i32.const 1 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq + if + local.get $buffer|2 + i32.const 48 + i32.store16 + local.get $buffer|2 + i32.const 46 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne + if + local.get $buffer|2 + i32.const 78 + i32.store16 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + unreachable + end + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + return + ) + (func $~lib/util/number/dtoa_buffered (param $buffer i32) (param $value f64) (result i32) + (local $buffer|2 i32) + (local $value|3 f64) + (local $isSingle i32) + (local $sign i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) + local.get $buffer + local.set $buffer|2 local.get $value - f64.ne + local.set $value|3 + i32.const 0 + local.set $isSingle + local.get $value|3 + f64.const 0 + f64.eq if - local.get $buffer - i32.const 78 + local.get $buffer|2 + i32.const 48 i32.store16 - local.get $buffer - i32.const 97 + local.get $buffer|2 + i32.const 46 i32.store16 offset=2 - local.get $buffer - i32.const 78 + local.get $buffer|2 + i32.const 48 i32.store16 offset=4 i32.const 3 - return - else - local.get $value - f64.const 0 - f64.lt - local.set $sign - local.get $sign + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $value|3 + local.get $value|3 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|3 + local.get $value|3 + f64.ne if - local.get $buffer - i32.const 45 + local.get $buffer|2 + i32.const 78 i32.store16 - local.get $buffer - i32.const 2 + local.get $buffer|2 + i32.const 97 + i32.store16 offset=2 + local.get $buffer|2 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $value|3 + f64.const 0 + f64.lt + local.set $sign + local.get $sign + if + local.get $buffer|2 + i32.const 45 + i32.store16 + local.get $buffer|2 + i32.const 2 + i32.add + local.set $buffer|2 + end + local.get $buffer|2 + i64.const 29555310648492105 + i64.store + local.get $buffer|2 + i64.const 34058970405077102 + i64.store offset=8 + i32.const 8 + local.get $sign i32.add - local.set $buffer + br $~lib/util/number/dtoa_buffered_impl|inlined.1 end - local.get $buffer - i64.const 29555310648492105 - i64.store - local.get $buffer - i64.const 34058970405077102 - i64.store offset=8 - i32.const 8 - local.get $sign - i32.add - return + unreachable end - unreachable + local.get $buffer|2 + local.get $value|3 + local.get $isSingle + call $~lib/util/number/dtoa_core + br $~lib/util/number/dtoa_buffered_impl|inlined.1 end - local.get $buffer - local.get $value - call $~lib/util/number/dtoa_core return ) (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $this i32) (result i32) @@ -20199,7 +20355,7 @@ global.set $~argumentsLength local.get $fn|4 i32.load - call_indirect (type $19) + call_indirect (type $20) local.set $initialValue|5 local.get $i i32.const 1 @@ -20371,7 +20527,7 @@ global.set $~argumentsLength local.get $fn|4 i32.load - call_indirect (type $20) + call_indirect (type $21) local.set $initialValue|5 local.get $i i32.const 1 @@ -23911,7 +24067,7 @@ global.set $~argumentsLength local.get $fn|4 i32.load - call_indirect (type $19) + call_indirect (type $20) local.set $initialValue|5 local.get $i i32.const 1 @@ -24082,7 +24238,7 @@ global.set $~argumentsLength local.get $fn|4 i32.load - call_indirect (type $20) + call_indirect (type $21) local.set $initialValue|5 local.get $i i32.const 1 @@ -26199,7 +26355,7 @@ global.set $~argumentsLength local.get $fn|3 i32.load - call_indirect (type $21) + call_indirect (type $22) i64.store local.get $i i32.const 1 @@ -26497,7 +26653,7 @@ global.set $~argumentsLength local.get $fn|3 i32.load - call_indirect (type $21) + call_indirect (type $22) i64.store local.get $i i32.const 1 @@ -41334,7 +41490,7 @@ global.set $~argumentsLength local.get $fn|3 i32.load - call_indirect (type $25) + call_indirect (type $26) local.get $i i32.const 1 i32.add @@ -41584,7 +41740,7 @@ global.set $~argumentsLength local.get $fn|3 i32.load - call_indirect (type $25) + call_indirect (type $26) local.get $i i32.const 1 i32.add @@ -41834,7 +41990,7 @@ global.set $~argumentsLength local.get $fn|3 i32.load - call_indirect (type $38) + call_indirect (type $37) local.get $i i32.const 1 i32.add @@ -42084,7 +42240,7 @@ global.set $~argumentsLength local.get $fn|3 i32.load - call_indirect (type $39) + call_indirect (type $38) local.get $i i32.const 1 i32.add @@ -60147,8 +60303,7 @@ if local.get $dataStart f32.load - f64.promote_f32 - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -60204,8 +60359,7 @@ i32.shl i32.add local.get $value - f64.promote_f32 - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $sepLen @@ -60246,8 +60400,7 @@ i32.shl i32.add local.get $value - f64.promote_f32 - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $estLen @@ -60521,7 +60674,7 @@ if local.get $dataStart f64.load - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -60577,7 +60730,7 @@ i32.shl i32.add local.get $value - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $sepLen @@ -60618,7 +60771,7 @@ i32.shl i32.add local.get $value - call $~lib/util/number/dtoa_buffered + call $~lib/util/number/dtoa_buffered i32.add local.set $offset local.get $estLen @@ -93815,10 +93968,12 @@ local.get $17 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f32) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -93827,76 +93982,143 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 8640 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $value + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - f64.ne + f64.promote_f32 + local.set $value|1 + i32.const 1 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 8672 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 8640 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8704 - i32.const 8752 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 8672 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 8704 + i32.const 8752 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 8784 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 8784 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 8784 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + ) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) + (local $size i32) + (local $result i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $result - i32.const 8784 - local.get $size - memory.copy - local.get $result - local.set $3 + block $~lib/util/number/dtoa_impl|inlined.1 (result i32) + local.get $value + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq + if + i32.const 8640 + br $~lib/util/number/dtoa_impl|inlined.1 + end + local.get $value|1 + local.get $value|1 + f64.sub + f64.const 0 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 8672 + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 8704 + i32.const 8752 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 8784 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size + global.get $~lib/memory/__stack_pointer + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 8784 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.1 + end + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $this i32) (param $length i32) (result i32) diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 6b63063fcc..30c2366c5a 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -24,24 +24,23 @@ (type $22 (func (param f32 f32 i32 i32) (result f32))) (type $23 (func (param f64 f64 i32 i32) (result f64))) (type $24 (func (param i64 i32 i32) (result i64))) - (type $25 (func (param i32 f64) (result i32))) + (type $25 (func (param i32 f64 i32) (result i32))) (type $26 (func (param i32 i32) (result f64))) (type $27 (func (param i32 i32) (result f32))) (type $28 (func (param i64 i32 i32))) (type $29 (func (param f32 i32 i32) (result f32))) (type $30 (func (param f64 i32 i32) (result f64))) - (type $31 (func (param f32 i32 i32))) - (type $32 (func (param f64 i32 i32))) - (type $33 (func (param i32 f32 i32) (result i32))) - (type $34 (func (param i32 f64 i32) (result i32))) - (type $35 (func (result i32))) - (type $36 (func (param i32 i64 i32))) - (type $37 (func (param i32 i64 i64 i32 i64 i32) (result i32))) - (type $38 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $39 (func (param i32 i32 f64))) - (type $40 (func (param i32 i32 f32))) - (type $41 (func (param i32 f32) (result i32))) - (type $42 (func (param f64) (result i32))) + (type $31 (func (param i32 f32) (result i32))) + (type $32 (func (param i32 f64) (result i32))) + (type $33 (func (param f32 i32 i32))) + (type $34 (func (param f64 i32 i32))) + (type $35 (func (param i32 f32 i32) (result i32))) + (type $36 (func (result i32))) + (type $37 (func (param i32 i64 i32))) + (type $38 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $39 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $40 (func (param i32 i32 f64))) + (type $41 (func (param i32 i32 f32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -767,7 +766,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1388 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1391 local.get $0 i32.load offset=4 i32.const -4 @@ -791,7 +790,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1388 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1391 end local.get $0 i32.load offset=8 @@ -4969,13 +4968,12 @@ end end ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i32) - (local $4 i64) - (local $5 i64) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) (local $6 i64) - (local $7 i32) + (local $7 i64) (local $8 i32) (local $9 i32) (local $10 i64) @@ -4984,74 +4982,110 @@ (local $13 i64) (local $14 i64) (local $15 i64) + (local $16 i64) local.get $1 f64.const 0 f64.lt - local.tee $3 - if (result f64) + local.tee $4 + if local.get $0 i32.const 45 i32.store16 local.get $1 f64.neg + local.set $1 + end + local.get $2 + if (result i64) + local.get $1 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $8 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.tee $9 + i32.const 1 + local.get $9 + select + i32.const 150 + i32.sub + local.set $5 + local.get $8 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $9 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add else local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 1 + local.get $8 + select + i32.const 1075 + i32.sub + local.set $5 + local.get $3 + i64.const 4503599627370495 + i64.and + local.get $8 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add end - i64.reinterpret_f64 - local.tee $2 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $7 - i32.const 1 - local.get $7 - select - i32.const 1075 - i32.sub - local.tee $8 + local.set $3 + local.get $5 i32.const 1 i32.sub - local.get $2 - i64.const 4503599627370495 - i64.and - local.get $7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add - local.tee $2 + local.get $3 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $6 i64.clz i32.wrap_i64 - local.tee $7 + local.tee $8 i32.sub local.set $9 - local.get $4 - local.get $7 + local.get $6 + local.get $8 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $2 - local.get $2 + local.get $3 + local.get $3 + i64.const 8388608 i64.const 4503599627370496 + local.get $2 + select i64.eq i32.const 1 i32.add - local.tee $7 + local.tee $2 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $8 - local.get $7 + local.get $5 + local.get $2 i32.sub local.get $9 i32.sub @@ -5071,8 +5105,8 @@ f64.add local.tee $1 i32.trunc_sat_f64_s - local.tee $7 - local.get $7 + local.tee $2 + local.get $2 f64.convert_i32_s local.get $1 f64.ne @@ -5081,99 +5115,99 @@ i32.shr_s i32.const 1 i32.add - local.tee $7 + local.tee $2 i32.const 3 i32.shl - local.tee $8 + local.tee $5 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $5 i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $7 + local.get $2 i32.const 1 i32.shl i32.const 10560 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 + local.get $3 + local.get $3 i64.clz i64.shl - local.tee $2 + local.tee $3 i64.const 4294967295 i64.and - local.set $5 - local.get $2 + local.set $10 + local.get $3 i64.const 32 i64.shr_u - local.tee $4 + local.tee $6 global.get $~lib/util/number/_frc_pow - local.tee $10 + local.tee $11 i64.const 4294967295 i64.and - local.tee $11 + local.tee $12 i64.mul - local.get $5 - local.get $11 + local.get $10 + local.get $12 i64.mul i64.const 32 i64.shr_u i64.add - local.set $12 + local.set $13 global.get $~lib/util/number/_frc_plus - local.tee $2 + local.tee $3 i64.const 4294967295 i64.and - local.set $13 - local.get $11 - local.get $2 + local.set $14 + local.get $12 + local.get $3 i64.const 32 i64.shr_u - local.tee $6 + local.tee $7 i64.mul - local.get $11 - local.get $13 + local.get $12 + local.get $14 i64.mul i64.const 32 i64.shr_u i64.add - local.set $14 + local.set $15 global.get $~lib/util/number/_frc_minus - local.tee $15 + local.tee $16 i64.const 4294967295 i64.and - local.set $2 - local.get $11 - local.get $15 + local.set $3 + local.get $12 + local.get $16 i64.const 32 i64.shr_u - local.tee $15 + local.tee $16 i64.mul - local.get $2 - local.get $11 + local.get $3 + local.get $12 i64.mul i64.const 32 i64.shr_u i64.add - local.set $11 - local.get $10 + local.set $12 + local.get $11 i64.const 32 i64.shr_u - local.tee $10 - local.get $6 + local.tee $11 + local.get $7 i64.mul - local.get $14 + local.get $15 i64.const 32 i64.shr_u i64.add - local.get $10 - local.get $13 - i64.mul + local.get $11 local.get $14 + i64.mul + local.get $15 i64.const 4294967295 i64.and i64.add @@ -5184,24 +5218,24 @@ i64.add i64.const 1 i64.sub - local.set $6 + local.set $7 local.get $0 - local.get $3 + local.get $4 i32.const 1 i32.shl i32.add local.get $0 - local.get $4 - local.get $10 + local.get $6 + local.get $11 i64.mul - local.get $12 + local.get $13 i64.const 32 i64.shr_u i64.add - local.get $5 local.get $10 + local.get $11 i64.mul - local.get $12 + local.get $13 i64.const 4294967295 i64.and i64.add @@ -5210,24 +5244,24 @@ i64.const 32 i64.shr_u i64.add - local.get $6 + local.get $7 global.get $~lib/util/number/_exp_pow global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub - local.get $6 - local.get $10 - local.get $15 - i64.mul + local.get $7 local.get $11 + local.get $16 + i64.mul + local.get $12 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $10 - i64.mul + local.get $3 local.get $11 + i64.mul + local.get $12 i64.const 4294967295 i64.and i64.add @@ -5239,84 +5273,163 @@ i64.const 1 i64.add i64.sub - local.get $3 + local.get $4 call $~lib/util/number/genDigits - local.get $3 + local.get $4 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $3 + local.get $4 i32.add ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - local.get $1 - f64.const 0 - f64.eq - if - local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f32) (result i32) + (local $2 f64) + (local $3 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + local.get $1 + f64.promote_f32 + local.tee $2 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $2 + f64.const 0 + f64.lt + local.tee $3 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $3 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + unreachable + end local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - return + local.get $2 + i32.const 1 + call $~lib/util/number/dtoa_core end - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne - if - local.get $1 + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) local.get $1 - f64.ne + f64.const 0 + f64.eq if local.get $0 - i32.const 78 + i32.const 48 i32.store16 local.get $0 - i32.const 97 + i32.const 46 i32.store16 offset=2 local.get $0 - i32.const 78 + i32.const 48 i32.store16 offset=4 i32.const 3 - return - else + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if local.get $1 - f64.const 0 - f64.lt - local.tee $2 + local.get $1 + f64.ne if local.get $0 - i32.const 45 + i32.const 78 i32.store16 local.get $0 - i32.const 2 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 i32.add - local.set $0 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - local.get $2 - i32.const 8 - i32.add - return + unreachable end - unreachable + local.get $0 + local.get $1 + i32.const 0 + call $~lib/util/number/dtoa_core end - local.get $0 - local.get $1 - call $~lib/util/number/dtoa_core ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) @@ -37625,56 +37738,31 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Float32Array#join (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) - (local $5 i32) + (local $5 f32) (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinFloatArray$1393 - local.get $0 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $8 i32.const 0 i32.lt_s if @@ -37683,22 +37771,78 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinFloatArray$1393 + return end - local.get $6 + local.get $8 i32.eqz if - local.get $5 + local.get $0 f32.load - f64.promote_f32 - call $~lib/util/number/dtoa + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 9664 local.set $0 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $5 + f64.promote_f32 + local.tee $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + i32.const 9696 + local.set $0 + local.get $3 + local.get $3 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 9728 + i32.const 9776 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 9808 + local.get $3 + i32.const 1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 9808 + local.get $1 + memory.copy + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1393 + br $folding-inner1 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -37708,166 +37852,180 @@ i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $1 i32.const 28 i32.add - local.get $6 + local.get $8 i32.mul i32.const 28 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store offset=4 loop $for-loop|0 - local.get $3 - local.get $6 + local.get $4 + local.get $8 i32.lt_s if - local.get $0 - local.get $1 + local.get $7 + local.get $2 i32.const 1 i32.shl i32.add - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_buffered - local.get $1 + call $~lib/util/number/dtoa_buffered + local.get $2 i32.add - local.set $1 - local.get $4 + local.set $2 + local.get $1 if - local.get $0 - local.get $1 + local.get $7 + local.get $2 i32.const 1 i32.shl i32.add i32.const 9584 - local.get $4 + local.get $1 i32.const 1 i32.shl memory.copy local.get $1 - local.get $4 + local.get $2 i32.add - local.set $1 + local.set $2 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end + local.get $6 + local.get $7 local.get $2 - local.get $0 - local.get $1 i32.const 1 i32.shl i32.add - local.get $5 - local.get $6 + local.get $0 + local.get $8 i32.const 2 i32.shl i32.add f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_buffered - local.get $1 + call $~lib/util/number/dtoa_buffered + local.get $2 i32.add - local.tee $1 + local.tee $0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store + local.get $7 local.get $0 - local.get $1 call $~lib/string/String#substring local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1393 + br $folding-inner1 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $7 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#join (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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + local.get $1 + local.get $0 + call $~lib/util/string/joinFloatArray + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinFloatArray$1394 - local.get $0 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $7 i32.const 0 i32.lt_s if @@ -37876,21 +38034,76 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinFloatArray$1394 + return end - local.get $6 + local.get $7 i32.eqz if - local.get $5 + local.get $0 f64.load - call $~lib/util/number/dtoa + 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 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 9664 local.set $0 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + i32.const 9696 + local.set $0 + local.get $3 + local.get $3 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.1 + i32.const 9728 + i32.const 9776 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.1 + end + i32.const 9808 + local.get $3 + i32.const 0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 9808 + local.get $1 + memory.copy + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1394 + br $folding-inner1 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -37900,113 +38113,155 @@ i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $1 i32.const 28 i32.add - local.get $6 + local.get $7 i32.mul i32.const 28 i32.add - local.tee $2 + local.tee $5 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.store offset=4 loop $for-loop|0 - local.get $3 - local.get $6 + local.get $4 + local.get $7 i32.lt_s if - local.get $0 - local.get $1 + local.get $6 + local.get $2 i32.const 1 i32.shl i32.add - local.get $5 - local.get $3 + local.get $0 + local.get $4 i32.const 3 i32.shl i32.add f64.load - call $~lib/util/number/dtoa_buffered - local.get $1 + call $~lib/util/number/dtoa_buffered + local.get $2 i32.add - local.set $1 - local.get $4 + local.set $2 + local.get $1 if - local.get $0 - local.get $1 + local.get $6 + local.get $2 i32.const 1 i32.shl i32.add i32.const 9584 - local.get $4 + local.get $1 i32.const 1 i32.shl memory.copy local.get $1 - local.get $4 + local.get $2 i32.add - local.set $1 + local.set $2 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end + local.get $5 + local.get $6 local.get $2 - local.get $0 - local.get $1 i32.const 1 i32.shl i32.add - local.get $5 - local.get $6 + local.get $0 + local.get $7 i32.const 3 i32.shl i32.add f64.load - call $~lib/util/number/dtoa_buffered - local.get $1 + call $~lib/util/number/dtoa_buffered + local.get $2 i32.add - local.tee $1 + local.tee $0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store + local.get $6 local.get $0 - local.get $1 call $~lib/string/String#substring local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$1394 + br $folding-inner1 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Float64Array#join (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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + local.get $1 + local.get $0 + call $~lib/util/string/joinFloatArray + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -63600,7 +63855,7 @@ local.get $1 i32.const 7488 i32.load - call_indirect (type $31) + call_indirect (type $33) local.get $0 i32.const 1 i32.add @@ -63744,7 +63999,7 @@ local.get $1 i32.const 7520 i32.load - call_indirect (type $32) + call_indirect (type $34) local.get $0 i32.const 1 i32.add @@ -68554,89 +68809,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/util/number/dtoa (param $0 f64) (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 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - f64.const 0 - f64.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9664 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne - if - local.get $0 - local.get $0 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9696 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9728 - i32.const 9776 - local.get $0 - f64.const 0 - f64.lt - select - return - end - i32.const 9808 - local.get $0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 9808 - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 4afd1b5eec..629dbcd62d 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -14,7 +14,7 @@ (type $12 (func (param i64 i32) (result i32))) (type $13 (func (param i32 i64 i32 i32))) (type $14 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $15 (func (param i32 f64) (result i32))) + (type $15 (func (param i32 f64 i32) (result i32))) (type $16 (func (param f64 i32) (result i32))) (type $17 (func (param f64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -3771,26 +3771,30 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $value|3 f64) - (local $buffer|4 i32) - (local $sign|5 i32) - (local $uv i64) - (local $exp i32) - (local $sid i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) (local $f i64) (local $e i32) - (local $frc|12 i64) - (local $exp|13 i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) (local $off i32) (local $m i32) (local $minExp i32) (local $dk f64) (local $k i32) (local $index i32) - (local $off|20 i32) + (local $off|25 i32) (local $frc_pow i64) (local $exp_pow i32) (local $u i64) @@ -3806,28 +3810,28 @@ (local $e1 i32) (local $e2 i32) (local $w_exp i32) - (local $u|36 i64) - (local $v|37 i64) - (local $u0|38 i64) - (local $v0|39 i64) - (local $u1|40 i64) - (local $v1|41 i64) - (local $l|42 i64) - (local $t|43 i64) - (local $w|44 i64) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) (local $wp_frc i64) - (local $e1|46 i32) - (local $e2|47 i32) + (local $e1|51 i32) + (local $e2|52 i32) (local $wp_exp i32) - (local $u|49 i64) - (local $v|50 i64) - (local $u0|51 i64) - (local $v0|52 i64) - (local $u1|53 i64) - (local $v1|54 i64) - (local $l|55 i64) - (local $t|56 i64) - (local $w|57 i64) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) (local $wm_frc i64) (local $delta i64) (local $len i32) @@ -3846,77 +3850,127 @@ end block $~lib/util/number/grisu2|inlined.0 (result i32) local.get $value - local.set $value|3 + local.set $value|4 local.get $buffer - local.set $buffer|4 + local.set $buffer|5 local.get $sign - local.set $sign|5 - local.get $value|3 - i64.reinterpret_f64 - local.set $uv - local.get $uv - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $exp - local.get $uv - i64.const 4503599627370495 - i64.and - local.set $sid - local.get $exp - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $sid - i64.add - local.set $frc - local.get $exp - i32.const 1 - local.get $exp - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $exp + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end local.get $frc local.set $f local.get $exp local.set $e + local.get $isSingle|7 + local.set $isSingle|16 local.get $f i64.const 1 i64.shl i64.const 1 i64.add - local.set $frc|12 + local.set $frc|17 local.get $e i32.const 1 i32.sub - local.set $exp|13 - local.get $frc|12 + local.set $exp|18 + local.get $frc|17 i64.clz i32.wrap_i64 local.set $off - local.get $frc|12 + local.get $frc|17 local.get $off i64.extend_i32_s i64.shl - local.set $frc|12 - local.get $exp|13 + local.set $frc|17 + local.get $exp|18 local.get $off i32.sub - local.set $exp|13 + local.set $exp|18 i32.const 1 local.get $f - i64.const 4503599627370496 + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end i64.eq i32.add local.set $m - local.get $frc|12 + local.get $frc|17 global.set $~lib/util/number/_frc_plus local.get $f local.get $m @@ -3927,12 +3981,12 @@ local.get $e local.get $m i32.sub - local.get $exp|13 + local.get $exp|18 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $exp|13 + local.get $exp|18 global.set $~lib/util/number/_exp global.get $~lib/util/number/_exp local.set $minExp @@ -3984,14 +4038,14 @@ local.get $frc i64.clz i32.wrap_i64 - local.set $off|20 + local.set $off|25 local.get $frc - local.get $off|20 + local.get $off|25 i64.extend_i32_s i64.shl local.set $frc local.get $exp - local.get $off|20 + local.get $off|25 i32.sub local.set $exp global.get $~lib/util/number/_frc_pow @@ -4076,63 +4130,63 @@ local.set $w_exp block $~lib/util/number/umul64f|inlined.1 (result i64) global.get $~lib/util/number/_frc_plus - local.set $u|36 + local.set $u|41 local.get $frc_pow - local.set $v|37 - local.get $u|36 + local.set $v|42 + local.get $u|41 i64.const 4294967295 i64.and - local.set $u0|38 - local.get $v|37 + local.set $u0|43 + local.get $v|42 i64.const 4294967295 i64.and - local.set $v0|39 - local.get $u|36 + local.set $v0|44 + local.get $u|41 i64.const 32 i64.shr_u - local.set $u1|40 - local.get $v|37 + local.set $u1|45 + local.get $v|42 i64.const 32 i64.shr_u - local.set $v1|41 - local.get $u0|38 - local.get $v0|39 + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 i64.mul - local.set $l|42 - local.get $u1|40 - local.get $v0|39 + local.set $l|47 + local.get $u1|45 + local.get $v0|44 i64.mul - local.get $l|42 + local.get $l|47 i64.const 32 i64.shr_u i64.add - local.set $t|43 - local.get $u0|38 - local.get $v1|41 + local.set $t|48 + local.get $u0|43 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.const 4294967295 i64.and i64.add - local.set $w|44 - local.get $w|44 + local.set $w|49 + local.get $w|49 i64.const 2147483647 i64.add - local.set $w|44 - local.get $t|43 + local.set $w|49 + local.get $t|48 i64.const 32 i64.shr_u - local.set $t|43 - local.get $w|44 + local.set $t|48 + local.get $w|49 i64.const 32 i64.shr_u - local.set $w|44 - local.get $u1|40 - local.get $v1|41 + local.set $w|49 + local.get $u1|45 + local.get $v1|46 i64.mul - local.get $t|43 + local.get $t|48 i64.add - local.get $w|44 + local.get $w|49 i64.add br $~lib/util/number/umul64f|inlined.1 end @@ -4141,11 +4195,11 @@ local.set $wp_frc block $~lib/util/number/umul64e|inlined.1 (result i32) global.get $~lib/util/number/_exp - local.set $e1|46 + local.set $e1|51 local.get $exp_pow - local.set $e2|47 - local.get $e1|46 - local.get $e2|47 + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 i32.add i32.const 64 i32.add @@ -4154,63 +4208,63 @@ local.set $wp_exp block $~lib/util/number/umul64f|inlined.2 (result i64) global.get $~lib/util/number/_frc_minus - local.set $u|49 + local.set $u|54 local.get $frc_pow - local.set $v|50 - local.get $u|49 + local.set $v|55 + local.get $u|54 i64.const 4294967295 i64.and - local.set $u0|51 - local.get $v|50 + local.set $u0|56 + local.get $v|55 i64.const 4294967295 i64.and - local.set $v0|52 - local.get $u|49 + local.set $v0|57 + local.get $u|54 i64.const 32 i64.shr_u - local.set $u1|53 - local.get $v|50 + local.set $u1|58 + local.get $v|55 i64.const 32 i64.shr_u - local.set $v1|54 - local.get $u0|51 - local.get $v0|52 + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 i64.mul - local.set $l|55 - local.get $u1|53 - local.get $v0|52 + local.set $l|60 + local.get $u1|58 + local.get $v0|57 i64.mul - local.get $l|55 + local.get $l|60 i64.const 32 i64.shr_u i64.add - local.set $t|56 - local.get $u0|51 - local.get $v1|54 + local.set $t|61 + local.get $u0|56 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.const 4294967295 i64.and i64.add - local.set $w|57 - local.get $w|57 + local.set $w|62 + local.get $w|62 i64.const 2147483647 i64.add - local.set $w|57 - local.get $t|56 + local.set $w|62 + local.get $t|61 i64.const 32 i64.shr_u - local.set $t|56 - local.get $w|57 + local.set $t|61 + local.get $w|62 i64.const 32 i64.shr_u - local.set $w|57 - local.get $u1|53 - local.get $v1|54 + local.set $w|62 + local.get $u1|58 + local.get $v1|59 i64.mul - local.get $t|56 + local.get $t|61 i64.add - local.get $w|57 + local.get $w|62 i64.add br $~lib/util/number/umul64f|inlined.2 end @@ -4221,13 +4275,13 @@ local.get $wm_frc i64.sub local.set $delta - local.get $buffer|4 + local.get $buffer|5 local.get $w_frc local.get $w_exp local.get $wp_frc local.get $wp_exp local.get $delta - local.get $sign|5 + local.get $sign|6 call $~lib/util/number/genDigits br $~lib/util/number/grisu2|inlined.0 end @@ -4250,7 +4304,7 @@ ) (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) local.get $this - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa return ) (func $templateliteral/Ref#set:value (param $this i32) (param $value i32) @@ -6380,10 +6434,12 @@ local.get $14 return ) - (func $~lib/util/number/dtoa (param $value f64) (result i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) (local $size i32) (local $result i32) - (local $3 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6392,76 +6448,66 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $value - f64.const 0 - f64.eq - if - i32.const 2752 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - i32.eqz - if + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) local.get $value - local.get $value - f64.ne + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 2784 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 2752 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2816 - i32.const 2864 - local.get $value + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 2784 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2816 + i32.const 2864 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2896 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 2896 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2896 - local.get $value - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $size - global.get $~lib/memory/__stack_pointer - local.get $size - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $result - i32.store - local.get $result - i32.const 2896 - local.get $size - memory.copy - local.get $result - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return ) ) diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 556b3108ac..a2ded6a5ae 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -2962,41 +2962,25 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/dtoa$79 + i32.const 3776 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.0 local.get $0 f64.const 0 f64.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3776 - local.set $1 - br $__inlined_func$~lib/util/number/dtoa$79 - end + br_if $~lib/util/number/dtoa_impl|inlined.0 local.get $0 local.get $0 f64.sub f64.const 0 f64.ne if + i32.const 3808 + local.set $1 local.get $0 local.get $0 f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3808 - local.set $1 - br $__inlined_func$~lib/util/number/dtoa$79 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + br_if $~lib/util/number/dtoa_impl|inlined.0 i32.const 3840 i32.const 3888 local.get $0 @@ -3004,7 +2988,7 @@ f64.lt select local.set $1 - br $__inlined_func$~lib/util/number/dtoa$79 + br $~lib/util/number/dtoa_impl|inlined.0 end local.get $0 call $~lib/util/number/dtoa_core @@ -3021,11 +3005,11 @@ i32.const 3920 local.get $2 memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 ) (func $start:templateliteral From 513acc8b7db01621aedfc78c295de62a9e7ca560 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 07:49:08 -0800 Subject: [PATCH 37/86] chore: bump esbuild from 0.24.2 to 0.25.0 (#2912) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 414 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 208 insertions(+), 208 deletions(-) diff --git a/package-lock.json b/package-lock.json index bf4a3fb3b3..cc1ddb0d78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "diff": "^7.0.0", - "esbuild": "^0.24.2", + "esbuild": "^0.25.0", "eslint": "^8.57.1", "glob": "^10.4.5", "typescript": "^5.7.3" @@ -45,9 +45,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", "cpu": [ "ppc64" ], @@ -62,9 +62,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", "cpu": [ "arm" ], @@ -79,9 +79,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", "cpu": [ "arm64" ], @@ -96,9 +96,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", "cpu": [ "x64" ], @@ -113,9 +113,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", "cpu": [ "arm64" ], @@ -130,9 +130,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", "cpu": [ "x64" ], @@ -147,9 +147,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", "cpu": [ "arm64" ], @@ -164,9 +164,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", "cpu": [ "x64" ], @@ -181,9 +181,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", "cpu": [ "arm" ], @@ -198,9 +198,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", "cpu": [ "arm64" ], @@ -215,9 +215,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", "cpu": [ "ia32" ], @@ -232,9 +232,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", "cpu": [ "loong64" ], @@ -249,9 +249,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", "cpu": [ "mips64el" ], @@ -266,9 +266,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", "cpu": [ "ppc64" ], @@ -283,9 +283,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", "cpu": [ "riscv64" ], @@ -300,9 +300,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", "cpu": [ "s390x" ], @@ -317,9 +317,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", "cpu": [ "x64" ], @@ -334,9 +334,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", "cpu": [ "arm64" ], @@ -351,9 +351,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", "cpu": [ "x64" ], @@ -368,9 +368,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", "cpu": [ "arm64" ], @@ -385,9 +385,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", "cpu": [ "x64" ], @@ -402,9 +402,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", "cpu": [ "x64" ], @@ -419,9 +419,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", "cpu": [ "arm64" ], @@ -436,9 +436,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", "cpu": [ "ia32" ], @@ -453,9 +453,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", "cpu": [ "x64" ], @@ -1127,9 +1127,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1140,31 +1140,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" } }, "node_modules/escape-string-regexp": { @@ -2577,177 +2577,177 @@ "dev": true }, "@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", "dev": true, "optional": true }, "@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", "dev": true, "optional": true }, "@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", "dev": true, "optional": true }, "@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", "dev": true, "optional": true }, @@ -3184,36 +3184,36 @@ "dev": true }, "esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", "dev": true, "requires": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" } }, "escape-string-regexp": { diff --git a/package.json b/package.json index d8d5b47062..2b10b739a3 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "diff": "^7.0.0", - "esbuild": "^0.24.2", + "esbuild": "^0.25.0", "eslint": "^8.57.1", "glob": "^10.4.5", "typescript": "^5.7.3" From 4e7734b8530bf27a50796a4c940ba4ef34bf956c Mon Sep 17 00:00:00 2001 From: CountBleck Date: Mon, 10 Mar 2025 07:30:42 -0700 Subject: [PATCH 38/86] feat: add an alwaysInline builtin (#2895) --- src/builtins.ts | 19 +++ src/compiler.ts | 3 +- src/flow.ts | 2 + std/assembly/builtins.ts | 6 + std/assembly/index.d.ts | 4 + tests/compiler/inlining.debug.wat | 194 +++++++++++++++++++++++++++- tests/compiler/inlining.release.wat | 168 +++++++++++++++++++++++- tests/compiler/inlining.ts | 8 ++ 8 files changed, 397 insertions(+), 7 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index 956ab08a2f..278bf06745 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -191,6 +191,7 @@ export namespace BuiltinNames { export const assert = "~lib/builtins/assert"; export const call_indirect = "~lib/builtins/call_indirect"; export const unchecked = "~lib/builtins/unchecked"; + export const inline_always = "~lib/builtins/inline.always"; export const instantiate = "~lib/builtins/instantiate"; export const idof = "~lib/builtins/idof"; @@ -3611,6 +3612,24 @@ function builtin_unchecked(ctx: BuiltinFunctionContext): ExpressionRef { } builtinFunctions.set(BuiltinNames.unchecked, builtin_unchecked); +// inline.always(expr: *) -> * +function builtin_inline_always(ctx: BuiltinFunctionContext): ExpressionRef { + let compiler = ctx.compiler; + let module = compiler.module; + if ( + checkTypeAbsent(ctx) | + checkArgsRequired(ctx, 1) + ) return module.unreachable(); + let flow = compiler.currentFlow; + let alreadyInline = flow.is(FlowFlags.InlineContext); + if (!alreadyInline) flow.set(FlowFlags.InlineContext); + // eliminate unnecessary tees by preferring contextualType(=void) + let expr = compiler.compileExpression(ctx.operands[0], ctx.contextualType); + if (!alreadyInline) flow.unset(FlowFlags.InlineContext); + return expr; +} +builtinFunctions.set(BuiltinNames.inline_always, builtin_inline_always); + // call_indirect(index: u32, ...args: *[]) -> T function builtin_call_indirect(ctx: BuiltinFunctionContext): ExpressionRef { let compiler = ctx.compiler; diff --git a/src/compiler.ts b/src/compiler.ts index 421d062a94..a9cb5d4e36 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -6281,7 +6281,8 @@ export class Compiler extends DiagnosticEmitter { } // Inline if explicitly requested - if (instance.hasDecorator(DecoratorFlags.Inline) && (!instance.is(CommonFlags.Overridden) || reportNode.isAccessOnSuper)) { + let inlineRequested = instance.hasDecorator(DecoratorFlags.Inline) || this.currentFlow.is(FlowFlags.InlineContext); + if (inlineRequested && (!instance.is(CommonFlags.Overridden) || reportNode.isAccessOnSuper)) { assert(!instance.is(CommonFlags.Stub)); // doesn't make sense let inlineStack = this.inlineStack; if (inlineStack.includes(instance)) { diff --git a/src/flow.ts b/src/flow.ts index d481a61fc9..ddc7941916 100644 --- a/src/flow.ts +++ b/src/flow.ts @@ -146,6 +146,8 @@ export const enum FlowFlags { UncheckedContext = 1 << 15, /** This is a flow compiling a constructor parameter. */ CtorParamContext = 1 << 16, + /** This is a flow where all function calls are inlined if possible. */ + InlineContext = 1 << 17, // masks diff --git a/std/assembly/builtins.ts b/std/assembly/builtins.ts index 0f910a39e4..1c23551993 100644 --- a/std/assembly/builtins.ts +++ b/std/assembly/builtins.ts @@ -202,6 +202,12 @@ export declare function assert(isTrueish: T, message?: string): T; @unsafe @builtin export declare function unchecked(expr: T): T; +export namespace inline { + // @ts-ignore: decorator + @unsafe @builtin + export declare function always(expr: T): T; +} + // @ts-ignore: decorator @unsafe @builtin export declare function call_indirect(index: u32, ...args: auto[]): T; diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index eb8a177b31..c2712dae92 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2693,6 +2693,10 @@ declare function final(constructor: Constructor): void; /** Annotates a method, function or constant global as always inlined. */ declare function inline(...args: any[]): any; +declare namespace inline { + /** Explicitly requests inlined function calls on the provided expression wherever possible. */ + declare function always(value: T): T; +} /** Annotates a method, function or constant global as unsafe. */ declare function unsafe(...args: any[]): any; diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 68a7fd21cd..4613c1a7a4 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -6,8 +6,10 @@ (type $4 (func (param i32 i32) (result i32))) (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32))) - (type $7 (func (param i32 i32 i32 i32))) - (type $8 (func (param i32 i32 i64) (result i32))) + (type $7 (func (param i32 i32 i32) (result f64))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (param f64) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $inlining/constantGlobal i32 (i32.const 1)) (global $~argumentsLength (mut i32) (i32.const 0)) @@ -44,6 +46,8 @@ (table $0 2 2 funcref) (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) (export "test" (func $inlining/test)) + (export "foo" (func $inlining/foo)) + (export "bar" (func $inlining/bar)) (export "memory" (memory $0)) (start $~start) (func $inlining/test (result i32) @@ -2573,6 +2577,192 @@ global.set $~lib/rt/itcms/fromSpace call $inlining/test_ctor ) + (func $~lib/math/NativeMath.cbrt (param $x f64) (result f64) + (local $u i64) + (local $hx i32) + (local $t f64) + (local $r f64) + (local $s f64) + local.get $x + i64.reinterpret_f64 + local.set $u + local.get $u + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $hx + local.get $hx + i32.const 2146435072 + i32.ge_u + if + local.get $x + local.get $x + f64.add + return + end + local.get $hx + i32.const 1048576 + i32.lt_u + if + local.get $x + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.set $u + local.get $u + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.set $hx + local.get $hx + i32.const 0 + i32.eq + if + local.get $x + return + end + local.get $hx + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + local.set $hx + else + local.get $hx + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + local.set $hx + end + local.get $u + i64.const 1 + i64.const 63 + i64.shl + i64.and + local.set $u + local.get $u + local.get $hx + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + local.set $u + local.get $u + f64.reinterpret_i64 + local.set $t + local.get $t + local.get $t + f64.mul + local.get $t + local.get $x + f64.div + f64.mul + local.set $r + local.get $t + f64.const 1.87595182427177 + local.get $r + f64.const -1.8849797954337717 + local.get $r + f64.const 1.6214297201053545 + f64.mul + f64.add + f64.mul + f64.add + local.get $r + local.get $r + f64.mul + local.get $r + f64.mul + f64.const -0.758397934778766 + local.get $r + f64.const 0.14599619288661245 + f64.mul + f64.add + f64.mul + f64.add + f64.mul + local.set $t + local.get $t + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.set $t + local.get $t + local.get $t + f64.mul + local.set $s + local.get $x + local.get $s + f64.div + local.set $r + local.get $r + local.get $t + f64.sub + f64.const 2 + local.get $t + f64.mul + local.get $r + f64.add + f64.div + local.set $r + local.get $t + local.get $t + local.get $r + f64.mul + f64.add + local.set $t + local.get $t + return + ) + (func $inlining/foo (param $a i32) (param $b i32) (param $c i32) (result f64) + local.get $a + f64.convert_i32_s + local.get $b + f64.convert_i32_s + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $c + f64.convert_i32_s + f64.add + return + ) + (func $inlining/bar (param $a i32) (param $b i32) (param $c i32) (result f64) + (local $a|3 i32) + (local $b|4 i32) + (local $c|5 i32) + block $inlining/foo|inlined.0 (result f64) + local.get $a + local.set $a|3 + local.get $b + local.set $b|4 + local.get $c + local.set $c|5 + local.get $a|3 + f64.convert_i32_s + local.get $b|4 + f64.convert_i32_s + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $c|5 + f64.convert_i32_s + f64.add + br $inlining/foo|inlined.0 + end + local.get $b + local.get $a + local.get $c + call $inlining/foo + f64.div + return + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 304 diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index d8ff242546..67e09d9b8e 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -5,8 +5,10 @@ (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32) (result i32))) - (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) + (type $6 (func (param i32 i32 i32) (result f64))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64))) + (type $9 (func (param f64) (result f64))) (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)) @@ -39,6 +41,8 @@ (table $0 2 2 funcref) (elem $0 (i32.const 1) $inlining/func_fe~anonymous|0) (export "test" (func $inlining/test)) + (export "foo" (func $inlining/foo)) + (export "bar" (func $inlining/bar)) (export "memory" (memory $0)) (start $~start) (func $inlining/test (result i32) @@ -130,7 +134,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$124 + block $__inlined_func$~lib/rt/itcms/Object#unlink$125 local.get $1 i32.load offset=4 i32.const -4 @@ -154,7 +158,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$124 + br $__inlined_func$~lib/rt/itcms/Object#unlink$125 end local.get $1 i32.load offset=8 @@ -1752,6 +1756,162 @@ call $~lib/builtins/abort unreachable ) + (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) + (local $1 i32) + (local $2 i64) + (local $3 f64) + (local $4 f64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + local.get $0 + f64.add + return + end + local.get $1 + i32.const 1048576 + i32.lt_u + if (result i32) + local.get $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + return + end + local.get $1 + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + else + local.get $1 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + end + local.set $1 + local.get $2 + i64.const -9223372036854775808 + i64.and + local.get $1 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + local.tee $4 + local.get $4 + f64.mul + local.get $4 + local.get $0 + f64.div + f64.mul + local.set $3 + local.get $0 + local.get $4 + local.get $3 + local.get $3 + f64.const 1.6214297201053545 + f64.mul + f64.const -1.8849797954337717 + f64.add + f64.mul + f64.const 1.87595182427177 + f64.add + local.get $3 + local.get $3 + f64.mul + local.get $3 + f64.mul + local.get $3 + f64.const 0.14599619288661245 + f64.mul + f64.const -0.758397934778766 + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.tee $0 + local.get $0 + f64.mul + f64.div + local.set $3 + local.get $0 + local.get $0 + local.get $3 + local.get $0 + f64.sub + local.get $0 + local.get $0 + f64.add + local.get $3 + f64.add + f64.div + f64.mul + f64.add + ) + (func $inlining/foo (param $0 i32) (param $1 i32) (param $2 i32) (result f64) + local.get $0 + f64.convert_i32_s + local.get $1 + f64.convert_i32_s + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $2 + f64.convert_i32_s + f64.add + ) + (func $inlining/bar (param $0 i32) (param $1 i32) (param $2 i32) (result f64) + (local $3 f64) + (local $4 f64) + (local $5 f64) + local.get $0 + f64.convert_i32_s + local.tee $3 + local.get $1 + f64.convert_i32_s + local.tee $4 + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $2 + f64.convert_i32_s + local.tee $5 + f64.add + local.get $4 + local.get $3 + call $~lib/math/NativeMath.cbrt + f64.mul + local.get $5 + f64.add + f64.div + ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid block $inlining/Baz diff --git a/tests/compiler/inlining.ts b/tests/compiler/inlining.ts index 16515596d2..0758d7176d 100644 --- a/tests/compiler/inlining.ts +++ b/tests/compiler/inlining.ts @@ -100,3 +100,11 @@ function test_ctor(): void { } test_ctor(); + +export function foo(a: i32, b: i32, c: i32): f64 { + return a * Math.cbrt(b) + c; +} + +export function bar(a: i32, b: i32, c: i32): f64 { + return inline.always(foo(a, b, c)) / foo(b, a, c); +} From f16b08f691cd0002c0a5d303c5f290904d22cb68 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Fri, 18 Apr 2025 13:49:39 -0700 Subject: [PATCH 39/86] fix: remove erroneous `declare` for `inline.always` (#2916) --- std/assembly/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index c2712dae92..9d629ccd10 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2695,7 +2695,7 @@ declare function final(constructor: Constructor): void; declare function inline(...args: any[]): any; declare namespace inline { /** Explicitly requests inlined function calls on the provided expression wherever possible. */ - declare function always(value: T): T; + export function always(value: T): T; } /** Annotates a method, function or constant global as unsafe. */ From ae8c46cd5690b8f14fc915606ab9ab2a0794434f Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Thu, 29 May 2025 09:47:36 +0800 Subject: [PATCH 40/86] fix: `Math.pow` constant optimization behaves inconsistently in different versions of node (#2920) use the pow function compiled by AS bootstrap to optimize the constant propagation of pow --- package-lock.json | 14 ++++++++++++++ package.json | 1 + src/glue/js/float.d.ts | 1 + src/glue/js/float.js | 4 ++++ src/util/math.ts | 14 ++++---------- 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index cc1ddb0d78..e2bceb3ad0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@types/node": "^18.19.75", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", + "as-float": "^1.0.1", "diff": "^7.0.0", "esbuild": "^0.25.0", "eslint": "^8.57.1", @@ -953,6 +954,13 @@ "node": ">=8" } }, + "node_modules/as-float": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/as-float/-/as-float-1.0.1.tgz", + "integrity": "sha512-TsN1UpoFdtzuKXqqpdnGbFuMYnK/eqMEjd2xVvACG29H/v4KLx+UD+tHRz9v6zO+Ge/AR/uskSruBIPZrchhHw==", + "dev": true, + "license": "MIT" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -3054,6 +3062,12 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, + "as-float": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/as-float/-/as-float-1.0.1.tgz", + "integrity": "sha512-TsN1UpoFdtzuKXqqpdnGbFuMYnK/eqMEjd2xVvACG29H/v4KLx+UD+tHRz9v6zO+Ge/AR/uskSruBIPZrchhHw==", + "dev": true + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", diff --git a/package.json b/package.json index 2b10b739a3..cf320be2a8 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@types/node": "^18.19.75", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", + "as-float": "^1.0.1", "diff": "^7.0.0", "esbuild": "^0.25.0", "eslint": "^8.57.1", diff --git a/src/glue/js/float.d.ts b/src/glue/js/float.d.ts index 8694f03b52..b116ad846c 100644 --- a/src/glue/js/float.d.ts +++ b/src/glue/js/float.d.ts @@ -7,3 +7,4 @@ declare function f32_as_i32(value: f32): i32; declare function i32_as_f32(value: i32): f32; declare function f64_as_i64(value: f64): i64; declare function i64_as_f64(value: i64): f64; +declare function f64_pow(value: f64, exponent: f64): f64; diff --git a/src/glue/js/float.js b/src/glue/js/float.js index 090af6cf96..6b68fdfef1 100644 --- a/src/glue/js/float.js +++ b/src/glue/js/float.js @@ -3,6 +3,8 @@ * @license Apache-2.0 */ +import { f64_pow } from "as-float"; + /* eslint-disable no-undef */ const F64 = new Float64Array(1); @@ -29,3 +31,5 @@ globalThis.i64_as_f64 = function i64_as_f64(value) { I32[1] = i64_high(value); return F64[0]; }; + +globalThis.f64_pow = f64_pow; diff --git a/src/util/math.ts b/src/util/math.ts index 25759f35d1..56655e921c 100644 --- a/src/util/math.ts +++ b/src/util/math.ts @@ -11,16 +11,10 @@ export function isPowerOf2(x: i32): bool { export function accuratePow64(x: f64, y: f64): f64 { if (!ASC_TARGET) { // ASC_TARGET == JS // Engines like V8, WebKit and SpiderMonkey uses powi fast path if exponent is integer - // This speculative optimization leads to loose precisions like 10 ** 208 != 1e208 - // or/and 10 ** -5 != 1e-5 anymore. For avoid this behaviour we are forcing exponent - // to fractional form and compensate this afterwards. - if (isFinite(y) && Math.abs(y) >= 2 && Math.trunc(y) == y) { - if (y < 0) { - return Math.pow(x, y + 0.5) / Math.pow(x, 0.5); - } else { - return Math.pow(x, y - 0.5) * Math.pow(x, 0.5); - } - } + // This speculative optimization leads to loose precisions like 10 ** -5 != 1e-5 anymore + // and introduces inconsistencies between different engines and versions + // For avoid this behavior we using bootstrap f64_pow function. + return f64_pow(x, y); } return Math.pow(x, y); } From a6de4c3c7c895b07f974e5f4402a850fc7484296 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Wed, 28 May 2025 18:58:17 -0700 Subject: [PATCH 41/86] breaking: bump supported Node.js version to v20+ (#2925) --- .github/workflows/pr.yml | 2 +- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 88232d9ff3..ac9170348d 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -13,7 +13,7 @@ jobs: uses: actions/github-script@v7 with: script: | - const titlePrefixes = ["feat", "fix", "break", "chore"]; + const titlePrefixes = ["feat", "fix", "breaking", "chore"]; const title = context.payload.pull_request.title.toLowerCase(); const titleHasValidPrefix = titlePrefixes.some((prefix) => title.startsWith(`${prefix}:`)); if (!titleHasValidPrefix) { process.exit(-1); } diff --git a/package-lock.json b/package-lock.json index e2bceb3ad0..bfaa253c9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "typescript": "^5.7.3" }, "engines": { - "node": ">=18", + "node": ">=20", "npm": ">=10" }, "funding": { diff --git a/package.json b/package.json index cf320be2a8..39a9e67e54 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "engines": { - "node": ">=18", + "node": ">=20", "npm": ">=10" }, "engineStrict": true, From 91976df32e8790a40bafa4ab946850bac2c17e8e Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Thu, 29 May 2025 10:00:43 +0800 Subject: [PATCH 42/86] fix: `builtin_call_indirect` does not manage GC obj correctly (#2924) --- src/builtins.ts | 3 + .../incremental-gc/call-indirect.debug.wat | 2642 +++++++++++++++++ .../incremental-gc/call-indirect.json | 4 + .../incremental-gc/call-indirect.release.wat | 1861 ++++++++++++ .../compiler/incremental-gc/call-indirect.ts | 17 + 5 files changed, 4527 insertions(+) create mode 100644 tests/compiler/incremental-gc/call-indirect.debug.wat create mode 100644 tests/compiler/incremental-gc/call-indirect.json create mode 100644 tests/compiler/incremental-gc/call-indirect.release.wat create mode 100644 tests/compiler/incremental-gc/call-indirect.ts diff --git a/src/builtins.ts b/src/builtins.ts index 278bf06745..777ea655fd 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -3653,6 +3653,9 @@ function builtin_call_indirect(ctx: BuiltinFunctionContext): ExpressionRef { let paramTypeRefs = new Array(numOperands); for (let i = 0; i < numOperands; ++i) { operandExprs[i] = compiler.compileExpression(operands[1 + i], Type.auto); + if (compiler.currentType.isManaged) { + operandExprs[i] = module.tostack(operandExprs[i]); + } paramTypeRefs[i] = compiler.currentType.toRef(); } compiler.currentType = returnType; diff --git a/tests/compiler/incremental-gc/call-indirect.debug.wat b/tests/compiler/incremental-gc/call-indirect.debug.wat new file mode 100644 index 0000000000..8af875461c --- /dev/null +++ b/tests/compiler/incremental-gc/call-indirect.debug.wat @@ -0,0 +1,2642 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func)) + (type $4 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i64) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (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/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 544)) + (global $~lib/memory/__data_end i32 (i32.const 576)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33344)) + (global $~lib/memory/__heap_base i32 (i32.const 33344)) + (memory $0 1) + (data $0 (i32.const 16) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $5 (i32.const 256) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $8 (i32.const 412) "\1c\00\00\00\00\00\00\00\00\00\00\00\05\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $9 (i32.const 444) "\\\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00>\00\00\00i\00n\00c\00r\00e\00m\00e\00n\00t\00a\00l\00-\00g\00c\00/\00c\00a\00l\00l\00-\00i\00n\00d\00i\00r\00e\00c\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 544) "\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") + (table $0 2 2 funcref) + (elem $0 (i32.const 1) $incremental-gc/call-indirect/foo) + (export "issue_2923" (func $incremental-gc/call-indirect/issue_2923)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (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 + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (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 + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter 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 + 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 64 + i32.const 160 + 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 (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 (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (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 (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 64 + i32.const 128 + 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 64 + i32.const 132 + 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 (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (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 + i32.gt_u + if + i32.const 160 + i32.const 224 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (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 2 + 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 + return + ) + (func $~lib/rt/itcms/Object#linkTo (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 (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 64 + i32.const 148 + 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 (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 (param $cookie i32) + (local $ptr 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 + if + local.get $ptr + i32.load + 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 (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (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 + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (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 304 + 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 304 + 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 304 + 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 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + 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 offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + 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 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 (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 304 + 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 304 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + 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 304 + 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 304 + 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 304 + 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 + 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 304 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + 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 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 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + 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 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 382 + 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 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + 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 304 + i32.const 389 + 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 + 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 304 + i32.const 402 + 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|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 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 + 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 + 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 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + 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 + local.get $head + i32.store 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 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (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 304 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (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 (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 (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 (result i32) + (local $obj i32) + (local $1 i32) + (local $black 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 + 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 + 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 64 + i32.const 229 + 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 + return + ) + (func $~lib/rt/itcms/__collect + i32.const 0 + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + 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 + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + 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 + i32.const 0 + drop + ) + (func $~lib/rt/itcms/interrupt + (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 (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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 368 + i32.const 304 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + 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 + return + ) + (func $~lib/rt/tlsf/searchBlock (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 + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + 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 304 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + 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 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 304 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|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 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (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 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + 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 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (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 304 + i32.const 361 + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (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 304 + i32.const 499 + 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 304 + i32.const 501 + 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 + return + ) + (func $~lib/rt/tlsf/__alloc (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 + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (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 368 + i32.const 64 + i32.const 261 + 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 + local.get $ptr + return + ) + (func $incremental-gc/call-indirect/B#set:v (param $this i32) (param $v i32) + local.get $this + local.get $v + i32.store + ) + (func $incremental-gc/call-indirect/A#get:v (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#get:index (param $this i32) (result i32) + local.get $this + i32.load + return + ) + (func $incremental-gc/call-indirect/A#set:v (param $this i32) (param $v i32) + local.get $this + local.get $v + i32.store + ) + (func $start:incremental-gc/call-indirect + i32.const 16 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 112 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 256 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + memory.size + 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 + call $incremental-gc/call-indirect/issue_2923 + i32.const 10 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 464 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + i32.const 160 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 368 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#get:_env (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + local.get $1 + call $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#__visit + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $incremental-gc/call-indirect/B + block $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> + block $incremental-gc/call-indirect/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $incremental-gc/call-indirect/A $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> $incremental-gc/call-indirect/B $invalid + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + local.get $0 + local.get $1 + call $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>~visit + return + end + return + end + unreachable + ) + (func $~start + call $start:incremental-gc/call-indirect + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33376 + i32.const 33424 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $incremental-gc/call-indirect/B#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 20 + call $incremental-gc/call-indirect/B#set:v + 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 $incremental-gc/call-indirect/foo (param $a i32) (result i32) + (local $b 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 + call $~lib/rt/itcms/__collect + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $incremental-gc/call-indirect/B#constructor + local.tee $b + i32.store + local.get $a + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $incremental-gc/call-indirect/A#get:v + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $incremental-gc/call-indirect/A#constructor (param $this i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/object/Object#constructor + local.tee $this + i32.store + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 10 + call $incremental-gc/call-indirect/A#set:v + 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 $incremental-gc/call-indirect/issue_2923 (result i32) + (local $0 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 + i32.const 0 + call $incremental-gc/call-indirect/A#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 432 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#get:index + call_indirect (type $0) + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + ) + (func $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#__visit (param $this i32) (param $cookie 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 + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#get:_env + local.get $cookie + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/object/Object#constructor (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 + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) +) diff --git a/tests/compiler/incremental-gc/call-indirect.json b/tests/compiler/incremental-gc/call-indirect.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/incremental-gc/call-indirect.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/incremental-gc/call-indirect.release.wat b/tests/compiler/incremental-gc/call-indirect.release.wat new file mode 100644 index 0000000000..04969928ca --- /dev/null +++ b/tests/compiler/incremental-gc/call-indirect.release.wat @@ -0,0 +1,1861 @@ +(module + (type $0 (func)) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (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/itcms/total (mut i32) (i32.const 0)) + (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) + (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34352)) + (memory $0 1) + (data $1 (i32.const 1052) "<") + (data $1.1 (i32.const 1064) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $3 (i32.const 1148) "<") + (data $3.1 (i32.const 1160) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $4 (i32.const 1212) ",") + (data $4.1 (i32.const 1224) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $6 (i32.const 1292) "<") + (data $6.1 (i32.const 1304) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $7 (i32.const 1356) "<") + (data $7.1 (i32.const 1368) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $8 (i32.const 1420) "\1c") + (data $8.1 (i32.const 1432) "\05\00\00\00\08\00\00\00\01") + (data $9 (i32.const 1452) "\\") + (data $9.1 (i32.const 1464) "\02\00\00\00>\00\00\00i\00n\00c\00r\00e\00m\00e\00n\00t\00a\00l\00-\00g\00c\00/\00c\00a\00l\00l\00-\00i\00n\00d\00i\00r\00e\00c\00t\00.\00t\00s") + (data $10 (i32.const 1552) "\07\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 2 2 funcref) + (elem $0 (i32.const 1) $incremental-gc/call-indirect/foo) + (export "issue_2923" (func $incremental-gc/call-indirect/issue_2923)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 1376 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1072 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1072 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$123 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34352 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1072 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$123 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1072 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1552 + i32.load + i32.gt_u + if + i32.const 1168 + i32.const 1232 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1556 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1312 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1312 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1312 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1312 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1312 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1312 + 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 1312 + 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 + 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 1312 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1312 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1312 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1312 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34352 + i32.const 0 + i32.store + i32.const 35920 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34352 + i32.add + i32.const 0 + i32.store 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 34352 + i32.add + i32.const 0 + i32.store 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 34352 + i32.const 35924 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34352 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34352 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1072 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34352 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34352 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1312 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1312 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (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 1376 + i32.const 1072 + i32.const 261 + 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$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + 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$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1376 + i32.const 1312 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1312 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1312 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1312 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $incremental-gc/call-indirect/B + block $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> + block $incremental-gc/call-indirect/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $incremental-gc/call-indirect/A $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> $incremental-gc/call-indirect/B $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + 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 1584 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + return + end + unreachable + ) + (func $~start + i32.const 1028 + i32.const 1024 + i32.store + i32.const 1032 + i32.const 1024 + i32.store + i32.const 1024 + global.set $~lib/rt/itcms/pinSpace + i32.const 1124 + i32.const 1120 + i32.store + i32.const 1128 + i32.const 1120 + i32.store + i32.const 1120 + global.set $~lib/rt/itcms/toSpace + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/fromSpace + memory.size + i32.const 16 + i32.shl + i32.const 34352 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + call $incremental-gc/call-indirect/issue_2923 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1472 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $incremental-gc/call-indirect/foo (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1584 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + 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 + local.set $1 + 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 1584 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/object/Object#constructor + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 20 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $incremental-gc/call-indirect/issue_2923 (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1584 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + 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 1584 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1440 + i32.store offset=4 + local.get $0 + i32.const 1440 + i32.load + call_indirect (type $1) + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/object/Object#constructor (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 1584 + 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) +) diff --git a/tests/compiler/incremental-gc/call-indirect.ts b/tests/compiler/incremental-gc/call-indirect.ts new file mode 100644 index 0000000000..9c4f0ed06e --- /dev/null +++ b/tests/compiler/incremental-gc/call-indirect.ts @@ -0,0 +1,17 @@ +class A { + v: i32 = 10; +} +class B { + v: i32 = 20; +} +function foo(a: A): i32 { + __collect(); // to trigger GC + let b = new B(); + return a.v; +} + +export function issue_2923(): i32 { + return call_indirect(foo.index, new A()); +} + +assert(issue_2923() == 10); From da776308805411ab87565f74e983fb980596a3f0 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Thu, 29 May 2025 10:01:54 +0800 Subject: [PATCH 43/86] fix: remove unused tmp local in array literal generated code (#2917) --- src/compiler.ts | 12 - .../bindings/noExportRuntime.debug.wat | 2 - tests/compiler/call-rest.debug.wat | 192 +- tests/compiler/call-rest.release.wat | 16 +- tests/compiler/exports-lazy.debug.wat | 1 - .../compiler/extends-baseaggregate.debug.wat | 14 +- tests/compiler/field.debug.wat | 23 +- tests/compiler/infer-array.debug.wat | 336 +- tests/compiler/infer-array.release.wat | 52 +- tests/compiler/infer-generic.debug.wat | 31 +- tests/compiler/issues/2707.debug.wat | 7 +- tests/compiler/issues/2873.debug.wat | 74 +- tests/compiler/resolve-access.debug.wat | 13 +- tests/compiler/simd.debug.wat | 11 +- tests/compiler/std/array-literal.debug.wat | 213 +- tests/compiler/std/array-literal.release.wat | 34 +- tests/compiler/std/array.debug.wat | 6449 ++++++------ tests/compiler/std/array.release.wat | 464 +- tests/compiler/std/arraybuffer.debug.wat | 139 +- tests/compiler/std/date.debug.wat | 260 +- tests/compiler/std/date.release.wat | 148 +- tests/compiler/std/static-array.debug.wat | 124 +- tests/compiler/std/staticarray.debug.wat | 1336 ++- tests/compiler/std/string.debug.wat | 9033 ++++++++--------- tests/compiler/std/string.release.wat | 148 +- tests/compiler/std/typedarray.debug.wat | 4071 ++++---- 26 files changed, 11305 insertions(+), 11898 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index a9cb5d4e36..246993f1cd 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -8189,11 +8189,9 @@ export class Compiler extends DiagnosticEmitter { let arrayInstance = element; let arrayType = arrayInstance.type; let elementType = arrayInstance.getTypeArgumentsTo(program.arrayPrototype)![0]; - let arrayBufferInstance = assert(program.arrayBufferInstance); // block those here so compiling expressions doesn't conflict let tempThis = flow.getTempLocal(this.options.usizeType); - let tempDataStart = flow.getTempLocal(arrayBufferInstance.type); // compile value expressions and find out whether all are constant let expressions = expression.elementExpressions; @@ -8269,16 +8267,6 @@ export class Compiler extends DiagnosticEmitter { 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, - module.local_get(tempThis.index, arrayTypeRef), - arrayTypeRef, - dataStartProperty.memoryOffset - ), - true // ArrayBuffer - ) - ); for (let i = 0; i < length; ++i) { // this[i] = value stmts.push( diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index bfe4a74937..25e76de235 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -2361,8 +2361,6 @@ (func $start:bindings/noExportRuntime (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) memory.size i32.const 16 i32.shl diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat index d4d20d6b81..53208c38ec 100644 --- a/tests/compiler/call-rest.debug.wat +++ b/tests/compiler/call-rest.debug.wat @@ -2741,7 +2741,6 @@ (func $call-rest/fn@varargs (param $a i32) (param $b i32) (param $rest i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2776,18 +2775,18 @@ local.get $a local.get $b local.get $rest - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $call-rest/fn - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 ) (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) (local $oldCapacity i32) @@ -3040,19 +3039,20 @@ ) (func $call-rest/Foo#constructor (param $this i32) (param $a i32) (param $b i32) (param $rest i32) (result i32) (local $4 i32) - (local $5 i32) (local $i i32) (local $k i32) - (local $8 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 local.get $this i32.eqz if @@ -3064,19 +3064,19 @@ i32.store end local.get $this - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 call $call-rest/Foo#set:values local.get $this - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -3085,11 +3085,6 @@ call $~lib/rt/__newArray local.tee $4 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.load offset=4 - local.tee $5 - i32.store offset=16 local.get $4 i32.const 0 local.get $a @@ -3099,20 +3094,20 @@ local.get $b call $~lib/array/Array#__set local.get $4 - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $8 + local.get $7 call $call-rest/Foo#set:values i32.const 0 local.set $i local.get $rest - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 call $~lib/array/Array#get:length local.set $k loop $for-loop|0 @@ -3121,23 +3116,23 @@ i32.lt_s if local.get $this - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $8 + local.get $7 call $call-rest/Foo#get:values - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 local.get $rest - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $8 + local.get $7 local.get $i call $~lib/array/Array#__get call $~lib/array/Array#push @@ -3150,17 +3145,16 @@ end end local.get $this - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 ) (func $call-rest/Foo#constructor@varargs (param $this i32) (param $a i32) (param $b i32) (param $rest i32) (result i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3196,26 +3190,26 @@ i32.store end local.get $this - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $a local.get $b local.get $rest - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=8 - local.get $6 + local.get $5 call $call-rest/Foo#constructor - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 ) (func $call-rest/Foo#sum (param $this i32) (result i32) (local $sum i32) @@ -3314,7 +3308,6 @@ (func $call-rest/count@varargs (param $args i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3341,18 +3334,18 @@ i32.store end local.get $args - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 call $call-rest/count - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/array/Array<~lib/string/String>#get:length (param $this i32) (result i32) (local $1 i32) @@ -3415,15 +3408,6 @@ (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) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3490,11 +3474,11 @@ i32.const 4 i32.const 560 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/fn i32.const 6 i32.eq @@ -3514,11 +3498,11 @@ i32.const 4 i32.const 592 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/fn i32.const 15 i32.eq @@ -3576,11 +3560,11 @@ i32.const 4 i32.const 656 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 i32.const 3 global.set $~argumentsLength global.get $call-rest/indirect @@ -3604,11 +3588,11 @@ i32.const 4 i32.const 688 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 i32.const 3 global.set $~argumentsLength global.get $call-rest/indirect @@ -3632,11 +3616,11 @@ global.set $~argumentsLength i32.const 0 call $call-rest/Foo#constructor@varargs - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/Foo#sum i32.const 1 i32.eq @@ -3656,11 +3640,11 @@ global.set $~argumentsLength i32.const 0 call $call-rest/Foo#constructor@varargs - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/Foo#sum i32.const 3 i32.eq @@ -3681,17 +3665,17 @@ i32.const 4 i32.const 800 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store offset=4 - local.get $18 + local.get $9 call $call-rest/Foo#constructor - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/Foo#sum i32.const 6 i32.eq @@ -3712,17 +3696,17 @@ i32.const 4 i32.const 832 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store offset=4 - local.get $18 + local.get $9 call $call-rest/Foo#constructor - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/Foo#sum i32.const 15 i32.eq @@ -3755,11 +3739,11 @@ i32.const 4 i32.const 896 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/count i32.const 1 i32.eq @@ -3777,11 +3761,11 @@ i32.const 4 i32.const 928 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/count i32.const 3 i32.eq @@ -3799,11 +3783,11 @@ i32.const 8 i32.const 1056 call $~lib/rt/__newArray - local.set $18 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $18 + local.get $9 i32.store - local.get $18 + local.get $9 call $call-rest/count<~lib/string/String> i32.const 3 i32.eq diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index 6db2516a91..0d9c6213c5 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -2193,7 +2193,7 @@ (local $6 i32) (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2202,9 +2202,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 7 @@ -2230,10 +2232,6 @@ call $~lib/rt/__newArray local.tee $3 i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - i32.store offset=16 local.get $3 i32.const 0 i32.const 1 @@ -2330,7 +2328,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 diff --git a/tests/compiler/exports-lazy.debug.wat b/tests/compiler/exports-lazy.debug.wat index 13d15c1553..af546f4467 100644 --- a/tests/compiler/exports-lazy.debug.wat +++ b/tests/compiler/exports-lazy.debug.wat @@ -18,7 +18,6 @@ (start $~start) (func $start:exports-lazy (local $0 i32) - (local $1 i32) global.get $exports-lazy/lazyGlobalUsed drop call $exports-lazy/lazyFuncUsed diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index 42df283bce..cdab16fe1e 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -2895,8 +2895,6 @@ (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 @@ -2923,18 +2921,18 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $extends-baseaggregate/poolA - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 i32.const 0 call $extends-baseaggregate/A2#constructor - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index 551564caf0..aab5de284e 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -2539,7 +2539,6 @@ (func $field/NoStaticConflict#constructor (param $this i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2563,38 +2562,38 @@ end global.get $~lib/memory/__stack_pointer local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 call $~lib/object/Object#constructor local.tee $this i32.store local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 2 i32.const 5 i32.const 432 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 call $field/NoStaticConflict#set:a local.get $this - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $field/testNoStaticConflict (local $inst i32) diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index c54bf07db8..4bbaa8d706 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -3455,12 +3455,12 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) + (local $10 f32) (local $11 i32) (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 f32) + (local $15 i32) (local $16 i32) (local $17 i32) (local $18 i32) @@ -3482,30 +3482,14 @@ (local $34 i32) (local $35 i32) (local $36 i32) - (local $37 i32) - (local $38 i32) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i32) - (local $44 i32) - (local $45 i32) - (local $46 i32) - (local $47 i32) - (local $48 i32) - (local $49 i32) - (local $50 i32) - (local $51 i32) - (local $52 i32) - global.get $~lib/memory/__stack_pointer - i32.const 112 + global.get $~lib/memory/__stack_pointer + i32.const 96 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 112 + i32.const 96 memory.fill memory.size i32.const 16 @@ -3530,14 +3514,14 @@ i32.const 4 i32.const 32 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store - local.get $2 - local.set $52 + local.get $1 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3551,12 +3535,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $52 + local.get $1 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3576,14 +3560,14 @@ i32.const 5 i32.const 560 call $~lib/rt/__newArray - local.tee $5 + local.tee $3 i32.store offset=8 - local.get $5 - local.set $52 + local.get $3 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3603,14 +3587,14 @@ i32.const 6 i32.const 608 call $~lib/rt/__newArray - local.tee $8 + local.tee $5 i32.store offset=12 - local.get $8 - local.set $52 + local.get $5 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3624,12 +3608,12 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.set $52 + local.get $5 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3644,12 +3628,12 @@ call $~lib/builtins/abort unreachable end - local.get $8 - local.set $52 + local.get $5 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 1 call $~lib/array/Array#__get i32.const -1 @@ -3669,14 +3653,14 @@ i32.const 5 i32.const 640 call $~lib/rt/__newArray - local.tee $11 + local.tee $7 i32.store offset=16 - local.get $11 - local.set $52 + local.get $7 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3696,14 +3680,14 @@ i32.const 7 i32.const 688 call $~lib/rt/__newArray - local.tee $14 + local.tee $9 i32.store offset=20 - local.get $14 - local.set $52 + local.get $9 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3717,24 +3701,24 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.set $52 + local.get $9 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 1 call $~lib/array/Array#__get - local.set $15 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $16 + local.tee $11 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $17 + local.tee $12 i32.store offset=28 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3743,30 +3727,25 @@ i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $18 + local.tee $13 i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $18 - i32.load offset=4 - local.tee $19 - i32.store offset=36 - local.get $18 + local.get $13 i32.const 0 - local.get $16 + local.get $11 call $~lib/array/Array#__set - local.get $18 + local.get $13 i32.const 1 - local.get $17 + local.get $12 call $~lib/array/Array#__set - local.get $18 - local.tee $20 - i32.store offset=40 - local.get $20 - local.set $52 + local.get $13 + local.tee $14 + i32.store offset=36 + local.get $14 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3783,13 +3762,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $21 - i32.store offset=44 + local.tee $15 + i32.store offset=40 global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $22 - i32.store offset=48 + local.tee $16 + i32.store offset=44 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2 @@ -3797,30 +3776,25 @@ i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $23 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $23 - i32.load offset=4 - local.tee $24 - i32.store offset=56 - local.get $23 + local.tee $17 + i32.store offset=48 + local.get $17 i32.const 0 - local.get $21 + local.get $15 call $~lib/array/Array#__set - local.get $23 + local.get $17 i32.const 1 - local.get $22 + local.get $16 call $~lib/array/Array#__set - local.get $23 - local.tee $25 - i32.store offset=60 - local.get $25 - local.set $52 + local.get $17 + local.tee $18 + i32.store offset=52 + local.get $18 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 1 call $~lib/array/Array#__get drop @@ -3837,8 +3811,8 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-array/Ref#constructor - local.tee $26 - i32.store offset=64 + local.tee $19 + i32.store offset=56 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2 @@ -3846,30 +3820,25 @@ i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $27 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - local.get $27 - i32.load offset=4 - local.tee $28 - i32.store offset=72 - local.get $27 + local.tee $20 + i32.store offset=60 + local.get $20 i32.const 0 - local.get $26 + local.get $19 call $~lib/array/Array#__set - local.get $27 + local.get $20 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $27 - local.tee $29 - i32.store offset=76 - local.get $29 - local.set $52 + local.get $20 + local.tee $21 + i32.store offset=64 + local.get $21 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3889,14 +3858,14 @@ i32.const 10 i32.const 800 call $~lib/rt/__newArray - local.tee $32 - i32.store offset=80 - local.get $32 - local.set $52 + local.tee $23 + i32.store offset=68 + local.get $23 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array<~lib/string/String|null>#__get drop @@ -3916,14 +3885,14 @@ i32.const 11 i32.const 832 call $~lib/rt/__newArray - local.tee $35 - i32.store offset=84 - local.get $35 - local.set $52 + local.tee $25 + i32.store offset=72 + local.get $25 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3937,12 +3906,12 @@ call $~lib/builtins/abort unreachable end - local.get $35 - local.set $52 + local.get $25 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3963,14 +3932,14 @@ i32.const 11 i32.const 864 call $~lib/rt/__newArray - local.tee $38 - i32.store offset=88 - local.get $38 - local.set $52 + local.tee $27 + i32.store offset=76 + local.get $27 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -3984,12 +3953,12 @@ call $~lib/builtins/abort unreachable end - local.get $38 - local.set $52 + local.get $27 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4010,14 +3979,14 @@ i32.const 4 i32.const 896 call $~lib/rt/__newArray - local.tee $41 - i32.store offset=92 - local.get $41 - local.set $52 + local.tee $29 + i32.store offset=80 + local.get $29 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4031,12 +4000,12 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $52 + local.get $29 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4057,14 +4026,14 @@ i32.const 4 i32.const 928 call $~lib/rt/__newArray - local.tee $44 - i32.store offset=96 - local.get $44 - local.set $52 + local.tee $31 + i32.store offset=84 + local.get $31 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4078,12 +4047,12 @@ call $~lib/builtins/abort unreachable end - local.get $44 - local.set $52 + local.get $31 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array#__get drop @@ -4105,14 +4074,9 @@ i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $45 - i32.store offset=100 - global.get $~lib/memory/__stack_pointer - local.get $45 - i32.load offset=4 - local.tee $46 - i32.store offset=104 - local.get $45 + local.tee $32 + i32.store offset=88 + local.get $32 i32.const 0 i32.const 1 i32.const 2 @@ -4120,7 +4084,7 @@ i32.const 960 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $45 + local.get $32 i32.const 1 i32.const 1 i32.const 2 @@ -4128,15 +4092,15 @@ i32.const 992 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $45 - local.tee $51 - i32.store offset=108 - local.get $51 - local.set $52 + local.get $32 + local.tee $35 + i32.store offset=92 + local.get $35 + local.set $36 global.get $~lib/memory/__stack_pointer - local.get $52 + local.get $36 i32.store offset=4 - local.get $52 + local.get $36 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get drop @@ -4154,7 +4118,7 @@ i32.eqz drop global.get $~lib/memory/__stack_pointer - i32.const 112 + i32.const 96 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 48e8f1344f..55db29d7ed 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -2269,7 +2269,7 @@ (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 112 + i32.const 96 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2279,7 +2279,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 112 + i32.const 96 memory.fill memory.size i32.const 16 @@ -2433,10 +2433,6 @@ call $~lib/rt/__newArray local.tee $3 i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - i32.store offset=36 local.get $3 i32.const 0 local.get $0 @@ -2447,7 +2443,7 @@ call $~lib/array/Array#__set local.get $2 local.get $3 - i32.store offset=40 + i32.store offset=36 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 @@ -2457,11 +2453,11 @@ global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $0 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.set $2 global.get $~lib/memory/__stack_pointer @@ -2471,11 +2467,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $3 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - i32.store offset=56 + i32.store offset=48 local.get $3 i32.const 0 local.get $0 @@ -2486,7 +2478,7 @@ call $~lib/array/Array#__set local.get $2 local.get $3 - i32.store offset=60 + i32.store offset=52 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=4 @@ -2496,7 +2488,7 @@ global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor local.tee $0 - i32.store offset=64 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.set $1 global.get $~lib/memory/__stack_pointer @@ -2506,11 +2498,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=72 + i32.store offset=60 local.get $2 i32.const 0 local.get $0 @@ -2521,7 +2509,7 @@ call $~lib/array/Array#__set local.get $1 local.get $2 - i32.store offset=76 + i32.store offset=64 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 @@ -2535,7 +2523,7 @@ i32.const 1824 call $~lib/rt/__newArray local.tee $0 - i32.store offset=80 + i32.store offset=68 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2549,7 +2537,7 @@ i32.const 1856 call $~lib/rt/__newArray local.tee $0 - i32.store offset=84 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2571,7 +2559,7 @@ i32.const 1888 call $~lib/rt/__newArray local.tee $0 - i32.store offset=88 + i32.store offset=76 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2593,7 +2581,7 @@ i32.const 1920 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=80 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2611,7 +2599,7 @@ i32.const 1952 call $~lib/rt/__newArray local.tee $0 - i32.store offset=96 + i32.store offset=84 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2631,11 +2619,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=100 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=104 + i32.store offset=88 local.get $1 i32.const 0 i32.const 1 @@ -2654,7 +2638,7 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=108 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -2707,7 +2691,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 112 + i32.const 96 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index a2399cf78b..dbbf12c951 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -2626,7 +2626,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2651,17 +2650,17 @@ unreachable end global.get $infer-generic/arr - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 i32.const 176 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 call $~lib/array/Array#reduce drop @@ -2698,22 +2697,22 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $infer-generic/Ref#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 - local.set $3 + local.get $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 call $infer-generic/Ref#set:x - local.get $2 - local.set $3 + local.get $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $3 + local.get $2 call $infer-generic/inferDefault drop i32.const 1 diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat index c844be10d1..90ba543503 100644 --- a/tests/compiler/issues/2707.debug.wat +++ b/tests/compiler/issues/2707.debug.wat @@ -2440,7 +2440,6 @@ (func $start:issues/2707 (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2471,11 +2470,11 @@ i32.const 4 i32.const 64 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 global.set $~argumentsLength global.get $issues/2707/func diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat index bcb0349a4e..cb6ced6aba 100644 --- a/tests/compiler/issues/2873.debug.wat +++ b/tests/compiler/issues/2873.debug.wat @@ -4964,8 +4964,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -4997,17 +4995,17 @@ f32.const 1.100000023841858 i32.const 0 call $~lib/number/F32#toString - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 i32.const 1968 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5021,17 +5019,17 @@ f64.const 1.1 i32.const 0 call $~lib/number/F64#toString - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 i32.const 1968 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5043,29 +5041,29 @@ unreachable end global.get $issues/2873/f32arr - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=8 - local.get $4 + local.get $2 i32.const 2160 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=12 - local.get $4 + local.get $2 call $~lib/array/Array#join - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 i32.const 2192 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5077,29 +5075,29 @@ unreachable end global.get $issues/2873/f64arr - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=8 - local.get $4 + local.get $2 i32.const 2160 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=12 - local.get $4 + local.get $2 call $~lib/array/Array#join - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 i32.const 2192 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $4 + local.get $2 call $~lib/string/String.__eq i32.eqz if diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 9c7b8ab2d7..5864d93eba 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -3147,9 +3147,8 @@ ) (func $resolve-access/arrayAccess (result i32) (local $0 i32) - (local $1 i32) (local $arr i32) - (local $3 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3167,21 +3166,21 @@ local.tee $arr i32.store local.get $arr - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 10 call $~lib/number/U64#toString - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return ) (func $resolve-access/Container#constructor (param $this i32) (result i32) diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index cebaf35fa6..f6d7384348 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -6954,7 +6954,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6986,14 +6985,14 @@ i32.const 4 i32.const 32 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store - local.get $2 - local.set $3 + local.get $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32x4.extract_lane 0 diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index 46c5f163bf..805fdac3a4 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -3354,29 +3354,21 @@ (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) global.get $~lib/memory/__stack_pointer - i32.const 44 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 44 + i32.const 24 memory.fill global.get $std/array-literal/staticArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3390,11 +3382,11 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3409,11 +3401,11 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3428,11 +3420,11 @@ unreachable end global.get $std/array-literal/staticArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3447,11 +3439,11 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3465,11 +3457,11 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3484,11 +3476,11 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3503,11 +3495,11 @@ unreachable end global.get $std/array-literal/staticArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3522,11 +3514,11 @@ unreachable end global.get $std/array-literal/emptyArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -3562,18 +3554,13 @@ i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.load offset=4 - local.tee $7 - i32.store offset=8 - local.get $6 + local.get $3 i32.const 0 global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $6 + local.get $3 i32.const 1 global.get $std/array-literal/i i32.const 1 @@ -3581,7 +3568,7 @@ global.set $std/array-literal/i global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $6 + local.get $3 i32.const 2 global.get $std/array-literal/i i32.const 1 @@ -3589,14 +3576,14 @@ global.set $std/array-literal/i global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $6 + local.get $3 global.set $std/array-literal/dynamicArrayI8 global.get $std/array-literal/dynamicArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3610,11 +3597,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3629,11 +3616,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3648,11 +3635,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI8 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3674,18 +3661,13 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $8 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.load offset=4 - local.tee $9 - i32.store offset=16 - local.get $8 + local.tee $4 + i32.store offset=8 + local.get $4 i32.const 0 global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $8 + local.get $4 i32.const 1 global.get $std/array-literal/i i32.const 1 @@ -3693,7 +3675,7 @@ global.set $std/array-literal/i global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $8 + local.get $4 i32.const 2 global.get $std/array-literal/i i32.const 1 @@ -3701,14 +3683,14 @@ global.set $std/array-literal/i global.get $std/array-literal/i call $~lib/array/Array#__set - local.get $8 + local.get $4 global.set $std/array-literal/dynamicArrayI32 global.get $std/array-literal/dynamicArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3722,11 +3704,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -3741,11 +3723,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 1 @@ -3760,11 +3742,11 @@ unreachable end global.get $std/array-literal/dynamicArrayI32 - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -3784,36 +3766,31 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $10 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load offset=4 - local.tee $11 - i32.store offset=24 - local.get $10 + local.tee $5 + i32.store offset=12 + local.get $5 i32.const 0 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $10 + local.get $5 i32.const 1 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $10 + local.get $5 i32.const 2 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $10 + local.get $5 global.set $std/array-literal/dynamicArrayRef global.get $std/array-literal/dynamicArrayRef - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3832,36 +3809,31 @@ i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $12 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.load offset=4 - local.tee $13 - i32.store offset=32 - local.get $12 + local.tee $6 + i32.store offset=16 + local.get $6 i32.const 0 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $12 + local.get $6 i32.const 1 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $12 + local.get $6 i32.const 2 i32.const 0 call $std/array-literal/RefWithCtor#constructor call $~lib/array/Array#__set - local.get $12 + local.get $6 global.set $std/array-literal/dynamicArrayRefWithCtor global.get $std/array-literal/dynamicArrayRefWithCtor - local.set $16 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -3890,30 +3862,25 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $14 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.load offset=4 - local.tee $15 - i32.store offset=40 - local.get $14 + local.tee $7 + i32.store offset=20 + local.get $7 i32.const 0 i32.const 0 call $std/array-literal/Ref#constructor call $~lib/array/Array#__set - local.get $14 - local.set $16 + local.get $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $8 i32.store - local.get $16 + local.get $8 call $std/array-literal/doesntLeak global.get $~lib/memory/__heap_base global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 44 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index eb3f0fd313..a1e7cf5fff 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -2348,7 +2348,7 @@ (func $start:std/array-literal (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 44 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2364,7 +2364,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 44 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer i32.const 1088 @@ -2541,10 +2541,6 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=8 local.get $0 i32.const 0 global.get $std/array-literal/i @@ -2640,11 +2636,7 @@ i32.const 5 call $~lib/rt/__newArray local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=16 + i32.store offset=8 local.get $0 i32.const 0 global.get $std/array-literal/i @@ -2738,11 +2730,7 @@ i32.const 7 call $~lib/rt/__newArray local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=24 + i32.store offset=12 local.get $0 i32.const 0 call $std/array-literal/Ref#constructor @@ -2779,11 +2767,7 @@ i32.const 9 call $~lib/rt/__newArray local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=32 + i32.store offset=16 local.get $0 i32.const 0 call $std/array-literal/RefWithCtor#constructor @@ -2830,11 +2814,7 @@ i32.const 7 call $~lib/rt/__newArray local.tee $0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=40 + i32.store offset=20 local.get $0 i32.const 0 call $std/array-literal/Ref#constructor @@ -2878,7 +2858,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 44 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index 0c7b3bfbca..752b4957b2 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -33926,196 +33926,14 @@ (local $294 i32) (local $295 i32) (local $296 i32) - (local $297 i32) - (local $298 i32) - (local $299 i32) - (local $300 i32) - (local $301 i32) - (local $302 i32) - (local $303 i32) - (local $304 i32) - (local $305 i32) - (local $306 i32) - (local $307 i32) - (local $308 i32) - (local $309 i32) - (local $310 i32) - (local $311 i32) - (local $312 i32) - (local $313 i32) - (local $314 i32) - (local $315 i32) - (local $316 i32) - (local $317 i32) - (local $318 i32) - (local $319 i32) - (local $320 i32) - (local $321 i32) - (local $322 i32) - (local $323 i32) - (local $324 i32) - (local $325 i32) - (local $326 i32) - (local $327 i32) - (local $328 i32) - (local $329 i32) - (local $330 i32) - (local $331 i32) - (local $332 i32) - (local $333 i32) - (local $334 i32) - (local $335 i32) - (local $336 i32) - (local $337 i32) - (local $338 i32) - (local $339 i32) - (local $340 i32) - (local $341 i32) - (local $342 i32) - (local $343 i32) - (local $344 i32) - (local $345 i32) - (local $346 i32) - (local $347 i32) - (local $348 i32) - (local $349 i32) - (local $350 i32) - (local $351 i32) - (local $352 i32) - (local $353 i32) - (local $354 i32) - (local $355 i32) - (local $356 i32) - (local $357 i32) - (local $358 i32) - (local $359 i32) - (local $360 i32) - (local $361 i32) - (local $362 i32) - (local $363 i32) - (local $364 i32) - (local $365 i32) - (local $366 i32) - (local $367 i32) - (local $368 i32) - (local $369 i32) - (local $370 i32) - (local $371 i32) - (local $372 i32) - (local $373 i32) - (local $374 i32) - (local $375 i32) - (local $376 i32) - (local $377 i32) - (local $378 i32) - (local $379 i32) - (local $380 i32) - (local $381 i32) - (local $382 i32) - (local $383 i32) - (local $384 i32) - (local $385 i32) - (local $386 i32) - (local $387 i32) - (local $388 i32) - (local $389 i32) - (local $390 i32) - (local $391 i32) - (local $392 i32) - (local $393 i32) - (local $394 i32) - (local $395 i32) - (local $396 i32) - (local $397 i32) - (local $398 i32) - (local $399 i32) - (local $400 i32) - (local $401 i32) - (local $402 i32) - (local $403 i32) - (local $404 i32) - (local $405 i32) - (local $406 i32) - (local $407 i32) - (local $408 i32) - (local $409 i32) - (local $410 i32) - (local $411 i32) - (local $412 i32) - (local $413 i32) - (local $414 i32) - (local $415 i32) - (local $416 i32) - (local $417 i32) - (local $418 i32) - (local $419 i32) - (local $420 i32) - (local $421 i32) - (local $422 i32) - (local $423 i32) - (local $424 i32) - (local $425 i32) - (local $426 i32) - (local $427 i32) - (local $428 i32) - (local $429 i32) - (local $430 i32) - (local $431 i32) - (local $432 i32) - (local $433 i32) - (local $434 i32) - (local $435 i32) - (local $436 i32) - (local $437 i32) - (local $438 i32) - (local $439 i32) - (local $440 i32) - (local $441 i32) - (local $442 i32) - (local $443 i32) - (local $444 i32) - (local $445 i32) - (local $446 i32) - (local $447 i32) - (local $448 i32) - (local $449 i32) - (local $450 i32) - (local $451 i32) - (local $452 i32) - (local $453 i32) - (local $454 i32) - (local $455 i32) - (local $456 i32) - (local $457 i32) - (local $458 i32) - (local $459 i32) - (local $460 i32) - (local $461 i32) - (local $462 i32) - (local $463 i32) - (local $464 i32) - (local $465 i32) - (local $466 i32) - (local $467 i32) - (local $468 i32) - (local $469 i32) - (local $470 i32) - (local $471 i32) - (local $472 i32) - (local $473 i32) - (local $474 i32) - (local $475 i32) - (local $476 i32) - (local $477 i32) - (local $478 i32) - global.get $~lib/memory/__stack_pointer - i32.const 508 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 508 + global.get $~lib/memory/__stack_pointer + i32.const 448 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 448 memory.fill i32.const 0 i32.const 0 @@ -34165,11 +33983,11 @@ i32.const 0 i32.const 0 call $std/array/Ref#constructor - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array.isArray i32.eqz i32.eqz @@ -34184,11 +34002,11 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#constructor - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> i32.eqz i32.eqz @@ -34213,11 +34031,11 @@ unreachable end i32.const 640 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array.isArray<~lib/string/String> i32.eqz i32.eqz @@ -34230,11 +34048,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array.isArray<~lib/array/Array> i32.eqz if @@ -34251,35 +34069,35 @@ i32.const 7 i32.const 672 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 704 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34291,12 +34109,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 0 i32.const 1 @@ -34304,22 +34122,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 736 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34331,33 +34149,33 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 768 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34369,12 +34187,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -2 i32.const 2 @@ -34382,22 +34200,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 800 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34409,33 +34227,33 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 832 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34447,12 +34265,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -1 i32.const 0 i32.const 1 @@ -34460,22 +34278,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $2 - local.set $478 + local.get $1 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 0 i32.const 7 i32.const 864 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34493,35 +34311,35 @@ i32.const 8 i32.const 896 call $~lib/rt/__newArray - local.tee $17 + local.tee $9 i32.store offset=12 - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 944 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34533,12 +34351,12 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 0 i32.const 1 @@ -34546,22 +34364,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 992 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34573,33 +34391,33 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 1040 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34611,12 +34429,12 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -2 i32.const 2 @@ -34624,22 +34442,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 1088 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34651,33 +34469,33 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 1136 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34689,12 +34507,12 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -1 i32.const 0 i32.const 1 @@ -34702,22 +34520,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $17 - local.set $478 + local.get $9 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 1184 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34735,35 +34553,35 @@ i32.const 9 i32.const 1232 call $~lib/rt/__newArray - local.tee $32 + local.tee $17 i32.store offset=16 - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1280 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34775,12 +34593,12 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 0 i32.const 0 i32.const 1 @@ -34788,22 +34606,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1328 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34815,33 +34633,33 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1376 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34853,12 +34671,12 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 2 i32.const -2 i32.const 2 @@ -34866,22 +34684,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1424 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34893,33 +34711,33 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1472 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34931,12 +34749,12 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const -1 i32.const 0 i32.const 1 @@ -34944,22 +34762,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1520 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -34971,12 +34789,12 @@ call $~lib/builtins/abort unreachable end - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const -0 i32.const 0 i32.const 1 @@ -34984,22 +34802,22 @@ i32.const 0 call $~lib/array/Array#fill@varargs drop - local.get $32 - local.set $478 + local.get $17 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 9 i32.const 1568 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -35012,11 +34830,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -35030,11 +34848,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35048,20 +34866,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 42 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -35076,11 +34894,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -35094,11 +34912,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35112,14 +34930,14 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop - local.set $47 - local.get $47 + local.set $25 + local.get $25 i32.const 42 i32.eq i32.eqz @@ -35132,11 +34950,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -35150,11 +34968,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35168,20 +34986,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -35195,11 +35013,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35213,11 +35031,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35232,20 +35050,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 44 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -35259,11 +35077,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35277,11 +35095,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35296,11 +35114,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -35315,20 +35133,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 45 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -35342,11 +35160,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35360,11 +35178,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35379,11 +35197,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -35398,11 +35216,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -35423,42 +35241,37 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $48 + local.tee $26 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $48 - i32.load offset=4 - local.tee $49 - i32.store offset=24 - local.get $48 + local.get $26 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $48 + local.get $26 i32.const 1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $48 - local.tee $50 - i32.store offset=28 - local.get $50 - local.set $478 + local.get $26 + local.tee $27 + i32.store offset=24 + local.get $27 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#set:length - local.get $50 - local.set $478 + local.get $27 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -35477,14 +35290,14 @@ i32.const 4 i32.const 1664 call $~lib/rt/__newArray - local.tee $53 - i32.store offset=32 - local.get $53 - local.set $478 + local.tee $29 + i32.store offset=28 + local.get $29 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -35498,12 +35311,12 @@ call $~lib/builtins/abort unreachable end - local.get $53 - local.set $478 + local.get $29 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -35517,12 +35330,12 @@ call $~lib/builtins/abort unreachable end - local.get $53 - local.set $478 + local.get $29 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -35536,12 +35349,12 @@ call $~lib/builtins/abort unreachable end - local.get $53 - local.set $478 + local.get $29 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -35559,30 +35372,30 @@ i32.const 0 i32.const 0 call $~lib/array/Array#constructor - local.tee $54 - i32.store offset=36 + local.tee $30 + i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $54 - local.set $478 + local.get $296 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#concat - local.tee $55 - i32.store offset=40 + local.tee $31 + i32.store offset=36 global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35596,11 +35409,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -35613,12 +35426,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -35631,30 +35444,30 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 1712 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#concat drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35667,12 +35480,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35686,12 +35499,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -35705,12 +35518,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -35724,46 +35537,46 @@ call $~lib/builtins/abort unreachable end - local.get $54 - local.set $478 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 46 call $~lib/array/Array#push drop - local.get $54 - local.set $478 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 47 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $54 - local.set $478 + local.get $296 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#concat - local.tee $55 - i32.store offset=40 + local.tee $31 + i32.store offset=36 global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -35776,12 +35589,12 @@ call $~lib/builtins/abort unreachable end - local.get $54 - local.set $478 + local.get $30 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -35794,12 +35607,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 5 i32.eq @@ -35812,12 +35625,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -35831,12 +35644,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -35850,12 +35663,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -35869,12 +35682,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -35888,12 +35701,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -35907,20 +35720,20 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop - local.get $55 - local.set $478 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -35939,14 +35752,14 @@ i32.const 4 i32.const 1744 call $~lib/rt/__newArray - local.tee $60 - i32.store offset=44 - local.get $60 - local.set $478 + local.tee $34 + i32.store offset=40 + local.get $34 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -35960,27 +35773,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $60 - local.set $478 + local.get $34 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#concat - local.tee $55 - i32.store offset=40 - local.get $55 - local.set $478 + local.tee $31 + i32.store offset=36 + local.get $31 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -35993,12 +35806,12 @@ call $~lib/builtins/abort unreachable end - local.get $60 - local.set $478 + local.get $34 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -36017,35 +35830,35 @@ i32.const 4 i32.const 1776 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 1824 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36063,35 +35876,35 @@ i32.const 4 i32.const 1872 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const 3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 1920 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36109,35 +35922,35 @@ i32.const 4 i32.const 1968 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2016 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36155,35 +35968,35 @@ i32.const 4 i32.const 2064 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 2 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2112 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36201,33 +36014,33 @@ i32.const 4 i32.const 2160 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2208 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36245,33 +36058,33 @@ i32.const 4 i32.const 2256 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2304 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36289,33 +36102,33 @@ i32.const 4 i32.const 2352 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2400 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36333,35 +36146,35 @@ i32.const 4 i32.const 2448 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const -2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2496 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36379,33 +36192,33 @@ i32.const 4 i32.const 2544 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2592 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36423,33 +36236,33 @@ i32.const 4 i32.const 2640 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36467,33 +36280,33 @@ i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2784 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36511,35 +36324,35 @@ i32.const 4 i32.const 2832 call $~lib/rt/__newArray - local.tee $63 - i32.store offset=48 - local.get $63 - local.set $478 + local.tee $36 + i32.store offset=44 + local.get $36 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -4 i32.const -3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#copyWithin@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 2880 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -36552,20 +36365,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 42 call $~lib/array/Array#unshift drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -36579,11 +36392,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -36597,11 +36410,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -36616,11 +36429,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -36635,11 +36448,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -36654,11 +36467,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -36673,20 +36486,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 41 call $~lib/array/Array#unshift drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 5 i32.eq @@ -36700,11 +36513,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -36718,11 +36531,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -36737,11 +36550,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -36756,11 +36569,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -36775,11 +36588,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -36794,11 +36607,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -36813,11 +36626,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#shift global.set $std/array/i global.get $std/array/i @@ -36833,11 +36646,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -36851,11 +36664,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -36869,11 +36682,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -36888,11 +36701,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -36907,11 +36720,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -36926,11 +36739,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -36945,11 +36758,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -36965,11 +36778,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -36983,11 +36796,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -37001,11 +36814,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -37020,11 +36833,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -37039,11 +36852,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -37063,38 +36876,38 @@ i32.const 4 i32.const 2928 call $~lib/rt/__newArray - local.tee $113 - i32.store offset=56 + local.tee $62 + i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 4 i32.const 2976 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37107,33 +36920,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3008 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37146,33 +36959,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 3040 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37185,31 +36998,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $113 - local.set $478 + local.get $296 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37222,35 +37035,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -2 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37263,33 +37076,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3120 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37302,33 +37115,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $110 - i32.store offset=60 - local.get $110 - local.set $478 + local.tee $60 + i32.store offset=56 + local.get $60 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3152 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -37340,20 +37153,20 @@ call $~lib/builtins/abort unreachable end - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -37366,22 +37179,22 @@ call $~lib/builtins/abort unreachable end - local.get $113 - local.set $478 + local.get $62 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 10 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#slice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -37395,19 +37208,19 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -37421,11 +37234,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -37439,11 +37252,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -37458,11 +37271,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -37477,11 +37290,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -37496,20 +37309,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 44 call $~lib/array/Array#push drop @@ -37519,45 +37332,45 @@ i32.const 7 i32.const 3184 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $128 - i32.store offset=64 + local.tee $70 + i32.store offset=60 i32.const 0 - local.set $129 - local.get $128 - local.set $478 + local.set $71 + local.get $70 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $130 + local.set $72 loop $for-loop|0 - local.get $129 - local.get $130 + local.get $71 + local.get $72 i32.lt_s if - local.get $128 - local.set $478 + local.get $70 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $129 + local.get $296 + local.get $71 call $~lib/array/Array#__get - local.get $128 - local.set $478 + local.get $70 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $129 + local.get $71 i32.sub i32.const 1 i32.sub @@ -37571,10 +37384,10 @@ call $~lib/builtins/abort unreachable end - local.get $129 + local.get $71 i32.const 1 i32.add - local.set $129 + local.set $71 br $for-loop|0 end end @@ -37584,45 +37397,45 @@ i32.const 7 i32.const 3216 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $133 - i32.store offset=68 + local.tee $74 + i32.store offset=64 i32.const 0 - local.set $134 - local.get $133 - local.set $478 + local.set $75 + local.get $74 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $135 + local.set $76 loop $for-loop|1 - local.get $134 - local.get $135 + local.get $75 + local.get $76 i32.lt_s if - local.get $133 - local.set $478 + local.get $74 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $134 + local.get $296 + local.get $75 call $~lib/array/Array#__get - local.get $133 - local.set $478 + local.get $74 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $134 + local.get $75 i32.sub i32.const 1 i32.sub @@ -37636,10 +37449,10 @@ call $~lib/builtins/abort unreachable end - local.get $134 + local.get $75 i32.const 1 i32.add - local.set $134 + local.set $75 br $for-loop|1 end end @@ -37649,45 +37462,45 @@ i32.const 7 i32.const 3248 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $138 - i32.store offset=72 + local.tee $78 + i32.store offset=68 i32.const 0 - local.set $139 - local.get $138 - local.set $478 + local.set $79 + local.get $78 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $140 + local.set $80 loop $for-loop|2 - local.get $139 - local.get $140 + local.get $79 + local.get $80 i32.lt_s if - local.get $138 - local.set $478 + local.get $78 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $139 + local.get $296 + local.get $79 call $~lib/array/Array#__get - local.get $138 - local.set $478 + local.get $78 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $139 + local.get $79 i32.sub i32.const 1 i32.sub @@ -37701,10 +37514,10 @@ call $~lib/builtins/abort unreachable end - local.get $139 + local.get $79 i32.const 1 i32.add - local.set $139 + local.set $79 br $for-loop|2 end end @@ -37714,45 +37527,45 @@ i32.const 11 i32.const 3296 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $143 - i32.store offset=76 + local.tee $82 + i32.store offset=72 i32.const 0 - local.set $144 - local.get $143 - local.set $478 + local.set $83 + local.get $82 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $145 + local.set $84 loop $for-loop|3 - local.get $144 - local.get $145 + local.get $83 + local.get $84 i32.lt_s if - local.get $143 - local.set $478 + local.get $82 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $144 + local.get $296 + local.get $83 call $~lib/array/Array#__get - local.get $143 - local.set $478 + local.get $82 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $144 + local.get $83 i32.sub i32.const 1 i32.sub @@ -37766,10 +37579,10 @@ call $~lib/builtins/abort unreachable end - local.get $144 + local.get $83 i32.const 1 i32.add - local.set $144 + local.set $83 br $for-loop|3 end end @@ -37779,45 +37592,45 @@ i32.const 11 i32.const 3344 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $148 - i32.store offset=80 + local.tee $86 + i32.store offset=76 i32.const 0 - local.set $149 - local.get $148 - local.set $478 + local.set $87 + local.get $86 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $150 + local.set $88 loop $for-loop|4 - local.get $149 - local.get $150 + local.get $87 + local.get $88 i32.lt_s if - local.get $148 - local.set $478 + local.get $86 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $149 + local.get $296 + local.get $87 call $~lib/array/Array#__get - local.get $148 - local.set $478 + local.get $86 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $149 + local.get $87 i32.sub i32.const 1 i32.sub @@ -37831,10 +37644,10 @@ call $~lib/builtins/abort unreachable end - local.get $149 + local.get $87 i32.const 1 i32.add - local.set $149 + local.set $87 br $for-loop|4 end end @@ -37844,45 +37657,45 @@ i32.const 11 i32.const 3392 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#reverse - local.tee $153 - i32.store offset=84 + local.tee $90 + i32.store offset=80 i32.const 0 - local.set $154 - local.get $153 - local.set $478 + local.set $91 + local.get $90 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.set $155 + local.set $92 loop $for-loop|5 - local.get $154 - local.get $155 + local.get $91 + local.get $92 i32.lt_s if - local.get $153 - local.set $478 + local.get $90 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $154 + local.get $296 + local.get $91 call $~lib/array/Array#__get - local.get $153 - local.set $478 + local.get $90 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length - local.get $154 + local.get $91 i32.sub i32.const 1 i32.sub @@ -37896,19 +37709,19 @@ call $~lib/builtins/abort unreachable end - local.get $154 + local.get $91 i32.const 1 i32.add - local.set $154 + local.set $91 br $for-loop|5 end end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 44 i32.const 0 call $~lib/array/Array#indexOf @@ -37926,11 +37739,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 42 i32.const 0 call $~lib/array/Array#indexOf @@ -37948,11 +37761,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 45 i32.const 0 call $~lib/array/Array#indexOf @@ -37970,11 +37783,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 100 call $~lib/array/Array#indexOf @@ -37992,11 +37805,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -100 call $~lib/array/Array#indexOf @@ -38014,11 +37827,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -2 call $~lib/array/Array#indexOf @@ -38036,11 +37849,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -4 call $~lib/array/Array#indexOf @@ -38058,11 +37871,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 0 call $~lib/array/Array#indexOf @@ -38080,11 +37893,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 1 call $~lib/array/Array#indexOf @@ -38102,11 +37915,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 2 call $~lib/array/Array#indexOf @@ -38128,11 +37941,11 @@ i32.const 9 i32.const 3440 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#indexOf @@ -38152,11 +37965,11 @@ i32.const 12 i32.const 3472 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#indexOf @@ -38177,14 +37990,14 @@ i32.const 4 i32.const 3504 call $~lib/rt/__newArray - local.tee $162 - i32.store offset=88 - local.get $162 - local.set $478 + local.tee $96 + i32.store offset=84 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -38201,12 +38014,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 7 i32.const 1 global.set $~argumentsLength @@ -38223,12 +38036,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 3 call $~lib/array/Array#lastIndexOf @@ -38243,12 +38056,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 call $~lib/array/Array#lastIndexOf @@ -38263,12 +38076,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -2 call $~lib/array/Array#lastIndexOf @@ -38283,12 +38096,12 @@ call $~lib/builtins/abort unreachable end - local.get $162 - local.set $478 + local.get $96 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const -1 call $~lib/array/Array#lastIndexOf @@ -38304,16 +38117,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 44 i32.const 0 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38326,16 +38139,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 42 i32.const 0 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38348,16 +38161,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 45 i32.const 0 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 0 i32.eq i32.eqz @@ -38370,16 +38183,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 100 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 0 i32.eq i32.eqz @@ -38392,16 +38205,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -100 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38414,16 +38227,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -2 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38436,16 +38249,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const -4 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38458,16 +38271,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 0 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38480,16 +38293,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 1 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38502,16 +38315,16 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 43 i32.const 2 call $~lib/array/Array#includes - local.set $163 - local.get $163 + local.set $97 + local.get $97 i32.const 1 i32.eq i32.eqz @@ -38528,11 +38341,11 @@ i32.const 9 i32.const 3552 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#includes @@ -38550,11 +38363,11 @@ i32.const 12 i32.const 3584 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#includes @@ -38568,21 +38381,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -38596,11 +38409,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/internalCapacity i32.const 8 i32.eq @@ -38614,11 +38427,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -38633,11 +38446,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -38657,34 +38470,34 @@ i32.const 4 i32.const 3616 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#splice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38696,22 +38509,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 3712 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38729,32 +38542,32 @@ i32.const 4 i32.const 3744 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 3792 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38766,22 +38579,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 3824 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38799,34 +38612,34 @@ i32.const 4 i32.const 3872 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 2 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#splice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 4 i32.const 3920 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38838,22 +38651,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38871,32 +38684,32 @@ i32.const 4 i32.const 3984 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38908,22 +38721,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38941,32 +38754,32 @@ i32.const 4 i32.const 4096 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -38978,22 +38791,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39011,34 +38824,34 @@ i32.const 4 i32.const 4224 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#splice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 4272 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39050,22 +38863,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 4304 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39083,34 +38896,34 @@ i32.const 4 i32.const 4352 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -2 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#splice@varargs - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 4400 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39122,22 +38935,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 4 i32.const 4432 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39155,32 +38968,32 @@ i32.const 4 i32.const 4464 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 4512 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39192,22 +39005,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 4544 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39225,32 +39038,32 @@ i32.const 4 i32.const 4592 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 4640 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39262,22 +39075,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 4 i32.const 2 i32.const 4 i32.const 4672 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39295,32 +39108,32 @@ i32.const 4 i32.const 4720 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 4768 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39332,22 +39145,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 4800 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39365,32 +39178,32 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 4896 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39402,22 +39215,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 4928 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39435,32 +39248,32 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 5024 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39472,22 +39285,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 5056 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39505,32 +39318,32 @@ i32.const 4 i32.const 5104 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 5152 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39542,22 +39355,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 5184 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39575,32 +39388,32 @@ i32.const 4 i32.const 5232 call $~lib/rt/__newArray - local.tee $170 - i32.store offset=92 - local.get $170 - local.set $478 + local.tee $101 + i32.store offset=88 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 2 i32.const 4 i32.const 5280 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39612,22 +39425,22 @@ call $~lib/builtins/abort unreachable end - local.get $170 - local.set $478 + local.get $101 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 5312 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -39645,26 +39458,26 @@ i32.const 10 i32.const 5360 call $~lib/rt/__newArray - local.tee $255 - i32.store offset=96 + local.tee $144 + i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 call $~lib/array/Array#splice - local.tee $256 - i32.store offset=100 - local.get $256 - local.set $478 + local.tee $145 + i32.store offset=96 + local.get $145 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -39677,12 +39490,12 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -39702,64 +39515,59 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $257 - i32.store offset=104 - global.get $~lib/memory/__stack_pointer - local.get $257 - i32.load offset=4 - local.tee $258 - i32.store offset=108 - local.get $257 + local.tee $146 + i32.store offset=100 + local.get $146 i32.const 0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 + local.get $146 i32.const 1 i32.const 0 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 + local.get $146 i32.const 2 i32.const 0 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 + local.get $146 i32.const 3 i32.const 0 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 + local.get $146 i32.const 4 i32.const 0 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $257 - local.tee $255 - i32.store offset=96 + local.get $146 + local.tee $144 + i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $256 - i32.store offset=100 - local.get $256 - local.set $478 + local.tee $145 + i32.store offset=96 + local.get $145 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -39772,19 +39580,19 @@ call $~lib/builtins/abort unreachable end - local.get $256 - local.set $478 + local.get $145 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 3 i32.eq @@ -39797,19 +39605,19 @@ call $~lib/builtins/abort unreachable end - local.get $256 - local.set $478 + local.get $145 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 4 i32.eq @@ -39822,12 +39630,12 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -39840,19 +39648,19 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 1 i32.eq @@ -39865,19 +39673,19 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 2 i32.eq @@ -39890,19 +39698,19 @@ call $~lib/builtins/abort unreachable end - local.get $255 - local.set $478 + local.get $144 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 5 i32.eq @@ -39922,50 +39730,45 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $259 - i32.store offset=112 - global.get $~lib/memory/__stack_pointer - local.get $259 - i32.load offset=4 - local.tee $260 - i32.store offset=116 - local.get $259 + local.tee $147 + i32.store offset=104 + local.get $147 i32.const 0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $259 + local.get $147 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $259 + local.get $147 i32.const 2 i32.const 0 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $259 - local.tee $261 - i32.store offset=120 + local.get $147 + local.tee $148 + i32.store offset=108 global.get $~lib/memory/__stack_pointer - local.get $261 - local.set $478 + local.get $148 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $262 - i32.store offset=124 - local.get $262 - local.set $478 + local.tee $149 + i32.store offset=112 + local.get $149 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -39979,19 +39782,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $262 - local.set $478 + local.get $149 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get - local.tee $263 - i32.store offset=128 - local.get $263 + local.tee $150 + i32.store offset=116 + local.get $150 if (result i32) - local.get $263 + local.get $150 else i32.const 5520 i32.const 528 @@ -40000,11 +39803,11 @@ call $~lib/builtins/abort unreachable end - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 1 i32.eq @@ -40017,12 +39820,12 @@ call $~lib/builtins/abort unreachable end - local.get $261 - local.set $478 + local.get $148 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -40035,12 +39838,12 @@ call $~lib/builtins/abort unreachable end - local.get $261 - local.set $478 + local.get $148 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 0 @@ -40055,19 +39858,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $261 - local.set $478 + local.get $148 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get - local.tee $264 - i32.store offset=132 - local.get $264 + local.tee $151 + i32.store offset=120 + local.get $151 if (result i32) - local.get $264 + local.get $151 else i32.const 5520 i32.const 528 @@ -40076,11 +39879,11 @@ call $~lib/builtins/abort unreachable end - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/Ref#get:v i32.const 2 i32.eq @@ -40094,53 +39897,53 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 3 call $~lib/array/Array#__set global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5648 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40156,17 +39959,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5680 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40182,17 +39985,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5712 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40208,17 +40011,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5744 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40234,11 +40037,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -40252,17 +40055,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5776 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40278,49 +40081,49 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5808 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -40336,11 +40139,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -40354,20 +40157,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop @@ -40377,20 +40180,20 @@ i32.const 4 i32.const 5840 call $~lib/rt/__newArray - local.tee $267 - i32.store offset=136 - local.get $267 - local.set $478 + local.tee $153 + i32.store offset=124 + local.get $153 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5888 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -40405,18 +40208,18 @@ call $~lib/builtins/abort unreachable end - local.get $267 - local.set $478 + local.get $153 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5920 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -40431,18 +40234,18 @@ call $~lib/builtins/abort unreachable end - local.get $267 - local.set $478 + local.get $153 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5952 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -40457,18 +40260,18 @@ call $~lib/builtins/abort unreachable end - local.get $267 - local.set $478 + local.get $153 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5984 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#findLastIndex global.set $std/array/i global.get $std/array/i @@ -40484,20 +40287,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6016 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 1 i32.eq i32.eqz @@ -40510,20 +40313,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6048 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 0 i32.eq i32.eqz @@ -40536,20 +40339,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6080 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 1 i32.eq i32.eqz @@ -40562,11 +40365,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -40580,20 +40383,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6112 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 0 i32.eq i32.eqz @@ -40606,52 +40409,52 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6144 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#every - local.set $268 - local.get $268 + local.set $154 + local.get $154 i32.const 1 i32.eq i32.eqz @@ -40664,11 +40467,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -40682,38 +40485,38 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6176 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 1 i32.eq i32.eqz @@ -40726,20 +40529,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6208 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 0 i32.eq i32.eqz @@ -40752,20 +40555,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6240 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 0 i32.eq i32.eqz @@ -40778,11 +40581,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -40796,20 +40599,20 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6272 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 1 i32.eq i32.eqz @@ -40822,52 +40625,52 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6304 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#some - local.set $269 - local.get $269 + local.set $155 + local.get $155 i32.const 0 i32.eq i32.eqz @@ -40880,11 +40683,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -40898,37 +40701,37 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6336 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 @@ -40945,17 +40748,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6368 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 @@ -40970,11 +40773,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -40990,17 +40793,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6400 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/i i32.const 406 @@ -41015,51 +40818,51 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6432 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/i i32.const 1 @@ -41074,11 +40877,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41092,42 +40895,42 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 6464 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#forEach global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 100 i32.eq @@ -41141,101 +40944,101 @@ unreachable end i32.const 0 - local.set $270 + local.set $156 loop $for-loop|6 - local.get $270 + local.get $156 i32.const 100 i32.lt_s if global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop - local.get $270 + local.get $156 i32.const 1 i32.add - local.set $270 + local.set $156 br $for-loop|6 end end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8272 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map<~lib/string/String> - local.tee $271 - i32.store offset=140 + local.tee $157 + i32.store offset=128 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8304 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map - local.tee $272 - i32.store offset=144 - local.get $272 - local.set $478 + local.tee $158 + i32.store offset=132 + local.get $158 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -41248,20 +41051,20 @@ call $~lib/builtins/abort unreachable end - local.get $272 - local.set $478 + local.get $158 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s @@ -41278,17 +41081,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8336 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map drop global.get $std/array/i @@ -41304,11 +41107,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -41324,17 +41127,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8368 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map drop global.get $std/array/i @@ -41350,51 +41153,51 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8400 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#map drop global.get $std/array/i @@ -41410,11 +41213,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41428,45 +41231,45 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8432 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#filter - local.tee $273 - i32.store offset=148 - local.get $273 - local.set $478 + local.tee $159 + i32.store offset=136 + local.get $159 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41482,17 +41285,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8464 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#filter drop global.get $std/array/i @@ -41508,11 +41311,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -41528,17 +41331,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8496 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#filter drop global.get $std/array/i @@ -41554,51 +41357,51 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8528 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array#filter drop global.get $std/array/i @@ -41614,11 +41417,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41632,35 +41435,35 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8560 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -41677,17 +41480,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8592 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $~lib/array/Array#reduce global.set $std/array/i @@ -41704,21 +41507,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8624 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce - local.set $274 - local.get $274 + local.set $160 + local.get $160 i32.const 0 i32.ne i32.const 1 @@ -41733,21 +41536,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8656 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce - local.set $274 - local.get $274 + local.set $160 + local.get $160 i32.const 0 i32.ne i32.const 0 @@ -41762,17 +41565,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8688 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -41789,11 +41592,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -41807,17 +41610,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8720 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -41834,49 +41637,49 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8752 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -41893,11 +41696,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -41911,35 +41714,35 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8784 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -41956,17 +41759,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8816 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -41983,21 +41786,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8848 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight - local.set $275 - local.get $275 + local.set $161 + local.get $161 i32.const 0 i32.ne i32.const 1 @@ -42012,21 +41815,21 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8880 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight - local.set $275 - local.get $275 + local.set $161 + local.get $161 i32.const 0 i32.ne i32.const 0 @@ -42041,17 +41844,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8912 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -42068,11 +41871,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -42086,17 +41889,17 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8944 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -42113,49 +41916,49 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8976 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -42172,11 +41975,11 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -42190,38 +41993,38 @@ unreachable end global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#push drop @@ -42234,314 +42037,309 @@ i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $276 - i32.store offset=152 - global.get $~lib/memory/__stack_pointer - local.get $276 - i32.load offset=4 - local.tee $277 - i32.store offset=156 - local.get $276 + local.tee $162 + i32.store offset=140 + local.get $162 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $278 - i32.store offset=160 - local.get $278 - local.set $478 + local.tee $163 + i32.store offset=144 + local.get $163 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $278 - local.set $478 + local.get $163 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 80 call $std/array/Dim#set:width - local.get $278 + local.get $163 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $279 - i32.store offset=164 - local.get $279 - local.set $478 + local.tee $164 + i32.store offset=148 + local.get $164 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 90 call $std/array/Dim#set:height - local.get $279 - local.set $478 + local.get $164 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 90 call $std/array/Dim#set:width - local.get $279 + local.get $164 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 2 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $280 - i32.store offset=168 - local.get $280 - local.set $478 + local.tee $165 + i32.store offset=152 + local.get $165 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $280 - local.set $478 + local.get $165 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 95 call $std/array/Dim#set:width - local.get $280 + local.get $165 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 3 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $281 - i32.store offset=172 - local.get $281 - local.set $478 + local.tee $166 + i32.store offset=156 + local.get $166 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $281 - local.set $478 + local.get $166 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:width - local.get $281 + local.get $166 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 4 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $282 - i32.store offset=176 - local.get $282 - local.set $478 + local.tee $167 + i32.store offset=160 + local.get $167 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 80 call $std/array/Dim#set:height - local.get $282 - local.set $478 + local.get $167 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 110 call $std/array/Dim#set:width - local.get $282 + local.get $167 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 5 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $283 - i32.store offset=180 - local.get $283 - local.set $478 + local.tee $168 + i32.store offset=164 + local.get $168 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 110 call $std/array/Dim#set:height - local.get $283 - local.set $478 + local.get $168 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 115 call $std/array/Dim#set:width - local.get $283 + local.get $168 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 6 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $284 - i32.store offset=184 - local.get $284 - local.set $478 + local.tee $169 + i32.store offset=168 + local.get $169 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $284 - local.set $478 + local.get $169 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 120 call $std/array/Dim#set:width - local.get $284 + local.get $169 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 7 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $285 - i32.store offset=188 - local.get $285 - local.set $478 + local.tee $170 + i32.store offset=172 + local.get $170 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $285 - local.set $478 + local.get $170 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 125 call $std/array/Dim#set:width - local.get $285 + local.get $170 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 8 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $286 - i32.store offset=192 - local.get $286 - local.set $478 + local.tee $171 + i32.store offset=176 + local.get $171 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $286 - local.set $478 + local.get $171 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 130 call $std/array/Dim#set:width - local.get $286 + local.get $171 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 9 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $287 - i32.store offset=196 - local.get $287 - local.set $478 + local.tee $172 + i32.store offset=180 + local.get $172 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $287 - local.set $478 + local.get $172 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 135 call $std/array/Dim#set:width - local.get $287 + local.get $172 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 10 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $288 - i32.store offset=200 - local.get $288 - local.set $478 + local.tee $173 + i32.store offset=184 + local.get $173 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 75 call $std/array/Dim#set:height - local.get $288 - local.set $478 + local.get $173 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $288 + local.get $173 call $~lib/array/Array#__set - local.get $276 + local.get $162 i32.const 11 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $289 - i32.store offset=204 - local.get $289 - local.set $478 + local.tee $174 + i32.store offset=188 + local.get $174 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $289 - local.set $478 + local.get $174 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $289 + local.get $174 call $~lib/array/Array#__set - local.get $276 + local.get $162 global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer i32.const 12 @@ -42549,314 +42347,309 @@ i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $290 - i32.store offset=208 - global.get $~lib/memory/__stack_pointer - local.get $290 - i32.load offset=4 - local.tee $291 - i32.store offset=212 - local.get $290 + local.tee $175 + i32.store offset=192 + local.get $175 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $292 - i32.store offset=216 - local.get $292 - local.set $478 + local.tee $176 + i32.store offset=196 + local.get $176 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $292 - local.set $478 + local.get $176 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 95 call $std/array/Dim#set:width - local.get $292 + local.get $176 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $293 - i32.store offset=220 - local.get $293 - local.set $478 + local.tee $177 + i32.store offset=200 + local.get $177 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $293 - local.set $478 + local.get $177 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 125 call $std/array/Dim#set:width - local.get $293 + local.get $177 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 2 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $294 - i32.store offset=224 - local.get $294 - local.set $478 + local.tee $178 + i32.store offset=204 + local.get $178 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $294 - local.set $478 + local.get $178 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 130 call $std/array/Dim#set:width - local.get $294 + local.get $178 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 3 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $295 - i32.store offset=228 - local.get $295 - local.set $478 + local.tee $179 + i32.store offset=208 + local.get $179 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 70 call $std/array/Dim#set:height - local.get $295 - local.set $478 + local.get $179 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $295 + local.get $179 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 4 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $296 - i32.store offset=232 - local.get $296 - local.set $478 + local.tee $180 + i32.store offset=212 + local.get $180 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 75 call $std/array/Dim#set:height - local.get $296 - local.set $478 + local.get $180 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 140 call $std/array/Dim#set:width - local.get $296 + local.get $180 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 5 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $297 - i32.store offset=236 - local.get $297 - local.set $478 + local.tee $181 + i32.store offset=216 + local.get $181 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 80 call $std/array/Dim#set:height - local.get $297 - local.set $478 + local.get $181 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 110 call $std/array/Dim#set:width - local.get $297 + local.get $181 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 6 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $298 - i32.store offset=240 - local.get $298 - local.set $478 + local.tee $182 + i32.store offset=220 + local.get $182 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 90 call $std/array/Dim#set:height - local.get $298 - local.set $478 + local.get $182 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 90 call $std/array/Dim#set:width - local.get $298 + local.get $182 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 7 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $299 - i32.store offset=244 - local.get $299 - local.set $478 + local.tee $183 + i32.store offset=224 + local.get $183 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $299 - local.set $478 + local.get $183 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 80 call $std/array/Dim#set:width - local.get $299 + local.get $183 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 8 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $300 - i32.store offset=248 - local.get $300 - local.set $478 + local.tee $184 + i32.store offset=228 + local.get $184 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $300 - local.set $478 + local.get $184 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:width - local.get $300 + local.get $184 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 9 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $301 - i32.store offset=252 - local.get $301 - local.set $478 + local.tee $185 + i32.store offset=232 + local.get $185 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $301 - local.set $478 + local.get $185 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 120 call $std/array/Dim#set:width - local.get $301 + local.get $185 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 10 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $302 - i32.store offset=256 - local.get $302 - local.set $478 + local.tee $186 + i32.store offset=236 + local.get $186 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 100 call $std/array/Dim#set:height - local.get $302 - local.set $478 + local.get $186 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 135 call $std/array/Dim#set:width - local.get $302 + local.get $186 call $~lib/array/Array#__set - local.get $290 + local.get $175 i32.const 11 global.get $~lib/memory/__stack_pointer i32.const 0 call $std/array/Dim#constructor - local.tee $303 - i32.store offset=260 - local.get $303 - local.set $478 + local.tee $187 + i32.store offset=240 + local.get $187 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 110 call $std/array/Dim#set:height - local.get $303 - local.set $478 + local.get $187 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 115 call $std/array/Dim#set:width - local.get $303 + local.get $187 call $~lib/array/Array#__set - local.get $290 + local.get $175 global.set $std/array/outputStabArr global.get $~lib/memory/__stack_pointer i32.const 3 @@ -42864,35 +42657,35 @@ i32.const 9 i32.const 9200 call $~lib/rt/__newArray - local.tee $306 - i32.store offset=264 - local.get $306 - local.set $478 + local.tee $189 + i32.store offset=244 + local.get $189 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $306 - local.set $478 + local.get $189 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 i32.const 2 i32.const 9 i32.const 9264 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -42910,35 +42703,35 @@ i32.const 9 i32.const 9296 call $~lib/rt/__newArray - local.tee $311 - i32.store offset=268 - local.get $311 - local.set $478 + local.tee $192 + i32.store offset=248 + local.get $192 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $311 - local.set $478 + local.get $192 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8 i32.const 2 i32.const 9 i32.const 9360 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -42956,35 +42749,35 @@ i32.const 12 i32.const 9424 call $~lib/rt/__newArray - local.tee $316 - i32.store offset=272 - local.get $316 - local.set $478 + local.tee $195 + i32.store offset=252 + local.get $195 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $316 - local.set $478 + local.get $195 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 8 i32.const 3 i32.const 12 i32.const 9552 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43002,35 +42795,35 @@ i32.const 4 i32.const 9648 call $~lib/rt/__newArray - local.tee $321 - i32.store offset=276 - local.get $321 - local.set $478 + local.tee $198 + i32.store offset=256 + local.get $198 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $321 - local.set $478 + local.get $198 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 4 i32.const 9728 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43048,35 +42841,35 @@ i32.const 8 i32.const 9776 call $~lib/rt/__newArray - local.tee $326 - i32.store offset=280 - local.get $326 - local.set $478 + local.tee $201 + i32.store offset=260 + local.get $201 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $326 - local.set $478 + local.get $201 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 5 i32.const 2 i32.const 8 i32.const 9856 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43094,95 +42887,95 @@ i32.const 4 i32.const 9904 call $~lib/rt/__newArray - local.tee $331 - i32.store offset=284 + local.tee $204 + i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 i32.const 9936 call $~lib/rt/__newArray - local.tee $334 - i32.store offset=288 + local.tee $206 + i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 i32.const 9968 call $~lib/rt/__newArray - local.tee $337 - i32.store offset=292 + local.tee $208 + i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 10000 call $~lib/rt/__newArray - local.tee $340 - i32.store offset=296 + local.tee $210 + i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 10048 call $~lib/rt/__newArray - local.tee $343 - i32.store offset=300 + local.tee $212 + i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $344 - i32.store offset=304 + local.tee $213 + i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $345 - i32.store offset=308 + local.tee $214 + i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $346 - i32.store offset=312 + local.tee $215 + i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $347 - i32.store offset=316 + local.tee $216 + i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $348 - i32.store offset=320 - local.get $331 - local.set $478 + local.tee $217 + i32.store offset=300 + local.get $204 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $334 - local.set $478 + local.get $206 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $334 - local.set $478 + local.get $206 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 i32.const 2 i32.const 4 i32.const 10128 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43194,29 +42987,29 @@ call $~lib/builtins/abort unreachable end - local.get $337 - local.set $478 + local.get $208 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $337 - local.set $478 + local.get $208 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 i32.const 2 i32.const 4 i32.const 10160 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43228,25 +43021,25 @@ call $~lib/builtins/abort unreachable end - local.get $340 - local.set $478 + local.get $210 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $340 - local.set $478 + local.get $210 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -43258,25 +43051,25 @@ call $~lib/builtins/abort unreachable end - local.get $344 - local.set $478 + local.get $213 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $344 - local.set $478 + local.get $213 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -43288,25 +43081,25 @@ call $~lib/builtins/abort unreachable end - local.get $345 - local.set $478 + local.get $214 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $345 - local.set $478 + local.get $214 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -43318,25 +43111,25 @@ call $~lib/builtins/abort unreachable end - local.get $346 - local.set $478 + local.get $215 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $346 - local.set $478 + local.get $215 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -43348,25 +43141,25 @@ call $~lib/builtins/abort unreachable end - local.get $347 - local.set $478 + local.get $216 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault - local.get $347 - local.set $478 + local.get $216 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $343 - local.set $478 + local.get $296 + local.get $212 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -43378,111 +43171,111 @@ call $~lib/builtins/abort unreachable end - local.get $348 - local.set $478 + local.get $217 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $std/array/assertSortedDefault call $std/array/assertStableSortedForComplexObjects global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray - local.tee $353 - i32.store offset=324 + local.tee $220 + i32.store offset=304 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $354 - i32.store offset=328 - local.get $353 - local.set $478 + local.tee $221 + i32.store offset=308 + local.get $220 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10224 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted - local.get $353 - local.set $478 + local.get $220 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10256 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted - local.get $354 - local.set $478 + local.get $221 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10288 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted - local.get $354 - local.set $478 + local.get $221 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10320 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 2 call $std/array/createReverseOrderedNestedArray - local.tee $355 - i32.store offset=332 - local.get $355 - local.set $478 + local.tee $222 + i32.store offset=312 + local.get $222 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10352 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createReverseOrderedElementsArray - local.tee $356 - i32.store offset=336 - local.get $356 - local.set $478 + local.tee $223 + i32.store offset=316 + local.get $223 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10384 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $std/array/assertSorted> global.get $~lib/memory/__stack_pointer i32.const 7 @@ -43490,38 +43283,38 @@ i32.const 34 i32.const 10576 call $~lib/rt/__newArray - local.tee $359 - i32.store offset=340 + local.tee $225 + i32.store offset=320 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 i32.const 34 i32.const 10624 call $~lib/rt/__newArray - local.tee $362 - i32.store offset=344 - local.get $359 - local.set $478 + local.tee $227 + i32.store offset=324 + local.get $225 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 global.set $~argumentsLength i32.const 0 call $std/array/assertSorted<~lib/string/String|null>@varargs - local.get $359 - local.set $478 + local.get $225 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $362 - local.set $478 + local.get $296 + local.get $227 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 0 call $std/array/isArraysEqual<~lib/string/String|null> i32.eqz @@ -43536,14 +43329,14 @@ global.get $~lib/memory/__stack_pointer i32.const 400 call $std/array/createRandomStringArray - local.tee $363 - i32.store offset=348 - local.get $363 - local.set $478 + local.tee $228 + i32.store offset=328 + local.get $228 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -43553,29 +43346,29 @@ i32.const 37 i32.const 10736 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 10832 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 + local.get $296 + i32.store offset=332 + local.get $296 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10864 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43591,29 +43384,29 @@ i32.const 4 i32.const 10912 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 10544 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 + local.get $296 + i32.store offset=332 + local.get $296 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10944 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43629,29 +43422,29 @@ i32.const 8 i32.const 10976 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 11008 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 + local.get $296 + i32.store offset=332 + local.get $296 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10944 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43667,29 +43460,29 @@ i32.const 4 i32.const 11040 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 11072 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 + local.get $296 + i32.store offset=332 + local.get $296 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 11104 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43705,29 +43498,29 @@ i32.const 12 i32.const 11184 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 11264 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 + local.get $296 + i32.store offset=332 + local.get $296 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12432 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43743,29 +43536,29 @@ i32.const 34 i32.const 12576 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 10544 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 + local.get $296 + i32.store offset=332 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12544 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43783,56 +43576,51 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $376 - i32.store offset=356 - global.get $~lib/memory/__stack_pointer - local.get $376 - i32.load offset=4 - local.tee $377 - i32.store offset=360 - local.get $376 + local.tee $235 + i32.store offset=336 + local.get $235 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $376 + local.get $235 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $376 + local.get $235 i32.const 2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $376 - local.tee $378 - i32.store offset=364 - local.get $378 - local.set $478 + local.get $235 + local.tee $236 + i32.store offset=340 + local.get $236 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 10832 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 + local.get $296 + i32.store offset=332 + local.get $296 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12672 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43850,52 +43638,47 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $379 - i32.store offset=368 - global.get $~lib/memory/__stack_pointer - local.get $379 - i32.load offset=4 - local.tee $380 - i32.store offset=372 - local.get $379 + local.tee $237 + i32.store offset=344 + local.get $237 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $379 + local.get $237 i32.const 1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $379 - local.tee $381 - i32.store offset=376 - local.get $381 - local.set $478 + local.get $237 + local.tee $238 + i32.store offset=348 + local.get $238 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 i32.const 10832 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=352 - local.get $478 + local.get $296 + i32.store offset=332 + local.get $296 call $~lib/array/Array#join - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12768 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43912,50 +43695,50 @@ i32.const 4 i32.const 12864 call $~lib/rt/__newArray - local.tee $384 - i32.store offset=380 + local.tee $240 + i32.store offset=352 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 4 i32.const 12896 call $~lib/rt/__newArray - local.tee $387 - i32.store offset=384 + local.tee $242 + i32.store offset=356 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 4 i32.const 12928 call $~lib/rt/__newArray - local.tee $390 - i32.store offset=388 + local.tee $244 + i32.store offset=360 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 4 i32.const 12960 call $~lib/rt/__newArray - local.tee $393 - i32.store offset=392 - local.get $384 - local.set $478 + local.tee $246 + i32.store offset=364 + local.get $240 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 10544 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43966,24 +43749,24 @@ call $~lib/builtins/abort unreachable end - local.get $387 - local.set $478 + local.get $242 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12544 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43994,24 +43777,24 @@ call $~lib/builtins/abort unreachable end - local.get $390 - local.set $478 + local.get $244 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13008 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44022,24 +43805,24 @@ call $~lib/builtins/abort unreachable end - local.get $393 - local.set $478 + local.get $246 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13040 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44055,23 +43838,23 @@ i32.const 38 i32.const 13088 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13120 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44087,23 +43870,23 @@ i32.const 38 i32.const 13152 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13184 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44119,23 +43902,23 @@ i32.const 11 i32.const 13232 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13264 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44151,23 +43934,23 @@ i32.const 39 i32.const 13312 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13344 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44183,23 +43966,23 @@ i32.const 4 i32.const 13392 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13424 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44215,23 +43998,23 @@ i32.const 40 i32.const 13488 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13536 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44247,23 +44030,23 @@ i32.const 41 i32.const 13616 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13680 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44280,26 +44063,26 @@ i32.const 34 i32.const 13840 call $~lib/rt/__newArray - local.tee $410 - i32.store offset=396 - local.get $410 - local.set $478 + local.tee $255 + i32.store offset=368 + local.get $255 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 13888 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44315,23 +44098,23 @@ i32.const 34 i32.const 14000 call $~lib/rt/__newArray - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 14048 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44349,14 +44132,9 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $413 - i32.store offset=400 - global.get $~lib/memory/__stack_pointer - local.get $413 - i32.load offset=4 - local.tee $414 - i32.store offset=404 - local.get $413 + local.tee $257 + i32.store offset=372 + local.get $257 i32.const 0 i32.const 2 i32.const 2 @@ -44364,7 +44142,7 @@ i32.const 14080 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $413 + local.get $257 i32.const 1 i32.const 2 i32.const 2 @@ -44372,27 +44150,27 @@ i32.const 14112 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $413 - local.tee $419 - i32.store offset=408 - local.get $419 - local.set $478 + local.get $257 + local.tee $260 + i32.store offset=376 + local.get $260 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array<~lib/array/Array>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 14144 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44410,14 +44188,9 @@ i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $420 - i32.store offset=412 - global.get $~lib/memory/__stack_pointer - local.get $420 - i32.load offset=4 - local.tee $421 - i32.store offset=416 - local.get $420 + local.tee $261 + i32.store offset=380 + local.get $261 i32.const 0 i32.const 2 i32.const 0 @@ -44425,7 +44198,7 @@ i32.const 14192 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $420 + local.get $261 i32.const 1 i32.const 2 i32.const 0 @@ -44433,27 +44206,27 @@ i32.const 14224 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $420 - local.tee $426 - i32.store offset=420 - local.get $426 - local.set $478 + local.get $261 + local.tee $264 + i32.store offset=384 + local.get $264 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array<~lib/array/Array>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 14144 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44471,14 +44244,9 @@ i32.const 44 i32.const 0 call $~lib/rt/__newArray - local.tee $427 - i32.store offset=424 - global.get $~lib/memory/__stack_pointer - local.get $427 - i32.load offset=4 - local.tee $428 - i32.store offset=428 - local.get $427 + local.tee $265 + i32.store offset=388 + local.get $265 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -44486,14 +44254,9 @@ i32.const 43 i32.const 0 call $~lib/rt/__newArray - local.tee $429 - i32.store offset=432 - global.get $~lib/memory/__stack_pointer - local.get $429 - i32.load offset=4 - local.tee $430 - i32.store offset=436 - local.get $429 + local.tee $266 + i32.store offset=392 + local.get $266 i32.const 0 i32.const 1 i32.const 2 @@ -44501,29 +44264,29 @@ i32.const 14256 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $429 + local.get $266 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__set - local.get $427 - local.tee $433 - i32.store offset=440 - local.get $433 - local.set $478 + local.get $265 + local.tee $268 + i32.store offset=396 + local.get $268 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 12544 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44541,14 +44304,9 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $434 - i32.store offset=444 - global.get $~lib/memory/__stack_pointer - local.get $434 - i32.load offset=4 - local.tee $435 - i32.store offset=448 - local.get $434 + local.tee $269 + i32.store offset=400 + local.get $269 i32.const 0 i32.const 1 i32.const 2 @@ -44556,7 +44314,7 @@ i32.const 14288 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $434 + local.get $269 i32.const 1 i32.const 3 i32.const 2 @@ -44564,7 +44322,7 @@ i32.const 14320 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $434 + local.get $269 i32.const 2 i32.const 3 i32.const 2 @@ -44572,7 +44330,7 @@ i32.const 14352 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $434 + local.get $269 i32.const 3 i32.const 3 i32.const 2 @@ -44580,25 +44338,25 @@ i32.const 14384 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $434 - local.tee $444 - i32.store offset=452 + local.get $269 + local.tee $274 + i32.store offset=404 global.get $~lib/memory/__stack_pointer - local.get $444 - local.set $478 + local.get $274 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $445 - i32.store offset=456 - local.get $445 - local.set $478 + local.tee $275 + i32.store offset=408 + local.get $275 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 10 i32.eq @@ -44612,21 +44370,21 @@ unreachable end i32.const 0 - local.set $446 + local.set $276 loop $for-loop|7 - local.get $446 + local.get $276 i32.const 10 i32.lt_s if - local.get $445 - local.set $478 + local.get $275 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $446 + local.get $296 + local.get $276 call $~lib/array/Array#__get - local.get $446 + local.get $276 i32.eq i32.eqz if @@ -44637,10 +44395,10 @@ call $~lib/builtins/abort unreachable end - local.get $446 + local.get $276 i32.const 1 i32.add - local.set $446 + local.set $276 br $for-loop|7 end end @@ -44651,14 +44409,9 @@ i32.const 45 i32.const 0 call $~lib/rt/__newArray - local.tee $447 - i32.store offset=460 - global.get $~lib/memory/__stack_pointer - local.get $447 - i32.load offset=4 - local.tee $448 - i32.store offset=464 - local.get $447 + local.tee $277 + i32.store offset=412 + local.get $277 i32.const 0 i32.const 1 i32.const 2 @@ -44666,7 +44419,7 @@ i32.const 14448 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set - local.get $447 + local.get $277 i32.const 1 i32.const 3 i32.const 2 @@ -44674,7 +44427,7 @@ i32.const 14544 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set - local.get $447 + local.get $277 i32.const 2 i32.const 3 i32.const 2 @@ -44682,7 +44435,7 @@ i32.const 14672 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set - local.get $447 + local.get $277 i32.const 3 i32.const 1 i32.const 2 @@ -44690,33 +44443,33 @@ i32.const 14736 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set - local.get $447 - local.tee $457 - i32.store offset=468 + local.get $277 + local.tee $282 + i32.store offset=416 global.get $~lib/memory/__stack_pointer - local.get $457 - local.set $478 + local.get $282 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat - local.tee $458 - i32.store offset=472 + local.tee $283 + i32.store offset=420 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 i32.const 34 i32.const 14768 call $~lib/rt/__newArray - local.tee $461 - i32.store offset=476 - local.get $458 - local.set $478 + local.tee $285 + i32.store offset=424 + local.get $283 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#get:length i32.const 8 i32.eq @@ -44730,44 +44483,44 @@ unreachable end i32.const 0 - local.set $462 + local.set $286 loop $for-loop|8 - local.get $462 - local.get $461 - local.set $478 + local.get $286 + local.get $285 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/string/String|null>#get:length i32.lt_s if - local.get $458 - local.set $478 + local.get $283 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 - local.get $462 + local.get $296 + i32.store offset=48 + local.get $296 + local.get $286 call $~lib/array/Array<~lib/string/String|null>#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 - local.get $461 - local.set $478 + local.get $296 + local.get $285 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 - local.get $462 + local.get $296 + i32.store offset=48 + local.get $296 + local.get $286 call $~lib/array/Array<~lib/string/String|null>#__get - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44778,10 +44531,10 @@ call $~lib/builtins/abort unreachable end - local.get $462 + local.get $286 i32.const 1 i32.add - local.set $462 + local.set $286 br $for-loop|8 end end @@ -44792,14 +44545,9 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $463 - i32.store offset=480 - global.get $~lib/memory/__stack_pointer - local.get $463 - i32.load offset=4 - local.tee $464 - i32.store offset=484 - local.get $463 + local.tee $287 + i32.store offset=428 + local.get $287 i32.const 0 i32.const 0 i32.const 2 @@ -44807,7 +44555,7 @@ i32.const 14832 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $463 + local.get $287 i32.const 1 i32.const 0 i32.const 2 @@ -44815,21 +44563,21 @@ i32.const 14864 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $463 - local.tee $469 - i32.store offset=488 - local.get $469 - local.set $478 + local.get $287 + local.tee $290 + i32.store offset=432 + local.get $290 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 call $~lib/array/Array<~lib/array/Array>#flat - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -44849,14 +44597,9 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $470 - i32.store offset=492 - global.get $~lib/memory/__stack_pointer - local.get $470 - i32.load offset=4 - local.tee $471 - i32.store offset=496 - local.get $470 + local.tee $291 + i32.store offset=436 + local.get $291 i32.const 0 i32.const 1 i32.const 2 @@ -44864,7 +44607,7 @@ i32.const 14896 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $470 + local.get $291 i32.const 1 i32.const 1 i32.const 2 @@ -44872,37 +44615,37 @@ i32.const 14928 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__set - local.get $470 - local.tee $476 - i32.store offset=500 + local.get $291 + local.tee $294 + i32.store offset=440 global.get $~lib/memory/__stack_pointer - local.get $476 - local.set $478 + local.get $294 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store offset=8 - local.get $478 + local.get $296 i32.const 14960 - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 - i32.store offset=52 - local.get $478 + local.get $296 + i32.store offset=48 + local.get $296 call $~lib/array/Array<~lib/array/Array>#map<~lib/array/Array> - local.set $478 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $477 - i32.store offset=504 - local.get $477 - local.set $478 + local.tee $295 + i32.store offset=444 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -44915,12 +44658,12 @@ call $~lib/builtins/abort unreachable end - local.get $477 - local.set $478 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 0 call $~lib/array/Array#__get i32.const 1 @@ -44934,12 +44677,12 @@ call $~lib/builtins/abort unreachable end - local.get $477 - local.set $478 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -44953,12 +44696,12 @@ call $~lib/builtins/abort unreachable end - local.get $477 - local.set $478 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 2 call $~lib/array/Array#__get i32.const 2 @@ -44972,12 +44715,12 @@ call $~lib/builtins/abort unreachable end - local.get $477 - local.set $478 + local.get $295 + local.set $296 global.get $~lib/memory/__stack_pointer - local.get $478 + local.get $296 i32.store - local.get $478 + local.get $296 i32.const 3 call $~lib/array/Array#__get i32.const 3 @@ -45001,7 +44744,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 508 + i32.const 448 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 4ff1aba22c..5f279cc7b7 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -17540,7 +17540,7 @@ (local $12 i32) (local $13 i32) global.get $~lib/memory/__stack_pointer - i32.const 508 + i32.const 448 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner2 @@ -17550,7 +17550,7 @@ br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 508 + i32.const 448 memory.fill memory.size i32.const 16 @@ -18726,10 +18726,6 @@ call $~lib/rt/__newArray local.tee $7 i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.load offset=4 - i32.store offset=24 local.get $7 i32.const 0 i32.const 0 @@ -18742,7 +18738,7 @@ call $~lib/array/Array#__set local.get $1 local.get $7 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -18791,7 +18787,7 @@ i32.const 2688 call $~lib/rt/__newArray local.tee $1 - i32.store offset=32 + i32.store offset=28 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -18860,7 +18856,7 @@ i32.const 0 call $~lib/array/Array#constructor local.tee $1 - i32.store offset=36 + i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $7 @@ -18873,7 +18869,7 @@ local.get $1 call $~lib/array/Array#concat local.tee $7 - i32.store offset=40 + i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $8 @@ -19025,7 +19021,7 @@ local.get $1 call $~lib/array/Array#concat local.tee $7 - i32.store offset=40 + i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $8 @@ -19180,7 +19176,7 @@ i32.const 2768 call $~lib/rt/__newArray local.tee $1 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -19206,7 +19202,7 @@ local.get $7 call $~lib/array/Array#concat local.tee $7 - i32.store offset=40 + i32.store offset=36 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -19242,10 +19238,10 @@ i32.const 2800 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 i32.const 2 global.set $~argumentsLength local.get $1 @@ -19285,10 +19281,10 @@ i32.const 2896 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 i32.const 2 global.set $~argumentsLength local.get $1 @@ -19328,10 +19324,10 @@ i32.const 2992 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 i32.const 2 global.set $~argumentsLength local.get $1 @@ -19371,10 +19367,10 @@ i32.const 3088 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 i32.const 2 global.set $~argumentsLength local.get $1 @@ -19414,10 +19410,10 @@ i32.const 3184 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 local.get $1 i32.const 0 i32.const 3 @@ -19456,10 +19452,10 @@ i32.const 3280 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 local.get $1 i32.const 1 i32.const 3 @@ -19498,10 +19494,10 @@ i32.const 3376 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 local.get $1 i32.const 1 i32.const 2 @@ -19540,10 +19536,10 @@ i32.const 3472 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 i32.const 2 global.set $~argumentsLength local.get $1 @@ -19583,10 +19579,10 @@ i32.const 3568 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 local.get $1 i32.const 0 i32.const -2 @@ -19625,10 +19621,10 @@ i32.const 3664 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 local.get $1 i32.const -4 i32.const -3 @@ -19667,10 +19663,10 @@ i32.const 3760 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 local.get $1 i32.const -4 i32.const -3 @@ -19709,10 +19705,10 @@ i32.const 3856 call $~lib/rt/__newArray local.tee $1 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 i32.const 2 global.set $~argumentsLength local.get $1 @@ -20263,7 +20259,7 @@ i32.const 3952 call $~lib/rt/__newArray local.tee $1 - i32.store offset=56 + i32.store offset=52 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -20274,7 +20270,7 @@ i32.const 2 call $~lib/array/Array#slice@varargs local.tee $7 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -20309,7 +20305,7 @@ i32.const 4 call $~lib/array/Array#slice local.tee $7 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -20344,7 +20340,7 @@ i32.const 5 call $~lib/array/Array#slice local.tee $7 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -20380,7 +20376,7 @@ i32.const 0 call $~lib/array/Array#slice@varargs local.tee $7 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -20410,7 +20406,7 @@ i32.const -2 call $~lib/array/Array#slice@varargs local.tee $7 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -20445,7 +20441,7 @@ i32.const -1 call $~lib/array/Array#slice local.tee $7 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -20480,7 +20476,7 @@ i32.const -1 call $~lib/array/Array#slice local.tee $7 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -20738,7 +20734,7 @@ local.get $3 call $~lib/array/Array#reverse local.tee $1 - i32.store offset=64 + i32.store offset=60 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -20798,7 +20794,7 @@ local.get $1 call $~lib/array/Array#reverse local.tee $1 - i32.store offset=68 + i32.store offset=64 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer @@ -20860,7 +20856,7 @@ local.get $1 call $~lib/array/Array#reverse local.tee $1 - i32.store offset=72 + i32.store offset=68 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer @@ -20922,7 +20918,7 @@ local.get $1 call $~lib/array/Array#reverse local.tee $1 - i32.store offset=76 + i32.store offset=72 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer @@ -20984,7 +20980,7 @@ local.get $1 call $~lib/array/Array#reverse local.tee $1 - i32.store offset=80 + i32.store offset=76 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer @@ -21046,7 +21042,7 @@ local.get $1 call $~lib/array/Array#reverse local.tee $1 - i32.store offset=84 + i32.store offset=80 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer @@ -21486,7 +21482,7 @@ i32.const 4528 call $~lib/rt/__newArray local.tee $0 - i32.store offset=88 + i32.store offset=84 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -22029,10 +22025,10 @@ i32.const 4640 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 i32.const 1 global.set $~argumentsLength local.get $0 @@ -22096,10 +22092,10 @@ i32.const 4768 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 0 i32.const 0 @@ -22162,10 +22158,10 @@ i32.const 4896 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 i32.const 1 global.set $~argumentsLength local.get $0 @@ -22229,10 +22225,10 @@ i32.const 5008 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 2 i32.const 2 @@ -22295,10 +22291,10 @@ i32.const 5120 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 0 i32.const 1 @@ -22361,10 +22357,10 @@ i32.const 5248 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 i32.const 1 global.set $~argumentsLength local.get $0 @@ -22428,10 +22424,10 @@ i32.const 5376 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 i32.const 1 global.set $~argumentsLength local.get $0 @@ -22495,10 +22491,10 @@ i32.const 5488 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const -2 i32.const 1 @@ -22561,10 +22557,10 @@ i32.const 5616 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const -7 i32.const 1 @@ -22627,10 +22623,10 @@ i32.const 5744 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const -2 i32.const -1 @@ -22693,10 +22689,10 @@ i32.const 5872 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 1 i32.const -2 @@ -22759,10 +22755,10 @@ i32.const 6000 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 4 i32.const 0 @@ -22825,10 +22821,10 @@ i32.const 6128 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 7 i32.const 0 @@ -22891,10 +22887,10 @@ i32.const 6256 call $~lib/rt/__newArray local.tee $0 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 i32.const 7 i32.const 5 @@ -22957,7 +22953,7 @@ i32.const 6384 call $~lib/rt/__newArray local.tee $0 - i32.store offset=96 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -22966,7 +22962,7 @@ i32.const 1 call $~lib/array/Array#splice local.tee $1 - i32.store offset=100 + i32.store offset=96 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -23002,11 +22998,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=104 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=108 + i32.store offset=100 local.get $1 i32.const 0 i32.const 1 @@ -23034,7 +23026,7 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=96 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -23043,7 +23035,7 @@ i32.const 2 call $~lib/array/Array#splice local.tee $0 - i32.store offset=100 + i32.store offset=96 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23193,11 +23185,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=112 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=116 + i32.store offset=104 local.get $1 i32.const 0 i32.const 1 @@ -23214,7 +23202,7 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=120 + i32.store offset=108 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer @@ -23322,7 +23310,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 local.get $9 - i32.store offset=124 + i32.store offset=112 global.get $~lib/memory/__stack_pointer local.get $9 i32.store @@ -23346,7 +23334,7 @@ i32.const 0 call $~lib/array/Array#__get local.tee $0 - i32.store offset=128 + i32.store offset=116 local.get $0 i32.eqz if @@ -23409,7 +23397,7 @@ i32.const 1 call $~lib/array/Array#__get local.tee $0 - i32.store offset=132 + i32.store offset=120 local.get $0 i32.eqz if @@ -23678,7 +23666,7 @@ i32.const 6864 call $~lib/rt/__newArray local.tee $0 - i32.store offset=136 + i32.store offset=124 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -24447,7 +24435,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 local.get $8 - i32.store offset=140 + i32.store offset=128 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer @@ -24547,7 +24535,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 local.get $8 - i32.store offset=144 + i32.store offset=132 global.get $~lib/memory/__stack_pointer local.get $8 i32.store @@ -24743,7 +24731,7 @@ i32.const 9456 call $~lib/array/Array#filter local.tee $0 - i32.store offset=148 + i32.store offset=136 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -25432,15 +25420,11 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=152 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=156 + i32.store offset=140 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=160 + i32.store offset=144 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25460,7 +25444,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=164 + i32.store offset=148 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25480,7 +25464,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=168 + i32.store offset=152 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25500,7 +25484,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=172 + i32.store offset=156 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25520,7 +25504,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=176 + i32.store offset=160 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25540,7 +25524,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=180 + i32.store offset=164 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25560,7 +25544,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=184 + i32.store offset=168 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25580,7 +25564,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=188 + i32.store offset=172 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25600,7 +25584,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=192 + i32.store offset=176 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25620,7 +25604,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=196 + i32.store offset=180 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25640,7 +25624,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=200 + i32.store offset=184 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25660,7 +25644,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=204 + i32.store offset=188 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25686,15 +25670,11 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=208 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.store offset=212 + i32.store offset=192 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=216 + i32.store offset=196 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25714,7 +25694,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=220 + i32.store offset=200 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25734,7 +25714,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=224 + i32.store offset=204 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25754,7 +25734,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=228 + i32.store offset=208 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25774,7 +25754,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=232 + i32.store offset=212 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25794,7 +25774,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=236 + i32.store offset=216 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25814,7 +25794,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=240 + i32.store offset=220 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25834,7 +25814,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=244 + i32.store offset=224 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25854,7 +25834,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=248 + i32.store offset=228 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25874,7 +25854,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=252 + i32.store offset=232 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25894,7 +25874,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=256 + i32.store offset=236 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25914,7 +25894,7 @@ global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor local.tee $1 - i32.store offset=260 + i32.store offset=240 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -25940,7 +25920,7 @@ i32.const 10224 call $~lib/rt/__newArray local.tee $0 - i32.store offset=264 + i32.store offset=244 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -25979,7 +25959,7 @@ i32.const 10320 call $~lib/rt/__newArray local.tee $0 - i32.store offset=268 + i32.store offset=248 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26018,7 +25998,7 @@ i32.const 10448 call $~lib/rt/__newArray local.tee $0 - i32.store offset=272 + i32.store offset=252 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26238,7 +26218,7 @@ i32.const 10672 call $~lib/rt/__newArray local.tee $0 - i32.store offset=276 + i32.store offset=256 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26307,7 +26287,7 @@ i32.const 10800 call $~lib/rt/__newArray local.tee $0 - i32.store offset=280 + i32.store offset=260 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -26404,7 +26384,7 @@ i32.const 10928 call $~lib/rt/__newArray local.tee $3 - i32.store offset=284 + i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -26412,7 +26392,7 @@ i32.const 10960 call $~lib/rt/__newArray local.tee $7 - i32.store offset=288 + i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -26420,7 +26400,7 @@ i32.const 10992 call $~lib/rt/__newArray local.tee $8 - i32.store offset=292 + i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -26428,7 +26408,7 @@ i32.const 11024 call $~lib/rt/__newArray local.tee $9 - i32.store offset=296 + i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -26436,32 +26416,32 @@ i32.const 11072 call $~lib/rt/__newArray local.tee $10 - i32.store offset=300 + i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray local.tee $11 - i32.store offset=304 + i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray local.tee $12 - i32.store offset=308 + i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray local.tee $0 - i32.store offset=312 + i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray local.tee $1 - i32.store offset=316 + i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray local.tee $13 - i32.store offset=320 + i32.store offset=300 global.get $~lib/memory/__stack_pointer local.get $3 i32.store @@ -26888,12 +26868,12 @@ i32.const 64 call $std/array/createRandomOrderedArray local.tee $0 - i32.store offset=324 + i32.store offset=304 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray local.tee $1 - i32.store offset=328 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27084,7 +27064,7 @@ global.set $~lib/memory/__stack_pointer local.get $1 local.get $2 - i32.store offset=332 + i32.store offset=312 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -27263,7 +27243,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 local.get $3 - i32.store offset=336 + i32.store offset=316 global.get $~lib/memory/__stack_pointer local.get $3 i32.store @@ -27280,7 +27260,7 @@ i32.const 11600 call $~lib/rt/__newArray local.tee $0 - i32.store offset=340 + i32.store offset=320 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 @@ -27288,7 +27268,7 @@ i32.const 11648 call $~lib/rt/__newArray local.tee $1 - i32.store offset=344 + i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27842,7 +27822,7 @@ global.set $~lib/memory/__stack_pointer local.get $7 local.get $8 - i32.store offset=348 + i32.store offset=328 global.get $~lib/memory/__stack_pointer local.get $8 i32.store @@ -27886,10 +27866,10 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 11856 - i32.store offset=352 + i32.store offset=332 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28115,10 +28095,10 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 11568 - i32.store offset=352 + i32.store offset=332 local.get $0 i32.const 11568 call $~lib/array/Array#join @@ -28149,10 +28129,10 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 12032 - i32.store offset=352 + i32.store offset=332 local.get $0 i32.const 12032 call $~lib/array/Array#join @@ -28183,10 +28163,10 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 12096 - i32.store offset=352 + i32.store offset=332 local.get $0 i32.const 12096 call $~lib/array/Array#join @@ -28217,10 +28197,10 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 12288 - i32.store offset=352 + i32.store offset=332 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28281,10 +28261,10 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 11568 - i32.store offset=352 + i32.store offset=332 local.get $0 i32.const 11568 call $~lib/array/Array<~lib/string/String|null>#join @@ -28316,11 +28296,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=356 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=360 + i32.store offset=336 local.get $1 i32.const 0 i32.const 0 @@ -28337,13 +28313,13 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=364 + i32.store offset=340 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 11856 - i32.store offset=352 + i32.store offset=332 local.get $1 call $~lib/array/Array#join local.set $0 @@ -28374,11 +28350,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=368 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=372 + i32.store offset=344 local.get $1 i32.const 0 i32.const 0 @@ -28391,13 +28363,13 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=376 + i32.store offset=348 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 11856 - i32.store offset=352 + i32.store offset=332 local.get $1 call $~lib/array/Array#join local.set $0 @@ -28426,7 +28398,7 @@ i32.const 13888 call $~lib/rt/__newArray local.tee $0 - i32.store offset=380 + i32.store offset=352 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -28434,7 +28406,7 @@ i32.const 13920 call $~lib/rt/__newArray local.tee $1 - i32.store offset=384 + i32.store offset=356 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -28442,7 +28414,7 @@ i32.const 13952 call $~lib/rt/__newArray local.tee $2 - i32.store offset=388 + i32.store offset=360 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -28450,10 +28422,10 @@ i32.const 13984 call $~lib/rt/__newArray local.tee $3 - i32.store offset=392 + i32.store offset=364 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 call $~lib/array/Array#toString local.set $0 @@ -28477,7 +28449,7 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 local.get $1 call $~lib/array/Array#toString local.set $0 @@ -28501,7 +28473,7 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=52 + i32.store offset=48 local.get $2 call $~lib/array/Array#toString local.set $0 @@ -28525,7 +28497,7 @@ end global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=52 + i32.store offset=48 local.get $3 call $~lib/array/Array#toString local.set $0 @@ -28555,7 +28527,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 call $~lib/array/Array#toString local.set $0 @@ -28585,7 +28557,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 call $~lib/array/Array#toString local.set $0 @@ -28615,7 +28587,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28840,7 +28812,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29065,7 +29037,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 call $~lib/array/Array#toString local.set $0 @@ -29095,7 +29067,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29177,7 +29149,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29584,10 +29556,10 @@ i32.const 14864 call $~lib/rt/__newArray local.tee $0 - i32.store offset=396 + i32.store offset=368 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 @@ -29617,7 +29589,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 @@ -29648,11 +29620,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=400 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=404 + i32.store offset=372 local.get $1 i32.const 0 i32.const 2 @@ -29671,10 +29639,10 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=408 + i32.store offset=376 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29917,11 +29885,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=412 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=416 + i32.store offset=380 local.get $1 i32.const 0 i32.const 2 @@ -29940,10 +29904,10 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=420 + i32.store offset=384 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -30186,11 +30150,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=424 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=428 + i32.store offset=388 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -30198,11 +30158,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=432 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=436 + i32.store offset=392 local.get $2 i32.const 0 i32.const 1 @@ -30217,10 +30173,10 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=440 + i32.store offset=396 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -30463,11 +30419,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=444 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=448 + i32.store offset=400 local.get $1 i32.const 0 i32.const 1 @@ -30502,7 +30454,7 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=452 + i32.store offset=404 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30510,7 +30462,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 - i32.store offset=456 + i32.store offset=408 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -30565,11 +30517,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=460 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=464 + i32.store offset=412 local.get $1 i32.const 0 i32.const 1 @@ -30604,7 +30552,7 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=468 + i32.store offset=416 global.get $~lib/memory/__stack_pointer local.set $7 global.get $~lib/memory/__stack_pointer @@ -30768,7 +30716,7 @@ global.set $~lib/memory/__stack_pointer local.get $7 local.get $11 - i32.store offset=472 + i32.store offset=420 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 @@ -30776,7 +30724,7 @@ i32.const 15792 call $~lib/rt/__newArray local.tee $0 - i32.store offset=476 + i32.store offset=424 global.get $~lib/memory/__stack_pointer local.get $11 i32.store @@ -30805,7 +30753,7 @@ if global.get $~lib/memory/__stack_pointer local.get $11 - i32.store offset=52 + i32.store offset=48 local.get $11 local.get $2 call $~lib/array/Array#__get @@ -30815,7 +30763,7 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=52 + i32.store offset=48 local.get $0 local.get $2 call $~lib/array/Array#__get @@ -30851,11 +30799,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=480 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=484 + i32.store offset=428 local.get $1 i32.const 0 i32.const 0 @@ -30874,7 +30818,7 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=488 + i32.store offset=432 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -30903,11 +30847,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=492 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=496 + i32.store offset=436 local.get $1 i32.const 0 i32.const 1 @@ -30926,7 +30866,7 @@ call $~lib/array/Array#__set local.get $0 local.get $1 - i32.store offset=500 + i32.store offset=440 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer @@ -30934,7 +30874,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 15984 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -31038,7 +30978,7 @@ local.get $7 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 - i32.store offset=504 + i32.store offset=444 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -31160,7 +31100,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 508 + i32.const 448 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 4c4d8cdc3e..79b69d7b74 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -3372,7 +3372,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -3406,11 +3405,11 @@ local.tee $0 i32.store local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 8 i32.eq @@ -3425,22 +3424,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 0 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 8 i32.eq @@ -3467,22 +3466,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 7 i32.eq @@ -3497,22 +3496,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const -1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 1 i32.eq @@ -3527,22 +3526,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 2 i32.eq @@ -3557,22 +3556,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 6 i32.eq @@ -3587,22 +3586,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const -3 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 2 i32.eq @@ -3617,22 +3616,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const -4 i32.const 42 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 4 i32.eq @@ -3647,22 +3646,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 i32.const 42 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice local.tee $1 i32.store offset=8 local.get $1 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer#get:byteLength i32.const 0 i32.eq @@ -3770,11 +3769,11 @@ i32.const 4 i32.const 608 call $~lib/rt/__newArray - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/array/Array> i32.eqz i32.eqz @@ -3787,11 +3786,11 @@ unreachable end local.get $2 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array> i32.eqz if @@ -3805,11 +3804,11 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#constructor - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Int32Array> i32.eqz if @@ -3822,27 +3821,27 @@ end i32.const 0 local.get $2 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=20 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=16 - local.get $5 + local.get $4 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/dataview/DataView#constructor@varargs - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 - local.get $5 + local.get $4 call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView> i32.eqz if diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index dd23468444..c06e79635e 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -7189,33 +7189,32 @@ ) (func $~lib/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) (local $3 i32) - (local $4 i32) (local $length i32) (local $sepLen i32) + (local $6 i32) (local $7 i32) - (local $8 i32) (local $result i32) (local $resultStart i32) (local $i i32) (local $charStr i32) + (local $result|12 i32) (local $result|13 i32) - (local $result|14 i32) (local $end i32) (local $start i32) - (local $i|17 i32) + (local $i|16 i32) (local $len i32) (local $out i32) - (local $len|20 i32) - (local $out|21 i32) - (local $22 i32) + (local $len|19 i32) + (local $out|20 i32) + (local $21 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 + i32.const 36 memory.fill local.get $limit i32.eqz @@ -7225,12 +7224,12 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $separator @@ -7245,38 +7244,33 @@ call $~lib/rt/__newArray local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store offset=4 local.get $3 i32.const 0 local.get $this call $~lib/array/Array<~lib/string/String>#__set local.get $3 - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/string/String#get:length local.set $length local.get $separator - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/string/String#get:length local.set $sepLen local.get $limit @@ -7297,20 +7291,20 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $length - local.tee $7 + local.tee $6 local.get $limit - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select local.set $length @@ -7321,13 +7315,13 @@ i32.const 0 call $~lib/rt/__newArray local.tee $result - i32.store offset=12 + i32.store offset=8 local.get $result - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $resultStart i32.const 0 @@ -7342,7 +7336,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $charStr - i32.store offset=16 + i32.store offset=12 local.get $charStr local.get $this local.get $i @@ -7370,12 +7364,12 @@ end end local.get $result - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return else local.get $length @@ -7387,24 +7381,24 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $result|13 - i32.store offset=20 - local.get $result|13 - local.set $22 + local.tee $result|12 + i32.store offset=16 + local.get $result|12 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/array/Array<~lib/string/String>#get:dataStart i32.const 2432 i32.store - local.get $result|13 - local.set $22 + local.get $result|12 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end end @@ -7414,27 +7408,27 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $result|14 - i32.store offset=24 + local.tee $result|13 + i32.store offset=20 i32.const 0 local.set $end i32.const 0 local.set $start i32.const 0 - local.set $i|17 + local.set $i|16 loop $while-continue|1 local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $separator - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 local.get $start call $~lib/string/String#indexOf local.tee $end @@ -7456,7 +7450,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $out - i32.store offset=32 + i32.store offset=28 local.get $out local.get $this local.get $start @@ -7467,50 +7461,50 @@ i32.const 1 i32.shl memory.copy - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $out - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 i32.const 2432 - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $i|17 + local.get $i|16 i32.const 1 i32.add - local.tee $i|17 + local.tee $i|16 local.get $limit i32.eq if - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $end @@ -7523,92 +7517,92 @@ local.get $start i32.eqz if - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $length local.get $start i32.sub - local.set $len|20 - local.get $len|20 + local.set $len|19 + local.get $len|19 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $len|20 + local.get $len|19 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $out|21 - i32.store offset=36 - local.get $out|21 + local.tee $out|20 + i32.store offset=32 + local.get $out|20 local.get $this local.get $start i32.const 1 i32.shl i32.add - local.get $len|20 + local.get $len|19 i32.const 1 i32.shl memory.copy - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $out|21 - local.set $22 + local.get $21 + i32.store offset=4 + local.get $21 + local.get $out|20 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 i32.const 2432 - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return ) (func $~lib/string/String#split@varargs (param $this i32) (param $separator i32) (param $limit i32) (result i32) diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 2ae40dbb48..2fc2eff478 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -5624,11 +5624,11 @@ (local $9 i32) (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner3 - block $folding-inner2 + block $folding-inner4 + block $folding-inner3 block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5637,7 +5637,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 + i32.const 36 memory.fill local.get $2 i32.eqz @@ -5651,10 +5651,6 @@ local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5697,71 +5693,71 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $folding-inner2 + br $folding-inner4 end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 i32.const 2147483647 local.get $2 local.get $2 i32.const 0 i32.lt_s select - local.set $2 + local.set $8 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 if - local.get $8 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/rt/__newArray local.tee $2 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 + i32.store offset=4 local.get $2 i32.load offset=4 i32.const 3456 i32.store - br $folding-inner2 + br $folding-inner4 end else - local.get $8 + local.get $6 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + local.get $6 local.get $8 - local.get $2 - local.get $2 + local.get $6 local.get $8 - i32.gt_s + i32.lt_s select local.tee $3 call $~lib/rt/__newArray local.tee $2 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 + i32.store offset=4 local.get $2 i32.load offset=4 local.set $4 @@ -5777,7 +5773,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $5 - i32.store offset=16 + i32.store offset=12 local.get $5 local.get $0 local.get $1 @@ -5804,29 +5800,29 @@ br $for-loop|0 end end - br $folding-inner2 + br $folding-inner4 end global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/rt/__newArray - local.tee $9 - i32.store offset=24 + local.tee $2 + i32.store offset=20 loop $while-continue|1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=28 + i32.store offset=24 local.get $0 local.get $1 local.get $3 call $~lib/string/String#indexOf - local.tee $6 + local.tee $9 i32.const -1 i32.xor if - local.get $6 + local.get $9 local.get $3 i32.sub local.tee $7 @@ -5837,48 +5833,48 @@ local.get $7 i32.const 1 i32.shl - local.tee $7 + local.tee $10 i32.const 2 call $~lib/rt/itcms/__new - local.tee $10 - i32.store offset=32 - local.get $10 + local.tee $7 + i32.store offset=28 + local.get $7 local.get $0 local.get $3 i32.const 1 i32.shl i32.add - local.get $7 + local.get $10 memory.copy global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=28 - local.get $9 - local.get $10 + local.get $7 + i32.store offset=24 + local.get $2 + local.get $7 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3456 - i32.store offset=28 - local.get $9 + i32.store offset=24 + local.get $2 i32.const 3456 call $~lib/array/Array<~lib/string/String>#push end - local.get $4 + local.get $5 i32.const 1 i32.add - local.tee $4 - local.get $2 + local.tee $5 + local.get $8 i32.eq br_if $folding-inner3 - local.get $5 - local.get $6 + local.get $4 + local.get $9 i32.add local.set $3 br $while-continue|1 @@ -5888,17 +5884,17 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=28 - local.get $9 + i32.store offset=24 + local.get $2 local.get $0 call $~lib/array/Array<~lib/string/String>#push br $folding-inner3 end - local.get $8 + local.get $6 local.get $3 i32.sub local.tee $1 @@ -5912,9 +5908,9 @@ local.tee $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=36 - local.get $2 + local.tee $4 + i32.store offset=32 + local.get $4 local.get $0 local.get $3 i32.const 1 @@ -5923,31 +5919,26 @@ local.get $1 memory.copy global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=28 - local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=24 local.get $2 + local.get $4 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3456 - i32.store offset=28 - local.get $9 + i32.store offset=24 + local.get $2 i32.const 3456 call $~lib/array/Array<~lib/string/String>#push end - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return + br $folding-inner4 end i32.const 41264 i32.const 41312 @@ -5959,19 +5950,20 @@ i32.const 0 call $~lib/rt/__newArray local.set $2 + br $folding-inner4 end global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer local.get $2 return end global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $2 ) (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 6beb21bf28..7ab6891f98 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -3322,10 +3322,6 @@ (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.sub @@ -3335,11 +3331,11 @@ i32.const 0 i32.store global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -3353,11 +3349,11 @@ unreachable end global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get i32.const 1 @@ -3372,11 +3368,11 @@ unreachable end global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 1 call $~lib/array/Array#__get i32.const 2 @@ -3408,20 +3404,20 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 i32.const 2 call $~lib/array/Array#__set global.get $std/static-array/i - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -3436,11 +3432,11 @@ unreachable end global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -3454,11 +3450,11 @@ unreachable end global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get i64.const 3 @@ -3473,11 +3469,11 @@ unreachable end global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 1 call $~lib/array/Array#__get i64.const 4 @@ -3492,20 +3488,20 @@ unreachable end global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 i64.const 4 call $~lib/array/Array#__set global.get $std/static-array/I - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get i64.const 4 @@ -3520,11 +3516,11 @@ unreachable end global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -3538,11 +3534,11 @@ unreachable end global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get f32.const 1.5 @@ -3557,11 +3553,11 @@ unreachable end global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 1 call $~lib/array/Array#__get f32.const 2.5 @@ -3576,20 +3572,20 @@ unreachable end global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 f32.const 2.5 call $~lib/array/Array#__set global.get $std/static-array/f - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get f32.const 2.5 @@ -3604,11 +3600,11 @@ unreachable end global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -3622,11 +3618,11 @@ unreachable end global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get f64.const 1.25 @@ -3641,11 +3637,11 @@ unreachable end global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 1 call $~lib/array/Array#__get f64.const 2.25 @@ -3660,20 +3656,20 @@ unreachable end global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 f64.const 2.25 call $~lib/array/Array#__set global.get $std/static-array/F - local.set $8 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get f64.const 2.25 diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index 2f10a71907..d05a08308f 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -7567,10 +7567,6 @@ (local $50 i32) (local $51 i32) (local $52 i32) - (local $53 i32) - (local $54 i32) - (local $55 i32) - (local $56 i32) global.get $~lib/memory/__stack_pointer i32.const 108 i32.sub @@ -7581,11 +7577,11 @@ i32.const 108 memory.fill global.get $std/staticarray/arr1 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7600,11 +7596,11 @@ unreachable end global.get $std/staticarray/arr1 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -7618,20 +7614,20 @@ unreachable end global.get $std/staticarray/arr1 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr1 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7661,11 +7657,11 @@ unreachable end global.get $std/staticarray/arr2 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7680,11 +7676,11 @@ unreachable end global.get $std/staticarray/arr2 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -7698,20 +7694,20 @@ unreachable end global.get $std/staticarray/arr2 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 4 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr2 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7745,11 +7741,11 @@ call $std/staticarray/test global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -7764,11 +7760,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -7783,11 +7779,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -7802,11 +7798,11 @@ unreachable end global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -7820,20 +7816,20 @@ unreachable end global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -7850,11 +7846,11 @@ call $std/staticarray/test global.set $std/staticarray/arr3 global.get $std/staticarray/arr3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -7898,11 +7894,11 @@ local.tee $3 i32.store offset=8 local.get $3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -7920,20 +7916,20 @@ loop $for-loop|0 local.get $4 local.get $3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.lt_s if local.get $3 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 local.get $4 call $~lib/staticarray/StaticArray#__get i32.const 0 @@ -7960,31 +7956,31 @@ i32.const 7 i32.const 704 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 - local.set $56 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray.fromArray - local.tee $8 + local.tee $7 i32.store offset=16 - local.get $8 - local.set $56 + local.get $7 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length - local.get $7 - local.set $56 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array#get:length i32.eq i32.eqz @@ -7997,33 +7993,33 @@ unreachable end i32.const 0 - local.set $9 + local.set $8 loop $for-loop|1 - local.get $9 - local.get $7 - local.set $56 + local.get $8 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array#get:length i32.lt_s if - local.get $8 - local.set $56 + local.get $7 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 - local.get $9 + local.get $52 + local.get $8 call $~lib/staticarray/StaticArray#__get - local.get $7 - local.set $56 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 - local.get $9 + local.get $52 + local.get $8 call $~lib/array/Array#__get i32.eq i32.eqz @@ -8035,10 +8031,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $8 i32.const 1 i32.add - local.set $9 + local.set $8 br $for-loop|1 end end @@ -8048,20 +8044,20 @@ i32.const 7 i32.const 800 call $~lib/rt/__newArray - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray.fromArray - local.tee $8 + local.tee $7 i32.store offset=16 - local.get $8 - local.set $56 + local.get $7 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 0 i32.eq @@ -8079,33 +8075,33 @@ i32.const 4 i32.const 832 call $~lib/rt/__newBuffer - local.tee $13 + local.tee $11 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $13 - local.set $56 + local.get $11 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 4 i32.const 4 i32.const 864 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $15 + local.tee $13 i32.store offset=28 - local.get $15 - local.set $56 + local.get $13 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.const 3 i32.eq @@ -8119,37 +8115,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $13 - local.set $56 + local.get $11 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 4 i32.const 896 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $15 + local.tee $13 i32.store offset=28 - local.get $15 - local.set $56 + local.get $13 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length - local.get $13 - local.set $56 + local.get $11 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#get:length i32.eq i32.eqz @@ -8166,33 +8162,33 @@ i32.const 8 i32.const 992 call $~lib/rt/__newBuffer - local.tee $18 + local.tee $16 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $18 - local.set $56 + local.get $16 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 4 i32.const 8 i32.const 1056 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $20 + local.tee $18 i32.store offset=36 - local.get $20 - local.set $56 + local.get $18 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 3 i32.eq @@ -8210,35 +8206,35 @@ i32.const 8 i32.const 1264 call $~lib/rt/__newBuffer - local.tee $22 + local.tee $20 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -8251,44 +8247,44 @@ unreachable end i32.const 0 - local.set $24 + local.set $22 loop $for-loop|2 - local.get $24 local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.lt_s if - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 - local.get $24 + local.get $52 + local.get $22 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 - local.get $23 - local.set $56 + local.get $52 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 - local.get $24 + local.get $52 + local.get $22 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8299,31 +8295,31 @@ call $~lib/builtins/abort unreachable end - local.get $24 + local.get $22 i32.const 1 i32.add - local.set $24 + local.set $22 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 2 i32.eq @@ -8336,25 +8332,25 @@ call $~lib/builtins/abort unreachable end - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1120 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8365,25 +8361,25 @@ call $~lib/builtins/abort unreachable end - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1152 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8395,32 +8391,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.sub @@ -8435,30 +8431,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -8471,25 +8467,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 100 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 0 i32.eq @@ -8503,25 +8499,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.eq @@ -8534,25 +8530,25 @@ call $~lib/builtins/abort unreachable end - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1216 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8564,23 +8560,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 0 i32.eq @@ -8594,23 +8590,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $22 - local.set $56 + local.get $20 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $23 + local.tee $21 i32.store offset=44 - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.eq @@ -8623,25 +8619,25 @@ call $~lib/builtins/abort unreachable end - local.get $23 - local.set $56 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1152 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8657,41 +8653,41 @@ i32.const 8 i32.const 1440 call $~lib/rt/__newBuffer - local.tee $26 + local.tee $24 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $26 - local.set $56 + local.get $24 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 2 i32.const 9 i32.const 1488 call $~lib/rt/__newArray - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $29 + local.tee $26 i32.store offset=56 - local.get $29 - local.set $56 + local.get $26 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length - local.get $26 - local.set $56 + local.get $24 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.eq i32.eqz @@ -8706,38 +8702,38 @@ i32.const 1 drop global.get $~lib/memory/__stack_pointer - local.get $26 - local.set $56 + local.get $24 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 2 i32.const 9 i32.const 1552 call $~lib/rt/__newArray - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $29 + local.tee $26 i32.store offset=56 - local.get $29 - local.set $56 + local.get $26 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length - local.get $26 - local.set $56 + local.get $24 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#get:length i32.const 1 i32.add @@ -8758,20 +8754,20 @@ i32.const 8 i32.const 1584 call $~lib/rt/__newBuffer - local.tee $33 + local.tee $29 i32.store offset=60 - local.get $33 - local.set $56 + local.get $29 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1120 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -8785,18 +8781,18 @@ call $~lib/builtins/abort unreachable end - local.get $33 - local.set $56 + local.get $29 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1520 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -8810,18 +8806,18 @@ call $~lib/builtins/abort unreachable end - local.get $33 - local.set $56 + local.get $29 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1216 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -8835,18 +8831,18 @@ call $~lib/builtins/abort unreachable end - local.get $33 - local.set $56 + local.get $29 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1216 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -8864,11 +8860,11 @@ i32.const 10 i32.const 1632 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 f64.const nan:0x8000000000000 i32.const 0 call $~lib/staticarray/StaticArray#includes @@ -8887,11 +8883,11 @@ i32.const 11 i32.const 1664 call $~lib/rt/__newBuffer - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 f32.const nan:0x400000 i32.const 0 call $~lib/staticarray/StaticArray#includes @@ -8911,14 +8907,14 @@ i32.const 4 i32.const 1696 call $~lib/rt/__newBuffer - local.tee $37 + local.tee $33 i32.store offset=64 - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -8933,12 +8929,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 7 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -8953,12 +8949,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 9 i32.const 2 call $~lib/staticarray/StaticArray#indexOf @@ -8973,12 +8969,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#indexOf @@ -8993,12 +8989,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $56 + local.get $33 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -3 call $~lib/staticarray/StaticArray#indexOf @@ -9018,14 +9014,14 @@ i32.const 4 i32.const 1728 call $~lib/rt/__newBuffer - local.tee $39 + local.tee $35 i32.store offset=68 - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -9042,12 +9038,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 7 i32.const 1 global.set $~argumentsLength @@ -9064,12 +9060,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const 3 call $~lib/staticarray/StaticArray#lastIndexOf @@ -9084,12 +9080,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const 2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -9104,12 +9100,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -9124,12 +9120,12 @@ call $~lib/builtins/abort unreachable end - local.get $39 - local.set $56 + local.get $35 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#lastIndexOf @@ -9149,32 +9145,32 @@ i32.const 8 i32.const 1872 call $~lib/rt/__newBuffer - local.tee $41 + local.tee $37 i32.store offset=72 - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 1936 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=76 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1968 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9185,30 +9181,30 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 1904 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=76 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2016 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9219,30 +9215,30 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 2064 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=76 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2096 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9253,30 +9249,30 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 2144 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=76 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2176 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9287,36 +9283,36 @@ call $~lib/builtins/abort unreachable end - local.get $41 - local.set $56 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 i32.const 1936 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=76 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 - local.get $41 - local.set $56 + local.get $52 + local.get $37 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=48 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#toString - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9332,14 +9328,14 @@ i32.const 4 i32.const 2240 call $~lib/rt/__newBuffer - local.tee $43 + local.tee $39 i32.store offset=80 - local.get $43 - local.set $56 + local.get $39 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 i32.const 1 i32.const 2 @@ -9347,12 +9343,12 @@ i32.const 0 call $~lib/staticarray/StaticArray#fill@varargs drop - local.get $43 - local.set $56 + local.get $39 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 0 @@ -9366,12 +9362,12 @@ call $~lib/builtins/abort unreachable end - local.get $43 - local.set $56 + local.get $39 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -9390,22 +9386,22 @@ i32.const 4 i32.const 2272 call $~lib/rt/__newBuffer - local.tee $45 + local.tee $41 i32.store offset=84 - local.get $45 - local.set $56 + local.get $41 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#reverse drop - local.get $45 - local.set $56 + local.get $41 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -9419,12 +9415,12 @@ call $~lib/builtins/abort unreachable end - local.get $45 - local.set $56 + local.get $41 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -9438,12 +9434,12 @@ call $~lib/builtins/abort unreachable end - local.get $45 - local.set $56 + local.get $41 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -9462,14 +9458,14 @@ i32.const 4 i32.const 2304 call $~lib/rt/__newBuffer - local.tee $47 + local.tee $43 i32.store offset=88 - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 i32.const 3 i32.const 2 @@ -9477,12 +9473,12 @@ i32.const 0 call $~lib/staticarray/StaticArray#copyWithin@varargs drop - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -9496,12 +9492,12 @@ call $~lib/builtins/abort unreachable end - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -9515,12 +9511,12 @@ call $~lib/builtins/abort unreachable end - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -9534,12 +9530,12 @@ call $~lib/builtins/abort unreachable end - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -9553,12 +9549,12 @@ call $~lib/builtins/abort unreachable end - local.get $47 - local.set $56 + local.get $43 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 4 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -9577,30 +9573,30 @@ i32.const 4 i32.const 2352 call $~lib/rt/__newBuffer - local.tee $49 + local.tee $45 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2384 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#map - local.tee $50 + local.tee $46 i32.store offset=96 - local.get $50 - local.set $56 + local.get $46 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -9614,12 +9610,12 @@ call $~lib/builtins/abort unreachable end - local.get $50 - local.set $56 + local.get $46 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -9633,12 +9629,12 @@ call $~lib/builtins/abort unreachable end - local.get $50 - local.set $56 + local.get $46 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/array/Array#__get i32.const 4 @@ -9652,18 +9648,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2416 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#forEach global.get $std/staticarray/maxVal i32.const 3 @@ -9678,27 +9674,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2448 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#filter - local.tee $51 + local.tee $47 i32.store offset=100 - local.get $51 - local.set $56 + local.get $47 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -9711,12 +9707,12 @@ call $~lib/builtins/abort unreachable end - local.get $51 - local.set $56 + local.get $47 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -9730,12 +9726,12 @@ call $~lib/builtins/abort unreachable end - local.get $51 - local.set $56 + local.get $47 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -9749,22 +9745,22 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2480 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#reduce - local.set $52 - local.get $52 + local.set $48 + local.get $48 i32.const 6 i32.eq i32.eqz @@ -9776,22 +9772,22 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2512 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#reduceRight - local.set $53 - local.get $53 + local.set $49 + local.get $49 i32.const 6 i32.eq i32.eqz @@ -9803,18 +9799,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2544 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#some i32.eqz if @@ -9825,18 +9821,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2576 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#some i32.eqz i32.eqz @@ -9848,18 +9844,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2608 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#every i32.eqz if @@ -9870,18 +9866,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2640 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#every i32.eqz i32.eqz @@ -9893,18 +9889,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2672 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#findIndex i32.const 1 i32.eq @@ -9917,18 +9913,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2704 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#findIndex i32.const -1 i32.eq @@ -9941,18 +9937,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2736 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#findLastIndex i32.const 1 i32.eq @@ -9965,18 +9961,18 @@ call $~lib/builtins/abort unreachable end - local.get $49 - local.set $56 + local.get $45 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2768 - local.set $56 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store offset=24 - local.get $56 + local.get $52 call $~lib/staticarray/StaticArray#findLastIndex i32.const -1 i32.eq @@ -9994,25 +9990,25 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newBuffer - local.tee $55 + local.tee $51 i32.store offset=104 - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/staticarray/StaticArray#sort@varargs drop - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 0 @@ -10026,12 +10022,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -10045,12 +10041,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -10064,12 +10060,12 @@ call $~lib/builtins/abort unreachable end - local.get $55 - local.set $56 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $56 + local.get $52 i32.store - local.get $56 + local.get $52 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 3 diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 7970a9b62e..957f42687b 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -11586,33 +11586,32 @@ ) (func $~lib/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) (local $3 i32) - (local $4 i32) (local $length i32) (local $sepLen i32) + (local $6 i32) (local $7 i32) - (local $8 i32) (local $result i32) (local $resultStart i32) (local $i i32) (local $charStr i32) + (local $result|12 i32) (local $result|13 i32) - (local $result|14 i32) (local $end i32) (local $start i32) - (local $i|17 i32) + (local $i|16 i32) (local $len i32) (local $out i32) - (local $len|20 i32) - (local $out|21 i32) - (local $22 i32) + (local $len|19 i32) + (local $out|20 i32) + (local $21 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 + i32.const 36 memory.fill local.get $limit i32.eqz @@ -11622,12 +11621,12 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $separator @@ -11642,38 +11641,33 @@ call $~lib/rt/__newArray local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store offset=4 local.get $3 i32.const 0 local.get $this call $~lib/array/Array<~lib/string/String>#__set local.get $3 - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/string/String#get:length local.set $length local.get $separator - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/string/String#get:length local.set $sepLen local.get $limit @@ -11694,20 +11688,20 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $length - local.tee $7 + local.tee $6 local.get $limit - local.tee $8 + local.tee $7 + local.get $6 local.get $7 - local.get $8 i32.lt_s select local.set $length @@ -11718,13 +11712,13 @@ i32.const 0 call $~lib/rt/__newArray local.tee $result - i32.store offset=12 + i32.store offset=8 local.get $result - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $resultStart i32.const 0 @@ -11739,7 +11733,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $charStr - i32.store offset=16 + i32.store offset=12 local.get $charStr local.get $this local.get $i @@ -11767,12 +11761,12 @@ end end local.get $result - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return else local.get $length @@ -11784,24 +11778,24 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $result|13 - i32.store offset=20 - local.get $result|13 - local.set $22 + local.tee $result|12 + i32.store offset=16 + local.get $result|12 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 call $~lib/array/Array<~lib/string/String>#get:dataStart i32.const 688 i32.store - local.get $result|13 - local.set $22 + local.get $result|12 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end end @@ -11811,27 +11805,27 @@ i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $result|14 - i32.store offset=24 + local.tee $result|13 + i32.store offset=20 i32.const 0 local.set $end i32.const 0 local.set $start i32.const 0 - local.set $i|17 + local.set $i|16 loop $while-continue|1 local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $separator - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 local.get $start call $~lib/string/String#indexOf local.tee $end @@ -11853,7 +11847,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $out - i32.store offset=32 + i32.store offset=28 local.get $out local.get $this local.get $start @@ -11864,50 +11858,50 @@ i32.const 1 i32.shl memory.copy - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $out - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 i32.const 688 - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $i|17 + local.get $i|16 i32.const 1 i32.add - local.tee $i|17 + local.tee $i|16 local.get $limit i32.eq if - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $end @@ -11920,92 +11914,92 @@ local.get $start i32.eqz if - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 local.get $this - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return end local.get $length local.get $start i32.sub - local.set $len|20 - local.get $len|20 + local.set $len|19 + local.get $len|19 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $len|20 + local.get $len|19 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $out|21 - i32.store offset=36 - local.get $out|21 + local.tee $out|20 + i32.store offset=32 + local.get $out|20 local.get $this local.get $start i32.const 1 i32.shl i32.add - local.get $len|20 + local.get $len|19 i32.const 1 i32.shl memory.copy - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $out|21 - local.set $22 + local.get $21 + i32.store offset=4 + local.get $21 + local.get $out|20 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop else - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 + local.get $21 + i32.store offset=4 + local.get $21 i32.const 688 - local.set $22 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 + local.get $21 + i32.store offset=24 + local.get $21 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $result|14 - local.set $22 + local.get $result|13 + local.set $21 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $21 return ) (func $~lib/string/String#split@varargs (param $this i32) (param $separator i32) (param $limit i32) (result i32) @@ -12157,26 +12151,26 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) + (local $10 f64) + (local $11 f64) + (local $12 f64) (local $13 f64) (local $14 f64) (local $15 f64) (local $16 f64) - (local $17 f64) + (local $17 f32) (local $18 f64) - (local $19 f64) + (local $19 i32) (local $20 f32) - (local $21 f64) - (local $22 i32) - (local $23 f32) + (local $21 i32) + (local $22 f64) + (local $23 i32) (local $24 i32) - (local $25 f64) + (local $25 i32) (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) + (local $27 f64) + (local $28 f64) + (local $29 f64) (local $30 f64) (local $31 f64) (local $32 f64) @@ -12195,14 +12189,11 @@ (local $45 f64) (local $46 f64) (local $47 f64) - (local $48 f64) - (local $49 f64) - (local $50 f64) + (local $48 i32) + (local $49 i32) + (local $50 i32) (local $51 i32) (local $52 i32) - (local $53 i32) - (local $54 i32) - (local $55 i32) global.get $~lib/memory/__stack_pointer i32.const 96 i32.sub @@ -12225,17 +12216,17 @@ unreachable end i32.const 144 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 144 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12247,17 +12238,17 @@ unreachable end i32.const 176 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 176 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12269,17 +12260,17 @@ unreachable end i32.const 208 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 208 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12291,11 +12282,11 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/String#get:length i32.const 16 i32.eq @@ -12309,11 +12300,11 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#charCodeAt i32.const 104 @@ -12328,11 +12319,11 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1 call $~lib/string/String#codePointAt i32.const 105 @@ -12364,31 +12355,31 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 15 call $~lib/string/String#at - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 15 call $~lib/string/String#charAt - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12400,39 +12391,39 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -1 call $~lib/string/String#at - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#get:length i32.const 1 i32.sub call $~lib/string/String#charAt - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12444,32 +12435,32 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#get:length i32.sub call $~lib/string/String#at - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 720 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12481,11 +12472,11 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/String.__not i32.eqz i32.const 0 @@ -12500,11 +12491,11 @@ unreachable end i32.const 752 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/String.__not i32.eqz i32.const 1 @@ -12519,11 +12510,11 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/String.__not i32.eqz i32.const 1 @@ -12542,17 +12533,17 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 752 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12568,17 +12559,17 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12594,17 +12585,17 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12622,17 +12613,17 @@ global.set $~argumentsLength i32.const 0 call $~lib/string/String.fromCharCode@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12646,17 +12637,17 @@ i32.const 55296 i32.const 57088 call $~lib/string/String.fromCharCode - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12672,23 +12663,23 @@ i32.const 4 i32.const 912 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String.fromCharCodes - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 944 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12704,23 +12695,23 @@ i32.const 4 i32.const 976 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String.fromCharCodes - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1008 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12736,23 +12727,23 @@ i32.const 4 i32.const 1040 call $~lib/rt/__newArray - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String.fromCharCodes - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1088 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12765,17 +12756,17 @@ end i32.const 0 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 752 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12788,17 +12779,17 @@ end i32.const 54 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12811,17 +12802,17 @@ end i32.const 119558 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1120 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12833,17 +12824,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1152 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#startsWith i32.eqz @@ -12856,17 +12847,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1184 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -12881,17 +12872,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1216 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#includes i32.eqz @@ -12904,30 +12895,30 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 1248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12939,30 +12930,30 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 15 i32.const 1248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12974,30 +12965,30 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3 i32.const 1248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1280 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13009,30 +13000,30 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 10 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13044,30 +13035,30 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 100 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13079,30 +13070,30 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 5 i32.const 1248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1344 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13114,30 +13105,30 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 6 i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1408 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13149,30 +13140,30 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 8 i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13184,30 +13175,30 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 1248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13219,30 +13210,30 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 15 i32.const 1248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13254,30 +13245,30 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3 i32.const 1248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1280 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13289,30 +13280,30 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 10 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13324,30 +13315,30 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 100 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13359,30 +13350,30 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 5 i32.const 1248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1488 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13394,30 +13385,30 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 6 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1520 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13429,30 +13420,30 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 8 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#padEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1552 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13464,17 +13455,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13489,17 +13480,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1152 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -13514,17 +13505,17 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13539,17 +13530,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13564,17 +13555,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13589,17 +13580,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 2 @@ -13614,17 +13605,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1632 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -13639,17 +13630,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 2 call $~lib/string/String#indexOf i32.const 2 @@ -13664,17 +13655,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 3 call $~lib/string/String#indexOf i32.const -1 @@ -13689,17 +13680,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1664 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const -1 call $~lib/string/String#indexOf i32.const 2 @@ -13714,17 +13705,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13741,17 +13732,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1152 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13768,27 +13759,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#lastIndexOf@varargs global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/String#get:length i32.eq i32.eqz @@ -13801,17 +13792,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13828,17 +13819,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1632 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13855,17 +13846,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1696 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13882,17 +13873,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 2 call $~lib/string/String#lastIndexOf i32.const 2 @@ -13907,17 +13898,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 3 call $~lib/string/String#lastIndexOf i32.const 2 @@ -13932,17 +13923,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1664 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const -1 call $~lib/string/String#lastIndexOf i32.const -1 @@ -13957,17 +13948,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1728 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#lastIndexOf i32.const -1 @@ -13982,17 +13973,17 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1152 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#lastIndexOf i32.const 0 @@ -14007,17 +13998,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const 0 i32.eq @@ -14031,17 +14022,17 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14055,17 +14046,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14079,17 +14070,17 @@ unreachable end i32.const 1760 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1760 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const 0 i32.eq @@ -14103,17 +14094,17 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1792 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14127,17 +14118,17 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1824 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14151,17 +14142,17 @@ unreachable end i32.const 1792 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14175,17 +14166,17 @@ unreachable end i32.const 1856 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14199,17 +14190,17 @@ unreachable end i32.const 1888 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14223,17 +14214,17 @@ unreachable end i32.const 1856 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1920 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14247,17 +14238,17 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1888 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14271,17 +14262,17 @@ unreachable end i32.const 1920 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1856 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14295,17 +14286,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1280 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14319,17 +14310,17 @@ unreachable end i32.const 752 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14343,23 +14334,23 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trimStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14371,23 +14362,23 @@ unreachable end i32.const 1952 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trimStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1952 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14399,23 +14390,23 @@ unreachable end i32.const 1984 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trimStart - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2032 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14427,23 +14418,23 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trimEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14455,23 +14446,23 @@ unreachable end i32.const 1952 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trimEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1952 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14483,23 +14474,23 @@ unreachable end i32.const 1984 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trimEnd - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2080 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14511,23 +14502,23 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trim - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14539,23 +14530,23 @@ unreachable end i32.const 1952 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trim - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1952 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14567,23 +14558,23 @@ unreachable end i32.const 1984 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String#trim - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14597,14 +14588,14 @@ block $~lib/builtins/bool.parse|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2128 - local.tee $6 + local.tee $3 i32.store offset=16 - local.get $6 - local.set $55 + local.get $3 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.0 end @@ -14624,14 +14615,14 @@ block $~lib/builtins/bool.parse|inlined.1 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2176 - local.tee $7 + local.tee $4 i32.store offset=20 - local.get $7 - local.set $55 + local.get $4 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.1 end @@ -14651,14 +14642,14 @@ block $~lib/builtins/bool.parse|inlined.2 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2224 - local.tee $8 + local.tee $5 i32.store offset=24 - local.get $8 - local.set $55 + local.get $5 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.2 end @@ -14678,14 +14669,14 @@ block $~lib/builtins/bool.parse|inlined.3 (result i32) global.get $~lib/memory/__stack_pointer i32.const 688 - local.tee $9 + local.tee $6 i32.store offset=28 - local.get $9 - local.set $55 + local.get $6 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.3 end @@ -14705,14 +14696,14 @@ block $~lib/builtins/bool.parse|inlined.4 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2272 - local.tee $10 + local.tee $7 i32.store offset=32 - local.get $10 - local.set $55 + local.get $7 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.4 end @@ -14732,14 +14723,14 @@ block $~lib/builtins/bool.parse|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2304 - local.tee $11 + local.tee $8 i32.store offset=36 - local.get $11 - local.set $55 + local.get $8 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.5 end @@ -14759,14 +14750,14 @@ block $~lib/builtins/bool.parse|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer i32.const 2336 - local.tee $12 + local.tee $9 i32.store offset=40 - local.get $12 - local.set $55 + local.get $9 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtob br $~lib/builtins/bool.parse|inlined.6 end @@ -14784,11 +14775,11 @@ unreachable end i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14803,11 +14794,11 @@ unreachable end i32.const 2400 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14822,11 +14813,11 @@ unreachable end i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14841,11 +14832,11 @@ unreachable end i32.const 2464 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14860,11 +14851,11 @@ unreachable end i32.const 2496 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 5 @@ -14879,11 +14870,11 @@ unreachable end i32.const 2528 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 455 @@ -14898,11 +14889,11 @@ unreachable end i32.const 2560 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 3855 @@ -14917,11 +14908,11 @@ unreachable end i32.const 2592 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 3855 @@ -14936,11 +14927,11 @@ unreachable end i32.const 2624 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 11 @@ -14955,11 +14946,11 @@ unreachable end i32.const 2656 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14974,11 +14965,11 @@ unreachable end i32.const 2688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const -123 @@ -14993,11 +14984,11 @@ unreachable end i32.const 2720 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 123 @@ -15012,11 +15003,11 @@ unreachable end i32.const 2752 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const -12 @@ -15031,11 +15022,11 @@ unreachable end i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15050,11 +15041,11 @@ unreachable end i32.const 2784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15069,11 +15060,11 @@ unreachable end i32.const 2816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16 call $~lib/string/parseInt f64.const 2833 @@ -15088,11 +15079,11 @@ unreachable end i32.const 2848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15107,11 +15098,11 @@ unreachable end i32.const 2880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15126,11 +15117,11 @@ unreachable end i32.const 2912 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15146,15 +15137,15 @@ end block $~lib/math/NativeMath.signbit|inlined.0 (result i32) i32.const 2944 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt - local.set $13 - local.get $13 + local.set $10 + local.get $10 i64.reinterpret_f64 i64.const 63 i64.shr_u @@ -15174,19 +15165,19 @@ unreachable end i32.const 2976 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt i32.const 3024 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16 call $~lib/string/parseInt f64.eq @@ -15200,11 +15191,11 @@ unreachable end i32.const 3056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 36893488147419103232 @@ -15219,11 +15210,11 @@ unreachable end i32.const 3056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13 call $~lib/string/parseInt f64.const 5135857308667095285760 @@ -15238,11 +15229,11 @@ unreachable end i32.const 3120 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 10 call $~lib/string/parseInt f64.const -1.e+24 @@ -15257,11 +15248,11 @@ unreachable end i32.const 3200 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16 call $~lib/string/parseInt f64.const 75557863725914323419136 @@ -15276,11 +15267,11 @@ unreachable end i32.const 3264 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15295,11 +15286,11 @@ unreachable end i32.const 3296 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 2 @@ -15314,11 +15305,11 @@ unreachable end i32.const 3344 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15333,11 +15324,11 @@ unreachable end i32.const 3376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 2 @@ -15352,11 +15343,11 @@ unreachable end i32.const 3424 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15371,11 +15362,11 @@ unreachable end i32.const 3456 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15390,11 +15381,11 @@ unreachable end i32.const 3488 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15409,15 +15400,15 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt - local.tee $14 - local.get $14 + local.tee $11 + local.get $11 f64.ne i32.eqz if @@ -15429,15 +15420,15 @@ unreachable end i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt - local.tee $15 - local.get $15 + local.tee $12 + local.get $12 f64.ne i32.eqz if @@ -15449,15 +15440,15 @@ unreachable end i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt - local.tee $16 - local.get $16 + local.tee $13 + local.get $13 f64.ne i32.eqz if @@ -15469,15 +15460,15 @@ unreachable end i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 37 call $~lib/string/parseInt - local.tee $17 - local.get $17 + local.tee $14 + local.get $14 f64.ne i32.eqz if @@ -15489,15 +15480,15 @@ unreachable end i32.const 3600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt - local.tee $18 - local.get $18 + local.tee $15 + local.get $15 f64.ne i32.eqz if @@ -15509,15 +15500,15 @@ unreachable end i32.const 3632 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/parseInt - local.tee $19 - local.get $19 + local.tee $16 + local.get $16 f64.ne i32.eqz if @@ -15529,14 +15520,14 @@ unreachable end i32.const 3632 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/number/F32.parseFloat - local.tee $20 - local.get $20 + local.tee $17 + local.get $17 f32.ne i32.eqz if @@ -15548,14 +15539,14 @@ unreachable end i32.const 3632 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/number/F64.parseFloat - local.tee $21 - local.get $21 + local.tee $18 + local.get $18 f64.ne i32.eqz if @@ -15569,20 +15560,20 @@ block $~lib/builtins/f32.parse|inlined.0 (result f32) global.get $~lib/memory/__stack_pointer i32.const 3632 - local.tee $22 + local.tee $19 i32.store offset=44 - local.get $22 - local.set $55 + local.get $19 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtod f32.demote_f64 br $~lib/builtins/f32.parse|inlined.0 end - local.tee $23 - local.get $23 + local.tee $20 + local.get $20 f32.ne i32.eqz if @@ -15596,19 +15587,19 @@ block $~lib/builtins/f64.parse|inlined.0 (result f64) global.get $~lib/memory/__stack_pointer i32.const 3632 - local.tee $24 + local.tee $21 i32.store offset=48 - local.get $24 - local.set $55 + local.get $21 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/util/string/strtod br $~lib/builtins/f64.parse|inlined.0 end - local.tee $25 - local.get $25 + local.tee $22 + local.get $22 f64.ne i32.eqz if @@ -15620,11 +15611,11 @@ unreachable end i32.const 3856 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/number/I32.parseInt global.get $~lib/number/I32.MAX_VALUE @@ -15641,17 +15632,17 @@ block $~lib/builtins/i32.parse|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer i32.const 3856 - local.tee $26 + local.tee $23 i32.store offset=52 i32.const 0 - local.set $27 - local.get $26 - local.set $55 + local.set $24 + local.get $23 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - local.get $27 + local.get $52 + local.get $24 call $~lib/util/string/strtol br $~lib/builtins/i32.parse|inlined.0 end @@ -15667,11 +15658,11 @@ unreachable end i32.const 3904 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/number/I64.parseInt global.get $~lib/number/I64.MAX_VALUE @@ -15688,17 +15679,17 @@ block $~lib/builtins/i64.parse|inlined.0 (result i64) global.get $~lib/memory/__stack_pointer i32.const 3904 - local.tee $28 + local.tee $25 i32.store offset=56 i32.const 0 - local.set $29 - local.get $28 - local.set $55 + local.set $26 + local.get $25 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - local.get $29 + local.get $52 + local.get $26 call $~lib/util/string/strtol br $~lib/builtins/i64.parse|inlined.0 end @@ -15714,11 +15705,11 @@ unreachable end i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -15732,11 +15723,11 @@ unreachable end i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15750,11 +15741,11 @@ unreachable end i32.const 3968 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15768,11 +15759,11 @@ unreachable end i32.const 4000 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15786,11 +15777,11 @@ unreachable end i32.const 4032 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-05 f64.eq @@ -15804,11 +15795,11 @@ unreachable end i32.const 4064 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -1e-05 f64.eq @@ -15822,11 +15813,11 @@ unreachable end i32.const 4096 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -3e-23 f64.eq @@ -15840,11 +15831,11 @@ unreachable end i32.const 4144 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 3e21 f64.eq @@ -15858,11 +15849,11 @@ unreachable end i32.const 4192 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15876,11 +15867,11 @@ unreachable end i32.const 4224 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15894,11 +15885,11 @@ unreachable end i32.const 4256 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15912,11 +15903,11 @@ unreachable end i32.const 4288 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.25 f64.eq @@ -15930,11 +15921,11 @@ unreachable end i32.const 4320 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e3 f64.eq @@ -15948,11 +15939,11 @@ unreachable end i32.const 4352 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-10 f64.eq @@ -15966,11 +15957,11 @@ unreachable end i32.const 4400 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-30 f64.eq @@ -15984,11 +15975,11 @@ unreachable end i32.const 4448 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-323 f64.eq @@ -16002,11 +15993,11 @@ unreachable end i32.const 4496 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16020,11 +16011,11 @@ unreachable end i32.const 4544 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1.e+308 f64.eq @@ -16038,11 +16029,11 @@ unreachable end i32.const 4576 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -16056,14 +16047,14 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $30 - local.get $30 + local.tee $27 + local.get $27 f64.ne i32.eqz if @@ -16075,11 +16066,11 @@ unreachable end i32.const 4608 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16093,11 +16084,11 @@ unreachable end i32.const 4656 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-10 f64.eq @@ -16111,11 +16102,11 @@ unreachable end i32.const 4704 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16129,11 +16120,11 @@ unreachable end i32.const 4752 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16147,11 +16138,11 @@ unreachable end i32.const 4784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16165,11 +16156,11 @@ unreachable end i32.const 4816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16183,11 +16174,11 @@ unreachable end i32.const 4864 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 123456789 f64.eq @@ -16201,11 +16192,11 @@ unreachable end i32.const 4912 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16219,11 +16210,11 @@ unreachable end i32.const 4960 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-60 f64.eq @@ -16237,11 +16228,11 @@ unreachable end i32.const 4992 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1.e+60 f64.eq @@ -16255,11 +16246,11 @@ unreachable end i32.const 5024 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 123.4 f64.eq @@ -16273,11 +16264,11 @@ unreachable end i32.const 5056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16291,11 +16282,11 @@ unreachable end i32.const 5088 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16309,11 +16300,11 @@ unreachable end i32.const 5136 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16327,11 +16318,11 @@ unreachable end i32.const 5184 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16345,11 +16336,11 @@ unreachable end i32.const 5232 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.022 f64.eq @@ -16363,11 +16354,11 @@ unreachable end i32.const 5280 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 11 f64.eq @@ -16381,11 +16372,11 @@ unreachable end i32.const 2784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16399,11 +16390,11 @@ unreachable end i32.const 5312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16417,11 +16408,11 @@ unreachable end i32.const 5344 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16435,11 +16426,11 @@ unreachable end i32.const 5376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1.1 f64.eq @@ -16453,11 +16444,11 @@ unreachable end i32.const 5408 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16471,11 +16462,11 @@ unreachable end i32.const 5440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16489,11 +16480,11 @@ unreachable end i32.const 5472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16507,11 +16498,11 @@ unreachable end i32.const 5504 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16525,11 +16516,11 @@ unreachable end i32.const 5536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16543,11 +16534,11 @@ unreachable end i32.const 5568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16561,11 +16552,11 @@ unreachable end i32.const 5600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16579,11 +16570,11 @@ unreachable end i32.const 5632 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16597,11 +16588,11 @@ unreachable end i32.const 5664 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16615,11 +16606,11 @@ unreachable end i32.const 5696 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16633,11 +16624,11 @@ unreachable end i32.const 5728 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16651,11 +16642,11 @@ unreachable end i32.const 5776 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16669,11 +16660,11 @@ unreachable end i32.const 5808 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16687,11 +16678,11 @@ unreachable end i32.const 5840 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16705,11 +16696,11 @@ unreachable end i32.const 5872 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16723,11 +16714,11 @@ unreachable end i32.const 5904 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16741,11 +16732,11 @@ unreachable end i32.const 5936 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16759,11 +16750,11 @@ unreachable end i32.const 5968 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16777,11 +16768,11 @@ unreachable end i32.const 6000 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.01 f64.eq @@ -16795,11 +16786,11 @@ unreachable end i32.const 6048 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16813,11 +16804,11 @@ unreachable end i32.const 6080 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16831,11 +16822,11 @@ unreachable end i32.const 6112 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16849,11 +16840,11 @@ unreachable end i32.const 6144 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16867,11 +16858,11 @@ unreachable end i32.const 6176 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16885,11 +16876,11 @@ unreachable end i32.const 6208 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16903,11 +16894,11 @@ unreachable end i32.const 6240 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16921,11 +16912,11 @@ unreachable end i32.const 6272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16939,11 +16930,11 @@ unreachable end i32.const 6304 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16957,11 +16948,11 @@ unreachable end i32.const 6336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 call $~lib/object/Object.is @@ -16977,11 +16968,11 @@ unreachable end i32.const 6368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -16997,11 +16988,11 @@ unreachable end i32.const 6400 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 call $~lib/object/Object.is @@ -17017,11 +17008,11 @@ unreachable end i32.const 2944 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -17037,11 +17028,11 @@ unreachable end i32.const 6432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -17057,14 +17048,14 @@ unreachable end i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $31 - local.get $31 + local.tee $28 + local.get $28 f64.ne i32.eqz if @@ -17076,14 +17067,14 @@ unreachable end i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $32 - local.get $32 + local.tee $29 + local.get $29 f64.ne i32.eqz if @@ -17095,14 +17086,14 @@ unreachable end i32.const 6480 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $33 - local.get $33 + local.tee $30 + local.get $30 f64.ne i32.eqz if @@ -17114,14 +17105,14 @@ unreachable end i32.const 6512 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $34 - local.get $34 + local.tee $31 + local.get $31 f64.ne i32.eqz if @@ -17133,14 +17124,14 @@ unreachable end i32.const 6544 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $35 - local.get $35 + local.tee $32 + local.get $32 f64.ne i32.eqz if @@ -17152,14 +17143,14 @@ unreachable end i32.const 6576 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $36 - local.get $36 + local.tee $33 + local.get $33 f64.ne i32.eqz if @@ -17171,14 +17162,14 @@ unreachable end i32.const 6608 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $37 - local.get $37 + local.tee $34 + local.get $34 f64.ne i32.eqz if @@ -17190,14 +17181,14 @@ unreachable end i32.const 6640 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $38 - local.get $38 + local.tee $35 + local.get $35 f64.ne i32.eqz if @@ -17209,14 +17200,14 @@ unreachable end i32.const 6672 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $39 - local.get $39 + local.tee $36 + local.get $36 f64.ne i32.eqz if @@ -17228,14 +17219,14 @@ unreachable end i32.const 6704 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $40 - local.get $40 + local.tee $37 + local.get $37 f64.ne i32.eqz if @@ -17247,14 +17238,14 @@ unreachable end i32.const 6736 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $41 - local.get $41 + local.tee $38 + local.get $38 f64.ne i32.eqz if @@ -17266,14 +17257,14 @@ unreachable end i32.const 6768 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $42 - local.get $42 + local.tee $39 + local.get $39 f64.ne i32.eqz if @@ -17285,14 +17276,14 @@ unreachable end i32.const 6800 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $43 - local.get $43 + local.tee $40 + local.get $40 f64.ne i32.eqz if @@ -17304,14 +17295,14 @@ unreachable end i32.const 6832 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $44 - local.get $44 + local.tee $41 + local.get $41 f64.ne i32.eqz if @@ -17323,14 +17314,14 @@ unreachable end i32.const 6864 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $45 - local.get $45 + local.tee $42 + local.get $42 f64.ne i32.eqz if @@ -17342,14 +17333,14 @@ unreachable end i32.const 2336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $46 - local.get $46 + local.tee $43 + local.get $43 f64.ne i32.eqz if @@ -17361,11 +17352,11 @@ unreachable end i32.const 6896 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e22 f64.eq @@ -17379,11 +17370,11 @@ unreachable end i32.const 6928 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-22 f64.eq @@ -17397,11 +17388,11 @@ unreachable end i32.const 6960 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1.e+23 f64.eq @@ -17415,11 +17406,11 @@ unreachable end i32.const 6992 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-23 f64.eq @@ -17433,11 +17424,11 @@ unreachable end i32.const 7024 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1.e+37 f64.eq @@ -17451,11 +17442,11 @@ unreachable end i32.const 7056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-37 f64.eq @@ -17469,11 +17460,11 @@ unreachable end i32.const 7088 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1.e+38 f64.eq @@ -17487,11 +17478,11 @@ unreachable end i32.const 7120 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1e-38 f64.eq @@ -17505,11 +17496,11 @@ unreachable end i32.const 7152 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.EPSILON f64.eq @@ -17523,11 +17514,11 @@ unreachable end i32.const 7216 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MAX_VALUE f64.eq @@ -17541,11 +17532,11 @@ unreachable end i32.const 7296 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MIN_VALUE f64.eq @@ -17559,11 +17550,11 @@ unreachable end i32.const 7328 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1.e+308 f64.eq @@ -17577,11 +17568,11 @@ unreachable end i32.const 7376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -17595,11 +17586,11 @@ unreachable end i32.const 7520 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17613,11 +17604,11 @@ unreachable end i32.const 7568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17631,11 +17622,11 @@ unreachable end i32.const 7616 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17649,11 +17640,11 @@ unreachable end i32.const 7664 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.neg @@ -17668,11 +17659,11 @@ unreachable end i32.const 7712 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17686,11 +17677,11 @@ unreachable end i32.const 7760 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17704,11 +17695,11 @@ unreachable end i32.const 7808 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17722,11 +17713,11 @@ unreachable end i32.const 7840 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17740,11 +17731,11 @@ unreachable end i32.const 7888 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17758,11 +17749,11 @@ unreachable end i32.const 7936 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.neg @@ -17777,11 +17768,11 @@ unreachable end i32.const 7984 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17795,11 +17786,11 @@ unreachable end i32.const 8032 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17813,14 +17804,14 @@ unreachable end i32.const 8080 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $47 - local.get $47 + local.tee $44 + local.get $44 f64.ne i32.eqz if @@ -17832,14 +17823,14 @@ unreachable end i32.const 8112 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $48 - local.get $48 + local.tee $45 + local.get $45 f64.ne i32.eqz if @@ -17851,14 +17842,14 @@ unreachable end i32.const 8160 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $49 - local.get $49 + local.tee $46 + local.get $46 f64.ne i32.eqz if @@ -17870,11 +17861,11 @@ unreachable end i32.const 8208 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17888,11 +17879,11 @@ unreachable end i32.const 8400 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat global.get $std/string/Ox1p_1073 f64.eq @@ -17906,11 +17897,11 @@ unreachable end i32.const 8592 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat global.get $std/string/Ox1_0000000000001p_1022 f64.eq @@ -17924,59 +17915,59 @@ unreachable end i32.const 8784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=72 - local.get $55 + local.get $52 i32.const 8944 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=76 - local.get $55 + local.get $52 call $~lib/string/String.__concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=64 - local.get $55 + local.get $52 i32.const 9104 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=68 - local.get $55 + local.get $52 call $~lib/string/String.__concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 9264 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String.__concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 9424 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 call $~lib/string/String.__concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MAX_VALUE f64.eq @@ -17990,11 +17981,11 @@ unreachable end i32.const 9584 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 9.753531888799502e-104 f64.eq @@ -18008,11 +17999,11 @@ unreachable end i32.const 9696 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.5961860348131807 f64.eq @@ -18026,11 +18017,11 @@ unreachable end i32.const 9808 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.18150131692180388 f64.eq @@ -18044,11 +18035,11 @@ unreachable end i32.const 9920 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.42070823575344535 f64.eq @@ -18062,11 +18053,11 @@ unreachable end i32.const 10032 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.6654686306516261 f64.eq @@ -18080,11 +18071,11 @@ unreachable end i32.const 10144 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.6101852922970868 f64.eq @@ -18098,11 +18089,11 @@ unreachable end i32.const 10256 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.7696695208236968 f64.eq @@ -18116,11 +18107,11 @@ unreachable end i32.const 10368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.25050653222286823 f64.eq @@ -18134,11 +18125,11 @@ unreachable end i32.const 10480 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.2740037230228005 f64.eq @@ -18152,11 +18143,11 @@ unreachable end i32.const 10592 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.20723093500497428 f64.eq @@ -18170,11 +18161,11 @@ unreachable end i32.const 10704 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 7.900280238081605 f64.eq @@ -18188,11 +18179,11 @@ unreachable end i32.const 10816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 98.22860653737297 f64.eq @@ -18206,11 +18197,11 @@ unreachable end i32.const 10928 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 746.894972319037 f64.eq @@ -18224,11 +18215,11 @@ unreachable end i32.const 11040 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 1630.2683202827284 f64.eq @@ -18242,11 +18233,11 @@ unreachable end i32.const 11152 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 46371.68629719171 f64.eq @@ -18260,11 +18251,11 @@ unreachable end i32.const 11264 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 653780.5944497711 f64.eq @@ -18278,11 +18269,11 @@ unreachable end i32.const 11376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 234632.43565024371 f64.eq @@ -18296,11 +18287,11 @@ unreachable end i32.const 11488 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 97094817.16420048 f64.eq @@ -18314,11 +18305,11 @@ unreachable end i32.const 11600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 499690852.20518744 f64.eq @@ -18332,11 +18323,11 @@ unreachable end i32.const 11712 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 7925201200557245595648 f64.eq @@ -18350,11 +18341,11 @@ unreachable end i32.const 11824 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 6096564585983177528398588e5 f64.eq @@ -18368,11 +18359,11 @@ unreachable end i32.const 11936 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 4800416117477028695992383e42 f64.eq @@ -18386,11 +18377,11 @@ unreachable end i32.const 12048 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 8524829079817968137287277e80 f64.eq @@ -18404,11 +18395,11 @@ unreachable end i32.const 12160 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 3271239291709782092398754e243 f64.eq @@ -18422,14 +18413,14 @@ unreachable end i32.const 12272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat - local.tee $50 - local.get $50 + local.tee $47 + local.get $47 f64.ne i32.eqz if @@ -18441,11 +18432,11 @@ unreachable end i32.const 12304 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -18460,32 +18451,32 @@ end global.get $~lib/memory/__stack_pointer i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__concat - local.tee $51 + local.tee $48 i32.store offset=80 - local.get $51 - local.set $55 + local.get $48 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18496,18 +18487,18 @@ call $~lib/builtins/abort unreachable end - local.get $51 - local.set $55 + local.get $48 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18519,17 +18510,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18541,11 +18532,11 @@ unreachable end global.get $std/string/nullStr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -18558,17 +18549,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 global.get $std/string/nullStr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18580,17 +18571,17 @@ unreachable end global.get $std/string/nullStr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18602,17 +18593,17 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18624,17 +18615,17 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18646,17 +18637,17 @@ unreachable end i32.const 12400 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18668,17 +18659,17 @@ unreachable end i32.const 12400 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12400 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18690,17 +18681,17 @@ unreachable end i32.const 12464 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12496 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18712,17 +18703,17 @@ unreachable end i32.const 12528 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12560 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18734,17 +18725,17 @@ unreachable end i32.const 12592 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12592 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18756,17 +18747,17 @@ unreachable end i32.const 12592 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12640 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18778,17 +18769,17 @@ unreachable end i32.const 12688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12736 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18800,17 +18791,17 @@ unreachable end i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -18822,17 +18813,17 @@ unreachable end i32.const 12784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -18844,17 +18835,17 @@ unreachable end i32.const 12784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -18866,17 +18857,17 @@ unreachable end i32.const 12784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -18888,17 +18879,17 @@ unreachable end i32.const 12784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -18911,17 +18902,17 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -18933,17 +18924,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lt i32.eqz if @@ -18955,17 +18946,17 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -18977,17 +18968,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lte i32.eqz if @@ -18999,17 +18990,17 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19022,17 +19013,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19045,17 +19036,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19068,17 +19059,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19091,17 +19082,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -19113,17 +19104,17 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lte i32.eqz if @@ -19135,17 +19126,17 @@ unreachable end i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lt i32.eqz if @@ -19157,17 +19148,17 @@ unreachable end i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -19179,17 +19170,17 @@ unreachable end i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19202,17 +19193,17 @@ unreachable end i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19225,17 +19216,17 @@ unreachable end i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -19247,17 +19238,17 @@ unreachable end i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lt i32.eqz if @@ -19269,17 +19260,17 @@ unreachable end i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19292,17 +19283,17 @@ unreachable end i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19315,17 +19306,17 @@ unreachable end i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lte i32.eqz if @@ -19337,17 +19328,17 @@ unreachable end i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -19359,17 +19350,17 @@ unreachable end i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12912 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gte i32.eqz i32.eqz @@ -19382,17 +19373,17 @@ unreachable end i32.const 12912 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -19404,17 +19395,17 @@ unreachable end i32.const 12848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12912 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__lte i32.eqz if @@ -19426,17 +19417,17 @@ unreachable end i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19448,17 +19439,17 @@ unreachable end i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19470,17 +19461,17 @@ unreachable end i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19492,17 +19483,17 @@ unreachable end i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12944 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -19514,17 +19505,17 @@ unreachable end i32.const 12976 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12976 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19536,17 +19527,17 @@ unreachable end i32.const 13008 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12976 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -19560,38 +19551,38 @@ global.get $~lib/memory/__stack_pointer i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $52 + local.tee $49 i32.store offset=84 global.get $~lib/memory/__stack_pointer i32.const 55296 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 56322 call $~lib/string/String.fromCodePoint - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__concat - local.tee $53 + local.tee $50 i32.store offset=88 - local.get $52 - local.set $55 + local.get $49 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 - local.get $53 - local.set $55 + local.get $52 + local.get $50 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -19603,11 +19594,11 @@ unreachable end i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/string/String#get:length i32.const 3 i32.eq @@ -19621,24 +19612,24 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 100 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19650,24 +19641,24 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19679,24 +19670,24 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19708,24 +19699,24 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19737,24 +19728,24 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13088 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19766,24 +19757,24 @@ unreachable end i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 4 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13120 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19795,24 +19786,24 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 5 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13168 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19824,24 +19815,24 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 6 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13200 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19853,24 +19844,24 @@ unreachable end i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 7 call $~lib/string/String#repeat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13232 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19882,35 +19873,35 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19922,35 +19913,35 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19962,35 +19953,35 @@ unreachable end i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20002,35 +19993,35 @@ unreachable end i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20042,35 +20033,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20082,35 +20073,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20122,35 +20113,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1888 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20162,35 +20153,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20202,35 +20193,35 @@ unreachable end i32.const 13280 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20242,35 +20233,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13344 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20282,35 +20273,35 @@ unreachable end i32.const 13376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 13408 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13344 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20322,35 +20313,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 13472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13504 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20362,35 +20353,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replace - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20402,35 +20393,35 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20442,35 +20433,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20482,35 +20473,35 @@ unreachable end i32.const 1520 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20522,35 +20513,35 @@ unreachable end i32.const 13536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13584 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20562,35 +20553,35 @@ unreachable end i32.const 1520 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1520 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20602,35 +20593,35 @@ unreachable end i32.const 13616 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 13584 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13664 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20642,35 +20633,35 @@ unreachable end i32.const 1520 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 13472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13712 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20682,35 +20673,35 @@ unreachable end i32.const 13744 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 13776 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 13472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13808 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20722,35 +20713,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1888 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20762,35 +20753,35 @@ unreachable end i32.const 1888 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 13840 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 13472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1888 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20802,35 +20793,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 13872 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13904 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20842,35 +20833,35 @@ unreachable end i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20882,35 +20873,35 @@ unreachable end i32.const 13280 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13936 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20922,35 +20913,35 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20962,35 +20953,35 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21002,35 +20993,35 @@ unreachable end i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21042,35 +21033,35 @@ unreachable end i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21082,35 +21073,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21122,35 +21113,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1792 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21162,35 +21153,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 3568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13968 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21202,35 +21193,35 @@ unreachable end i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21242,35 +21233,35 @@ unreachable end i32.const 14016 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 14048 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14080 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21282,35 +21273,35 @@ unreachable end i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 12368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 14128 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14128 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21322,35 +21313,35 @@ unreachable end i32.const 13088 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 14160 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14192 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21362,35 +21353,35 @@ unreachable end i32.const 13088 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 12816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 i32.const 14048 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=60 - local.get $55 + local.get $52 call $~lib/string/String#replaceAll - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14240 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21404,27 +21395,27 @@ i32.const 14272 global.set $std/string/str global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#slice@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21436,27 +21427,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#slice@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14320 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21468,27 +21459,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -5 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#slice@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14352 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21500,25 +21491,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 i32.const 7 call $~lib/string/String#slice - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14384 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21530,25 +21521,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -11 i32.const -6 call $~lib/string/String#slice - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14416 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21560,25 +21551,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 4 i32.const 3 call $~lib/string/String#slice - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21590,25 +21581,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const -1 call $~lib/string/String#slice - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14448 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21620,27 +21611,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substr@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21652,27 +21643,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substr@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14320 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21684,27 +21675,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -5 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substr@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14352 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21716,25 +21707,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 i32.const 7 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14496 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21746,25 +21737,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -11 i32.const -6 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21776,25 +21767,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 4 i32.const 3 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14544 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21806,25 +21797,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const -1 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21836,25 +21827,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 100 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21866,25 +21857,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 4 i32.const 4 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14576 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21896,25 +21887,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 4 i32.const -3 call $~lib/string/String#substr - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21926,27 +21917,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substring@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21958,27 +21949,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -1 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substring@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21990,27 +21981,27 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -5 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#substring@varargs - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22022,25 +22013,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 i32.const 7 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14384 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22052,25 +22043,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const -11 i32.const -6 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22082,25 +22073,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 4 i32.const 3 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14608 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22112,25 +22103,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const -1 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22142,25 +22133,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 i32.const 100 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22172,25 +22163,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 4 i32.const 4 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22202,25 +22193,25 @@ unreachable end global.get $std/string/str - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 4 i32.const -3 call $~lib/string/String#substring - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1888 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22233,47 +22224,47 @@ end global.get $~lib/memory/__stack_pointer i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22289,29 +22280,29 @@ end global.get $~lib/memory/__stack_pointer i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 0 i32.eq @@ -22326,52 +22317,52 @@ end global.get $~lib/memory/__stack_pointer i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22387,52 +22378,52 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 6608 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22448,100 +22439,100 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22557,100 +22548,100 @@ end global.get $~lib/memory/__stack_pointer i32.const 14848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 14896 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22666,124 +22657,124 @@ end global.get $~lib/memory/__stack_pointer i32.const 14928 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22799,124 +22790,124 @@ end global.get $~lib/memory/__stack_pointer i32.const 14960 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22932,124 +22923,124 @@ end global.get $~lib/memory/__stack_pointer i32.const 14992 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 4 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23065,100 +23056,100 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23174,27 +23165,27 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 0 call $~lib/string/String#split - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 0 i32.eq @@ -23209,50 +23200,50 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 call $~lib/string/String#split - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23268,50 +23259,50 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 1 call $~lib/string/String#split - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 1 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23327,98 +23318,98 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const 4 call $~lib/string/String#split - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23434,98 +23425,98 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const -1 call $~lib/string/String#split - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23541,98 +23532,98 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 i32.const -1 call $~lib/string/String#split - local.tee $54 + local.tee $51 i32.store offset=92 - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 call $~lib/array/Array<~lib/string/String>#get:length i32.const 3 i32.eq if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12336 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 end if (result i32) - local.get $54 - local.set $55 + local.get $51 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23649,17 +23640,17 @@ i32.const 0 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23673,17 +23664,17 @@ i32.const 1 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23697,17 +23688,17 @@ i32.const 8 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16768 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23721,17 +23712,17 @@ i32.const 12 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16800 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23745,17 +23736,17 @@ i32.const 123 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23769,17 +23760,17 @@ i32.const -1000 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16832 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23793,17 +23784,17 @@ i32.const 1234 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12976 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23817,17 +23808,17 @@ i32.const 12345 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16864 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23841,17 +23832,17 @@ i32.const 123456 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16896 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23865,17 +23856,17 @@ i32.const 1111111 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16928 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23889,17 +23880,17 @@ i32.const 1234567 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16976 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23913,17 +23904,17 @@ i32.const 12345678 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17024 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23937,17 +23928,17 @@ i32.const 123456789 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17072 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23961,17 +23952,17 @@ i32.const 2147483646 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17120 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23985,17 +23976,17 @@ i32.const 2147483647 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17168 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24009,17 +24000,17 @@ i32.const -2147483648 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17216 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24033,17 +24024,17 @@ i32.const -1 i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17264 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24057,17 +24048,17 @@ global.get $~lib/builtins/i8.MIN_VALUE i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17296 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24081,17 +24072,17 @@ global.get $~lib/builtins/i16.MIN_VALUE i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17328 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24105,17 +24096,17 @@ global.get $~lib/builtins/i32.MIN_VALUE i32.const 10 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17216 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24129,17 +24120,17 @@ i32.const 0 i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24153,17 +24144,17 @@ i32.const 1000 i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17360 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24177,17 +24168,17 @@ i32.const 2147483647 i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17168 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24201,17 +24192,17 @@ i32.const -2147483648 i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17392 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24225,17 +24216,17 @@ global.get $~lib/builtins/u32.MAX_VALUE i32.const 10 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24249,17 +24240,17 @@ i32.const 0 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24273,17 +24264,17 @@ i32.const 1 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24297,17 +24288,17 @@ i32.const 8 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16768 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24321,17 +24312,17 @@ i32.const 12 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24345,17 +24336,17 @@ i32.const 123 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17488 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24369,17 +24360,17 @@ i32.const 1234 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17520 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24393,17 +24384,17 @@ i32.const 12345 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17552 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24417,17 +24408,17 @@ i32.const 123456 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17584 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24441,17 +24432,17 @@ i32.const 1111111 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17616 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24465,17 +24456,17 @@ i32.const 1234567 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17648 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24489,17 +24480,17 @@ i32.const 12345678 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17680 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24513,17 +24504,17 @@ i32.const 123456789 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17712 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24537,17 +24528,17 @@ i32.const 2147483646 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17760 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24561,17 +24552,17 @@ i32.const 2147483647 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17808 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24585,17 +24576,17 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17856 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24609,17 +24600,17 @@ i32.const -1 i32.const 16 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17904 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24633,17 +24624,17 @@ i32.const 0 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24657,17 +24648,17 @@ i32.const -4096 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16832 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24681,17 +24672,17 @@ i32.const 2147483647 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17808 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24705,17 +24696,17 @@ i32.const -2147483647 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17952 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24729,17 +24720,17 @@ i32.const -268435455 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18000 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24753,17 +24744,17 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18048 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24777,17 +24768,17 @@ i32.const -2147483648 i32.const 16 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18048 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24801,17 +24792,17 @@ i32.const 0 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24825,17 +24816,17 @@ i32.const 1 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24849,17 +24840,17 @@ i32.const 3 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24873,17 +24864,17 @@ i32.const 7 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18096 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24897,17 +24888,17 @@ i32.const 14 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18128 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24921,17 +24912,17 @@ i32.const 29 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18160 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24945,17 +24936,17 @@ i32.const 59 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18192 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24969,17 +24960,17 @@ i32.const 4095 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18224 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24993,17 +24984,17 @@ i32.const 33554431 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25017,17 +25008,17 @@ i32.const -12 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18352 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25041,17 +25032,17 @@ i32.const -4 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18448 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25065,17 +25056,17 @@ i32.const -2 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18544 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25089,17 +25080,17 @@ i32.const -1 i32.const 2 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18640 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25113,17 +25104,17 @@ i32.const -2047 i32.const 2 call $~lib/util/number/itoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18736 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25137,17 +25128,17 @@ i32.const -1 i32.const 3 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25161,17 +25152,17 @@ i32.const -1 i32.const 4 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25185,17 +25176,17 @@ i32.const -1 i32.const 5 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18912 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25209,17 +25200,17 @@ i32.const -1 i32.const 8 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18960 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25233,17 +25224,17 @@ i32.const -1 i32.const 11 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19008 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25257,17 +25248,17 @@ i32.const -1 i32.const 15 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25281,17 +25272,17 @@ i32.const -1 i32.const 17 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19104 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25305,17 +25296,17 @@ i32.const -1 i32.const 21 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19152 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25329,17 +25320,17 @@ i32.const -1 i32.const 27 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19200 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25353,17 +25344,17 @@ i32.const -1 i32.const 32 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25377,17 +25368,17 @@ i32.const -1 i32.const 36 call $~lib/util/number/utoa32 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19296 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25401,17 +25392,17 @@ i64.const 0 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25425,17 +25416,17 @@ i64.const 12 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16800 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25449,17 +25440,17 @@ i64.const 123 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 1376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25473,17 +25464,17 @@ i64.const 1234 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 12976 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25497,17 +25488,17 @@ i64.const 12345 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16864 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25521,17 +25512,17 @@ i64.const 123456 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16896 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25545,17 +25536,17 @@ i64.const 1234567 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 16976 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25569,17 +25560,17 @@ i64.const 99999999 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19344 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25593,17 +25584,17 @@ i64.const 100000000 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19392 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25617,17 +25608,17 @@ i64.const 4294967295 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25641,17 +25632,17 @@ i64.const 4294967297 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25665,17 +25656,17 @@ i64.const 68719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19488 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25689,17 +25680,17 @@ i64.const 868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25713,17 +25704,17 @@ i64.const 8687194767350 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19584 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25737,17 +25728,17 @@ i64.const 86871947673501 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19632 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25761,17 +25752,17 @@ i64.const 999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19680 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25785,17 +25776,17 @@ i64.const 9999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19744 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25809,17 +25800,17 @@ i64.const 19999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19808 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25833,17 +25824,17 @@ i64.const 129999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19872 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25857,17 +25848,17 @@ i64.const 1239999868719476735 i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19936 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25881,17 +25872,17 @@ global.get $~lib/builtins/u64.MAX_VALUE i32.const 10 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20000 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25905,17 +25896,17 @@ i64.const 0 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25929,17 +25920,17 @@ i64.const -1234 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20064 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25953,17 +25944,17 @@ i64.const 4294967295 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25977,17 +25968,17 @@ i64.const 4294967297 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26001,17 +25992,17 @@ i64.const -4294967295 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20096 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26025,17 +26016,17 @@ i64.const 68719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 19488 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26049,17 +26040,17 @@ i64.const -68719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20144 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26073,17 +26064,17 @@ i64.const -868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20192 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26097,17 +26088,17 @@ i64.const -999868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20240 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26121,17 +26112,17 @@ i64.const -19999868719476735 i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20304 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26145,17 +26136,17 @@ global.get $~lib/builtins/i64.MAX_VALUE i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26169,17 +26160,17 @@ global.get $~lib/builtins/i64.MIN_VALUE i32.const 10 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26193,17 +26184,17 @@ i64.const 0 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26217,17 +26208,17 @@ i64.const 1 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26241,17 +26232,17 @@ i64.const 12 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 13440 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26265,17 +26256,17 @@ i64.const 1234 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17520 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26289,17 +26280,17 @@ i64.const 1111111 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 17616 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26313,17 +26304,17 @@ i64.const 8589934591 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20496 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26337,17 +26328,17 @@ i64.const 5942249508321 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20544 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26361,17 +26352,17 @@ i64.const 76310993685985 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20592 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26385,17 +26376,17 @@ i64.const 920735923817967 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20640 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26409,17 +26400,17 @@ i64.const 9927935178558959 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26433,17 +26424,17 @@ i64.const 81985529216486895 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20736 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26457,17 +26448,17 @@ i64.const 1311768467463790320 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20800 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26481,17 +26472,17 @@ i64.const 9223372036854775807 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20864 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26505,17 +26496,17 @@ i64.const -1 i32.const 16 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20928 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26529,17 +26520,17 @@ i64.const -9223372036854775807 i32.const 16 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 20992 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26553,17 +26544,17 @@ i64.const -9223372036854775808 i32.const 16 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26577,17 +26568,17 @@ i64.const -9223372036854775808 i32.const 16 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21056 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26601,17 +26592,17 @@ i64.const 0 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26625,17 +26616,17 @@ i64.const 1 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 2432 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26649,17 +26640,17 @@ i64.const 7 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18096 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26673,17 +26664,17 @@ i64.const 14 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18128 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26697,17 +26688,17 @@ i64.const 59 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18192 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26721,17 +26712,17 @@ i64.const 4095 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18224 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26745,17 +26736,17 @@ i64.const 4294967295 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 18640 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26769,17 +26760,17 @@ i64.const 562949953421311 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21120 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26793,17 +26784,17 @@ i64.const -1 i32.const 2 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21248 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26817,17 +26808,17 @@ i64.const -8589934591 i32.const 2 call $~lib/util/number/itoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21408 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26841,17 +26832,17 @@ i64.const -1 i32.const 3 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21504 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26865,17 +26856,17 @@ i64.const -1 i32.const 4 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21616 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26889,17 +26880,17 @@ i64.const -1 i32.const 5 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21712 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26913,17 +26904,17 @@ i64.const -1 i32.const 8 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21792 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26937,17 +26928,17 @@ i64.const -1 i32.const 11 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21856 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26961,17 +26952,17 @@ i64.const -1 i32.const 15 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21920 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26985,17 +26976,17 @@ i64.const -1 i32.const 17 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 21984 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27009,17 +27000,17 @@ i64.const -1 i32.const 21 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22048 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27033,17 +27024,17 @@ i64.const -1 i32.const 27 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22112 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27057,17 +27048,17 @@ i64.const -1 i32.const 32 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22160 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27081,17 +27072,17 @@ i64.const -1 i32.const 36 call $~lib/util/number/utoa64 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22208 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27104,17 +27095,17 @@ end f64.const 0 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22256 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27127,17 +27118,17 @@ end f64.const -0 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22256 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27150,17 +27141,17 @@ end f64.const nan:0x8000000000000 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 6672 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27173,17 +27164,17 @@ end f64.const inf call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22288 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27197,17 +27188,17 @@ f64.const inf f64.neg call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7936 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27220,17 +27211,17 @@ end global.get $~lib/builtins/f64.EPSILON call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7152 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27244,17 +27235,17 @@ global.get $~lib/builtins/f64.EPSILON f64.neg call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27267,17 +27258,17 @@ end global.get $~lib/builtins/f64.MAX_VALUE call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7216 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27291,17 +27282,17 @@ global.get $~lib/builtins/f64.MAX_VALUE f64.neg call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23376 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27314,17 +27305,17 @@ end global.get $~lib/builtins/f32.EPSILON call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23456 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27338,17 +27329,17 @@ global.get $~lib/builtins/f32.EPSILON f32.neg call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23504 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27361,17 +27352,17 @@ end global.get $~lib/builtins/f32.MAX_VALUE call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23552 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27385,17 +27376,17 @@ global.get $~lib/builtins/f32.MAX_VALUE f32.neg call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23600 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27408,17 +27399,17 @@ end f64.const 4185580496821356722454785e274 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23648 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27431,17 +27422,17 @@ end f64.const 2.2250738585072014e-308 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23712 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27454,17 +27445,17 @@ end f64.const 4.940656e-318 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23792 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27477,17 +27468,17 @@ end f64.const 9060801153433600 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23840 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27500,17 +27491,17 @@ end f64.const 4708356024711512064 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23904 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27523,17 +27514,17 @@ end f64.const 9409340012568248320 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 23968 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27546,17 +27537,17 @@ end f64.const 5e-324 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7296 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27569,17 +27560,17 @@ end f64.const 1 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24032 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27592,17 +27583,17 @@ end f64.const 0.1 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 4256 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27615,17 +27606,17 @@ end f64.const -1 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24064 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27638,17 +27629,17 @@ end f64.const -0.1 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24096 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27661,17 +27652,17 @@ end f64.const 1e6 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24128 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27684,17 +27675,17 @@ end f64.const 1e-06 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24176 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27707,17 +27698,17 @@ end f64.const -1e6 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24224 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27730,17 +27721,17 @@ end f64.const -1e-06 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24272 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27753,17 +27744,17 @@ end f64.const 1e7 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24320 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27776,17 +27767,17 @@ end f64.const 1e-07 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24368 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27799,17 +27790,17 @@ end f64.const 1.e+308 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 4544 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27822,17 +27813,17 @@ end f64.const -1.e+308 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24400 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27845,17 +27836,17 @@ end f64.const inf call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22288 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27868,17 +27859,17 @@ end f64.const -inf call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 7936 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27891,17 +27882,17 @@ end f64.const 1e-308 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24448 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27914,17 +27905,17 @@ end f64.const -1e-308 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24480 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27937,17 +27928,17 @@ end f64.const 1e-323 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24528 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27960,17 +27951,17 @@ end f64.const -1e-323 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24560 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27983,17 +27974,17 @@ end f64.const 0 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 22256 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28006,17 +27997,17 @@ end i32.const -24 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24608 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28029,17 +28020,17 @@ end f64.const 1.2312145673456234e-08 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24656 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28052,17 +28043,17 @@ end f64.const 555555555.5555556 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24720 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28075,17 +28066,17 @@ end f64.const 0.9999999999999999 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24784 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28098,17 +28089,17 @@ end f64.const 1 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24032 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28121,17 +28112,17 @@ end f64.const 12.34 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24848 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28146,17 +28137,17 @@ f64.const 3 f64.div call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24880 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28169,17 +28160,17 @@ end f64.const 1234e17 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 24944 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28192,17 +28183,17 @@ end f64.const 1234e18 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25024 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28215,17 +28206,17 @@ end f64.const 2.71828 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25072 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28238,17 +28229,17 @@ end f64.const 0.0271828 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25120 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28261,17 +28252,17 @@ end f64.const 271.828 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25168 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28284,17 +28275,17 @@ end f64.const 1.1e+128 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25216 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28307,17 +28298,17 @@ end f64.const 1.1e-64 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25264 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28330,17 +28321,17 @@ end f64.const 0.000035689 call $~lib/util/number/dtoa - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25312 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28352,29 +28343,29 @@ unreachable end i32.const 25360 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 25392 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25424 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28386,29 +28377,29 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 25472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28420,29 +28411,29 @@ unreachable end i32.const 25472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25472 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28454,29 +28445,29 @@ unreachable end i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=8 - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=12 - local.get $55 + local.get $52 call $~lib/string/String#concat - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 688 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28488,17 +28479,17 @@ unreachable end i32.const 25504 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25504 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28510,17 +28501,17 @@ unreachable end i32.const 25504 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25504 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28532,17 +28523,17 @@ unreachable end i32.const 25536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25536 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28554,17 +28545,17 @@ unreachable end i32.const 25568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store - local.get $55 + local.get $52 i32.const 25568 - local.set $55 + local.set $52 global.get $~lib/memory/__stack_pointer - local.get $55 + local.get $52 i32.store offset=4 - local.get $55 + local.get $52 call $~lib/string/String.__eq i32.eqz if diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index a18ea8e7a2..6f48e9cd48 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -9711,11 +9711,11 @@ (local $9 i32) (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner3 - block $folding-inner2 + block $folding-inner4 + block $folding-inner3 block $folding-inner1 block $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9724,7 +9724,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 40 + i32.const 36 memory.fill local.get $2 i32.eqz @@ -9740,10 +9740,6 @@ local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -9786,37 +9782,37 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $folding-inner2 + br $folding-inner4 end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 i32.const 2147483647 local.get $2 local.get $2 i32.const 0 i32.lt_s select - local.set $2 + local.set $8 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 if - local.get $8 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -9825,36 +9821,36 @@ i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 + i32.store offset=4 local.get $2 i32.load offset=4 i32.const 1712 i32.store - br $folding-inner2 + br $folding-inner4 end else - local.get $8 + local.get $6 i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + local.get $6 local.get $8 - local.get $2 - local.get $2 + local.get $6 local.get $8 - i32.gt_s + i32.lt_s select local.tee $3 i32.const 5 i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 + i32.store offset=4 local.get $2 i32.load offset=4 local.set $4 @@ -9870,7 +9866,7 @@ i32.const 2 call $~lib/rt/itcms/__new local.tee $5 - i32.store offset=16 + i32.store offset=12 local.get $5 local.get $0 local.get $1 @@ -9897,31 +9893,31 @@ br $for-loop|0 end end - br $folding-inner2 + br $folding-inner4 end global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 i32.const 0 call $~lib/rt/__newArray - local.tee $9 - i32.store offset=24 + local.tee $2 + i32.store offset=20 loop $while-continue|1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=28 + i32.store offset=24 local.get $0 local.get $1 local.get $3 call $~lib/string/String#indexOf - local.tee $6 + local.tee $9 i32.const -1 i32.xor if - local.get $6 + local.get $9 local.get $3 i32.sub local.tee $7 @@ -9932,48 +9928,48 @@ local.get $7 i32.const 1 i32.shl - local.tee $7 + local.tee $10 i32.const 2 call $~lib/rt/itcms/__new - local.tee $10 - i32.store offset=32 - local.get $10 + local.tee $7 + i32.store offset=28 + local.get $7 local.get $0 local.get $3 i32.const 1 i32.shl i32.add - local.get $7 + local.get $10 memory.copy global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=28 - local.get $9 - local.get $10 + local.get $7 + i32.store offset=24 + local.get $2 + local.get $7 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1712 - i32.store offset=28 - local.get $9 + i32.store offset=24 + local.get $2 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end - local.get $4 + local.get $5 i32.const 1 i32.add - local.tee $4 - local.get $2 + local.tee $5 + local.get $8 i32.eq br_if $folding-inner3 - local.get $5 - local.get $6 + local.get $4 + local.get $9 i32.add local.set $3 br $while-continue|1 @@ -9983,17 +9979,17 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=28 - local.get $9 + i32.store offset=24 + local.get $2 local.get $0 call $~lib/array/Array<~lib/string/String>#push br $folding-inner3 end - local.get $8 + local.get $6 local.get $3 i32.sub local.tee $1 @@ -10007,9 +10003,9 @@ local.tee $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=36 - local.get $2 + local.tee $4 + i32.store offset=32 + local.get $4 local.get $0 local.get $3 i32.const 1 @@ -10018,31 +10014,26 @@ local.get $1 memory.copy global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=28 - local.get $9 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=24 local.get $2 + local.get $4 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1712 - i32.store offset=28 - local.get $9 + i32.store offset=24 + local.get $2 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return + br $folding-inner4 end i32.const 59424 i32.const 59472 @@ -10056,19 +10047,20 @@ i32.const 0 call $~lib/rt/__newArray local.set $2 + br $folding-inner4 end global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer local.get $2 return end global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $2 ) (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 371919deb9..fecf5869a5 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -66095,11 +66095,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -66116,29 +66111,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -66149,38 +66144,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -66191,29 +66186,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -66224,191 +66219,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10288 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Int8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10368 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10400 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Int8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10432 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 16 i32.const 10464 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -67493,11 +67488,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -67514,29 +67504,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -67547,38 +67537,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -67589,29 +67579,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -67622,191 +67612,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10496 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10576 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10608 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10640 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint8Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint8Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10672 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -68952,11 +68942,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -68973,29 +68958,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -69006,38 +68991,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -69048,29 +69033,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -69081,191 +69066,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10704 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10800 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10832 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10864 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint8ClampedArray#set<~lib/array/Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 0 i32.const 64 i32.const 10896 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -70384,11 +70369,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -70405,29 +70385,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -70438,38 +70418,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -70480,29 +70460,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -70513,191 +70493,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 10928 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Int16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 11024 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 11072 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Int16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 11120 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 65 i32.const 11168 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -71816,11 +71796,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -71837,29 +71812,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -71870,38 +71845,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -71912,29 +71887,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -71945,191 +71920,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11216 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11312 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11360 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11408 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint16Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint16Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 1 i32.const 66 i32.const 11456 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -73223,11 +73198,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -73244,29 +73214,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -73277,38 +73247,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -73319,29 +73289,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -73352,191 +73322,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11504 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11616 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11680 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Int32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11744 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 17 i32.const 11808 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -74655,11 +74625,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -74676,29 +74641,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -74709,38 +74674,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -74751,29 +74716,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -74784,191 +74749,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 11872 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 11984 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 12048 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 12112 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint32Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 2 i32.const 67 i32.const 12176 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -76092,11 +76057,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -76113,29 +76073,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -76146,38 +76106,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -76188,29 +76148,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -76221,191 +76181,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12240 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Int64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12400 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12512 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Int64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12624 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 68 i32.const 12736 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -77529,11 +77489,6 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -77550,29 +77505,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -77583,38 +77538,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -77625,29 +77580,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -77658,191 +77613,191 @@ local.tee $a i32.store offset=16 local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource1 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 12848 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource2 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 3 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 13008 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource4 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 6 call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 13120 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> i32.const 1 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource3 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 2 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 13232 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource5 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 0 call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 local.get $setSource6 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 4 call $~lib/typedarray/Uint64Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 global.get $std/typedarray/setSource7 - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 i32.const 7 call $~lib/typedarray/Uint64Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=4 - local.get $14 + local.get $9 i32.const 10 i32.const 3 i32.const 69 i32.const 13344 call $~lib/rt/__newArray - local.set $14 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $9 i32.store offset=20 - local.get $14 + local.get $9 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -78788,10 +78743,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -78808,29 +78759,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -78841,38 +78792,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -78883,29 +78834,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -78916,160 +78867,160 @@ local.tee $a i32.store offset=16 local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource1 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 0 call $~lib/typedarray/Float32Array#set<~lib/array/Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 2 i32.const 62 i32.const 13456 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource2 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 3 call $~lib/typedarray/Float32Array#set<~lib/array/Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 2 i32.const 62 i32.const 13568 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 6 call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 2 i32.const 62 i32.const 13632 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 drop local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 0 call $~lib/typedarray/Float32Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 4 call $~lib/typedarray/Float32Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource7 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 7 call $~lib/typedarray/Float32Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 2 i32.const 62 i32.const 13696 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -80047,10 +79998,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -80067,29 +80014,29 @@ local.tee $setSource4 i32.store local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -80100,38 +80047,38 @@ local.tee $setSource5 i32.store offset=8 local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -80142,29 +80089,29 @@ local.tee $setSource6 i32.store offset=12 local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -80175,160 +80122,160 @@ local.tee $a i32.store offset=16 local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource1 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 0 call $~lib/typedarray/Float64Array#set<~lib/array/Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 3 i32.const 63 i32.const 13760 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource2 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 3 call $~lib/typedarray/Float64Array#set<~lib/array/Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 3 i32.const 63 i32.const 13920 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource4 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 6 call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int64Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 3 i32.const 63 i32.const 14032 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 drop local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource5 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 0 call $~lib/typedarray/Float64Array#set<~lib/typedarray/Uint8Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 local.get $setSource6 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 4 call $~lib/typedarray/Float64Array#set<~lib/typedarray/Int16Array> local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 global.get $std/typedarray/setSource7 - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 i32.const 7 call $~lib/typedarray/Float64Array#set<~lib/array/Array> i32.const 0 drop local.get $a - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=4 - local.get $12 + local.get $8 i32.const 10 i32.const 3 i32.const 63 i32.const 14144 call $~lib/rt/__newArray - local.set $12 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $8 i32.store offset=20 - local.get $12 + local.get $8 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 24 @@ -88181,42 +88128,6 @@ (local $62 i32) (local $63 i32) (local $64 i32) - (local $65 i32) - (local $66 i32) - (local $67 i32) - (local $68 i32) - (local $69 i32) - (local $70 i32) - (local $71 i32) - (local $72 i32) - (local $73 i32) - (local $74 i32) - (local $75 i32) - (local $76 i32) - (local $77 i32) - (local $78 i32) - (local $79 i32) - (local $80 i32) - (local $81 i32) - (local $82 i32) - (local $83 i32) - (local $84 i32) - (local $85 i32) - (local $86 i32) - (local $87 i32) - (local $88 i32) - (local $89 i32) - (local $90 i32) - (local $91 i32) - (local $92 i32) - (local $93 i32) - (local $94 i32) - (local $95 i32) - (local $96 i32) - (local $97 i32) - (local $98 i32) - (local $99 i32) - (local $100 i32) global.get $~lib/memory/__stack_pointer i32.const 124 i32.sub @@ -88298,38 +88209,38 @@ local.tee $0 i32.store local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.eq @@ -88343,11 +88254,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 i32.eq @@ -88361,11 +88272,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.const 4 @@ -88381,11 +88292,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 @@ -88400,11 +88311,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -88419,11 +88330,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -88439,22 +88350,22 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#subarray local.tee $0 i32.store local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.eq @@ -88468,11 +88379,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.const 4 @@ -88488,11 +88399,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 1 i32.const 4 @@ -88508,11 +88419,11 @@ unreachable end local.get $0 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -88533,95 +88444,95 @@ local.tee $1 i32.store offset=8 local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 f64.const 7 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 f64.const 6 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 f64.const 4 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 6 f64.const 3 call $~lib/typedarray/Float64Array#__set local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 7 f64.const 8 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray local.tee $1 i32.store offset=8 local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Float64Array#get:length i32.const 4 i32.eq @@ -88635,11 +88546,11 @@ unreachable end local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 2 i32.const 8 @@ -88655,11 +88566,11 @@ unreachable end local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.const 8 @@ -88675,33 +88586,33 @@ unreachable end local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Float64Array#sort@varargs drop local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq if (result i32) local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -88711,11 +88622,11 @@ end if (result i32) local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -88725,11 +88636,11 @@ end if (result i32) local.get $1 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -88753,38 +88664,38 @@ local.tee $2 i32.store offset=12 local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const -32 call $~lib/typedarray/Uint8ClampedArray#__set local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 256 call $~lib/typedarray/Uint8ClampedArray#__set local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 0 @@ -88799,11 +88710,11 @@ unreachable end local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 @@ -88818,11 +88729,11 @@ unreachable end local.get $2 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 255 @@ -88843,77 +88754,77 @@ local.tee $3 i32.store offset=16 local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 1 i32.const 3 call $~lib/typedarray/Int8Array#fill drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 704 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -88925,11 +88836,11 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 i32.const 1 @@ -88938,21 +88849,21 @@ call $~lib/typedarray/Int8Array#fill@varargs drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 784 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -88964,32 +88875,32 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 0 i32.const -3 call $~lib/typedarray/Int8Array#fill drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 816 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -89001,11 +88912,11 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const -2 i32.const 2 @@ -89014,21 +88925,21 @@ call $~lib/typedarray/Int8Array#fill@varargs drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 848 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -89040,32 +88951,32 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 i32.const 0 call $~lib/typedarray/Int8Array#fill drop local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 880 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -89078,22 +88989,22 @@ end global.get $~lib/memory/__stack_pointer local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.tee $14 + local.tee $9 i32.store offset=24 - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 i32.const 1 @@ -89101,12 +89012,12 @@ i32.const 0 call $~lib/typedarray/Int8Array#fill@varargs drop - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.eq @@ -89119,12 +89030,12 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.eq @@ -89137,12 +89048,12 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.eq @@ -89155,22 +89066,22 @@ call $~lib/builtins/abort unreachable end - local.get $14 - local.set $100 + local.get $9 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 0 i32.const 16 i32.const 912 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -89182,21 +89093,21 @@ unreachable end local.get $3 - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 0 i32.const 16 i32.const 944 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -89211,80 +89122,80 @@ i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $19 + local.tee $12 i32.store offset=28 - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#fill drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 976 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89295,12 +89206,12 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 i32.const 1 @@ -89308,22 +89219,22 @@ i32.const 0 call $~lib/typedarray/Int32Array#fill@varargs drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1024 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89334,33 +89245,33 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 0 i32.const -3 call $~lib/typedarray/Int32Array#fill drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1072 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89371,12 +89282,12 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const -2 i32.const 2 @@ -89384,22 +89295,22 @@ i32.const 0 call $~lib/typedarray/Int32Array#fill@varargs drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1120 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89410,33 +89321,33 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 i32.const 0 call $~lib/typedarray/Int32Array#fill drop - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1168 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89448,23 +89359,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $30 + local.tee $18 i32.store offset=32 - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 i32.const 1 @@ -89472,12 +89383,12 @@ i32.const 0 call $~lib/typedarray/Int32Array#fill@varargs drop - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.eq @@ -89490,12 +89401,12 @@ call $~lib/builtins/abort unreachable end - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.const 4 @@ -89510,12 +89421,12 @@ call $~lib/builtins/abort unreachable end - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.const 4 @@ -89530,22 +89441,22 @@ call $~lib/builtins/abort unreachable end - local.get $30 - local.set $100 + local.get $18 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 2 i32.const 17 i32.const 1216 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89556,22 +89467,22 @@ call $~lib/builtins/abort unreachable end - local.get $19 - local.set $100 + local.get $12 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1248 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -89586,80 +89497,80 @@ i32.const 0 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $35 + local.tee $21 i32.store offset=36 - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 6 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $35 - local.set $100 + local.get $21 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 6 call $~lib/typedarray/Int8Array#subarray - local.tee $36 + local.tee $22 i32.store offset=40 - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 2 @@ -89673,12 +89584,12 @@ call $~lib/builtins/abort unreachable end - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int8Array#get:length i32.const 5 i32.eq @@ -89691,12 +89602,12 @@ call $~lib/builtins/abort unreachable end - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 1 i32.eq @@ -89709,12 +89620,12 @@ call $~lib/builtins/abort unreachable end - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 5 i32.eq @@ -89728,23 +89639,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $36 - local.set $100 + local.get $22 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 5 call $~lib/typedarray/Int8Array#subarray - local.tee $37 + local.tee $23 i32.store offset=44 - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -89758,12 +89669,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int8Array#get:length i32.const 4 i32.eq @@ -89776,12 +89687,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 2 i32.eq @@ -89794,12 +89705,12 @@ call $~lib/builtins/abort unreachable end - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.eq @@ -89813,23 +89724,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $37 - local.set $100 + local.get $23 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.tee $38 + local.tee $24 i32.store offset=48 - local.get $38 - local.set $100 + local.get $24 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -89843,12 +89754,12 @@ call $~lib/builtins/abort unreachable end - local.get $38 - local.set $100 + local.get $24 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int8Array#get:length i32.const 3 i32.eq @@ -89861,12 +89772,12 @@ call $~lib/builtins/abort unreachable end - local.get $38 - local.set $100 + local.get $24 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 3 i32.eq @@ -89879,12 +89790,12 @@ call $~lib/builtins/abort unreachable end - local.get $38 - local.set $100 + local.get $24 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 3 i32.eq @@ -89901,94 +89812,94 @@ i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $40 + local.tee $26 i32.store offset=56 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 0 i32.const 3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1296 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90000,46 +89911,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 1 i32.const 3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1344 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90051,46 +89962,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 1 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1392 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90102,46 +90013,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 2 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1440 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90153,44 +90064,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1488 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90202,44 +90113,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 1 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1536 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90251,44 +90162,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 1 i32.const 2 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1584 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90300,46 +90211,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 0 i32.const -2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1632 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90351,44 +90262,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const 0 i32.const -2 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1680 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90400,44 +90311,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const -4 i32.const -3 i32.const -2 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1728 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90449,44 +90360,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const -4 i32.const -3 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1776 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90498,46 +90409,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $40 - local.set $100 + local.get $26 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $39 + local.tee $25 i32.store offset=52 - local.get $39 - local.set $100 + local.get $25 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=60 - local.get $100 + local.get $64 i32.const -4 i32.const -3 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 5 i32.const 2 i32.const 17 i32.const 1824 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -90552,71 +90463,71 @@ i32.const 0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $65 + local.tee $39 i32.store offset=64 - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $66 + local.tee $40 i32.store offset=68 - local.get $66 - local.set $100 + local.get $40 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 3 i32.eq @@ -90629,12 +90540,12 @@ call $~lib/builtins/abort unreachable end - local.get $66 - local.set $100 + local.get $40 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 4 i32.eq @@ -90647,12 +90558,12 @@ call $~lib/builtins/abort unreachable end - local.get $66 - local.set $100 + local.get $40 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 12 i32.eq @@ -90666,23 +90577,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#slice - local.tee $67 + local.tee $41 i32.store offset=72 - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -90696,12 +90607,12 @@ call $~lib/builtins/abort unreachable end - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -90715,12 +90626,12 @@ call $~lib/builtins/abort unreachable end - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 2 i32.eq @@ -90733,12 +90644,12 @@ call $~lib/builtins/abort unreachable end - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 i32.eq @@ -90751,12 +90662,12 @@ call $~lib/builtins/abort unreachable end - local.get $67 - local.set $100 + local.get $41 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 8 i32.eq @@ -90770,23 +90681,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $66 - local.set $100 + local.get $40 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#slice - local.tee $68 + local.tee $42 i32.store offset=76 - local.get $68 - local.set $100 + local.get $42 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -90800,12 +90711,12 @@ call $~lib/builtins/abort unreachable end - local.get $68 - local.set $100 + local.get $42 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.eq @@ -90818,12 +90729,12 @@ call $~lib/builtins/abort unreachable end - local.get $68 - local.set $100 + local.get $42 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.const 0 i32.eq @@ -90836,12 +90747,12 @@ call $~lib/builtins/abort unreachable end - local.get $68 - local.set $100 + local.get $42 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.const 4 i32.eq @@ -90855,21 +90766,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Int32Array#slice@varargs - local.tee $69 + local.tee $43 i32.store offset=80 - local.get $69 - local.get $65 + local.get $43 + local.get $39 i32.ne i32.eqz if @@ -90880,19 +90791,19 @@ call $~lib/builtins/abort unreachable end - local.get $69 - local.set $100 + local.get $43 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Int32Array#get:length i32.eq i32.eqz @@ -90904,19 +90815,19 @@ call $~lib/builtins/abort unreachable end - local.get $69 - local.set $100 + local.get $43 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset i32.eq i32.eqz @@ -90928,19 +90839,19 @@ call $~lib/builtins/abort unreachable end - local.get $69 - local.set $100 + local.get $43 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength - local.get $65 - local.set $100 + local.get $39 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/arraybuffer/ArrayBufferView#get:byteLength i32.eq i32.eqz @@ -91088,23 +90999,23 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.tee $76 + local.tee $47 i32.store offset=84 - local.get $76 - local.set $100 + local.get $47 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set - local.get $76 - local.set $100 + local.get $47 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 f64.const nan:0x8000000000000 i32.const 0 call $~lib/typedarray/Float64Array#indexOf @@ -91119,12 +91030,12 @@ call $~lib/builtins/abort unreachable end - local.get $76 - local.set $100 + local.get $47 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 f64.const nan:0x8000000000000 i32.const 0 call $~lib/typedarray/Float64Array#includes @@ -91145,23 +91056,23 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $77 + local.tee $48 i32.store offset=88 - local.get $77 - local.set $100 + local.get $48 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $77 - local.set $100 + local.get $48 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 f32.const nan:0x400000 i32.const 0 call $~lib/typedarray/Float32Array#indexOf @@ -91176,12 +91087,12 @@ call $~lib/builtins/abort unreachable end - local.get $77 - local.set $100 + local.get $48 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 f32.const nan:0x400000 i32.const 0 call $~lib/typedarray/Float32Array#includes @@ -91213,28 +91124,28 @@ i32.const 0 i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $80 + local.tee $50 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $80 - local.set $100 + local.get $50 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $81 + local.tee $51 i32.store offset=96 - local.get $81 - local.set $100 + local.get $51 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Uint8Array#get:length i32.const 0 i32.eq @@ -91251,28 +91162,28 @@ i32.const 0 i32.const 2 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $80 + local.tee $50 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $80 - local.set $100 + local.get $50 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 2 global.set $~argumentsLength i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $81 + local.tee $51 i32.store offset=96 - local.get $81 - local.set $100 + local.get $51 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 call $~lib/typedarray/Uint8Array#get:length i32.const 0 i32.eq @@ -91311,38 +91222,38 @@ i32.const 0 i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $90 + local.tee $56 i32.store offset=100 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $91 + local.tee $57 i32.store offset=104 - local.get $91 - local.set $100 + local.get $57 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 f32.const 400 call $~lib/typedarray/Float32Array#__set - local.get $91 - local.set $100 + local.get $57 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $91 - local.set $100 + local.get $57 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 f32.const inf call $~lib/typedarray/Float32Array#__set @@ -91350,41 +91261,41 @@ i32.const 0 i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $92 + local.tee $58 i32.store offset=108 - local.get $92 - local.set $100 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $92 - local.set $100 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $92 - local.set $100 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $92 - local.set $100 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set @@ -91392,124 +91303,124 @@ i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.tee $93 + local.tee $59 i32.store offset=112 - local.get $93 - local.set $100 + local.get $59 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $93 - local.set $100 + local.get $59 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $91 - local.set $100 + local.get $64 + local.get $57 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Float32Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $92 - local.set $100 + local.get $64 + local.get $58 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $93 - local.set $100 + local.get $64 + local.get $59 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 8 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int32Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 10 i32.const 0 i32.const 64 i32.const 14256 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/typedarray/Uint32Array#constructor - local.tee $96 + local.tee $61 i32.store offset=116 - local.get $96 - local.set $100 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $96 - local.set $100 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 300 call $~lib/typedarray/Uint32Array#__set - local.get $96 - local.set $100 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 100 call $~lib/typedarray/Uint32Array#__set - local.get $96 - local.set $100 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const -1 call $~lib/typedarray/Uint32Array#__set @@ -91517,88 +91428,88 @@ i32.const 0 i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.tee $97 + local.tee $62 i32.store offset=120 - local.get $97 - local.set $100 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $97 - local.set $100 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $97 - local.set $100 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $97 - local.set $100 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $96 - local.set $100 + local.get $64 + local.get $61 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Uint32Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 - local.get $97 - local.set $100 + local.get $64 + local.get $62 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - local.get $90 - local.set $100 + local.get $56 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=4 - local.get $100 + local.get $64 i32.const 10 i32.const 0 i32.const 64 i32.const 14288 call $~lib/rt/__newArray - local.set $100 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $100 + local.get $64 i32.store offset=20 - local.get $100 + local.get $64 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> call $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" call $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>" From 44b658d00010be564f16734c208836eeba8cf242 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Thu, 29 May 2025 07:47:41 -0700 Subject: [PATCH 44/86] fix: use Object.setPrototypeOf in JS bindings (#2922) --- src/bindings/js.ts | 26 +++++++++---------- tests/compiler/bindings/esm.debug.js | 4 +-- tests/compiler/bindings/esm.release.js | 4 +-- .../bindings/noExportRuntime.debug.js | 4 +-- .../bindings/noExportRuntime.release.js | 4 +-- tests/compiler/bindings/raw.debug.js | 4 +-- tests/compiler/bindings/raw.release.js | 4 +-- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/bindings/js.ts b/src/bindings/js.ts index 8876118b11..456b2f79ac 100644 --- a/src/bindings/js.ts +++ b/src/bindings/js.ts @@ -554,18 +554,10 @@ export class JSBuilder extends ExportsWalker { continue; } let resetPos = sb.length; - sb.push(": Object.assign(Object.create("); - if (moduleName == "env") { - sb.push("globalThis"); - } else { - sb.push("__module"); - sb.push(moduleId.toString()); - } - sb.push("), "); - if (moduleName == "env") { - sb.push("imports.env || {}, "); - } - sb.push("{\n"); + + // Use Object.setPrototypeOf to avoid issues with read-only properties + // on module objects created by bundlers (issue #2659) + sb.push(": Object.setPrototypeOf({\n"); ++this.indentLevel; let numInstrumented = 0; for (let _keys2 = Map_keys(module), j = 0, l = _keys2.length; j < l; ++j) { @@ -598,7 +590,15 @@ export class JSBuilder extends ExportsWalker { sb.push(",\n"); } else { indent(sb, this.indentLevel); - sb.push("}),\n"); + sb.push("}, "); + if (moduleName == "env") { + // TODO: If necessary, use "Object.setPrototypeOf(Object.assign({}, imports.env || {}), globalThis)" + sb.push("Object.assign(Object.create(globalThis), imports.env || {})"); + } else { + sb.push("__module"); + sb.push(moduleId.toString()); + } + sb.push("),\n"); } } --this.indentLevel; diff --git a/tests/compiler/bindings/esm.debug.js b/tests/compiler/bindings/esm.debug.js index 8ebfcb8c8f..e1a514ba47 100644 --- a/tests/compiler/bindings/esm.debug.js +++ b/tests/compiler/bindings/esm.debug.js @@ -1,6 +1,6 @@ async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ trace(message, n, a0, a1, a2, a3, a4) { // ~lib/builtins/trace(~lib/string/String, i32?, f64?, f64?, f64?, f64?, f64?) => void message = __liftString(message >>> 0); @@ -44,7 +44,7 @@ async function instantiate(module, imports = {}) { throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); })(); }, - }), + }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); const memory = exports.memory || imports.env.memory; diff --git a/tests/compiler/bindings/esm.release.js b/tests/compiler/bindings/esm.release.js index 7f0ac87f85..4f91c23e94 100644 --- a/tests/compiler/bindings/esm.release.js +++ b/tests/compiler/bindings/esm.release.js @@ -1,6 +1,6 @@ async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ trace(message, n, a0, a1, a2, a3, a4) { // ~lib/builtins/trace(~lib/string/String, i32?, f64?, f64?, f64?, f64?, f64?) => void message = __liftString(message >>> 0); @@ -44,7 +44,7 @@ async function instantiate(module, imports = {}) { throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); })(); }, - }), + }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); const memory = exports.memory || imports.env.memory; diff --git a/tests/compiler/bindings/noExportRuntime.debug.js b/tests/compiler/bindings/noExportRuntime.debug.js index 2521ab12b1..bdf08ae5ff 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.js +++ b/tests/compiler/bindings/noExportRuntime.debug.js @@ -1,6 +1,6 @@ async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ abort(message, fileName, lineNumber, columnNumber) { // ~lib/builtins/abort(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void message = __liftString(message >>> 0); @@ -12,7 +12,7 @@ async function instantiate(module, imports = {}) { throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); })(); }, - }), + }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); const memory = exports.memory || imports.env.memory; diff --git a/tests/compiler/bindings/noExportRuntime.release.js b/tests/compiler/bindings/noExportRuntime.release.js index 26ab44837a..24a1b9596b 100644 --- a/tests/compiler/bindings/noExportRuntime.release.js +++ b/tests/compiler/bindings/noExportRuntime.release.js @@ -1,6 +1,6 @@ async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ abort(message, fileName, lineNumber, columnNumber) { // ~lib/builtins/abort(~lib/string/String | null?, ~lib/string/String | null?, u32?, u32?) => void message = __liftString(message >>> 0); @@ -12,7 +12,7 @@ async function instantiate(module, imports = {}) { throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); })(); }, - }), + }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); const memory = exports.memory || imports.env.memory; diff --git a/tests/compiler/bindings/raw.debug.js b/tests/compiler/bindings/raw.debug.js index cc59b6a796..564035a225 100644 --- a/tests/compiler/bindings/raw.debug.js +++ b/tests/compiler/bindings/raw.debug.js @@ -1,6 +1,6 @@ export async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ trace(message, n, a0, a1, a2, a3, a4) { // ~lib/builtins/trace(~lib/string/String, i32?, f64?, f64?, f64?, f64?, f64?) => void message = __liftString(message >>> 0); @@ -44,7 +44,7 @@ export async function instantiate(module, imports = {}) { throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); })(); }, - }), + }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); const memory = exports.memory || imports.env.memory; diff --git a/tests/compiler/bindings/raw.release.js b/tests/compiler/bindings/raw.release.js index cc59b6a796..564035a225 100644 --- a/tests/compiler/bindings/raw.release.js +++ b/tests/compiler/bindings/raw.release.js @@ -1,6 +1,6 @@ export async function instantiate(module, imports = {}) { const adaptedImports = { - env: Object.assign(Object.create(globalThis), imports.env || {}, { + env: Object.setPrototypeOf({ trace(message, n, a0, a1, a2, a3, a4) { // ~lib/builtins/trace(~lib/string/String, i32?, f64?, f64?, f64?, f64?, f64?) => void message = __liftString(message >>> 0); @@ -44,7 +44,7 @@ export async function instantiate(module, imports = {}) { throw Error(`${message} in ${fileName}:${lineNumber}:${columnNumber}`); })(); }, - }), + }, Object.assign(Object.create(globalThis), imports.env || {})), }; const { exports } = await WebAssembly.instantiate(module, adaptedImports); const memory = exports.memory || imports.env.memory; From e5539efa21b66d3ea99aa0d05eabc51faf0618b0 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Tue, 3 Jun 2025 15:23:55 -0700 Subject: [PATCH 45/86] chore: update Binaryen (#2927) --- cli/index.js | 3 +- package-lock.json | 22 +- package.json | 2 +- src/builtins.ts | 8 +- src/compiler.ts | 13 +- src/glue/binaryen.d.ts | 149 +- src/glue/binaryen.js | 126 +- src/module.ts | 608 +- src/passes/pass.ts | 156 +- src/types.ts | 9 - tests/compiler/NonNullable.release.wat | 2 - tests/compiler/assert-nonnull.release.wat | 13 - tests/compiler/assignment-chain.release.wat | 6 - tests/compiler/bindings/esm.release.wat | 36 - .../bindings/noExportRuntime.release.wat | 4 - tests/compiler/bindings/raw.release.wat | 36 - tests/compiler/call-inferred.release.wat | 4 - tests/compiler/call-rest.release.wat | 16 - tests/compiler/call-super.release.wat | 22 - tests/compiler/class-implements.release.wat | 34 +- .../class-overloading-cast.release.wat | 10 - tests/compiler/class-overloading.release.wat | 134 +- tests/compiler/class-override.release.wat | 10 - tests/compiler/class.release.wat | 4 - tests/compiler/constructor.release.wat | 30 +- tests/compiler/do.release.wat | 28 +- tests/compiler/duplicate-fields.release.wat | 10 - .../compiler/empty-exportruntime.release.wat | 2 - tests/compiler/empty-new.release.wat | 2 - .../exportstar-rereexport.release.wat | 4 - .../extends-baseaggregate.release.wat | 6 - tests/compiler/extends-recursive.release.wat | 6 - .../compiler/features/relaxed-simd.debug.wat | 16 +- .../compiler/field-initialization.release.wat | 52 - tests/compiler/field.release.wat | 8 - tests/compiler/for.release.wat | 28 +- tests/compiler/function-call.release.wat | 4 - .../compiler/function-expression.release.wat | 4 - tests/compiler/function-types.release.wat | 2 - tests/compiler/getter-call.release.wat | 6 - tests/compiler/heap.release.wat | 2 - .../incremental-gc/call-indirect.release.wat | 8 - tests/compiler/infer-array.release.wat | 16 - tests/compiler/infer-generic.release.wat | 6 - tests/compiler/inlining.release.wat | 6 - tests/compiler/instanceof.release.wat | 6 - tests/compiler/issues/1095.release.wat | 4 - tests/compiler/issues/1225.release.wat | 6 - tests/compiler/issues/1699.release.wat | 4 - tests/compiler/issues/2166.release.wat | 6 - tests/compiler/issues/2322/index.release.wat | 4 - tests/compiler/issues/2622.release.wat | 2 - tests/compiler/issues/2707.release.wat | 12 +- tests/compiler/issues/2873.release.wat | 2 - tests/compiler/logical.release.wat | 2 - tests/compiler/managed-cast.release.wat | 12 - tests/compiler/memory.release.wat | 10 - tests/compiler/new.release.wat | 2 - tests/compiler/object-literal.release.wat | 6 - ...perator-overload-non-ambiguity.release.wat | 2 - .../optional-typeparameters.release.wat | 2 - tests/compiler/possibly-null.release.wat | 39 +- tests/compiler/reexport.release.wat | 4 - tests/compiler/rereexport.release.wat | 4 - tests/compiler/resolve-access.release.wat | 14 - tests/compiler/resolve-binary.release.wat | 2 - .../resolve-elementaccess.release.wat | 8 - .../resolve-function-expression.release.wat | 4 - tests/compiler/resolve-new.release.wat | 4 - .../resolve-propertyaccess.release.wat | 6 - tests/compiler/resolve-ternary.release.wat | 2 - tests/compiler/resolve-unary.release.wat | 2 - tests/compiler/return-unreachable.release.wat | 4 - tests/compiler/rt/finalize.release.wat | 4 - tests/compiler/rt/issue-2719.release.wat | 4 - .../rt/runtime-incremental-export.release.wat | 2 - .../rt/runtime-minimal-export.release.wat | 4 - .../rt/runtime-stub-export.release.wat | 2 - tests/compiler/simd.release.wat | 8 - tests/compiler/std/array-access.release.wat | 13 - tests/compiler/std/array-literal.release.wat | 10 - tests/compiler/std/array.release.wat | 5981 ++++++++--------- tests/compiler/std/arraybuffer.release.wat | 8 - tests/compiler/std/dataview.release.wat | 20 - tests/compiler/std/date.release.wat | 36 - tests/compiler/std/map.release.wat | 210 - tests/compiler/std/math.release.wat | 12 - tests/compiler/std/new.release.wat | 2 - .../std/operator-overloading.release.wat | 174 - tests/compiler/std/set.release.wat | 140 - tests/compiler/std/static-array.release.wat | 12 - tests/compiler/std/staticarray.release.wat | 134 +- .../std/string-casemapping.release.wat | 6 - .../compiler/std/string-encoding.release.wat | 16 - tests/compiler/std/string-nonnull.release.wat | 4 - tests/compiler/std/string.release.wat | 46 - tests/compiler/std/symbol.release.wat | 26 - tests/compiler/std/typedarray.release.wat | 2222 +++--- tests/compiler/std/uri.release.wat | 10 - tests/compiler/super-inline.release.wat | 4 - tests/compiler/templateliteral.release.wat | 10 - tests/compiler/throw.release.wat | 8 +- tests/compiler/typeof.release.wat | 4 - tests/compiler/unicode-identifier.debug.wat | 6 +- tests/compiler/unicode-identifier.release.wat | 6 +- tests/compiler/while.release.wat | 56 +- 106 files changed, 4388 insertions(+), 6660 deletions(-) diff --git a/cli/index.js b/cli/index.js index 9899f4be3f..d6808957f4 100644 --- a/cli/index.js +++ b/cli/index.js @@ -945,9 +945,10 @@ export async function main(argv, options) { try { // use superset text format when extension is `.wast`. // Otherwise use official stack IR format (wat). + binaryen.setOptimizeStackIR(true); out = opts.textFile?.endsWith(".wast") ? binaryenModule.emitText() - : binaryenModule.emitStackIR(true); + : binaryenModule.emitStackIR(); } catch (e) { crash("emitText", e); } diff --git a/package-lock.json b/package-lock.json index bfaa253c9f..1460aaad37 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "116.0.0-nightly.20240114", + "binaryen": "123.0.0-nightly.20250530", "long": "^5.2.4" }, "bin": { @@ -968,11 +968,19 @@ "dev": true }, "node_modules/binaryen": { - "version": "116.0.0-nightly.20240114", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20240114.tgz", - "integrity": "sha512-0GZrojJnuhoe+hiwji7QFaL3tBlJoA+KFUN7ouYSDGZLSo9CKM8swQX8n/UcbR0d1VuZKU+nhogNzv423JEu5A==", + "version": "123.0.0-nightly.20250530", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-123.0.0-nightly.20250530.tgz", + "integrity": "sha512-d1zPHBN5YlOd3Ff+OUxvVExuFeh8heSnqe+X3bjItFxGLvn4VGBKmrvv7pgy/cRhrIUGuPW138iaWfDhwjyDqg==", + "license": "Apache-2.0", "bin": { + "wasm-as": "bin/wasm-as", + "wasm-ctor-eval": "bin/wasm-ctor-eval", + "wasm-dis": "bin/wasm-dis", + "wasm-merge": "bin/wasm-merge", + "wasm-metadce": "bin/wasm-metadce", "wasm-opt": "bin/wasm-opt", + "wasm-reduce": "bin/wasm-reduce", + "wasm-shell": "bin/wasm-shell", "wasm2js": "bin/wasm2js" } }, @@ -3075,9 +3083,9 @@ "dev": true }, "binaryen": { - "version": "116.0.0-nightly.20240114", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20240114.tgz", - "integrity": "sha512-0GZrojJnuhoe+hiwji7QFaL3tBlJoA+KFUN7ouYSDGZLSo9CKM8swQX8n/UcbR0d1VuZKU+nhogNzv423JEu5A==" + "version": "123.0.0-nightly.20250530", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-123.0.0-nightly.20250530.tgz", + "integrity": "sha512-d1zPHBN5YlOd3Ff+OUxvVExuFeh8heSnqe+X3bjItFxGLvn4VGBKmrvv7pgy/cRhrIUGuPW138iaWfDhwjyDqg==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 39a9e67e54..627dc00210 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "116.0.0-nightly.20240114", + "binaryen": "123.0.0-nightly.20250530", "long": "^5.2.4" }, "devDependencies": { diff --git a/src/builtins.ts b/src/builtins.ts index 777ea655fd..f8b3deedb6 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -1654,8 +1654,7 @@ function builtin_max(ctx: BuiltinFunctionContext): ExpressionRef { module.binary(op, module.local_get(temp1.index, typeRef), module.local_get(temp2.index, typeRef) - ), - typeRef + ) ); return ret; } @@ -1723,8 +1722,7 @@ function builtin_min(ctx: BuiltinFunctionContext): ExpressionRef { module.binary(op, module.local_get(temp1.index, typeRef), module.local_get(temp2.index, typeRef) - ), - typeRef + ) ); return ret; } @@ -3133,7 +3131,7 @@ function builtin_select(ctx: BuiltinFunctionContext): ExpressionRef { operands[2] ); compiler.currentType = type; - return module.select(arg0, arg1, arg2, type.toRef()); + return module.select(arg0, arg1, arg2); } builtinFunctions.set(BuiltinNames.select, builtin_select); diff --git a/src/compiler.ts b/src/compiler.ts index 246993f1cd..29b73f2c69 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -536,6 +536,12 @@ export class Compiler extends DiagnosticEmitter { // initialize lookup maps, built-ins, imports, exports, etc. this.program.initialize(); + + // Binaryen treats all function references as being leaked to the outside world when + // the module isn't marked as closed-world (see WebAssembly/binaryen#7135). Therefore, + // we should mark the module as closed-world when we're definitely sure it is. + module.setClosedWorld(true); + // obtain the main start function let startFunctionInstance = this.currentFlow.targetFunction; assert(startFunctionInstance.internalName == BuiltinNames.start); @@ -857,6 +863,7 @@ export class Compiler extends DiagnosticEmitter { ImportNames.DefaultNamespace, ImportNames.Table ); + module.setClosedWorld(false); if (options.pedantic && options.willOptimize) { this.pedantic( DiagnosticCode.Importing_the_table_disables_some_indirect_call_optimizations, @@ -866,6 +873,7 @@ export class Compiler extends DiagnosticEmitter { } if (options.exportTable) { module.addTableExport(CommonNames.DefaultTable, ExportNames.Table); + module.setClosedWorld(false); if (options.pedantic && options.willOptimize) { this.pedantic( DiagnosticCode.Exporting_the_table_disables_some_indirect_call_optimizations, @@ -977,6 +985,7 @@ export class Compiler extends DiagnosticEmitter { } } } + if (functionInstance.signature.returnType.kind == TypeKind.Func) this.module.setClosedWorld(false); } return; } @@ -1007,6 +1016,7 @@ export class Compiler extends DiagnosticEmitter { this.desiresExportRuntime = true; } } + if (global.type.kind == TypeKind.Func) this.module.setClosedWorld(false); } if (global.type == Type.v128) { this.warning( @@ -4975,8 +4985,7 @@ export class Compiler extends DiagnosticEmitter { return module.select( module.i32(1), module.binary(BinaryOp.EqI32, rightExpr, module.i32(0)), - leftExpr, - TypeRef.I32 + leftExpr ); } case TypeKind.I8: diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index 0c0481d263..fdc2bd7492 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -57,9 +57,6 @@ export declare function _BinaryenTypeStructref(): TypeRef; export declare function _BinaryenTypeArrayref(): TypeRef; export declare function _BinaryenTypeI31ref(): TypeRef; export declare function _BinaryenTypeStringref(): TypeRef; -export declare function _BinaryenTypeStringviewWTF8(): TypeRef; -export declare function _BinaryenTypeStringviewWTF16(): TypeRef; -export declare function _BinaryenTypeStringviewIter(): TypeRef; export declare function _BinaryenTypeNullref(): TypeRef; export declare function _BinaryenTypeNullExternref(): TypeRef; export declare function _BinaryenTypeNullFuncref(): TypeRef; @@ -72,9 +69,6 @@ export declare function _BinaryenHeapTypeI31(): HeapTypeRef; export declare function _BinaryenHeapTypeStruct(): HeapTypeRef; export declare function _BinaryenHeapTypeArray(): HeapTypeRef; export declare function _BinaryenHeapTypeString(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewWTF8(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewWTF16(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewIter(): HeapTypeRef; export declare function _BinaryenHeapTypeNone(): HeapTypeRef; export declare function _BinaryenHeapTypeNoext(): HeapTypeRef; export declare function _BinaryenHeapTypeNofunc(): HeapTypeRef; @@ -282,7 +276,7 @@ export declare function _BinaryenBinarySetLeft(expr: ExpressionRef, leftExpr: Ex export declare function _BinaryenBinaryGetRight(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenBinarySetRight(expr: ExpressionRef, rightExpr: ExpressionRef): void; -export declare function _BinaryenSelect(module: ModuleRef, conditionExpr: ExpressionRef, ifTrueExpr: ExpressionRef, ifFalseExpr: ExpressionRef, type: TypeRef): ExpressionRef; +export declare function _BinaryenSelect(module: ModuleRef, conditionExpr: ExpressionRef, ifTrueExpr: ExpressionRef, ifFalseExpr: ExpressionRef): ExpressionRef; export declare function _BinaryenSelectGetIfTrue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenSelectSetIfTrue(expr: ExpressionRef, ifTrueExpr: ExpressionRef): void; export declare function _BinaryenSelectGetIfFalse(expr: ExpressionRef): ExpressionRef; @@ -457,7 +451,7 @@ export declare function _BinaryenRefAsSetOp(expr: ExpressionRef, op: Op): void; export declare function _BinaryenRefAsGetValue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenRefAsSetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; -export declare function _BinaryenRefFunc(module: ModuleRef, funcName: StringRef, type: TypeRef): ExpressionRef; +export declare function _BinaryenRefFunc(module: ModuleRef, funcName: StringRef, type: HeapTypeRef): ExpressionRef; export declare function _BinaryenRefFuncGetFunc(expr: ExpressionRef): StringRef; export declare function _BinaryenRefFuncSetFunc(expr: ExpressionRef, funcName: StringRef): void; @@ -617,8 +611,6 @@ export declare function _BinaryenArrayNewSetInit(expr: ExpressionRef, initExpr: export declare function _BinaryenArrayNewGetSize(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayNewSetSize(expr: ExpressionRef, sizeExpr: ExpressionRef): void; -// TODO: BinaryenArrayNewSeg - export declare function _BinaryenArrayNewFixed(module: ModuleRef, type: HeapTypeRef, values: ArrayRef, numValues: Index): ExpressionRef; export declare function _BinaryenArrayNewFixedGetNumValues(expr: ExpressionRef): Index; export declare function _BinaryenArrayNewFixedGetValueAt(expr: ExpressionRef, index: Index): ExpressionRef; @@ -627,6 +619,22 @@ export declare function _BinaryenArrayNewFixedAppendValue(expr: ExpressionRef, v export declare function _BinaryenArrayNewFixedInsertValueAt(expr: ExpressionRef, index: Index, valueExpr: ExpressionRef): void; export declare function _BinaryenArrayNewFixedRemoveValueAt(expr: ExpressionRef, index: Index): ExpressionRef; +export declare function _BinaryenArrayNewData(module: ModuleRef, type: HeapTypeRef, name: StringRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayNewDataSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayNewDataGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayNewDataGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenArrayNewElem(module: ModuleRef, type: HeapTypeRef, seg: StringRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayNewElemSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayNewElemGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayNewElemGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemSetSize(expr: ExpressionRef, size: ExpressionRef): void; + export declare function _BinaryenArrayGet(module: ModuleRef, ref: ExpressionRef, index: ExpressionRef, type: TypeRef, signed: bool): ExpressionRef; export declare function _BinaryenArrayGetGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayGetSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; @@ -647,6 +655,16 @@ export declare function _BinaryenArrayLen(module: ModuleRef, ref: ExpressionRef) export declare function _BinaryenArrayLenGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayLenSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenArrayFill(module: ModuleRef, ref: ExpressionRef, index: ExpressionRef, value: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetIndex(expr: ExpressionRef, indexExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetValue(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetSize(expr: ExpressionRef, sizeExpr: ExpressionRef): void; + export declare function _BinaryenArrayCopy(module: ModuleRef, destRef: ExpressionRef, destIndex: ExpressionRef, srcRef: ExpressionRef, srcIndex: ExpressionRef, length: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopyGetDestRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopySetDestRef(expr: ExpressionRef, destRefExpr: ExpressionRef): void; @@ -659,22 +677,39 @@ export declare function _BinaryenArrayCopySetSrcIndex(expr: ExpressionRef, srcIn export declare function _BinaryenArrayCopyGetLength(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopySetLength(expr: ExpressionRef, lengthExpr: ExpressionRef): void; -// TODO: BinaryenArrayFill -// TODO: BinaryenArrayNewFixed - -export declare function _BinaryenStringNew(module: ModuleRef, op: Op, ptr: ExpressionRef, length: ExpressionRef, start: ExpressionRef, end: ExpressionRef, isTry: bool): ExpressionRef; +export declare function _BinaryenArrayInitData(module: ModuleRef, name: StringRef, ref: ExpressionRef, index: ExpressionRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayInitDataSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayInitDataGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetRef(expr: ExpressionRef, ref: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetIndex(expr: ExpressionRef, index: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenArrayInitElem(module: ModuleRef, seg: StringRef, ref: ExpressionRef, index: ExpressionRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayInitElemSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayInitElemGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetRef(expr: ExpressionRef, ref: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetIndex(expr: ExpressionRef, index: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenStringNew(module: ModuleRef, op: Op, ref: ExpressionRef, start: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewGetOp(expr: ExpressionRef): Op; export declare function _BinaryenStringNewSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringNewGetPtr(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringNewSetPtr(expr: ExpressionRef, ptrExpr: ExpressionRef): void; -export declare function _BinaryenStringNewGetLength(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringNewSetLength(expr: ExpressionRef, lengthExpr: ExpressionRef): void; +export declare function _BinaryenStringNewGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringNewSetRef(expr: ExpressionRef, ptrExpr: ExpressionRef): void; export declare function _BinaryenStringNewGetStart(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewSetStart(expr: ExpressionRef, startExpr: ExpressionRef): void; export declare function _BinaryenStringNewGetEnd(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewSetEnd(expr: ExpressionRef, endExpr: ExpressionRef): void; -export declare function _BinaryenStringNewIsTry(expr: ExpressionRef): bool; -export declare function _BinaryenStringNewSetTry(expr: ExpressionRef, isTry: bool): void; export declare function _BinaryenStringConst(module: ExpressionRef, name: StringRef): ExpressionRef; export declare function _BinaryenStringConstGetString(expr: ExpressionRef): StringRef; @@ -689,10 +724,10 @@ export declare function _BinaryenStringMeasureSetRef(expr: ExpressionRef, refExp export declare function _BinaryenStringEncode(module: ExpressionRef, op: Op, ref: ExpressionRef, ptr: ExpressionRef, start: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEncodeGetOp(expr: ExpressionRef): Op; export declare function _BinaryenStringEncodeSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringEncodeGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringEncodeSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringEncodeGetPtr(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringEncodeSetPtr(expr: ExpressionRef, ptrExpr: ExpressionRef): void; +export declare function _BinaryenStringEncodeGetStr(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringEncodeSetStr(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenStringEncodeGetArray(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringEncodeSetArray(expr: ExpressionRef, ptrExpr: ExpressionRef): void; export declare function _BinaryenStringEncodeGetStart(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEncodeSetStart(expr: ExpressionRef, startExpr: ExpressionRef): void; @@ -710,41 +745,13 @@ export declare function _BinaryenStringEqSetLeft(expr: ExpressionRef, leftExpr: export declare function _BinaryenStringEqGetRight(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEqSetRight(expr: ExpressionRef, rightExpr: ExpressionRef): void; -export declare function _BinaryenStringAs(module: ExpressionRef, op: Op, ref: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringAsGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringAsSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringAsGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringAsSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; - -export declare function _BinaryenStringWTF8Advance(module: ExpressionRef, ref: ExpressionRef, pos: ExpressionRef, bytes: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringWTF8AdvanceGetPos(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetPos(expr: ExpressionRef, posExpr: ExpressionRef): void; -export declare function _BinaryenStringWTF8AdvanceGetBytes(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetBytes(expr: ExpressionRef, bytesExpr: ExpressionRef): void; - export declare function _BinaryenStringWTF16Get(module: ExpressionRef, ref: ExpressionRef, pos: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; export declare function _BinaryenStringWTF16GetGetPos(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetSetPos(expr: ExpressionRef, posExpr: ExpressionRef): void; -export declare function _BinaryenStringIterNext(module: ExpressionRef, ref: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterNextGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterNextSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; - -export declare function _BinaryenStringIterMove(module: ExpressionRef, op: Op, ref: ExpressionRef, num: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringIterMoveSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringIterMoveGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringIterMoveGetNum(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveSetNum(expr: ExpressionRef, numExpr: ExpressionRef): void; - -export declare function _BinaryenStringSliceWTF(module: ExpressionRef, op: Op, ref: ExpressionRef, start: ExpressionRef, end: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceWTFGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringSliceWTFSetOp(expr: ExpressionRef, op: Op): void; +export declare function _BinaryenStringSliceWTF(module: ExpressionRef, ref: ExpressionRef, start: ExpressionRef, end: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; export declare function _BinaryenStringSliceWTFGetStart(expr: ExpressionRef): ExpressionRef; @@ -752,12 +759,6 @@ export declare function _BinaryenStringSliceWTFSetStart(expr: ExpressionRef, sta export declare function _BinaryenStringSliceWTFGetEnd(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFSetEnd(expr: ExpressionRef, endExpr: ExpressionRef): void; -export declare function _BinaryenStringSliceIter(module: ExpressionRef, ref: ExpressionRef, num: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringSliceIterGetNum(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterSetNum(expr: ExpressionRef, numExpr: ExpressionRef): void; - export declare function _BinaryenAddFunction(module: ModuleRef, name: StringRef, params: TypeRef, results: TypeRef, varTypes: ArrayRef, numVarTypes: Index, body: ExpressionRef): FunctionRef; export declare function _BinaryenGetFunction(module: ModuleRef, name: StringRef): FunctionRef; export declare function _BinaryenRemoveFunction(module: ModuleRef, name: StringRef): void; @@ -769,12 +770,15 @@ export declare function _BinaryenFunctionGetParams(func: FunctionRef): TypeRef; export declare function _BinaryenFunctionGetResults(func: FunctionRef): TypeRef; export declare function _BinaryenFunctionGetNumVars(func: FunctionRef): Index; export declare function _BinaryenFunctionGetVar(func: FunctionRef, index: Index): TypeRef; +export declare function _BinaryenFunctionAddVar(func: FunctionRef, type: TypeRef): Index; export declare function _BinaryenFunctionGetNumLocals(func: FunctionRef): Index; export declare function _BinaryenFunctionHasLocalName(func: FunctionRef, index: Index): bool; export declare function _BinaryenFunctionGetLocalName(func: FunctionRef, index: Index): StringRef; export declare function _BinaryenFunctionSetLocalName(func: FunctionRef, index: Index, name: StringRef): void; export declare function _BinaryenFunctionGetBody(func: FunctionRef): ExpressionRef; export declare function _BinaryenFunctionSetBody(func: FunctionRef, bodyExpr: ExpressionRef): void; +export declare function _BinaryenFunctionGetType(func: FunctionRef): HeapTypeRef; +export declare function _BinaryenFunctionSetType(func: FunctionRef, type: HeapTypeRef): void; export declare function _BinaryenFunctionOptimize(func: FunctionRef, module: ModuleRef): void; export declare function _BinaryenFunctionRunPasses(func: FunctionRef, module: ModuleRef, passes: ArrayRef, numPasses: Index): void; export declare function _BinaryenFunctionSetDebugLocation(func: FunctionRef, expr: ExpressionRef, fileIndex: Index, lineNumber: Index, columnNumber: Index): void; @@ -830,6 +834,8 @@ export declare function _BinaryenTableSetInitial(table: TableRef, initial: Index export declare function _BinaryenTableHasMax(table: TableRef): bool; export declare function _BinaryenTableGetMax(table: TableRef): Index; export declare function _BinaryenTableSetMax(table: TableRef, max: Index): void; +export declare function _BinaryenTableGetType(table: TableRef): TypeRef; +export declare function _BinaryenTableSetType(table: TableRef, type: TypeRef): void; export declare function _BinaryenAddActiveElementSegment(module: ModuleRef, table: StringRef, name: StringRef, funcNames: ArrayRef, numFuncNames: Index, offset: ExpressionRef): ElementSegmentRef; export declare function _BinaryenAddPassiveElementSegment(module: ModuleRef, name: StringRef, funcNames: ArrayRef, numFuncNames: Index): ElementSegmentRef; @@ -838,13 +844,15 @@ export declare function _BinaryenGetNumElementSegments(module: ModuleRef, name: export declare function _BinaryenGetElementSegment(module: ModuleRef, name: StringRef): ElementSegmentRef; export declare function _BinaryenGetElementSegmentByIndex(module: ModuleRef, index: Index): ElementSegmentRef; -export declare function _BinaryenSetMemory(module: ModuleRef, initial: Index, maximum: Index, exportName: StringRef, segments: ArrayRef>, segmentPassive: ArrayRef, segmentOffsets: ArrayRef, segmentSizes: ArrayRef, numSegments: Index, shared: bool, memory64: bool, name: StringRef): void; +export declare function _BinaryenSetMemory(module: ModuleRef, initial: Index, maximum: Index, exportName: StringRef, segmentNames: ArrayRef, segmentDatas: ArrayRef>, segmentPassive: ArrayRef, segmentOffsets: ArrayRef, segmentSizes: ArrayRef, numSegments: Index, shared: bool, memory64: bool, name: StringRef): void; export declare function _BinaryenGetNumMemorySegments(module: ModuleRef): Index; -export declare function _BinaryenGetMemorySegmentByteOffset(module: ModuleRef, index: Index): u32; -export declare function _BinaryenGetMemorySegmentByteLength(module: ModuleRef, id: Index): usize; -export declare function _BinaryenCopyMemorySegmentData(module: ModuleRef, id: Index, buffer: ArrayRef): void; +export declare function _BinaryenGetMemorySegmentByteOffset(module: ModuleRef, segmentName: StringRef): u32; +export declare function _BinaryenGetMemorySegmentByteLength(module: ModuleRef, segmentName: StringRef): usize; +export declare function _BinaryenCopyMemorySegmentData(module: ModuleRef, segmentName: StringRef, buffer: ArrayRef): void; +export declare function _BinaryenAddDataSegment(module: ModuleRef, segmentName: StringRef, memoryName: StringRef, segmentPassive: bool, segmentOffset: ExpressionRef, segmentData: ArrayRef, segmentSize: Index): void; export declare function _BinaryenSetStart(module: ModuleRef, start: FunctionRef): void; +export declare function _BinaryenGetStart(module: ModuleRef): FunctionRef; export declare function _BinaryenModuleParse(text: StringRef): ModuleRef; export declare function _BinaryenModulePrint(module: ModuleRef): void; @@ -852,12 +860,12 @@ export declare function _BinaryenModulePrintAsmjs(module: ModuleRef): void; export declare function _BinaryenModuleValidate(module: ModuleRef): i32; export declare function _BinaryenModuleOptimize(module: ModuleRef): void; export declare function _BinaryenModuleRunPasses(module: ModuleRef, passes: ArrayRef, numPasses: Index): void; -export declare function _BinaryenModuleAutoDrop(module: ModuleRef): void; export declare function _BinaryenSizeofAllocateAndWriteResult(): i32; export declare function _BinaryenModuleAllocateAndWrite(resultOut: BinaryenModuleAllocateAndWriteResultRef, module: ModuleRef, sourceMapUrl: StringRef): void; export declare function _BinaryenModuleAllocateAndWriteText(module: ModuleRef): StringRef; -export declare function _BinaryenModuleAllocateAndWriteStackIR(module: ModuleRef, optimize: bool): StringRef; +export declare function _BinaryenModuleAllocateAndWriteStackIR(module: ModuleRef): StringRef; export declare function _BinaryenModuleRead(input: ArrayRef, inputSize: usize): ModuleRef; +export declare function _BinaryenModuleReadWithFeatures(input: ArrayRef, inputSize: usize, featureFlags: FeatureFlags): ModuleRef; export declare function _BinaryenModuleInterpret(module: ModuleRef): void; export declare function _BinaryenModuleAddDebugInfoFileName(module: ModuleRef, filename: StringRef): Index; export declare function _BinaryenModuleGetDebugInfoFileName(module: ModuleRef, index: Index): StringRef; @@ -902,15 +910,26 @@ export declare function _BinaryenGetShrinkLevel(): i32; export declare function _BinaryenSetShrinkLevel(level: i32): void; export declare function _BinaryenGetDebugInfo(): bool; export declare function _BinaryenSetDebugInfo(on: bool): void; +export declare function _BinaryenGetTrapsNeverHappen(): bool; +export declare function _BinaryenSetTrapsNeverHappen(on: bool): void; +export declare function _BinaryenGetClosedWorld(): bool; +export declare function _BinaryenSetClosedWorld(on: bool): void; export declare function _BinaryenGetLowMemoryUnused(): bool; export declare function _BinaryenSetLowMemoryUnused(on: bool): void; export declare function _BinaryenGetZeroFilledMemory(): bool; export declare function _BinaryenSetZeroFilledMemory(on: bool): void; export declare function _BinaryenGetFastMath(): bool; export declare function _BinaryenSetFastMath(on: bool): void; +export declare function _BinaryenGetGenerateStackIR(): bool; +export declare function _BinaryenSetGenerateStackIR(on: bool): void; +export declare function _BinaryenGetOptimizeStackIR(): bool; +export declare function _BinaryenSetOptimizeStackIR(on: bool): void; export declare function _BinaryenGetPassArgument(key: StringRef): StringRef; export declare function _BinaryenSetPassArgument(key: StringRef, value: StringRef): void; export declare function _BinaryenClearPassArguments(): void; +export declare function _BinaryenHasPassToSkip(pass: StringRef): bool; +export declare function _BinaryenAddPassToSkip(pass: StringRef): void; +export declare function _BinaryenClearPassesToSkip(): void; export declare function _BinaryenGetAlwaysInlineMaxSize(): Index; export declare function _BinaryenSetAlwaysInlineMaxSize(size: Index): void; export declare function _BinaryenGetFlexibleInlineMaxSize(): Index; diff --git a/src/glue/binaryen.js b/src/glue/binaryen.js index 91493cbc8d..295afb7635 100644 --- a/src/glue/binaryen.js +++ b/src/glue/binaryen.js @@ -21,9 +21,6 @@ export const { _BinaryenTypeStructref, _BinaryenTypeArrayref, _BinaryenTypeStringref, - _BinaryenTypeStringviewWTF8, - _BinaryenTypeStringviewWTF16, - _BinaryenTypeStringviewIter, _BinaryenTypeNullref, _BinaryenTypeNullExternref, _BinaryenTypeNullFuncref, @@ -37,9 +34,6 @@ export const { _BinaryenHeapTypeArray, // _BinaryenHeapTypeExn, _BinaryenHeapTypeString, - _BinaryenHeapTypeStringviewWTF8, - _BinaryenHeapTypeStringviewWTF16, - _BinaryenHeapTypeStringviewIter, _BinaryenHeapTypeNone, _BinaryenHeapTypeNoext, _BinaryenHeapTypeNofunc, @@ -585,6 +579,22 @@ export const { _BinaryenArrayNewFixedInsertValueAt, _BinaryenArrayNewFixedRemoveValueAt, + _BinaryenArrayNewData, + _BinaryenArrayNewDataGetSegment, + _BinaryenArrayNewDataSetSegment, + _BinaryenArrayNewDataGetOffset, + _BinaryenArrayNewDataSetOffset, + _BinaryenArrayNewDataGetSize, + _BinaryenArrayNewDataSetSize, + + _BinaryenArrayNewElem, + _BinaryenArrayNewElemGetSegment, + _BinaryenArrayNewElemSetSegment, + _BinaryenArrayNewElemGetOffset, + _BinaryenArrayNewElemSetOffset, + _BinaryenArrayNewElemGetSize, + _BinaryenArrayNewElemSetSize, + _BinaryenArrayGet, _BinaryenArrayGetGetRef, _BinaryenArrayGetSetRef, @@ -605,6 +615,16 @@ export const { _BinaryenArrayLenGetRef, _BinaryenArrayLenSetRef, + _BinaryenArrayFill, + _BinaryenArrayFillGetRef, + _BinaryenArrayFillSetRef, + _BinaryenArrayFillGetIndex, + _BinaryenArrayFillSetIndex, + _BinaryenArrayFillGetValue, + _BinaryenArrayFillSetValue, + _BinaryenArrayFillGetSize, + _BinaryenArrayFillSetSize, + _BinaryenArrayCopy, _BinaryenArrayCopyGetDestRef, _BinaryenArrayCopySetDestRef, @@ -617,19 +637,39 @@ export const { _BinaryenArrayCopyGetLength, _BinaryenArrayCopySetLength, + _BinaryenArrayInitData, + _BinaryenArrayInitDataGetSegment, + _BinaryenArrayInitDataSetSegment, + _BinaryenArrayInitDataGetRef, + _BinaryenArrayInitDataSetRef, + _BinaryenArrayInitDataGetIndex, + _BinaryenArrayInitDataSetIndex, + _BinaryenArrayInitDataGetOffset, + _BinaryenArrayInitDataSetOffset, + _BinaryenArrayInitDataGetSize, + _BinaryenArrayInitDataSetSize, + + _BinaryenArrayInitElem, + _BinaryenArrayInitElemGetSegment, + _BinaryenArrayInitElemSetSegment, + _BinaryenArrayInitElemGetRef, + _BinaryenArrayInitElemSetRef, + _BinaryenArrayInitElemGetIndex, + _BinaryenArrayInitElemSetIndex, + _BinaryenArrayInitElemGetOffset, + _BinaryenArrayInitElemSetOffset, + _BinaryenArrayInitElemGetSize, + _BinaryenArrayInitElemSetSize, + _BinaryenStringNew, _BinaryenStringNewGetOp, _BinaryenStringNewSetOp, - _BinaryenStringNewGetPtr, - _BinaryenStringNewSetPtr, - _BinaryenStringNewGetLength, - _BinaryenStringNewSetLength, + _BinaryenStringNewGetRef, + _BinaryenStringNewSetRef, _BinaryenStringNewGetStart, _BinaryenStringNewSetStart, _BinaryenStringNewGetEnd, _BinaryenStringNewSetEnd, - _BinaryenStringNewIsTry, - _BinaryenStringNewSetTry, _BinaryenStringConst, _BinaryenStringConstGetString, @@ -644,10 +684,10 @@ export const { _BinaryenStringEncode, _BinaryenStringEncodeGetOp, _BinaryenStringEncodeSetOp, - _BinaryenStringEncodeGetRef, - _BinaryenStringEncodeSetRef, - _BinaryenStringEncodeGetPtr, - _BinaryenStringEncodeSetPtr, + _BinaryenStringEncodeGetStr, + _BinaryenStringEncodeSetStr, + _BinaryenStringEncodeGetArray, + _BinaryenStringEncodeSetArray, _BinaryenStringEncodeGetStart, _BinaryenStringEncodeSetStart, @@ -665,41 +705,13 @@ export const { _BinaryenStringEqGetRight, _BinaryenStringEqSetRight, - _BinaryenStringAs, - _BinaryenStringAsGetOp, - _BinaryenStringAsSetOp, - _BinaryenStringAsGetRef, - _BinaryenStringAsSetRef, - - _BinaryenStringWTF8Advance, - _BinaryenStringWTF8AdvanceGetRef, - _BinaryenStringWTF8AdvanceSetRef, - _BinaryenStringWTF8AdvanceGetPos, - _BinaryenStringWTF8AdvanceSetPos, - _BinaryenStringWTF8AdvanceGetBytes, - _BinaryenStringWTF8AdvanceSetBytes, - _BinaryenStringWTF16Get, _BinaryenStringWTF16GetGetRef, _BinaryenStringWTF16GetSetRef, _BinaryenStringWTF16GetGetPos, _BinaryenStringWTF16GetSetPos, - _BinaryenStringIterNext, - _BinaryenStringIterNextGetRef, - _BinaryenStringIterNextSetRef, - - _BinaryenStringIterMove, - _BinaryenStringIterMoveGetOp, - _BinaryenStringIterMoveSetOp, - _BinaryenStringIterMoveGetRef, - _BinaryenStringIterMoveSetRef, - _BinaryenStringIterMoveGetNum, - _BinaryenStringIterMoveSetNum, - _BinaryenStringSliceWTF, - _BinaryenStringSliceWTFGetOp, - _BinaryenStringSliceWTFSetOp, _BinaryenStringSliceWTFGetRef, _BinaryenStringSliceWTFSetRef, _BinaryenStringSliceWTFGetStart, @@ -707,12 +719,6 @@ export const { _BinaryenStringSliceWTFGetEnd, _BinaryenStringSliceWTFSetEnd, - _BinaryenStringSliceIter, - _BinaryenStringSliceIterGetRef, - _BinaryenStringSliceIterSetRef, - _BinaryenStringSliceIterGetNum, - _BinaryenStringSliceIterSetNum, - _BinaryenAddFunction, _BinaryenGetFunction, _BinaryenRemoveFunction, @@ -724,12 +730,15 @@ export const { _BinaryenFunctionGetResults, _BinaryenFunctionGetNumVars, _BinaryenFunctionGetVar, + _BinaryenFunctionAddVar, _BinaryenFunctionGetNumLocals, _BinaryenFunctionHasLocalName, _BinaryenFunctionGetLocalName, _BinaryenFunctionSetLocalName, _BinaryenFunctionGetBody, _BinaryenFunctionSetBody, + _BinaryenFunctionGetType, + _BinaryenFunctionSetType, _BinaryenFunctionOptimize, _BinaryenFunctionRunPasses, _BinaryenFunctionSetDebugLocation, @@ -785,6 +794,8 @@ export const { _BinaryenTableHasMax, _BinaryenTableGetMax, _BinaryenTableSetMax, + _BinaryenTableGetType, + _BinaryenTableSetType, _BinaryenAddActiveElementSegment, _BinaryenAddPassiveElementSegment, @@ -798,8 +809,10 @@ export const { _BinaryenGetMemorySegmentByteOffset, _BinaryenGetMemorySegmentByteLength, _BinaryenCopyMemorySegmentData, + _BinaryenAddDataSegment, _BinaryenSetStart, + _BinaryenGetStart, _BinaryenModuleParse, _BinaryenModulePrint, @@ -807,12 +820,12 @@ export const { _BinaryenModuleValidate, _BinaryenModuleOptimize, _BinaryenModuleRunPasses, - _BinaryenModuleAutoDrop, _BinaryenSizeofAllocateAndWriteResult, _BinaryenModuleAllocateAndWrite, _BinaryenModuleAllocateAndWriteText, _BinaryenModuleAllocateAndWriteStackIR, _BinaryenModuleRead, + _BinaryenModuleReadWithFeatures, _BinaryenModuleInterpret, _BinaryenModuleAddDebugInfoFileName, _BinaryenModuleGetDebugInfoFileName, @@ -857,15 +870,26 @@ export const { _BinaryenSetShrinkLevel, _BinaryenGetDebugInfo, _BinaryenSetDebugInfo, + _BinaryenGetTrapsNeverHappen, + _BinaryenSetTrapsNeverHappen, + _BinaryenGetClosedWorld, + _BinaryenSetClosedWorld, _BinaryenGetLowMemoryUnused, _BinaryenSetLowMemoryUnused, _BinaryenGetZeroFilledMemory, _BinaryenSetZeroFilledMemory, _BinaryenGetFastMath, _BinaryenSetFastMath, + _BinaryenGetGenerateStackIR, + _BinaryenSetGenerateStackIR, + _BinaryenGetOptimizeStackIR, + _BinaryenSetOptimizeStackIR, _BinaryenGetPassArgument, _BinaryenSetPassArgument, _BinaryenClearPassArguments, + _BinaryenHasPassToSkip, + _BinaryenAddPassToSkip, + _BinaryenClearPassesToSkip, _BinaryenGetAlwaysInlineMaxSize, _BinaryenSetAlwaysInlineMaxSize, _BinaryenGetFlexibleInlineMaxSize, diff --git a/src/module.ts b/src/module.ts index 24d1fb4c8c..c6eb00b579 100644 --- a/src/module.ts +++ b/src/module.ts @@ -78,9 +78,6 @@ export namespace TypeRef { export const Arrayref = binaryen._BinaryenTypeArrayref(); export const I31ref = binaryen._BinaryenTypeI31ref(); export const Stringref = binaryen._BinaryenTypeStringref(); - export const StringviewWTF8 = binaryen._BinaryenTypeStringviewWTF8(); - export const StringviewWTF16 = binaryen._BinaryenTypeStringviewWTF16(); - export const StringviewIter = binaryen._BinaryenTypeStringviewIter(); export const Noneref = binaryen._BinaryenTypeNullref(); export const Nofuncref = binaryen._BinaryenTypeNullFuncref(); export const Noexternref = binaryen._BinaryenTypeNullExternref(); @@ -102,21 +99,18 @@ export namespace HeapTypeRef { // // where (...) represents the concrete subtypes - export const Extern: HeapTypeRef = 0 /* _BinaryenHeapTypeExt */; - export const Func: HeapTypeRef = 1 /* _BinaryenHeapTypeFunc */; - export const Any: HeapTypeRef = 2 /* _BinaryenHeapTypeAny */; - export const Eq: HeapTypeRef = 3 /* _BinaryenHeapTypeEq */; - export const I31: HeapTypeRef = 4 /* _BinaryenHeapTypeI31 */; - export const Struct: HeapTypeRef = 5 /* _BinaryenHeapTypeStruct */; - export const Array: HeapTypeRef = 6 /* _BinaryenHeapTypeArray */; + export const Extern: HeapTypeRef = 8 /* _BinaryenHeapTypeExt */; + export const Func: HeapTypeRef = 16 /* _BinaryenHeapTypeFunc */; + export const Any: HeapTypeRef = 32 /* _BinaryenHeapTypeAny */; + export const Eq: HeapTypeRef = 40 /* _BinaryenHeapTypeEq */; + export const I31: HeapTypeRef = 48 /* _BinaryenHeapTypeI31 */; + export const Struct: HeapTypeRef = 56 /* _BinaryenHeapTypeStruct */; + export const Array: HeapTypeRef = 64 /* _BinaryenHeapTypeArray */; export const Exn: HeapTypeRef = 7 /* TODO: BinaryenHeapTypeExn */; - export const String: HeapTypeRef = 8 /* _BinaryenHeapTypeString */; - export const StringviewWTF8: HeapTypeRef = 9 /* _BinaryenHeapTypeStringviewWTF8 */; - export const StringviewWTF16: HeapTypeRef = 10 /* _BinaryenHeapTypeStringviewWTF16 */; - export const StringviewIter: HeapTypeRef = 11 /* _BinaryenHeapTypeStringviewIter */; - export const None: HeapTypeRef = 12 /* _BinaryenHeapTypeNone */; - export const Noextern: HeapTypeRef = 13 /* _BinaryenHeapTypeNoext */; - export const Nofunc: HeapTypeRef = 14 /* _BinaryenHeapTypeNofunc */; + export const String: HeapTypeRef = 80 /* _BinaryenHeapTypeString */; + export const None: HeapTypeRef = 88 /* _BinaryenHeapTypeNone */; + export const Noextern: HeapTypeRef = 96 /* _BinaryenHeapTypeNoext */; + export const Nofunc: HeapTypeRef = 104 /* _BinaryenHeapTypeNofunc */; export function isBottom(ht: HeapTypeRef): bool { return binaryen._BinaryenHeapTypeIsBottom(ht); @@ -142,7 +136,7 @@ export namespace HeapTypeRef { b = t; } switch (a) { - case HeapTypeRef.Extern: + case HeapTypeRef.Extern: return b == HeapTypeRef.String ? a : -1; case HeapTypeRef.Func: return -1; case HeapTypeRef.Any: return a; case HeapTypeRef.Eq: { @@ -160,11 +154,7 @@ export namespace HeapTypeRef { ? HeapTypeRef.Eq : HeapTypeRef.Any; } - case HeapTypeRef.Array: - case HeapTypeRef.String: - case HeapTypeRef.StringviewWTF8: - case HeapTypeRef.StringviewWTF16: - case HeapTypeRef.StringviewIter: return HeapTypeRef.Any; + case HeapTypeRef.Array: return HeapTypeRef.Any; } assert(false); return -1; @@ -222,10 +212,15 @@ export const enum FeatureFlags { ExtendedConst = 8192 /* _BinaryenFeatureExtendedConst */, Stringref = 16384 /* _BinaryenFeatureStrings */, MultiMemory = 32768 /* _BinaryenFeatureMultiMemory */, - All = 131071 /* _BinaryenFeatureAll */ + StackSwitching = 65536 /* _BinaryenFeatureStackSwitching */, + SharedEverything = 131072 /* _BinaryenFeatureSharedEverything */, + FP16 = 262144 /* _BinaryenFeatureFP16 */, + BulkMemoryOpt = 524288 /* _BinaryenFeatureBulkMemoryOpt */, + CallIndirectOverlong = 1048576 /* _BinaryenFeatureCallIndirectOverlong */, + All = 4194303 /* _BinaryenFeatureAll */ } -/** Binaryen expression id constants. */ +/** Binaryen expression id constants. See wasm-delegations.def in Binaryen. */ export const enum ExpressionId { Invalid = 0 /* _BinaryenInvalidId */, Block = 1 /* _BinaryenBlockId */, @@ -278,48 +273,52 @@ export const enum ExpressionId { TableGrow = 48 /* _BinaryenTableGrowId */, TableFill = 49 /* _BinaryenTableFillId */, TableCopy = 50 /* _BinaryenTableCopyId */, - Try = 51 /* _BinaryenTryId */, - TryTable = 52 /* _BinaryenTryTableId */, - Throw = 53 /* _BinaryenThrowId */, - Rethrow = 54 /* _BinaryenRethrowId */, - ThrowRef = 55 /* _BinaryenThrowRefId */, - TupleMake = 56 /* _BinaryenTupleMakeId */, - TupleExtract = 57 /* _BinaryenTupleExtractId */, - RefI31 = 58 /* _BinaryenRefI31Id */, - I31Get = 59 /* _BinaryenI31GetId */, - CallRef = 60 /* _BinaryenCallRefId */, - RefTest = 61 /* _BinaryenRefTestId */, - RefCast = 62 /* _BinaryenRefCastId */, - BrOn = 63 /* _BinaryenBrOnId */, - StructNew = 64 /* _BinaryenStructNewId */, - StructGet = 65 /* _BinaryenStructGetId */, - StructSet = 66 /* _BinaryenStructSetId */, - ArrayNew = 67 /* _BinaryenArrayNewId */, - ArrayNewData = 68 /* _BinaryenArrayNewDataId */, - ArrayNewElem = 69 /* _BinaryenArrayNewElemId */, - ArrayNewFixed = 70 /* _BinaryenArrayNewFixedId */, - ArrayGet = 71 /* _BinaryenArrayGetId */, - ArraySet = 72 /* _BinaryenArraySetId */, - ArrayLen = 73 /* _BinaryenArrayLenId */, - ArrayCopy = 74 /* _BinaryenArrayCopyId */, - ArrayFill = 75 /* _BinaryenArrayFillId */, - ArrayInitData = 76 /* _BinaryenArrayInitDataId */, - ArrayInitElem = 77 /* _BinaryenArrayInitElemId */, - RefAs = 78 /* _BinaryenRefAsId */, - StringNew = 79 /* _BinaryenStringNewId */, - StringConst = 80 /* _BinaryenStringConstId */, - StringMeasure = 81 /* _BinaryenStringMeasureId */, - StringEncode = 82 /* _BinaryenStringEncodeId */, - StringConcat = 83 /* _BinaryenStringConcatId */, - StringEq = 84 /* _BinaryenStringEqId */, - StringAs = 85 /* _BinaryenStringAsId */, - StringWTF8Advance = 86 /* _BinaryenStringWTF8AdvanceId */, - StringWTF16Get = 87 /* _BinaryenStringWTF16GetId */, - StringIterNext = 88 /* _BinaryenStringIterNextId */, - StringIterMove = 89 /* _BinaryenStringIterMoveId */, + TableInit = 51 /* _BinaryenTableInitId */, + Try = 52 /* _BinaryenTryId */, + TryTable = 53 /* _BinaryenTryTableId */, + Throw = 54 /* _BinaryenThrowId */, + Rethrow = 55 /* _BinaryenRethrowId */, + ThrowRef = 56 /* _BinaryenThrowRefId */, + TupleMake = 57 /* _BinaryenTupleMakeId */, + TupleExtract = 58 /* _BinaryenTupleExtractId */, + RefI31 = 59 /* _BinaryenRefI31Id */, + I31Get = 60 /* _BinaryenI31GetId */, + CallRef = 61 /* _BinaryenCallRefId */, + RefTest = 62 /* _BinaryenRefTestId */, + RefCast = 63 /* _BinaryenRefCastId */, + RefGetDesc = 64 /* _BinaryenRefGetDescId */, + BrOn = 65 /* _BinaryenBrOnId */, + StructNew = 66 /* _BinaryenStructNewId */, + StructGet = 67 /* _BinaryenStructGetId */, + StructSet = 68 /* _BinaryenStructSetId */, + StructRMW = 69 /* _BinaryenStructRMWId */, + StructCmpxchg = 70 /* _BinaryenStructCmpxchgId */, + ArrayNew = 71 /* _BinaryenArrayNewId */, + ArrayNewData = 72 /* _BinaryenArrayNewDataId */, + ArrayNewElem = 73 /* _BinaryenArrayNewElemId */, + ArrayNewFixed = 74 /* _BinaryenArrayNewFixedId */, + ArrayGet = 75 /* _BinaryenArrayGetId */, + ArraySet = 76 /* _BinaryenArraySetId */, + ArrayLen = 77 /* _BinaryenArrayLenId */, + ArrayCopy = 78 /* _BinaryenArrayCopyId */, + ArrayFill = 79 /* _BinaryenArrayFillId */, + ArrayInitData = 80 /* _BinaryenArrayInitDataId */, + ArrayInitElem = 81 /* _BinaryenArrayInitElemId */, + RefAs = 82 /* _BinaryenRefAsId */, + StringNew = 83 /* _BinaryenStringNewId */, + StringConst = 84 /* _BinaryenStringConstId */, + StringMeasure = 85 /* _BinaryenStringMeasureId */, + StringEncode = 86 /* _BinaryenStringEncodeId */, + StringConcat = 87 /* _BinaryenStringConcatId */, + StringEq = 88 /* _BinaryenStringEqId */, + StringWTF16Get = 89 /* _BinaryenStringWTF16GetId */, StringSliceWTF = 90 /* _BinaryenStringSliceWTFId */, - StringSliceIter = 91 /* _BinaryenStringSliceIterId */, - ResumeId = 92 /* _BinaryenResumeId */ + ContNew = 91 /* _BinaryenContNewId */, + ContBind = 92 /* _BinaryenContBindId */, + Suspend = 93 /* _BinaryenSuspendId */, + Resume = 94 /* _BinaryenResumeId */, + ResumeThrow = 95 /* _BinaryenResumeThrowId */, + StackSwitch = 96 /* _BinaryenStackSwitchId */ } /** Binaryen external kind constants. */ @@ -512,97 +511,95 @@ export const enum UnaryOp { AllTrueI64x2 = 83 /* _BinaryenAllTrueVecI64x2 */, /** i64x2.bitmask */ BitmaskI64x2 = 84 /* _BinaryenBitmaskVecI64x2 */, + // FIXME FIXME FIXME DONT FORGET TODO: F16 (not in C API yet) /** f32x4.abs */ - AbsF32x4 = 85 /* _BinaryenAbsVecF32x4 */, + AbsF32x4 = 92 /* _BinaryenAbsVecF32x4 */, /** f32x4.neg */ - NegF32x4 = 86 /* _BinaryenNegVecF32x4 */, + NegF32x4 = 93 /* _BinaryenNegVecF32x4 */, /** f32x4.sqrt */ - SqrtF32x4 = 87 /* _BinaryenSqrtVecF32x4 */, + SqrtF32x4 = 94 /* _BinaryenSqrtVecF32x4 */, /** f32x4.ceil */ - CeilF32x4 = 88 /* _BinaryenCeilVecF32x4 */, + CeilF32x4 = 95 /* _BinaryenCeilVecF32x4 */, /** f32x4.floor */ - FloorF32x4 = 89 /* _BinaryenFloorVecF32x4 */, + FloorF32x4 = 96 /* _BinaryenFloorVecF32x4 */, /** f32x4.trunc */ - TruncF32x4 = 90 /* BinaryenTruncVecF32x4 */, + TruncF32x4 = 97 /* _BinaryenTruncVecF32x4 */, /** f32x4.nearest */ - NearestF32x4 = 91 /* BinaryenNearestVecF32x4 */, + NearestF32x4 = 98 /* _BinaryenNearestVecF32x4 */, /** f64x2.abs */ - AbsF64x2 = 92 /* _BinaryenAbsVecF64x2 */, + AbsF64x2 = 99 /* _BinaryenAbsVecF64x2 */, /** f64x2.neg */ - NegF64x2 = 93 /* _BinaryenNegVecF64x2 */, + NegF64x2 = 100 /* _BinaryenNegVecF64x2 */, /** f64x2.sqrt */ - SqrtF64x2 = 94 /* _BinaryenSqrtVecF64x2 */, + SqrtF64x2 = 101 /* _BinaryenSqrtVecF64x2 */, /** f64x2.ceil */ - CeilF64x2 = 95 /* _BinaryenCeilVecF64x2 */, + CeilF64x2 = 102 /* _BinaryenCeilVecF64x2 */, /** f64x2.floor */ - FloorF64x2 = 96 /* _BinaryenFloorVecF64x2 */, + FloorF64x2 = 103 /* _BinaryenFloorVecF64x2 */, /** f64x2.trunc */ - TruncF64x2 = 97 /* _BinaryenTruncVecF64x2 */, + TruncF64x2 = 104 /* _BinaryenTruncVecF64x2 */, /** f64x2.nearest */ - NearestF64x2 = 98 /* _BinaryenNearestVecF64x2 */, + NearestF64x2 = 105 /* _BinaryenNearestVecF64x2 */, /** i16x8.extadd_pairwise_i8x16_s */ - ExtaddPairwiseI8x16ToI16x8 = 99 /* _BinaryenExtAddPairwiseSVecI8x16ToI16x8 */, + ExtaddPairwiseI8x16ToI16x8 = 106 /* _BinaryenExtAddPairwiseSVecI8x16ToI16x8 */, /** i16x8.extadd_pairwise.i8x16_u */ - ExtaddPairwiseU8x16ToU16x8 = 100 /* _BinaryenExtAddPairwiseUVecI8x16ToI16x8 */, + ExtaddPairwiseU8x16ToU16x8 = 107 /* _BinaryenExtAddPairwiseUVecI8x16ToI16x8 */, /** i32x4.extadd_pairwise.i16x8_s */ - ExtaddPairwiseI16x8ToI32x4 = 101 /* _BinaryenExtAddPairwiseSVecI16x8ToI32x4 */, + ExtaddPairwiseI16x8ToI32x4 = 108 /* _BinaryenExtAddPairwiseSVecI16x8ToI32x4 */, /** i32x4.extadd_pairwise.i64x8_u */ - ExtaddPairwiseU16x8ToU32x4 = 102 /* _BinaryenExtAddPairwiseUVecI16x8ToI32x4 */, + ExtaddPairwiseU16x8ToU32x4 = 109 /* _BinaryenExtAddPairwiseUVecI16x8ToI32x4 */, /** i32x4.trunc_sat_f32x4_s */ - TruncSatF32x4ToI32x4 = 103 /* _BinaryenTruncSatSVecF32x4ToVecI32x4 */, + TruncSatF32x4ToI32x4 = 110 /* _BinaryenTruncSatSVecF32x4ToVecI32x4 */, /** i32x4.trunc_sat_f32x4_u */ - TruncSatF32x4ToU32x4 = 104 /* _BinaryenTruncSatUVecF32x4ToVecI32x4 */, + TruncSatF32x4ToU32x4 = 111 /* _BinaryenTruncSatUVecF32x4ToVecI32x4 */, /** f32x4.convert_i32x4_s */ - ConvertI32x4ToF32x4 = 105 /* _BinaryenConvertSVecI32x4ToVecF32x4 */, + ConvertI32x4ToF32x4 = 112 /* _BinaryenConvertSVecI32x4ToVecF32x4 */, /** f32x4.convert_i32x4_u */ - ConvertU32x4ToF32x4 = 106 /* _BinaryenConvertUVecI32x4ToVecF32x4 */, + ConvertU32x4ToF32x4 = 113 /* _BinaryenConvertUVecI32x4ToVecF32x4 */, /** i16x8.extend_low_i8x16_s */ - ExtendLowI8x16ToI16x8 = 107 /* _BinaryenExtendLowSVecI8x16ToVecI16x8 */, + ExtendLowI8x16ToI16x8 = 114 /* _BinaryenExtendLowSVecI8x16ToVecI16x8 */, /** i16x8.extend_high_i8x16_s */ - ExtendHighI8x16ToI16x8 = 108 /* _BinaryenExtendHighSVecI8x16ToVecI16x8 */, + ExtendHighI8x16ToI16x8 = 115 /* _BinaryenExtendHighSVecI8x16ToVecI16x8 */, /** i16x8.extend_low_i8x16_u */ - ExtendLowU8x16ToU16x8 = 109 /* _BinaryenExtendLowUVecI8x16ToVecI16x8 */, + ExtendLowU8x16ToU16x8 = 116 /* _BinaryenExtendLowUVecI8x16ToVecI16x8 */, /** i16x8.extend_high_i8x16_u */ - ExtendHighU8x16ToU16x8 = 110 /* _BinaryenExtendHighUVecI8x16ToVecI16x8 */, + ExtendHighU8x16ToU16x8 = 117 /* _BinaryenExtendHighUVecI8x16ToVecI16x8 */, /** i32x4.extend_low_i16x8_s */ - ExtendLowI16x8ToI32x4 = 111 /* _BinaryenExtendLowSVecI16x8ToVecI32x4 */, + ExtendLowI16x8ToI32x4 = 118 /* _BinaryenExtendLowSVecI16x8ToVecI32x4 */, /** i32x4.extend_high_i16x8_s */ - ExtendHighI16x8ToI32x4 = 112 /* _BinaryenExtendHighSVecI16x8ToVecI32x4 */, + ExtendHighI16x8ToI32x4 = 119 /* _BinaryenExtendHighSVecI16x8ToVecI32x4 */, /** i32x4.extend_low_i16x8_u */ - ExtendLowU16x8ToU32x4 = 113 /* _BinaryenExtendLowUVecI16x8ToVecI32x4 */, + ExtendLowU16x8ToU32x4 = 120 /* _BinaryenExtendLowUVecI16x8ToVecI32x4 */, /** i32x4.extend_high_i16x8_u */ - ExtendHighU16x8ToU32x4 = 114 /* _BinaryenExtendHighUVecI16x8ToVecI32x4 */, + ExtendHighU16x8ToU32x4 = 121 /* _BinaryenExtendHighUVecI16x8ToVecI32x4 */, /** i64x2.extend_low_i32x4_s */ - ExtendLowI32x4ToI64x2 = 115 /* _BinaryenExtendLowSVecI32x4ToVecI64x2 */, + ExtendLowI32x4ToI64x2 = 122 /* _BinaryenExtendLowSVecI32x4ToVecI64x2 */, /** i64x2.extend_high_i32x4_s */ - ExtendHighI32x4ToI64x2 = 116 /* _BinaryenExtendHighSVecI32x4ToVecI64x2 */, + ExtendHighI32x4ToI64x2 = 123 /* _BinaryenExtendHighSVecI32x4ToVecI64x2 */, /** i64x2.extend_low_i32x4_u */ - ExtendLowU32x4ToU64x2 = 117 /* _BinaryenExtendLowUVecI32x4ToVecI64x2 */, + ExtendLowU32x4ToU64x2 = 124 /* _BinaryenExtendLowUVecI32x4ToVecI64x2 */, /** i64x2.extend_high_i32x4_u */ - ExtendHighU32x4ToU64x2 = 118 /* _BinaryenExtendHighUVecI32x4ToVecI64x2 */, + ExtendHighU32x4ToU64x2 = 125 /* _BinaryenExtendHighUVecI32x4ToVecI64x2 */, /** f32x4.convert_i32x4_s */ - ConvertLowI32x4ToF64x2 = 119 /* _BinaryenConvertLowSVecI32x4ToVecF64x2 */, + ConvertLowI32x4ToF64x2 = 126 /* _BinaryenConvertLowSVecI32x4ToVecF64x2 */, /** f32x4.convert_i32x4_u */ - ConvertLowU32x4ToF64x2 = 120 /* _BinaryenConvertLowUVecI32x4ToVecF64x2 */, + ConvertLowU32x4ToF64x2 = 127 /* _BinaryenConvertLowUVecI32x4ToVecF64x2 */, /** i32x4.trunc_sat_f64x2_s_zero */ - TruncSatF64x2ToI32x4Zero = 121 /* _BinaryenTruncSatZeroSVecF64x2ToVecI32x4 */, + TruncSatF64x2ToI32x4Zero = 128 /* _BinaryenTruncSatZeroSVecF64x2ToVecI32x4 */, /** i32x4.trunc_sat_f64x2_u_zero */ - TruncSatF64x2ToU32x4Zero = 122 /* _BinaryenTruncSatZeroUVecF64x2ToVecI32x4 */, + TruncSatF64x2ToU32x4Zero = 129 /* _BinaryenTruncSatZeroUVecF64x2ToVecI32x4 */, /** f32x4.demote_f64x2_zero */ - DemoteZeroF64x2ToF32x4 = 123 /* _BinaryenDemoteZeroVecF64x2ToVecF32x4 */, + DemoteZeroF64x2ToF32x4 = 130 /* _BinaryenDemoteZeroVecF64x2ToVecF32x4 */, /** f64x2.promote_low_f32x4 */ - PromoteLowF32x4ToF64x2 = 124 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */, - - // see: https://github.com/WebAssembly/relaxed-simd - + PromoteLowF32x4ToF64x2 = 131 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */, /** i32x4.relaxed_trunc_f32x4_s */ - RelaxedTruncF32x4ToI32x4 = 125 /* TODO_BinaryenRelaxedTruncSVecF32x4ToVecI32x4 */, + RelaxedTruncF32x4ToI32x4 = 132 /* _BinaryenRelaxedTruncSVecF32x4ToVecI32x4 */, /** i32x4.relaxed_trunc_f32x4_u */ - RelaxedTruncF32x4ToU32x4 = 126 /* TODO_BinaryenRelaxedTruncUVecF32x4ToVecI32x4 */, + RelaxedTruncF32x4ToU32x4 = 133 /* _BinaryenRelaxedTruncUVecF32x4ToVecI32x4 */, /** i32x4.relaxed_trunc_f64x2_s_zero */ - RelaxedTruncF64x2ToI32x4Zero = 127 /* TODO_BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4 */, + RelaxedTruncF64x2ToI32x4Zero = 134 /* _BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4 */, /** i32x4.relaxed_trunc_f64x2_u_zero */ - RelaxedTruncF64x2ToU32x4Zero = 128 /* TODO_BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4 */, + RelaxedTruncF64x2ToU32x4Zero = 135 /* _BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4 */, _last = RelaxedTruncF64x2ToU32x4Zero, @@ -848,190 +845,187 @@ export const enum BinaryOp { /** i64x2.ge_s */ GeI64x2 = 111 /* _BinaryenGeSVecI64x2 */, /** f32x4.eq */ - EqF32x4 = 112 /* _BinaryenEqVecF32x4 */, + EqF32x4 = 118 /* _BinaryenEqVecF32x4 */, /** f32x4.ne */ - NeF32x4 = 113 /* _BinaryenNeVecF32x4 */, + NeF32x4 = 119 /* _BinaryenNeVecF32x4 */, /** f32x4.lt */ - LtF32x4 = 114 /* _BinaryenLtVecF32x4 */, + LtF32x4 = 120 /* _BinaryenLtVecF32x4 */, /** f32x4.gt */ - GtF32x4 = 115 /* _BinaryenGtVecF32x4 */, + GtF32x4 = 121 /* _BinaryenGtVecF32x4 */, /** f32x4.le */ - LeF32x4 = 116 /* _BinaryenLeVecF32x4 */, + LeF32x4 = 122 /* _BinaryenLeVecF32x4 */, /** f32x4.ge */ - GeF32x4 = 117 /* _BinaryenGeVecF32x4 */, + GeF32x4 = 123 /* _BinaryenGeVecF32x4 */, /** f64x2.eq */ - EqF64x2 = 118 /* _BinaryenEqVecF64x2 */, + EqF64x2 = 124 /* _BinaryenEqVecF64x2 */, /** f64x2.ne */ - NeF64x2 = 119 /* _BinaryenNeVecF64x2 */, + NeF64x2 = 125 /* _BinaryenNeVecF64x2 */, /** f64x2.lt */ - LtF64x2 = 120 /* _BinaryenLtVecF64x2 */, + LtF64x2 = 126 /* _BinaryenLtVecF64x2 */, /** f64x2.gt */ - GtF64x2 = 121 /* _BinaryenGtVecF64x2 */, + GtF64x2 = 127 /* _BinaryenGtVecF64x2 */, /** f64x2.le */ - LeF64x2 = 122 /* _BinaryenLeVecF64x2 */, + LeF64x2 = 128 /* _BinaryenLeVecF64x2 */, /** f64x2.ge */ - GeF64x2 = 123 /* _BinaryenGeVecF64x2 */, + GeF64x2 = 129 /* _BinaryenGeVecF64x2 */, /** v128.and */ - AndV128 = 124 /* _BinaryenAndVec128 */, + AndV128 = 130 /* _BinaryenAndVec128 */, /** v128.or */ - OrV128 = 125 /* _BinaryenOrVec128 */, + OrV128 = 131 /* _BinaryenOrVec128 */, /** v128.xor */ - XorV128 = 126 /* _BinaryenXorVec128 */, + XorV128 = 132 /* _BinaryenXorVec128 */, /** v128.andnot */ - AndnotV128 = 127 /* _BinaryenAndNotVec128 */, + AndnotV128 = 133 /* _BinaryenAndNotVec128 */, /** i8x16.add */ - AddI8x16 = 128 /* _BinaryenAddVecI8x16 */, + AddI8x16 = 134 /* _BinaryenAddVecI8x16 */, /** i8x16.add_sat_s */ - AddSatI8x16 = 129 /* _BinaryenAddSatSVecI8x16 */, + AddSatI8x16 = 135 /* _BinaryenAddSatSVecI8x16 */, /** i8x16.add_sat_u */ - AddSatU8x16 = 130 /* _BinaryenAddSatUVecI8x16 */, + AddSatU8x16 = 136 /* _BinaryenAddSatUVecI8x16 */, /** i8x16.sub */ - SubI8x16 = 131 /* _BinaryenSubVecI8x16 */, + SubI8x16 = 137 /* _BinaryenSubVecI8x16 */, /** i8x16.sub_sat_s */ - SubSatI8x16 = 132 /* _BinaryenSubSatSVecI8x16 */, + SubSatI8x16 = 138 /* _BinaryenSubSatSVecI8x16 */, /** i8x16.sub_sat_u */ - SubSatU8x16 = 133 /* _BinaryenSubSatUVecI8x16 */, + SubSatU8x16 = 139 /* _BinaryenSubSatUVecI8x16 */, /** i8x16.min_s */ - MinI8x16 = 134 /* _BinaryenMinSVecI8x16 */, + MinI8x16 = 140 /* _BinaryenMinSVecI8x16 */, /** i8x16.min_u */ - MinU8x16 = 135 /* _BinaryenMinUVecI8x16 */, + MinU8x16 = 141 /* _BinaryenMinUVecI8x16 */, /** i8x16.max_s */ - MaxI8x16 = 136 /* _BinaryenMaxSVecI8x16 */, + MaxI8x16 = 142 /* _BinaryenMaxSVecI8x16 */, /** i8x16.max_u */ - MaxU8x16 = 137 /* _BinaryenMaxUVecI8x16 */, + MaxU8x16 = 143 /* _BinaryenMaxUVecI8x16 */, /** i8x16.avgr_u */ - AvgrU8x16 = 138 /* _BinaryenAvgrUVecI8x16 */, + AvgrU8x16 = 144 /* _BinaryenAvgrUVecI8x16 */, /** i16x8.add */ - AddI16x8 = 139 /* _BinaryenAddVecI16x8 */, + AddI16x8 = 145 /* _BinaryenAddVecI16x8 */, /** i16x8.add_sat_s */ - AddSatI16x8 = 140 /* _BinaryenAddSatSVecI16x8 */, + AddSatI16x8 = 146 /* _BinaryenAddSatSVecI16x8 */, /** i16x8.add_sat_u */ - AddSatU16x8 = 141 /* _BinaryenAddSatUVecI16x8 */, + AddSatU16x8 = 147 /* _BinaryenAddSatUVecI16x8 */, /** i16x8.sub */ - SubI16x8 = 142 /* _BinaryenSubVecI16x8 */, + SubI16x8 = 148 /* _BinaryenSubVecI16x8 */, /** i16x8.sub_sat_s */ - SubSatI16x8 = 143 /* _BinaryenSubSatSVecI16x8 */, + SubSatI16x8 = 149 /* _BinaryenSubSatSVecI16x8 */, /** i16x8.sub_sat_u */ - SubSatU16x8 = 144 /* _BinaryenSubSatUVecI16x8 */, + SubSatU16x8 = 150 /* _BinaryenSubSatUVecI16x8 */, /** i16x8.mul */ - MulI16x8 = 145 /* _BinaryenMulVecI16x8 */, + MulI16x8 = 151 /* _BinaryenMulVecI16x8 */, /** i16x8.min_s */ - MinI16x8 = 146 /* _BinaryenMinSVecI16x8 */, + MinI16x8 = 152 /* _BinaryenMinSVecI16x8 */, /** i16x8.min_u */ - MinU16x8 = 147 /* _BinaryenMinUVecI16x8 */, + MinU16x8 = 153 /* _BinaryenMinUVecI16x8 */, /** i16x8.max_s */ - MaxI16x8 = 148 /* _BinaryenMaxSVecI16x8 */, + MaxI16x8 = 154 /* _BinaryenMaxSVecI16x8 */, /** i16x8.max_u */ - MaxU16x8 = 149 /* _BinaryenMaxUVecI16x8 */, + MaxU16x8 = 155 /* _BinaryenMaxUVecI16x8 */, /** i16x8.avgr_u */ - AvgrU16x8 = 150 /* _BinaryenAvgrUVecI16x8 */, + AvgrU16x8 = 156 /* _BinaryenAvgrUVecI16x8 */, /** i16x8.q15mulr_sat_s */ - Q15mulrSatI16x8 = 151 /* _BinaryenQ15MulrSatSVecI16x8 */, + Q15mulrSatI16x8 = 157 /* _BinaryenQ15MulrSatSVecI16x8 */, /** i16x8.extmul_low_i8x16_s */ - ExtmulLowI16x8 = 152 /* _BinaryenExtMulLowSVecI16x8 */, + ExtmulLowI16x8 = 158 /* _BinaryenExtMulLowSVecI16x8 */, /** i16x8.extmul_high_i8x16_s */ - ExtmulHighI16x8 = 153 /* _BinaryenExtMulHighSVecI16x8 */, + ExtmulHighI16x8 = 159 /* _BinaryenExtMulHighSVecI16x8 */, /** i16x8.extmul_low_i8x16_u */ - ExtmulLowU16x8 = 154 /* _BinaryenExtMulLowUVecI16x8 */, + ExtmulLowU16x8 = 160 /* _BinaryenExtMulLowUVecI16x8 */, /** i16x8.extmul_high_i8x16_u */ - ExtmulHighU16x8 = 155 /* _BinaryenExtMulHighUVecI16x8 */, + ExtmulHighU16x8 = 161 /* _BinaryenExtMulHighUVecI16x8 */, /** i32x4.add */ - AddI32x4 = 156 /* _BinaryenAddVecI32x4 */, + AddI32x4 = 162 /* _BinaryenAddVecI32x4 */, /** i32x4.sub */ - SubI32x4 = 157 /* _BinaryenSubVecI32x4 */, + SubI32x4 = 163 /* _BinaryenSubVecI32x4 */, /** i32x4.mul */ - MulI32x4 = 158 /* _BinaryenMulVecI32x4 */, + MulI32x4 = 164 /* _BinaryenMulVecI32x4 */, /** i32x4.min_s */ - MinI32x4 = 159 /* _BinaryenMinSVecI32x4 */, + MinI32x4 = 165 /* _BinaryenMinSVecI32x4 */, /** i32x4.min_u */ - MinU32x4 = 160 /* _BinaryenMinUVecI32x4 */, + MinU32x4 = 166 /* _BinaryenMinUVecI32x4 */, /** i32x4.max_s */ - MaxI32x4 = 161 /* _BinaryenMaxSVecI32x4 */, + MaxI32x4 = 167 /* _BinaryenMaxSVecI32x4 */, /** i32x4.max_u */ - MaxU32x4 = 162 /* _BinaryenMaxUVecI32x4 */, + MaxU32x4 = 168 /* _BinaryenMaxUVecI32x4 */, /** i32x4.dot_i16x8_s */ - DotI16x8 = 163 /* _BinaryenDotSVecI16x8ToVecI32x4 */, + DotI16x8 = 169 /* _BinaryenDotSVecI16x8ToVecI32x4 */, /** i32x4.extmul_low_i16x8_s */ - ExtmulLowI32x4 = 164 /* _BinaryenExtMulLowSVecI32x4 */, + ExtmulLowI32x4 = 170 /* _BinaryenExtMulLowSVecI32x4 */, /** i32x4.extmul_high_i16x8_s */ - ExtmulHighI32x4 = 165 /* _BinaryenExtMulHighSVecI32x4 */, + ExtmulHighI32x4 = 171 /* _BinaryenExtMulHighSVecI32x4 */, /** i32x4.extmul_low_i16x8_u */ - ExtmulLowU32x4 = 166 /* _BinaryenExtMulLowUVecI32x4 */, + ExtmulLowU32x4 = 172 /* _BinaryenExtMulLowUVecI32x4 */, /** i32x4.extmul_high_i16x8_u */ - ExtmulHighU32x4 = 167 /* _BinaryenExtMulHighUVecI32x4 */, + ExtmulHighU32x4 = 173 /* _BinaryenExtMulHighUVecI32x4 */, /** i64x2.add */ - AddI64x2 = 168 /* _BinaryenAddVecI64x2 */, + AddI64x2 = 174 /* _BinaryenAddVecI64x2 */, /** i64x2.sub */ - SubI64x2 = 169 /* _BinaryenSubVecI64x2 */, + SubI64x2 = 175 /* _BinaryenSubVecI64x2 */, /** i64x2.mul */ - MulI64x2 = 170 /* _BinaryenMulVecI64x2 */, + MulI64x2 = 176 /* _BinaryenMulVecI64x2 */, /** i64x2.extmul_low_i32x4_s */ - ExtmulLowI64x2 = 171 /* _BinaryenExtMulLowSVecI64x2 */, + ExtmulLowI64x2 = 177 /* _BinaryenExtMulLowSVecI64x2 */, /** i64x2.extmul_high_i32x4_s */ - ExtmulHighI64x2 = 172 /* _BinaryenExtMulHighSVecI64x2 */, + ExtmulHighI64x2 = 178 /* _BinaryenExtMulHighSVecI64x2 */, /** i64x2.extmul_low_i32x4_u */ - ExtmulLowU64x2 = 173 /* _BinaryenExtMulLowUVecI64x2 */, + ExtmulLowU64x2 = 179 /* _BinaryenExtMulLowUVecI64x2 */, /** i64x2.extmul_high_i32x4_u */ - ExtmulHighU64x2 = 174 /* _BinaryenExtMulHighUVecI64x2 */, + ExtmulHighU64x2 = 180 /* _BinaryenExtMulHighUVecI64x2 */, /** f32x4.add */ - AddF32x4 = 175 /* _BinaryenAddVecF32x4 */, + AddF32x4 = 189 /* _BinaryenAddVecF32x4 */, /** f32x4.sub */ - SubF32x4 = 176 /* _BinaryenSubVecF32x4 */, + SubF32x4 = 190 /* _BinaryenSubVecF32x4 */, /** f32x4.mul */ - MulF32x4 = 177 /* _BinaryenMulVecF32x4 */, + MulF32x4 = 191 /* _BinaryenMulVecF32x4 */, /** f32x4.div */ - DivF32x4 = 178 /* _BinaryenDivVecF32x4 */, + DivF32x4 = 192 /* _BinaryenDivVecF32x4 */, /** f32x4.min */ - MinF32x4 = 179 /* _BinaryenMinVecF32x4 */, + MinF32x4 = 193 /* _BinaryenMinVecF32x4 */, /** f32x4.max */ - MaxF32x4 = 180 /* _BinaryenMaxVecF32x4 */, + MaxF32x4 = 194 /* _BinaryenMaxVecF32x4 */, /** f32x4.pmin */ - PminF32x4 = 181 /* _BinaryenPMinVecF32x4 */, + PminF32x4 = 195 /* _BinaryenPMinVecF32x4 */, /** f32x4.pmax */ - PmaxF32x4 = 182 /* _BinaryenPMaxVecF32x4 */, + PmaxF32x4 = 196 /* _BinaryenPMaxVecF32x4 */, /** f64x2.add */ - AddF64x2 = 183 /* _BinaryenAddVecF64x2 */, + AddF64x2 = 197 /* _BinaryenAddVecF64x2 */, /** f64x2.sub */ - SubF64x2 = 184 /* _BinaryenSubVecF64x2 */, + SubF64x2 = 198 /* _BinaryenSubVecF64x2 */, /** f64x2.mul */ - MulF64x2 = 185 /* _BinaryenMulVecF64x2 */, + MulF64x2 = 199 /* _BinaryenMulVecF64x2 */, /** f64x2.div */ - DivF64x2 = 186 /* _BinaryenDivVecF64x2 */, + DivF64x2 = 200 /* _BinaryenDivVecF64x2 */, /** f64x2.min */ - MinF64x2 = 187 /* _BinaryenMinVecF64x2 */, + MinF64x2 = 201 /* _BinaryenMinVecF64x2 */, /** f64x2.max */ - MaxF64x2 = 188 /* _BinaryenMaxVecF64x2 */, + MaxF64x2 = 202 /* _BinaryenMaxVecF64x2 */, /** f64x2.pmin */ - PminF64x2 = 189 /* _BinaryenPMinVecF64x2 */, + PminF64x2 = 203 /* _BinaryenPMinVecF64x2 */, /** f64x2.pmax */ - PmaxF64x2 = 190 /* _BinaryenPMaxVecF64x2 */, + PmaxF64x2 = 204 /* _BinaryenPMaxVecF64x2 */, /** i8x16.narrow_i16x8_s */ - NarrowI16x8ToI8x16 = 191 /* _BinaryenNarrowSVecI16x8ToVecI8x16 */, + NarrowI16x8ToI8x16 = 205 /* _BinaryenNarrowSVecI16x8ToVecI8x16 */, /** i8x16.narrow_i16x8_u */ - NarrowU16x8ToU8x16 = 192 /* _BinaryenNarrowUVecI16x8ToVecI8x16 */, + NarrowU16x8ToU8x16 = 206 /* _BinaryenNarrowUVecI16x8ToVecI8x16 */, /** i16x8.narrow_i32x4_s */ - NarrowI32x4ToI16x8 = 193 /* _BinaryenNarrowSVecI32x4ToVecI16x8 */, + NarrowI32x4ToI16x8 = 207 /* _BinaryenNarrowSVecI32x4ToVecI16x8 */, /** i16x8.narrow_i32x4_u */ - NarrowU32x4ToU16x8 = 194 /* _BinaryenNarrowUVecI32x4ToVecI16x8 */, + NarrowU32x4ToU16x8 = 208 /* _BinaryenNarrowUVecI32x4ToVecI16x8 */, /** i8x16.swizzle */ - SwizzleI8x16 = 195 /* _BinaryenSwizzleVecI8x16 */, - - // see: https://github.com/WebAssembly/relaxed-simd - + SwizzleI8x16 = 209 /* _BinaryenSwizzleVecI8x16 */, /** i8x16.relaxed_swizzle */ - RelaxedSwizzleI8x16 = 196 /* TODO_BinaryenRelaxedSwizzleVecI8x16 */, + RelaxedSwizzleI8x16 = 210 /* _BinaryenRelaxedSwizzleVecI8x16 */, /** f32x4.relaxed_min */ - RelaxedMinF32x4 = 197 /* TODO_BinaryenRelaxedMinVecF32x4 */, + RelaxedMinF32x4 = 211 /* _BinaryenRelaxedMinVecF32x4 */, /** f32x4.relaxed_max */ - RelaxedMaxF32x4 = 198 /* TODO_BinaryenRelaxedMaxVecF32x4 */, + RelaxedMaxF32x4 = 212 /* _BinaryenRelaxedMaxVecF32x4 */, /** f64x2.relaxed_min */ - RelaxedMinF64x2 = 199 /* TODO_BinaryenRelaxedMinVecF64x2 */, + RelaxedMinF64x2 = 213 /* _BinaryenRelaxedMinVecF64x2 */, /** f64x2.relaxed_max */ - RelaxedMaxF64x2 = 200 /* TODO_BinaryenRelaxedMaxVecF64x2 */, + RelaxedMaxF64x2 = 214 /* _BinaryenRelaxedMaxVecF64x2 */, /** i16x8.relaxed_q15mulr_s */ - RelaxedQ15MulrI16x8 = 201 /* TODO_BinaryenRelaxedQ15MulrSVecI16x8 */, + RelaxedQ15MulrI16x8 = 215 /* _BinaryenRelaxedQ15MulrSVecI16x8 */, /** i16x8.relaxed_dot_i8x16_i7x16_s */ - RelaxedDotI8x16I7x16ToI16x8 = 202 /* TODO_BinaryenDotI8x16I7x16SToVecI16x8 */, + RelaxedDotI8x16I7x16ToI16x8 = 216 /* _BinaryenDotI8x16I7x16SToVecI16x8 */, _last = RelaxedDotI8x16I7x16ToI16x8, @@ -1120,9 +1114,9 @@ export const enum SIMDExtractOp { /** i32x4.extract_lane_u */ ExtractLaneI64x2 = 5 /* _BinaryenExtractLaneVecI64x2 */, /** i64x2.extract_lane_s */ - ExtractLaneF32x4 = 6 /* _BinaryenExtractLaneVecF32x4 */, + ExtractLaneF32x4 = 7 /* _BinaryenExtractLaneVecF32x4 */, /** i64x2.extract_lane_u */ - ExtractLaneF64x2 = 7 /* _BinaryenExtractLaneVecF64x2 */, + ExtractLaneF64x2 = 8 /* _BinaryenExtractLaneVecF64x2 */, } /** Binaryen SIMD replace operation constants. */ @@ -1136,9 +1130,9 @@ export const enum SIMDReplaceOp { /** i64x2.replace_lane */ ReplaceLaneI64x2 = 3 /* _BinaryenReplaceLaneVecI64x2 */, /** f32x4.replace_lane */ - ReplaceLaneF32x4 = 4 /* _BinaryenReplaceLaneVecF32x4 */, + ReplaceLaneF32x4 = 5 /* _BinaryenReplaceLaneVecF32x4 */, /** f64x2.replace_lane */ - ReplaceLaneF64x2 = 5 /* _BinaryenReplaceLaneVecF64x2 */ + ReplaceLaneF64x2 = 6 /* _BinaryenReplaceLaneVecF64x2 */ } /** Binaryen SIMD shift operation constants. */ @@ -1222,36 +1216,40 @@ export const enum SIMDTernaryOp { /** v128.bitselect */ Bitselect = 0 /* _BinaryenBitselectVec128 */, - // see: https://github.com/WebAssembly/relaxed-simd + // Relaxed SIMD for F16 + /** f16x8.relaxed_madd */ + RelaxedMaddVecF16x8 = 1 /* TODO_BinaryenRelaxedMaddVecF16x8 */, + /** f16x8.relaxed_nmadd */ + RelaxedNmaddVecF16x8 = 2 /* TODO_BinaryenRelaxedNmaddVecF16x8 */, /** f32x4.relaxed_madd */ - RelaxedMaddF32x4 = 1 /* TODO_BinaryenRelaxedFmaVecF32x4 */, + RelaxedMaddF32x4 = 3 /* _BinaryenRelaxedMaddVecF32x4 */, /** f32x4.relaxed_nmadd */ - RelaxedNmaddF32x4 = 2 /* TODO_BinaryenRelaxedFmsVecF32x4 */, + RelaxedNmaddF32x4 = 4 /* _BinaryenRelaxedNmaddVecF32x4 */, /** f64x2.relaxed_madd */ - RelaxedMaddF64x2 = 3 /* TODO_BinaryenRelaxedFmaVecF64x2 */, + RelaxedMaddF64x2 = 5 /* _BinaryenRelaxedMaddVecF64x2 */, /** f64x2.relaxed_nmadd */ - RelaxedNmaddF64x2 = 4 /* TODO_BinaryenRelaxedFmsVecF64x2 */, + RelaxedNmaddF64x2 = 6 /* _BinaryenRelaxedNmaddVecF64x2 */, /** i8x16.relaxed_laneselect */ - RelaxedLaneselectI8x16 = 5 /* TODO_BinaryenLaneselectI8x16 */, + RelaxedLaneselectI8x16 = 7 /* _BinaryenLaneselectI8x16 */, /** i16x8.relaxed_laneselect */ - RelaxedLaneselectI16x8 = 6 /* TODO_BinaryenLaneselectI16x8 */, + RelaxedLaneselectI16x8 = 8 /* _BinaryenLaneselectI16x8 */, /** i32x4.relaxed_laneselect */ - RelaxedLaneselectI32x4 = 7 /* TODO_BinaryenLaneselectI32x4 */, + RelaxedLaneselectI32x4 = 9 /* _BinaryenLaneselectI32x4 */, /** i64x2.relaxed_laneselect */ - RelaxedLaneselectI64x2 = 8 /* TODO_BinaryenLaneselectI64x2 */, + RelaxedLaneselectI64x2 = 10 /* _BinaryenLaneselectI64x2 */, /** i32x4.relaxed_dot_i8x16_i7x16_add_s */ - RelaxedDotI8x16I7x16AddToI32x4 = 9 /* TODO_BinaryenDotI8x16I7x16AddSToVecI32x4 */, + RelaxedDotI8x16I7x16AddToI32x4 = 11 /* _BinaryenDotI8x16I7x16AddSToVecI32x4 */, } /** Binaryen RefAs operation constants. */ export const enum RefAsOp { /** ref.as_non_null */ NonNull = 0 /* _BinaryenRefAsNonNull */, - /** extern.internalize */ - ExternInternalize = 1 /* _BinaryenRefAsExternInternalize */, - /** extern.externalize */ - ExternExternalize = 2 /* _BinaryenRefAsExternExternalize */ + /** any.convert_extern */ + ExternInternalize = 1 /* _BinaryenRefAsAnyConvertExtern */, + /** extern.convert_any */ + ExternExternalize = 2 /* _BinaryenRefAsExternConvertAny */ } /** Binaryen BrOn operation constants. */ @@ -1268,58 +1266,28 @@ export const enum BrOnOp { /** Binaryen StringNew operation constants. */ export const enum StringNewOp { - /** string.new_wtf8 utf8 */ - UTF8 = 0 /* _BinaryenStringNewUTF8 */, - /** string.new_wtf8 wtf8 */ - WTF8 = 1 /* _BinaryenStringNewWTF8 */, - /** string.new_wtf8 replace */ - LossyUTF8 = 2 /* _BinaryenStringNewLossyUTF8 */, - /** string.new_wtf16 */ - WTF16 = 3 /* _BinaryenStringNewWTF16 */, - /** string.new_wtf8_array utf8 */ - UTF8Array = 4 /* _BinaryenStringNewUTF8Array */, - /** string.new_wtf8_array wtf8 */ - WTF8Array = 5 /* _BinaryenStringNewWTF8Array */, /** string.new_wtf8_array replace */ - LossyUTF8Array = 6 /* _BinaryenStringNewLossyUTF8Array */, + LossyUTF8Array = 0 /* _BinaryenStringNewLossyUTF8Array */, /** string.new_wtf16_array */ - WTF16Array = 7 /* _BinaryenStringNewWTF16Array */, + WTF16Array = 1 /* _BinaryenStringNewWTF16Array */, /** string.from_code_point */ - FromCodePoint = 8 /* _BinaryenStringNewFromCodePoint */ + FromCodePoint = 2 /* _BinaryenStringNewFromCodePoint */ } /** Binaryen StringMeasure operation constants. */ export const enum StringMeasureOp { /** string.measure_wtf8 utf8 */ UTF8 = 0 /* _BinaryenStringMeasureUTF8 */, - /** string.measure_wtf8 wtf8 */ - WTF8 = 1 /* _BinaryenStringMeasureWTF8 */, /** string.measure_wtf16 */ - WTF16 = 2 /* _BinaryenStringMeasureWTF16 */, - /** string.is_usv_sequence */ - IsUSV = 3 /* _BinaryenStringMeasureIsUSV */, - /** stringview_wtf16.length */ - WTF16View = 4 /* _BinaryenStringMeasureWTF16View */ + WTF16 = 1 /* _BinaryenStringMeasureWTF16 */, } /** Binaryen StringEncode operation constants. */ export const enum StringEncodeOp { - /** string.encode_wtf8 utf8 */ - UTF8 = 0 /* _BinaryenStringEncodeUTF8 */, - /** string.encode_lossy_utf8 utf8 */ - LossyUTF8 = 1 /* _BinaryenStringEncodeLossyUTF8 */, - /** string.encode_wtf8 wtf8 */ - WTF8 = 2 /* _BinaryenStringEncodeWTF8 */, - /** string.encode_wtf16 */ - WTF16 = 3 /* _BinaryenStringEncodeWTF16 */, - /** string.encode_wtf8_array utf8 */ - UTF8Array = 4 /* _BinaryenStringEncodeUTF8Array */, /** string.encode_lossy_utf8_array utf8 */ - LossyUTF8Array = 5 /* _BinaryenStringEncodeLossyUTF8Array */, - /** string.encode_wtf8_array wtf8 */ - WTF8Array = 6 /* _BinaryenStringEncodeWTF8Array */, + LossyUTF8Array = 0 /* _BinaryenStringEncodeLossyUTF8Array */, /** string.encode_wtf16_array */ - WTF16Array = 7 /* _BinaryenStringEncodeWTF16Array */ + WTF16Array = 1 /* _BinaryenStringEncodeWTF16Array */ } /** Binaryen StringEq operation constants. */ @@ -1330,37 +1298,10 @@ export const enum StringEqOp { Compare = 1 /* _BinaryenStringEqCompare */ } -/** Binaryen StringAs operation constants. */ -export const enum StringAsOp { - /** string.as_wtf8 */ - WTF8 = 0 /* _BinaryenStringAsWTF8 */, - /** string.as_wtf16 */ - WTF16 = 1 /* _BinaryenStringAsWTF16 */, - /** string.as_iter */ - Iter = 2 /* _BinaryenStringAsIter */ -} - -/** Binaryen StringIterMove operation constants. */ -export const enum StringIterMoveOp { - /** stringview_iter.advance */ - Advance = 0 /* _BinaryenStringIterMoveAdvance */, - /** stringview_iter.rewind */ - Rewind = 1 /* _BinaryenStringIterMoveRewind */ -} - -/** Binaryen StringSlice operation constants. */ -export const enum StringSliceWTFOp { - /** stringview_wtf8.slice */ - WTF8 = 0 /* _BinaryenStringSliceWTF8 */, - /** stringview_wtf16.slice */ - WTF16 = 1 /* _BinaryenStringSliceWTF16 */ -} - /** Binaryen expression runner flags. */ export const enum ExpressionRunnerFlags { Default = 0 /* _ExpressionRunnerFlagsDefault */, - PreserveSideeffects = 1 /* _ExpressionRunnerFlagsPreserveSideeffects */, - TraverseCalls = 2 /* _ExpressionRunnerFlagsTraverseCalls */ + PreserveSideeffects = 1 /* _ExpressionRunnerFlagsPreserveSideeffects */ } export class MemorySegment { @@ -1846,10 +1787,9 @@ export class Module { select( ifTrue: ExpressionRef, ifFalse: ExpressionRef, - condition: ExpressionRef, - type: TypeRef + condition: ExpressionRef ): ExpressionRef { - return binaryen._BinaryenSelect(this.ref, condition, ifTrue, ifFalse, type); + return binaryen._BinaryenSelect(this.ref, condition, ifTrue, ifFalse); } switch( @@ -2124,7 +2064,7 @@ export class Module { type: TypeRef ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenRefFunc(this.ref, cStr, type); + return binaryen._BinaryenRefFunc(this.ref, cStr, binaryen._BinaryenTypeGetHeapType(type)); } i31_new( @@ -2406,36 +2346,43 @@ export class Module { name: string = CommonNames.DefaultMemory, shared: bool = false ): void { - let cStr1 = this.allocStringCached(exportName); - let cStr2 = this.allocStringCached(name); + let cExportName = this.allocStringCached(exportName); + let cName = this.allocStringCached(name); let k = segments.length; let segs = new Array(k); - let psvs = new Uint8Array(k); - let offs = new Array(k); - let sizs = new Array(k); + let isPassive = new Uint8Array(k); + let offsets = new Array(k); + let sizes = new Array(k); for (let i = 0; i < k; ++i) { let segment = unchecked(segments[i]); let buffer = segment.buffer; let offset = segment.offset; unchecked(segs[i] = allocU8Array(buffer)); - unchecked(psvs[i] = 0); // no passive segments currently - unchecked(offs[i] = target == Target.Wasm64 + unchecked(isPassive[i] = 0); // no passive segments currently + unchecked(offsets[i] = target == Target.Wasm64 ? this.i64(i64_low(offset), i64_high(offset)) : this.i32(i64_low(offset)) ); - unchecked(sizs[i] = buffer.length); + unchecked(sizes[i] = buffer.length); } - let cArr1 = allocPtrArray(segs); - let cArr2 = allocU8Array(psvs); - let cArr3 = allocPtrArray(offs); - let cArr4 = allocU32Array(sizs); + let cSegs = allocPtrArray(segs); + let cIsPassive = allocU8Array(isPassive); + let cOffsets = allocPtrArray(offsets); + let cSizes = allocU32Array(sizes); binaryen._BinaryenSetMemory( - this.ref, initial, maximum, cStr1, cArr1, cArr2, cArr3, cArr4, k, shared, false, cStr2 + this.ref, + initial, maximum, + cExportName, + 0, cSegs, cIsPassive, + cOffsets, cSizes, + k, + shared, false, + cName ); - binaryen._free(cArr4); - binaryen._free(cArr3); - binaryen._free(cArr2); - binaryen._free(cArr1); + binaryen._free(cSizes); + binaryen._free(cOffsets); + binaryen._free(cIsPassive); + binaryen._free(cSegs); for (let i = k - 1; i >= 0; --i) { binaryen._free(unchecked(segs[i])); } @@ -2524,6 +2471,14 @@ export class Module { binaryen._BinaryenSetDebugInfo(on); } + getClosedWorld(): bool { + return binaryen._BinaryenGetClosedWorld(); + } + + setClosedWorld(on: bool): void { + binaryen._BinaryenSetClosedWorld(on); + } + getLowMemoryUnused(): bool { return binaryen._BinaryenGetLowMemoryUnused(); } @@ -2548,6 +2503,22 @@ export class Module { binaryen._BinaryenSetFastMath(on); } + getGenerateStackIR(): bool { + return binaryen._BinaryenGetGenerateStackIR(); + } + + setGenerateStackIR(on: bool): void { + binaryen._BinaryenSetGenerateStackIR(on); + } + + getOptimizeStackIR(): bool { + return binaryen._BinaryenGetOptimizeStackIR(); + } + + setOptimizeStackIR(on: bool): void { + binaryen._BinaryenSetOptimizeStackIR(on); + } + getPassArgument(key: string): string | null { let cStr = this.allocStringCached(key); let ptr = binaryen._BinaryenGetPassArgument(cStr); @@ -2603,6 +2574,7 @@ export class Module { } setFeatures(featureFlags: FeatureFlags): void { + if (featureFlags & FeatureFlags.BulkMemory) featureFlags |= FeatureFlags.BulkMemoryOpt; binaryen._BinaryenModuleSetFeatures(this.ref, featureFlags); } @@ -2638,6 +2610,11 @@ export class Module { this.setFastMath(true); this.clearPassArguments(); + // OptimizationOptions#parse in src/tools/optimization-options.h + const stackIR = optimizeLevel >= 2 || shrinkLevel >= 1; + this.setGenerateStackIR(stackIR); + this.setOptimizeStackIR(stackIR); + // Tweak inlining limits based on optimization levels if (optimizeLevel >= 2 && shrinkLevel == 0) { this.setAlwaysInlineMaxSize(12); @@ -2874,7 +2851,7 @@ export class Module { toText(watFormat: bool = true): string { let textPtr = watFormat - ? binaryen._BinaryenModuleAllocateAndWriteStackIR(this.ref, true) + ? binaryen._BinaryenModuleAllocateAndWriteStackIR(this.ref) : binaryen._BinaryenModuleAllocateAndWriteText(this.ref); let text = readString(textPtr); if (textPtr) binaryen._free(textPtr); @@ -3833,15 +3810,6 @@ function tryEnsureBasicType(type: Type): TypeRef { case TypeKind.String: { return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.String, type.is(TypeFlags.Nullable)); } - case TypeKind.StringviewWTF8: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF8, type.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewWTF16: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF16, type.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewIter: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewIter, type.is(TypeFlags.Nullable)); - } case TypeKind.Void: assert(false); // invalid here } return 0; // non-basic diff --git a/src/passes/pass.ts b/src/passes/pass.ts index c2daf98eb5..b61e17f1e8 100644 --- a/src/passes/pass.ts +++ b/src/passes/pass.ts @@ -208,32 +208,22 @@ import { _BinaryenArrayCopyGetSrcRef, _BinaryenArrayCopyGetSrcIndex, _BinaryenArrayCopyGetLength, - _BinaryenStringNewGetPtr, - _BinaryenStringNewGetLength, + _BinaryenStringNewGetRef, _BinaryenStringNewGetStart, _BinaryenStringNewGetEnd, _BinaryenStringMeasureGetRef, - _BinaryenStringEncodeGetPtr, - _BinaryenStringEncodeGetRef, + _BinaryenStringEncodeGetArray, + _BinaryenStringEncodeGetStr, _BinaryenStringEncodeGetStart, _BinaryenStringConcatGetLeft, _BinaryenStringConcatGetRight, _BinaryenStringEqGetLeft, _BinaryenStringEqGetRight, - _BinaryenStringAsGetRef, - _BinaryenStringWTF8AdvanceGetRef, - _BinaryenStringWTF8AdvanceGetPos, - _BinaryenStringWTF8AdvanceGetBytes, _BinaryenStringWTF16GetGetRef, _BinaryenStringWTF16GetGetPos, - _BinaryenStringIterNextGetRef, - _BinaryenStringIterMoveGetRef, - _BinaryenStringIterMoveGetNum, _BinaryenStringSliceWTFGetRef, _BinaryenStringSliceWTFGetStart, _BinaryenStringSliceWTFGetEnd, - _BinaryenStringSliceIterGetRef, - _BinaryenStringSliceIterGetNum, _BinaryenCallRefSetOperandAt, _BinaryenCallRefSetTarget, _BinaryenRefTestSetRef, @@ -257,32 +247,22 @@ import { _BinaryenArrayCopySetSrcIndex, _BinaryenArrayCopySetLength, _BinaryenRefAsSetValue, - _BinaryenStringNewSetPtr, - _BinaryenStringNewSetLength, + _BinaryenStringNewSetRef, _BinaryenStringNewSetStart, _BinaryenStringNewSetEnd, _BinaryenStringMeasureSetRef, - _BinaryenStringEncodeSetRef, - _BinaryenStringEncodeSetPtr, + _BinaryenStringEncodeSetStr, + _BinaryenStringEncodeSetArray, _BinaryenStringEncodeSetStart, _BinaryenStringConcatSetLeft, _BinaryenStringConcatSetRight, _BinaryenStringEqSetLeft, _BinaryenStringEqSetRight, - _BinaryenStringAsSetRef, - _BinaryenStringWTF8AdvanceSetRef, - _BinaryenStringWTF8AdvanceSetPos, - _BinaryenStringWTF8AdvanceSetBytes, _BinaryenStringWTF16GetSetRef, _BinaryenStringWTF16GetSetPos, - _BinaryenStringIterNextSetRef, - _BinaryenStringIterMoveSetRef, - _BinaryenStringIterMoveSetNum, _BinaryenStringSliceWTFSetRef, _BinaryenStringSliceWTFSetStart, _BinaryenStringSliceWTFSetEnd, - _BinaryenStringSliceIterSetRef, - _BinaryenStringSliceIterSetNum, _BinaryenArrayNewFixedSetValueAt } from "../glue/binaryen"; @@ -1183,9 +1163,7 @@ export abstract class Visitor { } case ExpressionId.StringNew: { this.stack.push(expr); - this.visit(_BinaryenStringNewGetPtr(expr)); - let length = _BinaryenStringNewGetLength(expr); // LM only - if (length) this.visit(length); + this.visit(_BinaryenStringNewGetRef(expr)); let start = _BinaryenStringNewGetStart(expr); // GC only if (start) this.visit(start); let end = _BinaryenStringNewGetEnd(expr); // GC only @@ -1209,8 +1187,8 @@ export abstract class Visitor { } case ExpressionId.StringEncode: { this.stack.push(expr); - this.visit(_BinaryenStringEncodeGetRef(expr)); - this.visit(_BinaryenStringEncodeGetPtr(expr)); + this.visit(_BinaryenStringEncodeGetStr(expr)); + this.visit(_BinaryenStringEncodeGetArray(expr)); let start = _BinaryenStringEncodeGetStart(expr); // GC only if (start) this.visit(start); assert(this.stack.pop() == expr); @@ -1233,22 +1211,6 @@ export abstract class Visitor { this.visitStringEq(expr); break; } - case ExpressionId.StringAs: { - this.stack.push(expr); - this.visit(_BinaryenStringAsGetRef(expr)); - assert(this.stack.pop() == expr); - this.visitStringAs(expr); - break; - } - case ExpressionId.StringWTF8Advance: { - this.stack.push(expr); - this.visit(_BinaryenStringWTF8AdvanceGetRef(expr)); - this.visit(_BinaryenStringWTF8AdvanceGetPos(expr)); - this.visit(_BinaryenStringWTF8AdvanceGetBytes(expr)); - assert(this.stack.pop() == expr); - this.visitStringWTF8Advance(expr); - break; - } case ExpressionId.StringWTF16Get: { this.stack.push(expr); this.visit(_BinaryenStringWTF16GetGetRef(expr)); @@ -1257,21 +1219,6 @@ export abstract class Visitor { this.visitStringWTF16Get(expr); break; } - case ExpressionId.StringIterNext: { - this.stack.push(expr); - this.visit(_BinaryenStringIterNextGetRef(expr)); - assert(this.stack.pop() == expr); - this.visitStringIterNext(expr); - break; - } - case ExpressionId.StringIterMove: { - this.stack.push(expr); - this.visit(_BinaryenStringIterMoveGetRef(expr)); - this.visit(_BinaryenStringIterMoveGetNum(expr)); - assert(this.stack.pop() == expr); - this.visitStringIterMove(expr); - break; - } case ExpressionId.StringSliceWTF: { this.stack.push(expr); this.visit(_BinaryenStringSliceWTFGetRef(expr)); @@ -1281,14 +1228,6 @@ export abstract class Visitor { this.visitStringSliceWTF(expr); break; } - case ExpressionId.StringSliceIter: { - this.stack.push(expr); - this.visit(_BinaryenStringSliceIterGetRef(expr)); - this.visit(_BinaryenStringSliceIterGetNum(expr)); - assert(this.stack.pop() == expr); - this.visitStringSliceIter(expr); - break; - } default: throw new Error("unexpected expression kind"); } this._currentExpression = previousExpression; @@ -2072,16 +2011,11 @@ export function replaceChild( break; } case ExpressionId.StringNew: { - let ptr = _BinaryenStringNewGetPtr(parent); + let ptr = _BinaryenStringNewGetRef(parent); if (ptr == search) { - _BinaryenStringNewSetPtr(parent, replacement); + _BinaryenStringNewSetRef(parent, replacement); return ptr; } - let length = _BinaryenStringNewGetLength(parent); - if (length == search) { - _BinaryenStringNewSetLength(parent, replacement); - return length; - } let start = _BinaryenStringNewGetStart(parent); if (start == search) { _BinaryenStringNewSetStart(parent, replacement); @@ -2106,14 +2040,14 @@ export function replaceChild( break; } case ExpressionId.StringEncode: { - let ref = _BinaryenStringEncodeGetRef(parent); + let ref = _BinaryenStringEncodeGetStr(parent); if (ref == search) { - _BinaryenStringEncodeSetRef(parent, replacement); + _BinaryenStringEncodeSetStr(parent, replacement); return ref; } - let ptr = _BinaryenStringEncodeGetPtr(parent); + let ptr = _BinaryenStringEncodeGetArray(parent); if (ptr == search) { - _BinaryenStringEncodeSetPtr(parent, replacement); + _BinaryenStringEncodeSetArray(parent, replacement); return ptr; } let start = _BinaryenStringEncodeGetStart(parent); @@ -2149,32 +2083,6 @@ export function replaceChild( } break; } - case ExpressionId.StringAs: { - let ref = _BinaryenStringAsGetRef(parent); - if (ref == search) { - _BinaryenStringAsSetRef(parent, replacement); - return ref; - } - break; - } - case ExpressionId.StringWTF8Advance: { - let ref = _BinaryenStringWTF8AdvanceGetRef(parent); - if (ref == search) { - _BinaryenStringWTF8AdvanceSetRef(parent, replacement); - return ref; - } - let pos = _BinaryenStringWTF8AdvanceGetPos(parent); - if (pos == search) { - _BinaryenStringWTF8AdvanceSetPos(parent, replacement); - return pos; - } - let bytes = _BinaryenStringWTF8AdvanceGetBytes(parent); - if (bytes == search) { - _BinaryenStringWTF8AdvanceSetBytes(parent, replacement); - return bytes; - } - break; - } case ExpressionId.StringWTF16Get: { let ref = _BinaryenStringWTF16GetGetRef(parent); if (ref == search) { @@ -2188,27 +2096,6 @@ export function replaceChild( } break; } - case ExpressionId.StringIterNext: { - let ref = _BinaryenStringIterNextGetRef(parent); - if (ref == search) { - _BinaryenStringIterNextSetRef(parent, replacement); - return ref; - } - break; - } - case ExpressionId.StringIterMove: { - let ref = _BinaryenStringIterMoveGetRef(parent); - if (ref == search) { - _BinaryenStringIterMoveSetRef(parent, replacement); - return ref; - } - let num = _BinaryenStringIterMoveGetNum(parent); - if (num == search) { - _BinaryenStringIterMoveSetNum(parent, replacement); - return num; - } - break; - } case ExpressionId.StringSliceWTF: { let ref = _BinaryenStringSliceWTFGetRef(parent); if (ref == search) { @@ -2227,19 +2114,6 @@ export function replaceChild( } break; } - case ExpressionId.StringSliceIter: { - let ref = _BinaryenStringSliceIterGetRef(parent); - if (ref == search) { - _BinaryenStringSliceIterSetRef(parent, replacement); - return ref; - } - let num = _BinaryenStringSliceIterGetNum(parent); - if (num == search) { - _BinaryenStringSliceIterSetNum(parent, replacement); - return num; - } - break; - } default: throw new Error("unexpected expression id"); } return 0; diff --git a/src/types.ts b/src/types.ts index 695b415b26..6a07f6fbc8 100644 --- a/src/types.ts +++ b/src/types.ts @@ -702,15 +702,6 @@ export class Type { case TypeKind.String: { return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.String, this.is(TypeFlags.Nullable)); } - case TypeKind.StringviewWTF8: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF8, this.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewWTF16: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF16, this.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewIter: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewIter, this.is(TypeFlags.Nullable)); - } case TypeKind.Void: return TypeRef.None; } // TODO: not used yet diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index 4fc5bbd20c..8a503aa3f3 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -330,12 +330,10 @@ i32.const 0 call $~lib/string/String.__eq i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $NonNullable/assertNonNull<~lib/string/String> global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index 753e1c59a8..67f4405bc2 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -174,7 +174,6 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -183,7 +182,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34256 @@ -453,7 +451,6 @@ i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -468,7 +465,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load local.tee $0 @@ -535,7 +531,6 @@ i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -550,7 +545,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load local.tee $0 @@ -623,7 +617,6 @@ local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 @@ -662,7 +655,6 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 local.get $0 i32.eqz if @@ -673,13 +665,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 i32.store offset=4 local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 @@ -723,7 +713,6 @@ local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 @@ -785,7 +774,6 @@ local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 @@ -837,7 +825,6 @@ local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index 1af7a549b8..d4610178d1 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -1032,7 +1032,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1064,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1641,7 +1639,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1683,7 +1680,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -1772,7 +1768,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1820,7 +1815,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index 67cb217984..a06cd5b88d 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -1152,7 +1152,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1185,7 +1184,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2296,12 +2294,10 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2329,12 +2325,10 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) global.get $~lib/memory/__stack_pointer @@ -2414,14 +2408,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 local.get $0 call $~lib/typedarray/Int16Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) local.get $1 call $~lib/typedarray/Float32Array#get:length @@ -2447,7 +2439,6 @@ local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 @@ -2546,7 +2537,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $2 i32.store global.get $~lib/memory/__stack_pointer @@ -2768,12 +2758,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -2852,12 +2840,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2903,12 +2889,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -3277,7 +3261,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3329,7 +3312,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=4 local.get $5 @@ -3385,12 +3367,10 @@ local.get $0 local.get $1 call $bindings/esm/stringFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3447,7 +3427,6 @@ local.get $0 local.get $1 call $bindings/esm/stringFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -3456,7 +3435,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 35072 @@ -3491,12 +3469,10 @@ local.get $0 local.get $1 call $bindings/esm/typedarrayFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3534,7 +3510,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3544,11 +3519,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $4 local.get $1 i32.const 20 i32.sub @@ -3591,7 +3564,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=4 loop $for-loop|0 @@ -3681,12 +3653,10 @@ end br $folding-inner1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 35072 @@ -3760,14 +3730,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $3 local.get $0 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 call $~lib/array/Array#get:length local.get $4 @@ -4006,14 +3974,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $3 local.get $0 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 call $~lib/array/Array#get:length local.get $4 @@ -4276,7 +4242,6 @@ local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 @@ -4305,7 +4270,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $2 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index 7eeb250556..d26dcae561 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1085,7 +1085,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1118,7 +1117,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1858,7 +1856,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1935,7 +1932,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index baa08f6833..8bcf862a3c 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -1152,7 +1152,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1185,7 +1184,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2296,12 +2294,10 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2329,12 +2325,10 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) global.get $~lib/memory/__stack_pointer @@ -2414,14 +2408,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 local.get $0 call $~lib/typedarray/Int16Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) local.get $1 call $~lib/typedarray/Float32Array#get:length @@ -2447,7 +2439,6 @@ local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 @@ -2546,7 +2537,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $2 i32.store global.get $~lib/memory/__stack_pointer @@ -2768,12 +2758,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -2852,12 +2840,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2903,12 +2889,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -3277,7 +3261,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3329,7 +3312,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=4 local.get $5 @@ -3385,12 +3367,10 @@ local.get $0 local.get $1 call $bindings/esm/stringFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3447,7 +3427,6 @@ local.get $0 local.get $1 call $bindings/esm/stringFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -3456,7 +3435,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 35072 @@ -3491,12 +3469,10 @@ local.get $0 local.get $1 call $bindings/esm/typedarrayFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3534,7 +3510,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3544,11 +3519,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $4 local.get $1 i32.const 20 i32.sub @@ -3591,7 +3564,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=4 loop $for-loop|0 @@ -3681,12 +3653,10 @@ end br $folding-inner1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 35072 @@ -3760,14 +3730,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $3 local.get $0 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 call $~lib/array/Array#get:length local.get $4 @@ -4006,14 +3974,12 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $3 local.get $0 call $~lib/array/Array#get:length local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 call $~lib/array/Array#get:length local.get $4 @@ -4276,7 +4242,6 @@ local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 @@ -4305,7 +4270,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $2 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/call-inferred.release.wat b/tests/compiler/call-inferred.release.wat index e39cd59cc2..559793b4c5 100644 --- a/tests/compiler/call-inferred.release.wat +++ b/tests/compiler/call-inferred.release.wat @@ -1028,7 +1028,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1061,7 +1060,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1664,7 +1662,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1693,7 +1690,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index 0d9c6213c5..d4b2e80337 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -1076,7 +1076,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1109,7 +1108,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1816,12 +1814,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1867,12 +1863,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $call-rest/fn (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1979,12 +1973,10 @@ local.get $1 local.get $2 call $call-rest/fn - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -2395,12 +2387,10 @@ local.get $0 local.get $1 call $call-rest/Foo#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $call-rest/Foo#sum (param $0 i32) (result i32) (local $1 i32) @@ -2492,12 +2482,10 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:call-rest (local $0 i32) @@ -2826,12 +2814,10 @@ i32.store offset=4 local.get $0 call $call-rest/count - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 if i32.const 0 i32.const 1536 @@ -2936,7 +2922,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $5 local.get $0 i32.const 2 i32.shl @@ -2951,7 +2936,6 @@ local.get $4 memory.copy end - local.get $5 local.get $3 i32.store i32.const 16 diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index 7cd486f260..a4f2af9fe6 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1028,7 +1028,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1061,7 +1060,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1574,7 +1572,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1599,7 +1596,6 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1649,7 +1645,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1686,7 +1681,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1735,7 +1729,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1760,7 +1753,6 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1803,7 +1795,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1840,7 +1831,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1889,7 +1879,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1908,7 +1897,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1958,7 +1946,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1971,7 +1958,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2020,7 +2006,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2039,7 +2024,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2082,7 +2066,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2095,7 +2078,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2144,7 +2126,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2163,7 +2144,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2198,7 +2178,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2211,7 +2190,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index a8a05184e7..9415e99e5d 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -1077,7 +1077,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1110,7 +1109,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1993,12 +1991,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $class-implements/B3#get:foo (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2024,12 +2020,10 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:class-implements (local $0 i32) @@ -2131,7 +2125,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2168,7 +2161,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2306,18 +2298,18 @@ local.tee $0 i32.store block $__inlined_func$class-implements/I#foo@override$167 - block $default2 + block $default12 block $case3 block $case2 block $case1 - block $case03 + block $case013 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case1 $default2 $case2 $default2 $case3 $default2 $case3 $case03 $default2 + br_table $case1 $default12 $case2 $default12 $case3 $default12 $case3 $case013 $default12 end i32.const 4 local.set $0 @@ -2381,18 +2373,18 @@ local.get $0 i32.store block $__inlined_func$class-implements/J#foo@override$169 - block $default3 - block $case34 - block $case25 - block $case16 - block $case07 + block $default14 + block $case315 + block $case216 + block $case117 + block $case018 local.get $0 i32.const 8 i32.sub i32.load i32.const 8 i32.sub - br_table $case25 $default3 $case25 $case16 $case34 $case07 $default3 + br_table $case216 $default14 $case216 $case117 $case315 $case018 $default14 end unreachable end @@ -2493,7 +2485,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2529,7 +2520,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -2599,7 +2589,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2635,7 +2624,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2776,7 +2764,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2812,7 +2799,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -2882,7 +2868,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2918,7 +2903,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index 3b6a73a719..39ce65ceb7 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1065,7 +1065,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1098,7 +1097,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1807,7 +1805,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1843,7 +1840,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1971,7 +1967,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2007,7 +2002,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2093,7 +2087,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2118,7 +2111,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2154,14 +2146,12 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index c389b02f92..ac88e87ea3 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1087,7 +1087,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1120,7 +1119,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1561,7 +1559,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1597,7 +1594,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2044,17 +2040,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@override$154 - block $default0 - block $case21 - block $case12 - block $case03 + block $default4 + block $case25 + block $case16 + block $case07 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case03 $case12 $case03 $case03 $case21 $default0 + br_table $case07 $case16 $case07 $case07 $case25 $default4 end i32.const 1520 global.set $class-overloading/which @@ -2097,17 +2093,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$155 - block $default1 - block $case22 - block $case13 - block $case04 + block $default8 + block $case29 + block $case110 + block $case011 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case04 $case13 $case04 $case04 $case22 $default1 + br_table $case011 $case110 $case011 $case011 $case29 $default8 end i32.const 1520 global.set $class-overloading/which @@ -2310,17 +2306,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$157 - block $default2 - block $case23 - block $case14 - block $case05 + block $default16 + block $case217 + block $case118 + block $case019 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case05 $case14 $case05 $case05 $case23 $default2 + br_table $case019 $case118 $case019 $case019 $case217 $default16 end i32.const 1520 global.set $class-overloading/which @@ -2363,17 +2359,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@override$158 - block $default3 - block $case24 - block $case15 - block $case06 + block $default24 + block $case225 + block $case126 + block $case027 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case06 $case15 $case06 $case06 $case24 $default3 + br_table $case027 $case126 $case027 $case027 $case225 $default24 end i32.const 1520 global.set $class-overloading/which @@ -2414,17 +2410,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$159 - block $default4 - block $case25 - block $case16 - block $case07 + block $default32 + block $case233 + block $case134 + block $case035 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case07 $case16 $case07 $case07 $case25 $default4 + br_table $case035 $case134 $case035 $case035 $case233 $default32 end i32.const 1520 global.set $class-overloading/which @@ -2497,17 +2493,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$160 - block $default5 - block $case26 - block $case17 - block $case08 + block $default40 + block $case241 + block $case142 + block $case043 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case08 $case17 $case08 $case08 $case26 $default5 + br_table $case043 $case142 $case043 $case043 $case241 $default40 end i32.const 1520 global.set $class-overloading/which @@ -2550,17 +2546,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@override$161 - block $default6 - block $case27 - block $case18 - block $case09 + block $default48 + block $case249 + block $case150 + block $case051 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case09 $case18 $case09 $case09 $case27 $default6 + br_table $case051 $case150 $case051 $case051 $case249 $default48 end i32.const 1520 global.set $class-overloading/which @@ -2601,17 +2597,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$162 - block $default7 - block $case28 - block $case19 - block $case010 + block $default56 + block $case257 + block $case158 + block $case059 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case010 $case19 $case010 $case010 $case28 $default7 + br_table $case059 $case158 $case059 $case059 $case257 $default56 end i32.const 1520 global.set $class-overloading/which @@ -2711,17 +2707,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$164 - block $default8 - block $case29 - block $case110 - block $case011 + block $default64 + block $case265 + block $case166 + block $case067 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case011 $case110 $case011 $case011 $case29 $default8 + br_table $case067 $case166 $case067 $case067 $case265 $default64 end i32.const 1520 global.set $class-overloading/which @@ -2764,17 +2760,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#get:c@override$165 - block $default9 - block $case210 - block $case111 - block $case012 + block $default72 + block $case273 + block $case174 + block $case075 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case012 $case111 $case012 $case012 $case210 $default9 + br_table $case075 $case174 $case075 $case075 $case273 $default72 end i32.const 1520 global.set $class-overloading/which @@ -2817,17 +2813,17 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/A#b@override$166 - block $default10 - block $case211 - block $case112 - block $case013 + block $default80 + block $case281 + block $case182 + block $case083 local.get $0 i32.const 8 i32.sub i32.load i32.const 5 i32.sub - br_table $case013 $case112 $case013 $case013 $case211 $default10 + br_table $case083 $case182 $case083 $case083 $case281 $default80 end i32.const 1520 global.set $class-overloading/which @@ -2900,8 +2896,8 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@override$168 - block $default11 - block $case113 + block $default88 + block $case189 local.get $0 i32.const 8 i32.sub @@ -2913,8 +2909,8 @@ local.get $0 i32.const 13 i32.eq - br_if $case113 - br $default11 + br_if $case189 + br $default88 end i32.const 1680 global.set $class-overloading/which @@ -2982,8 +2978,8 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@override$170 - block $default12 - block $case114 + block $default91 + block $case192 local.get $0 i32.const 8 i32.sub @@ -2995,8 +2991,8 @@ local.get $0 i32.const 13 i32.eq - br_if $case114 - br $default12 + br_if $case192 + br $default91 end i32.const 1680 global.set $class-overloading/which @@ -3044,7 +3040,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -3080,7 +3075,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -3129,7 +3123,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -3165,7 +3158,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-override.release.wat b/tests/compiler/class-override.release.wat index 83f4b7874c..dad3c95a7e 100644 --- a/tests/compiler/class-override.release.wat +++ b/tests/compiler/class-override.release.wat @@ -1036,7 +1036,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1069,7 +1068,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1476,7 +1474,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1501,7 +1498,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1526,7 +1522,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1551,7 +1546,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1579,28 +1573,24 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 77e0ddac27..947b8a14a1 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -1038,7 +1038,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1071,7 +1070,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1616,7 +1614,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1645,7 +1642,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index f754d4909d..7c0c6d806b 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -181,7 +181,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$152 + block $__inlined_func$~lib/rt/itcms/Object#unlink$153 local.get $1 i32.load offset=4 i32.const -4 @@ -205,7 +205,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$152 + br $__inlined_func$~lib/rt/itcms/Object#unlink$153 end local.get $1 i32.load offset=8 @@ -1091,7 +1091,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1124,7 +1123,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1660,11 +1658,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1707,7 +1705,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1730,7 +1728,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1759,7 +1757,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1788,7 +1786,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1823,7 +1821,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1854,7 +1852,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1891,7 +1889,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1928,7 +1926,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1948,7 +1946,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -2005,7 +2003,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 0078d1c8a8..d44d65ece2 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1552,7 +1550,7 @@ end i32.const 0 local.set $0 - loop $do-loop|07 + loop $do-loop|09 local.get $0 i32.const 1 i32.add @@ -1562,7 +1560,7 @@ i32.const 0 local.get $0 select - br_if $do-loop|07 + br_if $do-loop|09 end local.get $0 i32.const 10 @@ -1579,7 +1577,7 @@ local.set $0 i32.const 0 local.set $1 - loop $do-loop|08 + loop $do-loop|011 local.get $0 i32.const 1 i32.add @@ -1587,7 +1585,7 @@ i32.const 10 i32.ne if - loop $do-loop|110 + loop $do-loop|113 local.get $1 i32.const 1 i32.add @@ -1597,10 +1595,10 @@ i32.const 0 local.get $1 select - br_if $do-loop|110 + br_if $do-loop|113 end local.get $0 - br_if $do-loop|08 + br_if $do-loop|011 end end local.get $0 @@ -1674,7 +1672,7 @@ global.get $~lib/memory/__stack_pointer call $do/Ref#constructor i32.store - loop $do-loop|09 + loop $do-loop|05 local.get $1 i32.const 1 i32.add @@ -1691,7 +1689,7 @@ i32.store end local.get $0 - br_if $do-loop|09 + br_if $do-loop|05 end local.get $1 i32.const 10 @@ -1734,8 +1732,8 @@ call $do/Ref#constructor local.tee $1 i32.store - loop $do-loop|010 - block $do-break|03 + loop $do-loop|08 + block $do-break|06 local.get $0 i32.const 1 i32.add @@ -1745,10 +1743,10 @@ if i32.const 0 local.set $1 - br $do-break|03 + br $do-break|06 end call $do/Ref#constructor - br_if $do-loop|010 + br_if $do-loop|08 end end local.get $0 @@ -1873,7 +1871,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1901,7 +1898,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index 6aff8c65a7..4a316496d2 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -1045,7 +1045,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1078,7 +1077,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1723,7 +1721,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1764,7 +1761,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1858,7 +1854,6 @@ i32.const 0 call $duplicate-fields/A2#set:bar global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1908,7 +1903,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1965,7 +1959,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1991,7 +1984,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2020,7 +2012,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2039,7 +2030,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index 6372bb77d3..f050d955d0 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -1046,7 +1046,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1079,7 +1078,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index 1d975a97eb..73a85ba25d 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -1024,7 +1024,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1057,7 +1056,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index c16cf9f6b4..2dddf5b5b2 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1058,7 +1058,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1091,7 +1090,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1629,11 +1627,9 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index a0bc28bb44..ea1eb369b1 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1049,7 +1049,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1082,7 +1081,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1794,7 +1792,6 @@ local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 @@ -1820,7 +1817,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 @@ -1849,7 +1845,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $6 i32.store global.get $~lib/memory/__stack_pointer @@ -1878,7 +1873,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $6 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index 95652de9f5..19332bc021 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -1025,7 +1025,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1058,7 +1057,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1606,7 +1604,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1632,7 +1629,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1661,7 +1657,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1674,7 +1669,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/features/relaxed-simd.debug.wat b/tests/compiler/features/relaxed-simd.debug.wat index ceff3d4db6..af8063a69d 100644 --- a/tests/compiler/features/relaxed-simd.debug.wat +++ b/tests/compiler/features/relaxed-simd.debug.wat @@ -43,42 +43,42 @@ global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fma + f32x4.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fma + f32x4.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fms + f32x4.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fms + f32x4.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fma + f64x2.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fma + f64x2.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fms + f64x2.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fms + f64x2.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index 1d7d656f3a..f85c91295c 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1049,7 +1049,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1082,7 +1081,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2064,7 +2062,6 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2100,7 +2097,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -2119,7 +2115,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2155,7 +2150,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -2172,7 +2166,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2219,7 +2212,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2237,7 +2229,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2284,7 +2275,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -2302,7 +2292,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2341,7 +2330,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -2358,7 +2346,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2386,7 +2373,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer @@ -2403,7 +2389,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2431,7 +2416,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer @@ -2450,7 +2434,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2484,7 +2467,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer @@ -2503,7 +2485,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2542,7 +2523,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=36 global.get $~lib/memory/__stack_pointer @@ -2560,7 +2540,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2608,7 +2587,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=40 global.get $~lib/memory/__stack_pointer @@ -2630,7 +2608,6 @@ local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2670,7 +2647,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store offset=48 global.get $~lib/memory/__stack_pointer @@ -2689,7 +2665,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2720,7 +2695,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=52 global.get $~lib/memory/__stack_pointer @@ -2737,7 +2711,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2776,7 +2749,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer @@ -2794,7 +2766,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2842,7 +2813,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=60 global.get $~lib/memory/__stack_pointer @@ -2860,7 +2830,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2890,7 +2859,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=64 global.get $~lib/memory/__stack_pointer @@ -2908,7 +2876,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2938,7 +2905,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=68 global.get $~lib/memory/__stack_pointer @@ -2956,7 +2922,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor @@ -2968,7 +2933,6 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 i32.store offset=76 global.get $~lib/memory/__stack_pointer @@ -3005,7 +2969,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor @@ -3020,7 +2983,6 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 i32.store offset=88 global.get $~lib/memory/__stack_pointer @@ -3059,7 +3021,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor @@ -3080,7 +3041,6 @@ local.get $1 i32.const 0 i32.store - local.get $0 local.get $1 i32.store offset=96 global.get $~lib/memory/__stack_pointer @@ -3120,7 +3080,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor @@ -3144,7 +3103,6 @@ local.get $1 i32.const 1680 call $~lib/rt/itcms/__link - local.get $0 local.get $1 i32.store offset=108 global.get $~lib/memory/__stack_pointer @@ -3186,7 +3144,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 @@ -3209,7 +3166,6 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 i32.store offset=116 global.get $~lib/memory/__stack_pointer @@ -3269,7 +3225,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 @@ -3304,7 +3259,6 @@ local.get $1 i32.const 1776 call $~lib/rt/itcms/__link - local.get $0 local.get $1 i32.store offset=124 global.get $~lib/memory/__stack_pointer @@ -3369,7 +3323,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3417,7 +3370,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=128 global.get $~lib/memory/__stack_pointer @@ -3435,7 +3387,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 24 @@ -3456,7 +3407,6 @@ local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $0 local.get $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer @@ -3474,7 +3424,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 25 @@ -3504,7 +3453,6 @@ local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $0 local.get $1 i32.store offset=144 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 4efb7bbd51..e272877b64 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -1032,7 +1032,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1064,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1633,7 +1631,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1655,7 +1652,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1684,7 +1680,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1702,7 +1697,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 0 i32.const 1 call $~lib/rt/itcms/__new @@ -1710,7 +1704,6 @@ i32.const 1456 i32.const 0 memory.copy - local.get $2 local.get $3 i32.store i32.const 16 @@ -1748,7 +1741,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index d6b3fb5e06..792073686e 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1471,12 +1469,12 @@ end i32.const 10 local.set $0 - loop $for-loop|03 + loop $for-loop|04 local.get $0 i32.const 1 i32.sub local.tee $0 - br_if $for-loop|03 + br_if $for-loop|04 end local.get $0 if @@ -1489,14 +1487,14 @@ end i32.const 0 local.set $0 - loop $for-loop|04 + loop $for-loop|06 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $for-loop|04 + br_if $for-loop|06 end local.get $0 i32.const 10 @@ -1511,7 +1509,7 @@ end i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|07 local.get $0 i32.const 10 i32.lt_s @@ -1520,7 +1518,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|07 end end local.get $0 @@ -1536,7 +1534,7 @@ end i32.const 0 local.set $0 - loop $for-loop|06 + loop $for-loop|09 local.get $0 i32.const 10 i32.lt_s @@ -1573,7 +1571,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|06 + br $for-loop|09 end end local.get $0 @@ -1659,7 +1657,7 @@ call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|07 + loop $for-loop|05 local.get $0 if local.get $1 @@ -1677,7 +1675,7 @@ local.tee $0 i32.store end - br $for-loop|07 + br $for-loop|05 end end local.get $1 @@ -1727,7 +1725,7 @@ loop $for-loop|08 call $for/Ref#constructor if - block $for-break03 + block $for-break06 local.get $1 i32.const 1 i32.add @@ -1737,7 +1735,7 @@ if i32.const 0 local.set $0 - br $for-break03 + br $for-break06 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor @@ -1869,7 +1867,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1897,7 +1894,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 56a60fbf1f..3260e51904 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -1065,7 +1065,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1098,7 +1097,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1579,7 +1577,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1607,7 +1604,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index da44972113..b9e8e461a9 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -1095,7 +1095,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1128,7 +1127,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1804,7 +1802,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2032 i32.store @@ -1883,7 +1880,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index b0207d6d3e..726e8230ce 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -168,12 +168,10 @@ i32.const 1056 i32.load call_indirect (type $0) - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.const 3 i32.ne if diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 3c2bec13dc..69870f1d3b 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -1030,7 +1030,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1063,7 +1062,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1489,7 +1487,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1507,7 +1504,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1535,14 +1531,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/heap.release.wat b/tests/compiler/heap.release.wat index caf0699557..14a0518c9b 100644 --- a/tests/compiler/heap.release.wat +++ b/tests/compiler/heap.release.wat @@ -1130,7 +1130,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 call $~lib/rt/tlsf/checkUsedBlock local.tee $0 @@ -1139,7 +1138,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $0 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/incremental-gc/call-indirect.release.wat b/tests/compiler/incremental-gc/call-indirect.release.wat index 04969928ca..351beb9151 100644 --- a/tests/compiler/incremental-gc/call-indirect.release.wat +++ b/tests/compiler/incremental-gc/call-indirect.release.wat @@ -1033,7 +1033,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1066,7 +1065,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1690,7 +1688,6 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1726,7 +1723,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store global.get $~lib/memory/__stack_pointer @@ -1734,12 +1730,10 @@ i32.store offset=4 local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34384 @@ -1808,12 +1802,10 @@ i32.const 1440 i32.load call_indirect (type $1) - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34384 diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 55db29d7ed..2773042932 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -1071,7 +1071,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1104,7 +1103,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1890,12 +1888,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer @@ -1969,7 +1965,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1998,7 +1993,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2424,7 +2418,6 @@ local.tee $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2441,7 +2434,6 @@ i32.const 1 local.get $1 call $~lib/array/Array#__set - local.get $2 local.get $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer @@ -2459,7 +2451,6 @@ local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2476,7 +2467,6 @@ i32.const 1 local.get $1 call $~lib/array/Array#__set - local.get $2 local.get $3 i32.store offset=52 global.get $~lib/memory/__stack_pointer @@ -2490,7 +2480,6 @@ local.tee $0 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2507,7 +2496,6 @@ i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $1 local.get $2 i32.store offset=64 global.get $~lib/memory/__stack_pointer @@ -2611,7 +2599,6 @@ local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2636,7 +2623,6 @@ i32.const 2016 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=92 global.get $~lib/memory/__stack_pointer @@ -2725,7 +2711,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $4 local.get $0 local.get $1 i32.shl @@ -2740,7 +2725,6 @@ local.get $5 memory.copy end - local.get $4 local.get $1 i32.store i32.const 16 diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index a76738b5c8..db2d8f2c77 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1054,7 +1054,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1087,7 +1086,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1767,7 +1765,6 @@ i32.const 1520 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1786,7 +1783,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1815,7 +1811,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1828,7 +1823,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index 67e09d9b8e..bcc7cbc9ed 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1044,7 +1044,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1077,7 +1076,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1619,7 +1617,6 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 6 @@ -1639,7 +1636,6 @@ i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -1671,7 +1667,6 @@ local.get $0 i32.const 2 i32.store offset=4 - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1680,7 +1675,6 @@ local.get $0 i32.const 4 i32.store offset=12 - local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index 17c9936fff..58abc45ae3 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -1132,7 +1132,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1165,7 +1164,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2282,7 +2280,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2318,7 +2315,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2344,7 +2340,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2380,7 +2375,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 59a7187755..b5acbcd83e 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1035,7 +1035,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1068,7 +1067,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1683,7 +1681,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1712,7 +1709,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index 454dc7a7a0..e790c53130 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1036,7 +1036,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1069,7 +1068,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1593,12 +1591,10 @@ i32.store local.get $0 i32.load - 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 (result i32) (local $0 i32) @@ -1626,11 +1622,9 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 0bcdd37e25..f33b7a54aa 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -1042,7 +1042,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1075,7 +1074,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2011,7 +2009,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2040,7 +2037,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 05a0ac6baa..62bd8230fe 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -1036,7 +1036,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1069,7 +1068,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1476,7 +1474,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1494,7 +1491,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1522,14 +1518,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index a33403cbc1..fda55107c4 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1026,7 +1026,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1059,7 +1058,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1622,7 +1620,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1651,7 +1648,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index 2a8c6bd0e0..c2bec41f20 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -1065,7 +1065,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1098,7 +1097,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat index 9ca1161cf6..cfe04d539a 100644 --- a/tests/compiler/issues/2707.release.wat +++ b/tests/compiler/issues/2707.release.wat @@ -1038,7 +1038,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1071,7 +1070,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1116,12 +1114,12 @@ local.get $0 local.get $1 i32.ctz - local.tee $1 + local.tee $2 i32.const 2 i32.shl i32.add i32.load offset=4 - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1132,9 +1130,9 @@ unreachable end local.get $0 - local.get $2 - i32.ctz local.get $1 + i32.ctz + local.get $2 i32.const 4 i32.shl i32.add @@ -1528,14 +1526,12 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 1 call $~lib/rt/itcms/__new local.tee $0 i32.const 1088 i32.const 16 memory.copy - local.get $1 local.get $0 i32.store i32.const 4 diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat index aba1809221..7d78da32e1 100644 --- a/tests/compiler/issues/2873.release.wat +++ b/tests/compiler/issues/2873.release.wat @@ -2245,7 +2245,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -2278,7 +2277,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 6bd42c186f..698a99aac3 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1041,7 +1041,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1074,7 +1073,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 79b3669b1f..aba3aac064 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1031,7 +1031,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1064,7 +1063,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1599,7 +1597,6 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $1 local.get $0 i32.eqz if @@ -1610,7 +1607,6 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 i32.store offset=8 i32.const 0 @@ -1660,7 +1656,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $1 block $__inlined_func$~instanceof|managed-cast/Cat$91 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 @@ -1685,7 +1680,6 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -1721,7 +1715,6 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 local.get $0 if local.get $0 @@ -1742,7 +1735,6 @@ i32.const 0 local.set $0 end - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -1825,7 +1817,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1850,7 +1841,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1878,14 +1868,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/memory.release.wat b/tests/compiler/memory.release.wat index 34b1695e66..b1afa82e8f 100644 --- a/tests/compiler/memory.release.wat +++ b/tests/compiler/memory.release.wat @@ -73,10 +73,8 @@ global.get $memory/ptr i32.const 16 i32.add - local.set $0 i32.const 1104 global.set $memory/ptr - local.get $0 i32.const 1104 i32.ne if @@ -90,10 +88,8 @@ global.get $memory/ptr i32.const 8 i32.add - local.set $0 i32.const 1112 global.set $memory/ptr - local.get $0 i32.const 1112 i32.ne if @@ -107,10 +103,8 @@ global.get $memory/ptr i32.const 4 i32.add - local.set $0 i32.const 1116 global.set $memory/ptr - local.get $0 i32.const 1116 i32.ne if @@ -124,10 +118,8 @@ global.get $memory/ptr i32.const 2 i32.add - local.set $0 i32.const 1118 global.set $memory/ptr - local.get $0 i32.const 1118 i32.ne if @@ -141,10 +133,8 @@ global.get $memory/ptr i32.const 1 i32.add - local.set $0 i32.const 1119 global.set $memory/ptr - local.get $0 i32.const 1119 i32.ne if diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index 1828d48d23..b6df35a2b3 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -1067,7 +1067,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1100,7 +1099,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index cc215c26e8..3185b00ccb 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -904,7 +904,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -937,7 +936,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -2361,7 +2359,6 @@ i32.const 1392 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2406,7 +2403,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -2817,7 +2813,6 @@ local.get $0 call $object-literal/testOmittedTypes global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2868,7 +2863,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/operator-overload-non-ambiguity.release.wat b/tests/compiler/operator-overload-non-ambiguity.release.wat index abbf89d89c..0492d014af 100644 --- a/tests/compiler/operator-overload-non-ambiguity.release.wat +++ b/tests/compiler/operator-overload-non-ambiguity.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index 9c4eecb2ab..753b8a0ace 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1053,7 +1053,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1086,7 +1085,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/possibly-null.release.wat b/tests/compiler/possibly-null.release.wat index 1d99cdc390..b681c5b383 100644 --- a/tests/compiler/possibly-null.release.wat +++ b/tests/compiler/possibly-null.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32))) - (type $1 (func (param i32))) + (type $0 (func (param i32))) + (type $1 (func (param i32 i32))) (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33792)) @@ -8,13 +8,13 @@ (export "memory" (memory $0)) (export "testTrue" (func $export:possibly-null/testTrue)) (export "testFalseElse" (func $export:possibly-null/testTrue)) - (export "testFalseContinuation" (func $export:possibly-null/testTrue)) + (export "testFalseContinuation" (func $export:possibly-null/testFalseContinuation)) (export "testNeNull" (func $export:possibly-null/testTrue)) (export "testEqNullElse" (func $export:possibly-null/testTrue)) - (export "testEqNullContinuation" (func $export:possibly-null/testTrue)) + (export "testEqNullContinuation" (func $export:possibly-null/testFalseContinuation)) (export "testNotEqNull" (func $export:possibly-null/testTrue)) (export "testNotNeNullElse" (func $export:possibly-null/testTrue)) - (export "testNotNeNullContinuation" (func $export:possibly-null/testTrue)) + (export "testNotNeNullContinuation" (func $export:possibly-null/testFalseContinuation)) (export "testWhile" (func $export:possibly-null/testWhile)) (export "testWhile2" (func $export:possibly-null/testWhile2)) (export "testWhile3" (func $export:possibly-null/testWhile3)) @@ -48,6 +48,35 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $export:possibly-null/testFalseContinuation (param $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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$possibly-null/testFalseContinuation$12 + local.get $0 + i32.eqz + br_if $__inlined_func$possibly-null/testFalseContinuation$12 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $export:possibly-null/testWhile (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index aa9a780b2d..5f3c208a7c 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1060,7 +1060,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1093,7 +1092,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1539,12 +1537,10 @@ i32.store local.get $0 i32.load - 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 2 i32.ne if diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index b57ed1cc78..bdef63163f 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1058,7 +1058,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1091,7 +1090,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1627,11 +1625,9 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 61d868fd17..2fb8a6ecc6 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -1053,7 +1053,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1086,7 +1085,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2030,7 +2028,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2043,7 +2040,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 8 i32.const 1 call $~lib/rt/itcms/__new @@ -2051,7 +2047,6 @@ i32.const 1056 i64.load align=1 i64.store align=1 - local.get $1 local.get $4 i32.store i32.const 16 @@ -2123,7 +2118,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $3 i32.store global.get $~lib/memory/__stack_pointer @@ -2160,19 +2154,15 @@ local.get $3 i32.load offset=4 i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 call $~lib/number/U64#toString - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 36128 @@ -2204,7 +2194,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2233,7 +2222,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2292,12 +2280,10 @@ local.get $0 i64.load call $~lib/number/U64#toString - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $resolve-access/propertyAccess (result i32) (local $0 i32) diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index f82a4d1b73..127a98403b 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -1258,7 +1258,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1291,7 +1290,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index a161cce7e3..d02af1c470 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -1105,7 +1105,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1138,7 +1137,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -3160,12 +3158,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3419,12 +3415,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:resolve-elementaccess (local $0 i32) @@ -3672,7 +3666,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -3710,7 +3703,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index b4a7f27f3c..b0045a24b7 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1068,7 +1068,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1101,7 +1100,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1289,7 +1287,6 @@ br $__inlined_func$~lib/util/number/itoa32$73 end global.get $~lib/memory/__stack_pointer - local.set $5 i32.const 0 local.get $0 i32.sub @@ -1661,7 +1658,6 @@ i32.const 0 local.get $6 memory.fill - local.get $5 local.get $2 i32.store local.get $2 diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index d5630d2d1f..c64de3724e 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1032,7 +1032,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1064,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1491,7 +1489,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1519,7 +1516,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index 3767d16019..eeb39ece91 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -1067,7 +1067,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1100,7 +1099,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2244,7 +2242,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2263,7 +2260,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2292,7 +2288,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2305,7 +2300,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 9637f6a402..4969034cb3 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -1073,7 +1073,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1106,7 +1105,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index 379afd054b..ecbca645a6 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -1093,7 +1093,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1126,7 +1125,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index 0331dc96e8..5b53eebc9c 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -1037,7 +1037,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1070,7 +1069,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1605,7 +1603,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1687,7 +1684,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store unreachable diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index 5172a87b5d..7bd0a828a6 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1045,7 +1045,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1078,7 +1077,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1479,7 +1477,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1507,7 +1504,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index e0b5e3a2d8..dafe0b0096 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1734,7 +1732,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1763,7 +1760,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index 6372bb77d3..f050d955d0 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -1046,7 +1046,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1079,7 +1078,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/rt/runtime-minimal-export.release.wat b/tests/compiler/rt/runtime-minimal-export.release.wat index aaeece8e32..fdbc294ad7 100644 --- a/tests/compiler/rt/runtime-minimal-export.release.wat +++ b/tests/compiler/rt/runtime-minimal-export.release.wat @@ -1288,7 +1288,6 @@ i32.load offset=4 i32.const -4 i32.and - local.set $1 local.get $0 i32.const 1476 i32.lt_u @@ -1322,7 +1321,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $6 local.get $0 i32.const 4 i32.sub @@ -1355,12 +1353,10 @@ i32.const 1 i32.or i32.store - local.get $6 local.get $4 call $~lib/rt/tlsf/insertBlock end end - local.get $1 local.set $0 br $while-continue|2 end diff --git a/tests/compiler/rt/runtime-stub-export.release.wat b/tests/compiler/rt/runtime-stub-export.release.wat index fabd2bbc75..49d2915a10 100644 --- a/tests/compiler/rt/runtime-stub-export.release.wat +++ b/tests/compiler/rt/runtime-stub-export.release.wat @@ -53,7 +53,6 @@ unreachable end global.get $~lib/rt/stub/offset - local.set $3 global.get $~lib/rt/stub/offset i32.const 4 i32.add @@ -109,7 +108,6 @@ end local.get $5 global.set $~lib/rt/stub/offset - local.get $3 local.get $4 i32.store local.get $2 diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index e4b1c6e9ec..218b6a5907 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -867,7 +867,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -900,7 +899,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -2215,7 +2213,6 @@ i32.const 1392 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2228,14 +2225,12 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 1 call $~lib/rt/itcms/__new local.tee $3 i32.const 1056 v128.load align=1 v128.store align=1 - local.get $1 local.get $3 i32.store i32.const 4 @@ -2306,7 +2301,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $4 i32.store global.get $~lib/memory/__stack_pointer @@ -2343,12 +2337,10 @@ local.get $4 i32.load offset=4 v128.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 i32x4.extract_lane 0 i32.const 1 i32.ne diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index 3d9964179a..a76d742da9 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -117,11 +117,9 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store - local.get $1 i32.const 1292 i32.load i32.const 1 @@ -289,7 +287,6 @@ local.get $0 i32.load offset=4 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -302,7 +299,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -352,7 +348,6 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -361,7 +356,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -413,7 +407,6 @@ i32.store offset=4 local.get $0 call $~lib/string/String#startsWith - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -422,7 +415,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -482,7 +474,6 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -491,7 +482,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -550,7 +540,6 @@ i32.store offset=4 local.get $0 call $~lib/string/String#startsWith - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -559,7 +548,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -602,7 +590,6 @@ call $~lib/array/Array<~lib/array/Array>#__get i32.load call_indirect (type $0) - drop unreachable end i32.const 34096 diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index a1e7cf5fff..aee35e910a 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1092,7 +1092,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1125,7 +1124,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1828,12 +1826,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1877,12 +1873,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1928,12 +1922,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2226,7 +2218,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2255,7 +2246,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 5f279cc7b7..0d14dcf146 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -1492,7 +1492,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -1525,7 +1524,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -2628,7 +2626,6 @@ i32.shl i32.add f32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -2638,11 +2635,8 @@ i32.shl i32.add f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $5) @@ -2661,14 +2655,10 @@ i32.add local.tee $6 f32.load offset=4 - local.set $5 local.get $6 f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $5) @@ -2736,14 +2726,10 @@ i32.add local.tee $1 f32.load offset=4 - local.set $5 local.get $1 f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $5) @@ -3090,7 +3076,6 @@ i32.shl i32.add f64.load - local.set $4 local.get $0 local.get $1 i32.const 1 @@ -3100,11 +3085,8 @@ i32.shl i32.add f64.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 10544 i32.load call_indirect (type $6) @@ -3123,14 +3105,10 @@ i32.add local.tee $6 f64.load offset=8 - local.set $4 local.get $6 f64.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 10544 i32.load call_indirect (type $6) @@ -3198,14 +3176,10 @@ i32.add local.tee $1 f64.load offset=8 - local.set $4 local.get $1 f64.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 10544 i32.load call_indirect (type $6) @@ -3551,7 +3525,6 @@ i32.shl i32.add i32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -3561,11 +3534,8 @@ i32.shl i32.add i32.load - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -3584,14 +3554,10 @@ i32.add local.tee $5 i32.load offset=4 - local.set $6 local.get $5 i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -3659,14 +3625,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $5 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -3986,7 +3948,6 @@ i32.shl i32.add i32.load - local.set $4 local.get $0 local.get $1 i32.const 1 @@ -3996,11 +3957,8 @@ i32.shl i32.add i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 10848 i32.load call_indirect (type $0) @@ -4019,14 +3977,10 @@ i32.add local.tee $4 i32.load offset=4 - local.set $5 local.get $4 i32.load - local.set $4 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $4 i32.const 10848 i32.load call_indirect (type $0) @@ -4094,14 +4048,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $4 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $1 i32.const 10848 i32.load call_indirect (type $0) @@ -6698,12 +6648,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -6747,12 +6695,10 @@ i32.load offset=4 i32.add i32.load8_u - 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/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7044,12 +6990,10 @@ i32.shl i32.add i32.load - 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/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7339,12 +7283,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7429,11 +7371,9 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $5 local.get $1 local.get $2 call $~lib/array/Array#__get @@ -7569,12 +7509,10 @@ i32.load offset=16 i32.const 2 i32.shr_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -7812,12 +7750,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#pop (param $0 i32) (result i32) (local $1 i32) @@ -7869,7 +7805,6 @@ i32.shl i32.add i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7880,7 +7815,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -8009,12 +7943,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8280,12 +8212,10 @@ local.get $2 local.get $3 call $~lib/array/Array#copyWithin - 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/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8527,11 +8457,9 @@ i32.store local.get $3 i32.load offset=4 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -8590,12 +8518,10 @@ local.get $1 local.get $2 call $~lib/array/Array#slice - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#reverse (param $0 i32) (result i32) (local $1 i32) @@ -8945,12 +8871,10 @@ i32.shl i32.add i32.load16_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9181,12 +9105,10 @@ local.get $1 local.get $2 call $~lib/array/Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -9216,12 +9138,10 @@ call $~lib/array/Array#indexOf i32.const 0 i32.ge_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9300,11 +9220,9 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=4 local.tee $2 @@ -9391,12 +9309,10 @@ local.get $1 local.get $2 call $~lib/array/Array#splice - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9476,11 +9392,9 @@ i32.store local.get $5 i32.load offset=4 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=4 local.tee $3 @@ -9765,13 +9679,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -9908,13 +9820,11 @@ i32.shl i32.add i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $3 local.get $2 local.get $0 local.get $1 @@ -9994,13 +9904,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -10147,13 +10055,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -10299,13 +10205,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -11095,7 +10999,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -11124,7 +11027,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -11643,18 +11545,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -12149,12 +12047,10 @@ i32.shl i32.add f64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -12615,18 +12511,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -13241,18 +13133,14 @@ i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $4 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 local.get $1 i32.load call_indirect (type $0) @@ -13358,20 +13246,16 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load i32.sub - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) @@ -14432,18 +14316,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -14477,21 +14357,17 @@ local.get $0 i32.const 0 call $~lib/array/Array#__get - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 0 call $~lib/array/Array#__get i32.sub - 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/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -14964,12 +14840,10 @@ i32.const 0 end i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -15199,11 +15073,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -15212,7 +15086,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -15222,22 +15096,22 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$6 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$736 local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $7 i32.const 0 i32.lt_s if @@ -15246,127 +15120,126 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$736 end - block $folding-inner0 - local.get $0 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/itoa32 - local.set $1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + local.get $7 + i32.eqz + if + local.get $6 + i32.load + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 11 - i32.add - local.get $0 - i32.mul - i32.const 11 + i32.const 8 i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$736 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 11 + i32.add + local.get $7 + i32.mul + i32.const 11 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if local.get $0 - local.get $3 - i32.gt_s + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 if - local.get $7 + local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $3 - i32.const 2 + local.get $1 + local.get $5 + i32.const 1 i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + memory.copy local.get $2 + local.get $5 i32.add local.set $2 - local.get $5 - if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end - local.get $6 - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner0 - end + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + br $__inlined_func$~lib/util/string/joinIntegerArray$736 end global.get $~lib/memory/__stack_pointer i32.const 8 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 @@ -15392,11 +15265,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -15405,7 +15278,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -15415,22 +15288,22 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$7 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$737 local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $7 i32.const 0 i32.lt_s if @@ -15439,127 +15312,126 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$737 end - block $folding-inner0 - local.get $0 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/utoa32 - local.set $1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + local.get $7 + i32.eqz + if + local.get $6 + i32.load + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - local.get $0 - i32.mul - i32.const 10 + i32.const 8 i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$737 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + local.get $7 + i32.mul + i32.const 10 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if local.get $0 - local.get $3 - i32.gt_s + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 if - local.get $7 + local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $3 - i32.const 2 + local.get $1 + local.get $5 + i32.const 1 i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + memory.copy local.get $2 - i32.add - local.set $2 local.get $5 - if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $3 - i32.const 1 i32.add - local.set $3 - br $for-loop|0 + local.set $2 end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end - local.get $6 - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + br $__inlined_func$~lib/util/string/joinIntegerArray$737 end global.get $~lib/memory/__stack_pointer i32.const 8 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 @@ -15742,6 +15614,7 @@ br $for-loop|0 end end + local.get $5 local.get $6 local.get $2 i32.const 1 @@ -15757,8 +15630,7 @@ local.get $2 i32.add local.tee $0 - local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $6 @@ -16032,26 +15904,20 @@ i32.store local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 call $~lib/util/string/joinStringArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) @@ -16086,7 +15952,7 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray$8 (result i32) + block $__inlined_func$~lib/util/string/joinReferenceArray$6 (result i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -16111,7 +15977,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray$8 + br $__inlined_func$~lib/util/string/joinReferenceArray$6 end local.get $2 i32.eqz @@ -16130,13 +15996,11 @@ else i32.const 11568 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray$8 + br $__inlined_func$~lib/util/string/joinReferenceArray$6 end i32.const 11568 local.set $0 @@ -16238,12 +16102,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 48992 @@ -16281,12 +16143,10 @@ local.get $0 i32.const 11856 call $~lib/array/Array#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#toString (param $0 i32) (result i32) (local $1 i32) @@ -16299,11 +16159,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -16320,7 +16180,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -16329,7 +16189,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -16339,22 +16199,22 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$9 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$738 local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $6 i32.const 0 i32.lt_s if @@ -16363,121 +16223,120 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end - block $folding-inner00 - local.get $0 - i32.eqz - if - local.get $3 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner00 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - local.get $0 - i32.mul - i32.const 11 + i32.const 8 i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$738 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $6 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 + i32.const 11856 local.get $4 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $2 i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 i32.add - local.set $2 - br $for-loop|0 + local.set $1 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $5 - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - local.get $3 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner00 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -16496,45 +16355,467 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $7 - i32.eqz - if - local.get $0 - i64.load + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$739 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$739 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$739 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#toString (param $0 i32) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$740 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return + end + local.get $7 + i32.eqz + if + local.get $0 + i64.load local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16760,6 +17041,7 @@ br $for-loop|0 end end + local.get $5 local.get $6 local.get $2 i32.const 1 @@ -16775,8 +17057,7 @@ local.get $2 i32.add local.tee $0 - local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $6 @@ -16835,12 +17116,10 @@ local.get $0 i32.const 11856 call $~lib/array/Array<~lib/string/String|null>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#toString (param $0 i32) (result i32) (local $1 i32) @@ -16853,11 +17132,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -16874,7 +17153,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -16883,7 +17162,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -16893,22 +17172,22 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$10 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$741 local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $6 i32.const 0 i32.lt_s if @@ -16917,121 +17196,120 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end - block $folding-inner00 - local.get $0 - i32.eqz + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$741 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add local.get $3 + local.get $5 + i32.add i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner00 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $0 - i32.mul - i32.const 10 - i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $6 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 + i32.const 11856 local.get $4 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $2 i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 i32.add - local.set $2 - br $for-loop|0 + local.set $1 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $5 - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner00 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -17078,12 +17356,10 @@ local.get $0 i32.const 11856 call $~lib/array/Array#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) (local $1 i32) @@ -17126,7 +17402,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -17136,7 +17412,7 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 (result i32) + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 (result i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -17152,7 +17428,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $5 + local.tee $4 i32.const 0 i32.lt_s if @@ -17161,13 +17437,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 end - local.get $5 + local.get $4 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.load local.tee $0 i32.store @@ -17181,13 +17457,11 @@ else i32.const 11568 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 end i32.const 11568 local.set $0 @@ -17204,11 +17478,11 @@ local.set $2 loop $for-loop|0 local.get $1 - local.get $5 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 local.get $1 i32.const 2 i32.shl @@ -17222,7 +17496,6 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=16 @@ -17232,7 +17505,6 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=12 - local.get $4 local.get $0 local.get $6 call $~lib/string/String.__concat @@ -17262,8 +17534,8 @@ end end global.get $~lib/memory/__stack_pointer - local.get $3 local.get $5 + local.get $4 i32.const 2 i32.shl i32.add @@ -17276,7 +17548,6 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -17286,7 +17557,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $2 local.get $0 local.get $1 call $~lib/string/String.__concat @@ -17299,7 +17569,6 @@ global.set $~lib/memory/__stack_pointer local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -17308,7 +17577,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 48992 @@ -17529,16 +17797,17 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 f32) - (local $7 i32) + (local $4 i32) + (local $5 i64) + (local $6 f64) + (local $7 f32) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 448 i32.sub @@ -17589,9 +17858,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17608,12 +17877,11 @@ i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -17629,91 +17897,90 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=12 - local.get $1 - local.get $8 + local.get $2 + local.get $9 i32.store - local.get $1 - local.get $8 + local.get $2 + local.get $9 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - local.get $8 + local.get $2 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -17729,30 +17996,30 @@ i32.const 7 i32.const 1696 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1728 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17764,28 +18031,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1760 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17797,27 +18064,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1792 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17829,28 +18096,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1824 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17862,27 +18129,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1856 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17894,28 +18161,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17932,30 +18199,30 @@ i32.const 8 i32.const 1920 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 1968 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17967,28 +18234,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2016 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18000,27 +18267,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2064 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18032,28 +18299,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2112 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18065,27 +18332,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2160 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18097,28 +18364,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2208 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18135,30 +18402,30 @@ i32.const 9 i32.const 2256 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2304 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18170,28 +18437,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18203,27 +18470,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2400 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18235,28 +18502,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2448 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18268,27 +18535,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2496 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18300,28 +18567,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2544 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18333,28 +18600,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const -0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2592 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18367,9 +18634,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -18381,9 +18648,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18397,16 +18664,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 42 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -18421,9 +18688,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18437,9 +18704,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18453,9 +18720,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -18469,9 +18736,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -18483,9 +18750,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18499,16 +18766,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18522,9 +18789,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18538,9 +18805,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18555,16 +18822,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -18578,9 +18845,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18594,9 +18861,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18611,9 +18878,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18628,16 +18895,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 45 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18651,9 +18918,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18667,9 +18934,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18684,9 +18951,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18701,9 +18968,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18717,30 +18984,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=20 - local.get $7 + local.get $8 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $7 + local.get $8 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 - local.get $7 + local.get $8 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18753,14 +19018,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $8 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18768,9 +19033,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length if i32.const 0 @@ -18786,12 +19051,12 @@ i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -18805,9 +19070,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -18821,9 +19086,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -18837,9 +19102,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -18855,26 +19120,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $1 + local.tee $2 i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18888,9 +19153,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18903,9 +19168,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18918,26 +19183,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18950,9 +19215,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18966,9 +19231,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18982,9 +19247,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18998,35 +19263,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 46 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 47 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19039,9 +19304,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -19054,9 +19319,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19069,9 +19334,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19085,9 +19350,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19101,9 +19366,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19117,9 +19382,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -19133,9 +19398,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -19149,15 +19414,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19175,12 +19440,12 @@ i32.const 4 i32.const 2768 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -19191,22 +19456,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19219,9 +19484,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -19237,32 +19502,32 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2848 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19280,32 +19545,32 @@ i32.const 4 i32.const 2896 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 1 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2944 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19323,32 +19588,32 @@ i32.const 4 i32.const 2992 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3040 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19366,32 +19631,32 @@ i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 2 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3136 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19409,31 +19674,31 @@ i32.const 4 i32.const 3184 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3232 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19451,31 +19716,31 @@ i32.const 4 i32.const 3280 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3328 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19493,31 +19758,31 @@ i32.const 4 i32.const 3376 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3424 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19535,32 +19800,32 @@ i32.const 4 i32.const 3472 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 i32.const -2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3520 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19578,31 +19843,31 @@ i32.const 4 i32.const 3568 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3616 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19620,31 +19885,31 @@ i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3712 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19662,31 +19927,31 @@ i32.const 4 i32.const 3760 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3808 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19704,32 +19969,32 @@ i32.const 4 i32.const 3856 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -4 i32.const -3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3904 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19743,16 +20008,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 42 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19766,9 +20031,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19782,9 +20047,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -19799,9 +20064,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -19816,9 +20081,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -19833,9 +20098,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -19850,16 +20115,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 41 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19873,9 +20138,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19889,9 +20154,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -19906,9 +20171,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -19923,9 +20188,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -19940,9 +20205,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -19957,9 +20222,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -19974,7 +20239,7 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19988,11 +20253,11 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 + local.tee $8 i32.const 0 i32.le_s if @@ -20004,41 +20269,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.tee $8 + local.tee $9 i32.load - local.set $9 - local.get $8 - local.get $8 + local.get $9 + local.get $9 i32.const 4 i32.add - local.get $7 + local.get $8 i32.const 1 i32.sub - local.tee $7 + local.tee $8 i32.const 2 i32.shl - local.tee $10 + local.tee $11 memory.copy - local.get $8 - local.get $10 + local.get $9 + local.get $11 i32.add i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -20053,9 +20316,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -20069,9 +20332,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20085,9 +20348,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20102,9 +20365,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20119,9 +20382,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20136,9 +20399,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20153,9 +20416,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -20171,9 +20434,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20187,9 +20450,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20203,9 +20466,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20220,9 +20483,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20237,9 +20500,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20258,33 +20521,33 @@ i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4000 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20297,29 +20560,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20332,29 +20595,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 4 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20367,24 +20630,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $7 - local.get $1 + local.get $8 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20397,30 +20660,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const -2 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4112 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20433,29 +20696,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20468,29 +20731,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20503,17 +20766,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length if i32.const 0 @@ -20524,18 +20787,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 10 call $~lib/array/Array#slice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -20547,7 +20810,7 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20561,59 +20824,59 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.gt_u if - local.get $1 + local.get $2 i32.const 1 i32.shr_u - local.set $8 - local.get $1 + local.set $9 + local.get $2 i32.const 1 i32.sub - local.set $1 + local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $4 + local.get $9 i32.lt_u if - local.get $7 - local.get $3 + local.get $8 + local.get $4 i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $10 i32.load - local.set $10 - local.get $9 - local.get $7 - local.get $1 - local.get $3 + local.set $11 + local.get $10 + local.get $8 + local.get $2 + local.get $4 i32.sub i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $10 i32.load i32.store - local.get $9 local.get $10 + local.get $11 i32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $while-continue|0 end end @@ -20624,9 +20887,9 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20640,9 +20903,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20656,9 +20919,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -20673,9 +20936,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20690,9 +20953,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -20707,57 +20970,53 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 4 i32.const 0 i32.const 7 i32.const 4208 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $1 - local.get $3 + local.get $4 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20780,46 +21039,42 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 0 i32.const 7 i32.const 4240 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=64 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20842,46 +21097,42 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 17 i32.const 0 i32.const 7 i32.const 4272 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=68 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|2 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20904,46 +21155,42 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 7 i32.const 1 i32.const 11 i32.const 4320 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=72 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|3 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20966,46 +21213,42 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 1 i32.const 11 i32.const 4368 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=76 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|4 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21028,46 +21271,42 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 9 i32.const 1 i32.const 11 i32.const 4416 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=80 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|5 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21292,12 +21531,12 @@ i32.const 9 i32.const 4464 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21310,14 +21549,14 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store block $__inlined_func$~lib/array/Array#indexOf$712 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.eqz - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.or @@ -21327,22 +21566,22 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf$712 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|01 - local.get $1 - local.get $3 + local.set $2 + loop $while-continue|05 + local.get $0 + local.get $4 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 2 i32.shl i32.add @@ -21356,11 +21595,11 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array#indexOf$712 end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|01 + local.set $0 + br $while-continue|05 end end global.get $~lib/memory/__stack_pointer @@ -21368,9 +21607,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21386,12 +21625,12 @@ i32.const 12 i32.const 4496 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21404,14 +21643,14 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store block $__inlined_func$~lib/array/Array#indexOf$713 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.eqz - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.or @@ -21421,22 +21660,22 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf$713 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|02 - local.get $1 - local.get $3 + local.set $2 + loop $while-continue|07 + local.get $0 + local.get $4 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 3 i32.shl i32.add @@ -21450,11 +21689,11 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array#indexOf$713 end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|02 + local.set $0 + br $while-continue|07 end end global.get $~lib/memory/__stack_pointer @@ -21462,9 +21701,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21765,12 +22004,12 @@ i32.const 9 i32.const 4576 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21783,13 +22022,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.eqz - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.or @@ -21802,24 +22041,24 @@ br $__inlined_func$~lib/array/Array#includes$714 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|03 - local.get $1 - local.get $3 + local.set $2 + loop $while-continue|09 + local.get $0 + local.get $4 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $6 - local.get $6 + local.tee $7 + local.get $7 f32.ne if global.get $~lib/memory/__stack_pointer @@ -21829,11 +22068,11 @@ i32.const 1 br $__inlined_func$~lib/array/Array#includes$714 end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|09 end end global.get $~lib/memory/__stack_pointer @@ -21857,12 +22096,12 @@ i32.const 12 i32.const 4608 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21875,13 +22114,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.eqz - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.or @@ -21894,24 +22133,24 @@ br $__inlined_func$~lib/array/Array#includes$715 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|04 - local.get $1 - local.get $3 + local.set $2 + loop $while-continue|011 + local.get $0 + local.get $4 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne if global.get $~lib/memory/__stack_pointer @@ -21921,11 +22160,11 @@ i32.const 1 br $__inlined_func$~lib/array/Array#includes$715 end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|04 + local.set $0 + br $while-continue|011 end end global.get $~lib/memory/__stack_pointer @@ -22034,21 +22273,21 @@ local.get $0 i32.const 0 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 4688 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22068,12 +22307,12 @@ i32.const 4 i32.const 4736 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22100,21 +22339,21 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 4816 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22134,12 +22373,12 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22167,21 +22406,21 @@ local.get $0 i32.const 2 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4944 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22201,12 +22440,12 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22233,21 +22472,21 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 5056 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22267,12 +22506,12 @@ i32.const 4 i32.const 5088 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22299,21 +22538,21 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5168 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22333,12 +22572,12 @@ i32.const 4 i32.const 5200 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22366,21 +22605,21 @@ local.get $0 i32.const -1 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5296 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22400,12 +22639,12 @@ i32.const 4 i32.const 5328 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22433,21 +22672,21 @@ local.get $0 i32.const -2 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 5424 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22467,12 +22706,12 @@ i32.const 4 i32.const 5456 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22499,21 +22738,21 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5536 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22533,12 +22772,12 @@ i32.const 4 i32.const 5568 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22565,21 +22804,21 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5664 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22599,12 +22838,12 @@ i32.const 4 i32.const 5696 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22631,21 +22870,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 5792 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22665,12 +22904,12 @@ i32.const 4 i32.const 5824 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22697,21 +22936,21 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 5920 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22731,12 +22970,12 @@ i32.const 4 i32.const 5952 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22763,21 +23002,21 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6048 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22797,12 +23036,12 @@ i32.const 4 i32.const 6080 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22829,21 +23068,21 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6176 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22863,12 +23102,12 @@ i32.const 4 i32.const 6208 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22895,21 +23134,21 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6304 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22929,12 +23168,12 @@ i32.const 4 i32.const 6336 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22961,12 +23200,12 @@ local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $1 + local.tee $2 i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -22990,48 +23229,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 5 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=100 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 - local.get $1 + local.get $2 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#splice local.tee $0 @@ -23057,11 +23294,11 @@ local.get $0 i32.const 0 call $~lib/array/Array#__get - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.load i32.const 3 i32.ne @@ -23096,9 +23333,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -23111,9 +23348,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get local.set $0 @@ -23133,9 +23370,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get local.set $0 @@ -23155,9 +23392,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get local.set $0 @@ -23177,36 +23414,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=104 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 - local.get $1 + local.get $2 i32.store offset=108 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23220,101 +23454,98 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.le_s select - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 1 - local.get $3 - local.get $7 - i32.sub - local.tee $8 + local.get $4 local.get $8 + i32.sub + local.tee $9 + local.get $9 i32.const 1 i32.gt_s select - local.tee $8 + local.tee $9 i32.const 0 - local.get $8 + local.get $9 i32.const 0 i32.gt_s select - local.tee $8 + local.tee $9 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 i32.load offset=4 - local.set $10 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $10 - local.get $1 + local.get $2 i32.load offset=4 - local.tee $10 - local.get $7 + local.tee $11 + local.get $8 i32.const 2 i32.shl i32.add - local.tee $11 - local.get $8 + local.tee $12 + local.get $9 i32.const 2 i32.shl memory.copy - local.get $7 local.get $8 + local.get $9 i32.add - local.tee $7 - local.get $3 + local.tee $8 + local.get $4 i32.ne if + local.get $12 local.get $11 - local.get $10 - local.get $7 + local.get $8 i32.const 2 i32.shl i32.add - local.get $3 - local.get $7 + local.get $4 + local.get $8 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 - local.get $3 - local.get $8 + local.get $2 + local.get $4 + local.get $9 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $9 + local.get $10 i32.store offset=112 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -23327,10 +23558,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -23361,9 +23592,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -23376,9 +23607,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get if @@ -23390,10 +23621,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get local.tee $0 @@ -24280,23 +24511,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 $2 i32.store - local.get $0 + local.get $2 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 @@ -24329,10 +24560,9 @@ i32.const 3 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 9296 @@ -24352,95 +24582,93 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 + local.tee $8 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.load offset=4 - local.set $9 + local.set $10 i32.const 0 - local.set $3 - loop $for-loop|00 + local.set $4 + loop $for-loop|012 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $7 - local.get $1 + local.get $2 + i32.store + local.get $4 + local.get $8 + local.get $2 i32.load offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.tee $11 + local.get $8 + local.get $11 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.tee $10 - local.get $1 + local.tee $11 + local.get $2 i32.load offset=4 i32.add i32.load - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 3 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $3 - local.get $1 + local.get $12 + local.get $4 + local.get $2 i32.const 9296 i32.load call_indirect (type $1) - local.tee $11 + local.tee $12 i32.store offset=12 - local.get $9 local.get $10 - i32.add local.get $11 + i32.add + local.get $12 i32.store - local.get $8 - local.get $11 + local.get $9 + local.get $12 i32.const 1 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $4 + br $for-loop|012 end end global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 + local.get $9 i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 9328 @@ -24460,86 +24688,85 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 + local.tee $8 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.load offset=4 - local.set $9 + local.set $10 i32.const 0 - local.set $3 - loop $for-loop|01 + local.set $4 + loop $for-loop|013 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $3 - local.get $7 - local.get $1 + local.get $4 + local.get $8 + local.get $2 i32.load offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.tee $11 + local.get $8 + local.get $11 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.tee $10 - local.get $1 + local.tee $11 + local.get $2 i32.load offset=4 i32.add i32.load - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 3 global.set $~argumentsLength - local.get $9 local.get $10 - i32.add local.get $11 - local.get $3 - local.get $1 + i32.add + local.get $12 + local.get $4 + local.get $2 i32.const 9328 i32.load call_indirect (type $15) f32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|01 + local.set $4 + br $for-loop|013 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 + local.get $9 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -24552,17 +24779,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 0 call $~lib/array/Array#__get - local.set $6 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 i32.store - local.get $6 local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -25364,26 +25589,26 @@ i64.const -7046029254386353131 call $~lib/bindings/dom/Math.random i64.reinterpret_f64 - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.eqz select - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor @@ -25391,22 +25616,22 @@ global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor @@ -25423,243 +25648,243 @@ i32.store offset=140 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store offset=4 local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=148 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store offset=4 local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=152 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 95 i32.store offset=4 local.get $0 i32.const 2 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store offset=4 local.get $0 i32.const 3 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store offset=4 local.get $0 i32.const 4 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=164 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 115 i32.store offset=4 local.get $0 i32.const 5 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=168 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 120 i32.store offset=4 local.get $0 i32.const 6 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=172 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 125 i32.store offset=4 local.get $0 i32.const 7 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=176 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 130 i32.store offset=4 local.get $0 i32.const 8 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=180 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 135 i32.store offset=4 local.get $0 i32.const 9 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=184 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 10 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=188 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 11 - local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $0 global.set $std/array/inputStabArr @@ -25673,243 +25898,243 @@ i32.store offset=192 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=196 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 95 i32.store offset=4 local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=200 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 125 i32.store offset=4 local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=204 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 130 i32.store offset=4 local.get $0 i32.const 2 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=208 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 3 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=212 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 4 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=216 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store offset=4 local.get $0 i32.const 5 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=220 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store offset=4 local.get $0 i32.const 6 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=224 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store offset=4 local.get $0 i32.const 7 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=228 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store offset=4 local.get $0 i32.const 8 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=232 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 120 i32.store offset=4 local.get $0 i32.const 9 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=236 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 135 i32.store offset=4 local.get $0 i32.const 10 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=240 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 115 i32.store offset=4 local.get $0 i32.const 11 - local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $0 global.set $std/array/outputStabArr @@ -25936,12 +26161,12 @@ i32.const 9 i32.const 10288 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -25975,12 +26200,12 @@ i32.const 9 i32.const 10384 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -25997,10 +26222,10 @@ i32.const 12 i32.const 10448 call $~lib/rt/__newArray - local.tee $0 + local.tee $2 i32.store offset=252 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 global.set $~argumentsLength @@ -26022,7 +26247,7 @@ i32.const 10544 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10544 @@ -26039,22 +26264,18 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=12 - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store - local.get $1 - local.get $3 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26065,20 +26286,20 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 8 i32.const 3 i32.const 12 i32.const 10576 call $~lib/rt/__newArray - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=8 - block $__inlined_func$std/array/isArraysEqual$13 (result i32) + block $__inlined_func$std/array/isArraysEqual$9 (result i32) i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26091,48 +26312,48 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 call $~lib/array/Array#get:length - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store block $folding-inner1 block $folding-inner01 - local.get $1 + local.get $4 call $~lib/array/Array#get:length - local.get $7 + local.get $8 i32.ne br_if $folding-inner01 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.eq br_if $folding-inner1 loop $for-loop|02 - local.get $3 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 local.get $0 - local.get $3 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store - local.get $1 - local.get $3 + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne else i32.const 0 @@ -26140,22 +26361,20 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 local.get $0 - local.get $3 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store - local.get $8 - local.get $1 - local.get $3 + local.get $4 + local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 @@ -26164,26 +26383,26 @@ i32.ne br_if $folding-inner01 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 local.get $0 - local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store - local.get $1 - local.get $3 + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.get $5 + local.get $6 f64.ne br_if $folding-inner01 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|02 end end @@ -26194,7 +26413,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual$13 + br $__inlined_func$std/array/isArraysEqual$9 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26263,12 +26482,12 @@ i32.const 4 i32.const 10752 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26332,18 +26551,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store - local.get $1 - local.get $3 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26361,12 +26576,12 @@ i32.const 8 i32.const 10880 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -26383,7 +26598,7 @@ i32.const 4 i32.const 10928 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26391,7 +26606,7 @@ i32.const 4 i32.const 10960 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -26399,7 +26614,7 @@ i32.const 4 i32.const 10992 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26407,7 +26622,7 @@ i32.const 4 i32.const 11024 call $~lib/rt/__newArray - local.tee $9 + local.tee $10 i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26415,57 +26630,57 @@ i32.const 4 i32.const 11072 call $~lib/rt/__newArray - local.tee $10 + local.tee $11 i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $12 i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $13 i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $0 + local.tee $14 i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $1 + local.tee $0 i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $13 + local.tee $2 i32.store offset=300 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 11152 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $7 - local.get $3 + local.get $8 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26478,24 +26693,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 11184 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $8 - local.get $3 + local.get $9 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26508,18 +26723,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $9 local.get $10 + local.get $11 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26532,18 +26747,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store - local.get $11 + local.get $12 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 + local.get $12 local.get $11 - local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26556,18 +26771,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.store - local.get $12 + local.get $13 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $12 - local.get $10 + local.get $13 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26580,18 +26795,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $14 i32.store - local.get $0 + local.get $14 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $14 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $0 - local.get $10 + local.get $14 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26604,18 +26819,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $1 - local.get $10 + local.get $0 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26628,9 +26843,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $2 i32.store - local.get $13 + local.get $2 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer i32.const 24 @@ -26645,10 +26860,9 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $1 + local.tee $0 i32.store offset=8 i32.const 1 global.set $~argumentsLength @@ -26664,7 +26878,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26678,79 +26892,79 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.le_s select - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $7 + local.get $4 + local.get $8 i32.sub - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select - local.tee $3 + local.tee $4 i32.const 2 i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.load offset=4 - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.get $7 + local.get $8 i32.const 2 i32.shl i32.add - local.set $7 + local.set $8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.const 2 i32.shl - local.set $3 - loop $while-continue|05 - local.get $1 - local.get $3 + local.set $4 + loop $while-continue|06 + local.get $0 + local.get $4 i32.lt_u if - local.get $1 - local.get $9 + local.get $0 + local.get $10 i32.add - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.add i32.load - local.tee $10 + local.tee $11 i32.store - local.get $8 - local.get $10 + local.get $9 + local.get $11 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 - br $while-continue|05 + local.set $0 + br $while-continue|06 end end global.get $~lib/memory/__stack_pointer @@ -26762,30 +26976,29 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 11216 i32.store offset=4 - local.get $0 - local.get $8 + local.get $9 i32.const 11216 call $~lib/array/Array#sort local.tee $0 i32.store offset=12 i32.const 1 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $1 - loop $for-loop|023 + local.set $2 + loop $for-loop|014 local.get $1 local.get $2 - i32.gt_s + i32.lt_s if block $for-break0 global.get $~lib/memory/__stack_pointer @@ -26793,64 +27006,60 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#__get - local.tee $7 + local.tee $8 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $8 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $9 + local.get $1 call $~lib/array/Array#__get - local.tee $8 + local.tee $9 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store local.get $9 - local.get $8 i32.load i32.ne if (result i32) i32.const 1 else global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $7 - local.get $8 + local.get $9 i32.load offset=4 i32.ne end if i32.const 0 - local.set $3 + local.set $4 br $for-break0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|023 + local.set $1 + br $for-loop|014 end end end - local.get $3 + local.get $4 i32.eqz if i32.const 0 @@ -26911,7 +27120,6 @@ i32.const 11344 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -26927,7 +27135,6 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -26980,26 +27187,26 @@ i32.const 32 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 local.get $2 - local.get $3 + local.get $4 i32.store local.get $2 - local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 @@ -27017,12 +27224,11 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store i32.const 0 local.set $0 - loop $for-loop|03 + loop $for-loop|015 local.get $0 i32.const 2 i32.lt_s @@ -27030,12 +27236,12 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $3 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.const 1 local.get $0 @@ -27045,24 +27251,23 @@ local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 local.get $2 local.get $0 - local.get $3 + local.get $4 call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $for-loop|015 end end global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store offset=312 global.get $~lib/memory/__stack_pointer @@ -27075,7 +27280,6 @@ i32.const 11376 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27091,7 +27295,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -27110,89 +27313,88 @@ i32.const 16 i32.const 32 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2048 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=12 - local.get $3 local.get $2 + local.get $4 i32.store - local.get $3 local.get $2 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2048 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 512 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $2 i32.store i32.const 0 - local.set $2 - loop $for-loop|04 - local.get $2 + local.set $0 + loop $for-loop|06 + local.get $0 i32.const 512 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27209,14 +27411,14 @@ i32.const 4 i32.const 31 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 i32.const 511 - local.get $2 + local.get $0 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -27224,33 +27426,32 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=8 - local.get $3 local.get $2 - local.get $1 + local.get $0 + local.get $4 call $~lib/array/Array#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|04 + local.set $0 + br $for-loop|06 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $2 i32.store offset=316 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 11408 i32.store offset=8 - local.get $3 + local.get $2 i32.const 11408 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27267,7 +27468,7 @@ i32.const 34 i32.const 11648 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 @@ -27321,9 +27522,9 @@ local.get $0 i32.const 11696 call $~lib/array/Array#sort - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 11696 @@ -27343,44 +27544,44 @@ i32.const 0 i32.store offset=8 i32.const 1 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $~lib/array/Array#get:length - local.set $7 - loop $for-loop|05 - local.get $2 - local.get $7 + local.set $8 + loop $for-loop|07 + local.get $1 + local.get $8 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $3 - local.get $2 + local.get $4 + local.get $1 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $3 - local.get $2 + local.get $4 + local.get $1 call $~lib/array/Array#__get - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $9 + local.get $10 i32.const 11696 i32.load call_indirect (type $0) @@ -27394,11 +27595,11 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|05 + local.set $1 + br $for-loop|07 end end global.get $~lib/memory/__stack_pointer @@ -27424,12 +27625,12 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 (result i32) + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27450,13 +27651,13 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.get $3 + local.get $4 i32.ne if global.get $~lib/memory/__stack_pointer @@ -27464,10 +27665,10 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 end local.get $0 - local.get $1 + local.get $2 i32.eq if global.get $~lib/memory/__stack_pointer @@ -27475,34 +27676,34 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 end i32.const 0 - local.set $2 - loop $for-loop|06 - local.get $2 - local.get $3 + local.set $1 + loop $for-loop|08 + local.get $1 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 local.get $2 + local.get $1 call $~lib/array/Array#__get - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27516,34 +27717,32 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $7 local.get $8 + local.get $9 call $~lib/string/String.__eq i32.eqz - local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 if global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|06 + local.set $1 + br $for-loop|08 end end global.get $~lib/memory/__stack_pointer @@ -27562,7 +27761,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27578,7 +27776,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -27597,34 +27794,34 @@ i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 0 i32.store - local.get $8 + local.get $9 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -27634,60 +27831,57 @@ local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $8 + local.get $9 local.get $1 i32.store - local.get $8 + local.get $9 local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 1600 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 400 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $8 + local.get $9 i32.store i32.const 0 - local.set $2 - loop $for-loop|045 - local.get $2 + local.set $4 + loop $for-loop|019 + local.get $4 i32.const 400 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_sat_f64_s - local.set $9 - i32.const 0 - local.set $0 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -27701,29 +27895,28 @@ i32.const 20 memory.fill i32.const 11568 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store - loop $for-loop|07 - local.get $0 - local.get $9 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $10 global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=12 call $~lib/math/NativeMath.random - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=16 - local.get $5 i32.const 10028 i32.load i32.const 1 @@ -27732,7 +27925,7 @@ f64.mul f64.floor i32.trunc_sat_f64_s - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -27748,7 +27941,7 @@ i32.const 10032 i32.store block $__inlined_func$~lib/string/String#charAt$735 - local.get $11 + local.get $12 i32.const 10028 i32.load i32.const 1 @@ -27760,17 +27953,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $1 + local.set $2 br $__inlined_func$~lib/string/String#charAt$735 end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 - local.get $11 + local.get $2 + local.get $12 i32.const 1 i32.shl i32.const 10032 @@ -27783,19 +27976,18 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $10 - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|07 + local.set $1 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer @@ -27803,28 +27995,27 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $8 - local.get $2 - local.get $3 + local.get $9 + local.get $4 + local.get $0 call $~lib/array/Array#__set - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 - br $for-loop|045 + local.set $4 + br $for-loop|019 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $8 + local.get $9 i32.store offset=328 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store i32.const 1 global.set $~argumentsLength @@ -27846,12 +28037,12 @@ i32.const 11728 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store offset=8 - local.get $8 + local.get $9 i32.const 11728 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27886,7 +28077,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27897,9 +28088,9 @@ i32.const 11856 i32.store i32.const 0 - local.set $2 + local.set $1 i32.const 0 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -27911,7 +28102,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinBooleanArray$19 + block $__inlined_func$~lib/util/string/joinBooleanArray$14 local.get $0 i32.const 1 i32.sub @@ -27924,20 +28115,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $1 - br $__inlined_func$~lib/util/string/joinBooleanArray$19 + local.set $2 + br $__inlined_func$~lib/util/string/joinBooleanArray$14 end - block $folding-inner04 + block $folding-inner07 local.get $0 i32.eqz if i32.const 11792 i32.const 11824 - local.get $7 + local.get $8 i32.load8_u select - local.set $1 - br $folding-inner04 + local.set $2 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -27947,86 +28138,86 @@ i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $9 i32.const 5 i32.add local.get $0 i32.mul i32.const 5 i32.add - local.tee $9 + local.tee $10 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|15 + loop $for-loop|18 local.get $0 - local.get $3 + local.get $4 i32.gt_s if - local.get $3 - local.get $7 + local.get $4 + local.get $8 i32.add i32.load8_u - local.tee $10 + local.tee $11 i32.eqz i32.const 4 i32.add - local.set $11 - local.get $1 + local.set $12 local.get $2 + local.get $1 i32.const 1 i32.shl i32.add i32.const 11792 i32.const 11824 - local.get $10 - select local.get $11 + select + local.get $12 i32.const 1 i32.shl memory.copy - local.get $2 - local.get $11 + local.get $1 + local.get $12 i32.add - local.set $2 - local.get $8 + local.set $1 + local.get $9 if - local.get $1 local.get $2 + local.get $1 i32.const 1 i32.shl i32.add i32.const 11856 - local.get $8 + local.get $9 i32.const 1 i32.shl memory.copy - local.get $2 - local.get $8 + local.get $1 + local.get $9 i32.add - local.set $2 + local.set $1 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|15 + local.set $4 + br $for-loop|18 end end local.get $0 - local.get $7 + local.get $8 i32.add i32.load8_u local.tee $0 i32.eqz i32.const 4 i32.add - local.set $3 - local.get $1 + local.set $4 local.get $2 + local.get $1 i32.const 1 i32.shl i32.add @@ -28034,31 +28225,31 @@ i32.const 11824 local.get $0 select - local.get $3 + local.get $4 i32.const 1 i32.shl memory.copy - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.add local.tee $0 - local.get $9 + local.get $10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/string/String#substring - local.set $1 - br $folding-inner04 + local.set $2 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinBooleanArray$19 + br $__inlined_func$~lib/util/string/joinBooleanArray$14 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28070,12 +28261,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 11888 i32.store offset=8 - local.get $1 + local.get $2 i32.const 11888 call $~lib/string/String.__eq i32.eqz @@ -28217,18 +28408,14 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12288 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinFloatArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -28288,7 +28475,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 @@ -28311,7 +28497,6 @@ i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=340 global.get $~lib/memory/__stack_pointer @@ -28342,7 +28527,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -28361,663 +28545,272 @@ i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=348 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=332 - local.get $1 - call $~lib/array/Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13792 - i32.store offset=8 - local.get $0 - i32.const 13792 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1203 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 4 - i32.const 13888 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=352 - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 2 - i32.const 4 - i32.const 13920 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=356 - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 4 - i32.const 13952 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=360 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 2 - i32.const 4 - i32.const 13984 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=364 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - local.get $0 - call $~lib/array/Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=8 - local.get $0 - i32.const 11568 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1213 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=48 - local.get $1 - call $~lib/array/Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13568 - i32.store offset=8 - local.get $0 - i32.const 13568 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1214 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=48 - local.get $2 - call $~lib/array/Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14032 - i32.store offset=8 - local.get $0 - i32.const 14032 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1215 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=48 - local.get $3 - call $~lib/array/Array#toString + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=332 + local.get $1 + call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14064 + i32.const 13792 i32.store offset=8 local.get $0 - i32.const 14064 + i32.const 13792 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1216 + i32.const 1203 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 38 - i32.const 14112 + i32.const 2 + i32.const 4 + i32.const 13888 call $~lib/rt/__newArray - local.set $0 + local.tee $0 + i32.store offset=352 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 13920 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=356 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 4 + i32.const 13952 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=360 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 4 + i32.const 13984 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=364 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=48 local.get $0 - call $~lib/array/Array#toString + call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14144 + i32.const 11568 i32.store offset=8 local.get $0 - i32.const 14144 + i32.const 11568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1218 + i32.const 1213 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 0 - i32.const 38 - i32.const 14176 - call $~lib/rt/__newArray - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=48 - local.get $0 - call $~lib/array/Array#toString + local.get $1 + call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14208 + i32.const 13568 i32.store offset=8 local.get $0 - i32.const 14208 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1219 + i32.const 1214 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 1 - i32.const 11 - i32.const 14256 - call $~lib/rt/__newArray - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $2 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load offset=4 - local.set $3 global.get $~lib/memory/__stack_pointer + i32.const 14032 + i32.store offset=8 local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - i32.const 0 - local.set $0 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$20 - local.get $2 - i32.const 1 - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$20 - end - block $folding-inner05 - local.get $7 - i32.eqz - if - local.get $3 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $1 - br $folding-inner05 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 10 - i32.add - local.get $7 - i32.mul - i32.const 10 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - loop $for-loop|08 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $8 - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $8 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|08 - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner05 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$20 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 14032 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1215 + 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 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=48 + local.get $4 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14288 + i32.const 14064 i32.store offset=8 - local.get $1 - i32.const 14288 + local.get $0 + i32.const 14064 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1220 + i32.const 1216 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 1 - i32.const 39 - i32.const 14336 + i32.const 3 + i32.const 0 + i32.const 38 + i32.const 14112 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $0 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer + i32.const 14144 + i32.store offset=8 + local.get $0 + i32.const 14144 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1218 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 i32.const 0 - i32.store + i32.const 38 + i32.const 14176 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=48 local.get $0 - i32.load offset=4 - local.set $3 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load offset=12 - local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - i32.const 0 + i32.const 14208 + i32.store offset=8 + local.get $0 + i32.const 14208 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1219 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + i32.const 1 + i32.const 11 + i32.const 14256 + call $~lib/rt/__newArray local.set $0 - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=48 + local.get $0 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$21 - local.get $2 - i32.const 1 - i32.sub - local.tee $7 + i32.const 14288 + i32.store offset=8 + local.get $0 + i32.const 14288 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$21 - end - block $folding-inner06 - local.get $7 - i32.eqz - if - local.get $3 - i32.load16_s - call $~lib/util/number/itoa32 - local.set $1 - br $folding-inner06 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 11 - i32.add - local.get $7 - i32.mul - i32.const 11 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - loop $for-loop|09 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $8 - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $8 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|09 - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner06 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$21 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1552 + i32.const 1220 + i32.const 3 + call $~lib/builtins/abort + unreachable end + i32.const 2 + i32.const 1 + i32.const 39 + i32.const 14336 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=48 + local.get $0 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14368 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14368 call $~lib/string/String.__eq i32.eqz @@ -29101,18 +28894,14 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinIntegerArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -29183,7 +28972,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -29195,8 +28984,6 @@ i32.store i32.const 0 local.set $0 - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29208,11 +28995,11 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$22 + block $__inlined_func$~lib/util/string/joinIntegerArray$15 local.get $2 i32.const 1 i32.sub - local.tee $7 + local.tee $4 i32.const 0 i32.lt_s if @@ -29221,18 +29008,18 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$22 + local.set $2 + br $__inlined_func$~lib/util/string/joinIntegerArray$15 end - block $folding-inner07 - local.get $7 + block $folding-inner09 + local.get $4 i32.eqz if block $__inlined_func$~lib/util/number/itoa64$2 (result i32) - local.get $3 + local.get $1 i64.load i64.extend32_s - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -29244,7 +29031,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $5 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -29255,65 +29042,65 @@ br $__inlined_func$~lib/util/number/itoa64$2 end i64.const 0 - local.get $4 + local.get $5 i64.sub - local.get $4 - local.get $4 + local.get $5 + local.get $5 i64.const 63 i64.shr_u i32.wrap_i64 i32.const 1 i32.shl - local.tee $1 + local.tee $0 select - local.tee $4 + local.tee $5 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.wrap_i64 - local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -29322,89 +29109,89 @@ local.tee $3 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store local.get $0 - local.get $1 - i32.add local.get $2 + i32.add + local.get $1 local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $4 + local.get $5 i64.const 10000000000 i64.ge_u i32.add else - local.get $4 + local.get $5 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $4 + local.get $5 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $4 + local.get $5 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $4 + local.get $5 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $4 + local.get $5 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store local.get $0 - local.get $1 - i32.add - local.get $4 local.get $2 + i32.add + local.get $5 + local.get $1 call $~lib/util/number/utoa64_dec_lut end - local.get $1 + local.get $0 if - local.get $0 + local.get $2 i32.const 45 i32.store16 end @@ -29412,10 +29199,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 end - local.set $1 - br $folding-inner07 + local.set $2 + br $folding-inner09 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -29428,7 +29215,7 @@ local.tee $8 i32.const 21 i32.add - local.get $7 + local.get $4 i32.mul i32.const 21 i32.add @@ -29440,8 +29227,8 @@ local.tee $2 i32.store offset=4 loop $for-loop|010 - local.get $1 - local.get $7 + local.get $3 + local.get $4 i32.lt_s if local.get $2 @@ -29449,8 +29236,8 @@ i32.const 1 i32.shl i32.add - local.get $3 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -29476,20 +29263,21 @@ i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|010 end end + local.get $9 local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $3 - local.get $7 + local.get $1 + local.get $4 i32.const 3 i32.shl i32.add @@ -29498,8 +29286,7 @@ local.get $0 i32.add local.tee $0 - local.get $9 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $2 @@ -29507,16 +29294,14 @@ local.get $2 local.get $0 call $~lib/string/String#substring - local.set $1 - br $folding-inner07 + local.set $2 + br $folding-inner09 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$22 + br $__inlined_func$~lib/util/string/joinIntegerArray$15 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29532,12 +29317,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 14704 i32.store offset=8 - local.get $1 + local.get $2 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -29612,7 +29397,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -29637,7 +29421,6 @@ i32.const 15136 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=376 global.get $~lib/memory/__stack_pointer @@ -29676,18 +29459,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29700,8 +29483,8 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 - local.get $0 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -29713,14 +29496,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + local.set $2 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -29734,15 +29517,15 @@ else i32.const 11568 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 end i32.const 11568 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -29753,15 +29536,15 @@ i32.load i32.const 1 i32.shr_u - local.set $7 + local.set $4 loop $for-loop|011 + local.get $0 local.get $1 - local.get $3 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $0 i32.const 2 i32.shl i32.add @@ -29771,10 +29554,9 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $9 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=16 @@ -29784,65 +29566,62 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $9 - local.get $0 + local.get $2 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|011 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29859,12 +29638,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 15168 i32.store offset=8 - local.get $0 + local.get $2 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -29877,7 +29656,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -29902,7 +29680,6 @@ i32.const 15248 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=384 global.get $~lib/memory/__stack_pointer @@ -29941,18 +29718,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29965,8 +29742,8 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 - local.get $0 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -29978,14 +29755,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + local.set $2 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -29999,15 +29776,15 @@ else i32.const 11568 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 end i32.const 11568 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -30018,15 +29795,15 @@ i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|012 + local.set $4 + loop $for-loop|016 + local.get $0 local.get $1 - local.get $3 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $0 i32.const 2 i32.shl i32.add @@ -30036,10 +29813,9 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $9 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=16 @@ -30049,65 +29825,62 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $9 - local.get $0 + local.get $2 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|012 + local.set $0 + br $for-loop|016 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30124,12 +29897,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 15168 i32.store offset=8 - local.get $0 + local.get $2 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -30142,7 +29915,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -30171,7 +29943,6 @@ i32.const 0 local.get $2 call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=396 global.get $~lib/memory/__stack_pointer @@ -30210,18 +29981,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -30234,8 +30005,8 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 - local.get $0 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -30247,14 +30018,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + local.set $2 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -30268,15 +30039,15 @@ else i32.const 11568 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 end i32.const 11568 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -30287,15 +30058,15 @@ i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|013 + local.set $4 + loop $for-loop|017 + local.get $0 local.get $1 - local.get $3 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $0 i32.const 2 i32.shl i32.add @@ -30305,10 +30076,9 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $9 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=16 @@ -30318,65 +30088,62 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $9 - local.get $0 + local.get $2 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|013 + local.set $0 + br $for-loop|017 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30393,12 +30160,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 13568 i32.store offset=8 - local.get $0 + local.get $2 i32.const 13568 call $~lib/string/String.__eq i32.eqz @@ -30411,7 +30178,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -30452,7 +30218,6 @@ i32.const 15408 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=404 global.get $~lib/memory/__stack_pointer @@ -30461,12 +30226,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $0 + local.tee $1 i32.store offset=408 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length i32.const 10 i32.ne @@ -30479,19 +30244,19 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|7 - local.get $1 + local.get $0 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -30501,15 +30266,14 @@ 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|7 end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -30550,11 +30314,9 @@ i32.const 15760 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=416 global.get $~lib/memory/__stack_pointer - local.set $7 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30577,145 +30339,144 @@ i32.store local.get $1 i32.load offset=4 - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $9 - i32.const 0 - local.set $2 + local.set $8 i32.const 0 local.set $1 - loop $for-loop|056 - local.get $1 - local.get $9 + i32.const 0 + local.set $0 + loop $for-loop|023 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + local.get $3 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.tee $0 + local.tee $4 if (result i32) - local.get $0 + local.get $4 i32.load offset=12 else i32.const 0 end - local.get $2 - i32.add - local.set $2 local.get $1 - i32.const 1 i32.add local.set $1 - br $for-loop|056 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|023 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.shl local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 34 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=8 - local.get $11 - local.get $2 + local.get $10 + local.get $1 i32.store offset=12 - local.get $11 + local.get $10 local.get $0 i32.store offset=8 - local.get $11 local.get $10 + local.get $9 i32.store offset=4 - local.get $11 local.get $10 + local.get $9 i32.store - local.get $11 local.get $10 + local.get $9 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 local.set $0 i32.const 0 - local.set $3 - loop $for-loop|16 - local.get $3 - local.get $9 + local.set $4 + loop $for-loop|124 + local.get $4 + local.get $8 i32.lt_s if - local.get $8 local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $11 if local.get $0 - local.get $10 + local.get $9 i32.add - local.get $1 + local.get $11 i32.load offset=4 - local.get $1 + local.get $11 i32.load offset=12 i32.const 2 i32.shl - local.tee $1 + local.tee $11 memory.copy local.get $0 - local.get $1 + local.get $11 i32.add local.set $0 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|16 + local.set $4 + br $for-loop|124 end end i32.const 0 - local.set $1 - loop $for-loop|27 + local.set $0 + loop $for-loop|225 + local.get $0 local.get $1 - local.get $2 i32.lt_s if - local.get $10 - local.get $10 - local.get $1 + local.get $9 + local.get $9 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|27 + local.set $0 + br $for-loop|225 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $11 + local.get $10 i32.store offset=420 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -30723,12 +30484,12 @@ i32.const 34 i32.const 15792 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=424 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store - local.get $11 + local.get $10 call $~lib/array/Array#get:length i32.const 8 i32.ne @@ -30741,37 +30502,37 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 loop $for-loop|8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length - local.get $2 + local.get $0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store offset=48 - local.get $11 - local.get $2 + local.get $10 + local.get $0 call $~lib/array/Array#__get - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=48 + local.get $1 local.get $0 - local.get $2 call $~lib/array/Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 call $~lib/string/String.__eq i32.eqz @@ -30783,15 +30544,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|8 end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -30816,7 +30576,6 @@ i32.const 15888 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=432 global.get $~lib/memory/__stack_pointer @@ -30839,7 +30598,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -30864,11 +30622,9 @@ i32.const 15952 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=440 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -30898,21 +30654,21 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store - local.get $7 + local.get $3 i32.load offset=4 local.set $8 i32.const 0 - local.set $3 - loop $for-loop|067 + local.set $4 + loop $for-loop|026 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $4 local.get $2 local.get $1 i32.load offset=12 @@ -30927,7 +30683,7 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 2 i32.shl local.tee $9 @@ -30944,7 +30700,7 @@ global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $10 - local.get $3 + local.get $4 local.get $1 i32.const 15984 i32.load @@ -30956,15 +30712,15 @@ i32.add local.get $10 i32.store - local.get $7 + local.get $3 local.get $10 i32.const 1 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|067 + local.set $4 + br $for-loop|026 end end global.get $~lib/memory/__stack_pointer @@ -30972,10 +30728,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store - local.get $0 - local.get $7 + local.get $3 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 i32.store offset=444 @@ -31070,12 +30825,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|013 + loop $while-continue|028 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|013 + br $while-continue|028 end end end @@ -31134,7 +30889,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $4 local.get $0 local.get $1 i32.shl @@ -31149,7 +30903,6 @@ local.get $5 memory.copy end - local.get $4 local.get $1 i32.store i32.const 16 diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 79a69c4efd..d7d3749387 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1042,7 +1042,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1075,7 +1074,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1907,7 +1905,6 @@ i32.const 1456 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1929,7 +1926,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -2185,7 +2181,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2216,7 +2211,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2231,7 +2225,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 1 call $~lib/rt/itcms/__new @@ -2239,7 +2232,6 @@ i32.const 1632 i64.load align=1 i64.store align=1 - local.get $0 local.get $2 i32.store i32.const 16 diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index 96d4a1fb00..427669238d 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1050,7 +1050,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1083,7 +1082,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1805,20 +1803,16 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load i32.sub - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/dataview/DataView#getFloat32 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) (local $3 f32) @@ -1893,12 +1887,10 @@ i32.or f32.reinterpret_i32 end - 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/dataview/DataView#getFloat64 (param $0 i32) (param $1 i32) (result f64) (local $2 i64) @@ -1977,12 +1969,10 @@ i64.rotr f64.reinterpret_i64 end - 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/dataview/DataView#getInt8 (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2026,12 +2016,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/dataview/DataView#getInt16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2289,12 +2277,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/dataview/DataView#getUint16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3121,7 +3107,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -3198,7 +3183,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -3280,14 +3264,12 @@ local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $2 local.get $3 local.get $1 @@ -5186,7 +5168,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -5229,7 +5210,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 2fc2eff478..9dc722dd42 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -1433,7 +1433,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1466,7 +1465,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -3673,12 +3671,10 @@ local.get $0 local.get $1 call $~lib/util/string/joinStringArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/date/Date#toISOString (param $0 i32) (result i32) (local $1 i32) @@ -3704,7 +3700,6 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 local.get $0 i32.load local.tee $1 @@ -3830,7 +3825,6 @@ call $~lib/date/stringify local.set $1 end - local.get $2 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -4013,12 +4007,10 @@ i32.store offset=4 i32.const 3616 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const -64 i32.sub global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 41264 @@ -4100,12 +4092,10 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -4141,7 +4131,6 @@ i32.const 52 memory.fill global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 28 i32.const 5 call $~lib/rt/itcms/__new @@ -4149,11 +4138,9 @@ i32.const 4640 i32.const 28 memory.copy - local.get $1 local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 48 i32.const 5 call $~lib/rt/itcms/__new @@ -4161,7 +4148,6 @@ i32.const 5072 i32.const 48 memory.copy - local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -4374,12 +4360,10 @@ i32.store offset=48 i32.const 5152 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 52 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) (local $1 i32) @@ -4489,12 +4473,10 @@ i32.store offset=28 i32.const 5456 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 32 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/date/Date#toUTCString (param $0 i32) (result i32) (local $1 i32) @@ -4524,7 +4506,6 @@ i32.const 76 memory.fill global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 28 i32.const 5 call $~lib/rt/itcms/__new @@ -4532,11 +4513,9 @@ i32.const 5824 i32.const 28 memory.copy - local.get $1 local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 48 i32.const 5 call $~lib/rt/itcms/__new @@ -4544,7 +4523,6 @@ i32.const 6256 i32.const 48 memory.copy - local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -4835,12 +4813,10 @@ i32.store offset=72 i32.const 6368 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 76 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5114,12 +5090,10 @@ local.get $1 local.get $2 call $~lib/string/String#substring - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/strtol (param $0 i32) (result i32) (local $1 i32) @@ -6010,12 +5984,10 @@ local.get $1 local.get $2 call $~lib/string/String#split - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -6041,12 +6013,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -6506,7 +6476,6 @@ call $~lib/util/string/strtol local.set $6 global.get $~lib/memory/__stack_pointer - local.set $9 block $__inlined_func$~lib/string/String#substr$387 (result i32) global.get $~lib/memory/__stack_pointer local.get $2 @@ -6714,7 +6683,6 @@ local.get $2 local.set $0 end - local.get $9 local.get $0 i32.store offset=52 global.get $~lib/memory/__stack_pointer @@ -6764,7 +6732,6 @@ i32.store local.get $1 call $~lib/util/string/strtol - local.set $2 i32.const 1 local.set $1 global.get $~lib/memory/__stack_pointer @@ -6816,7 +6783,6 @@ i32.const 1 end local.set $0 - local.get $2 local.get $1 local.get $0 local.get $3 @@ -6828,12 +6794,10 @@ i64.extend_i32_s i64.sub call $~lib/date/Date#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 76 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 41264 diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 29d20dcd9f..01aae0315a 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -1063,7 +1063,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1096,7 +1095,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1807,11 +1805,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -1916,12 +1912,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -2016,7 +2010,6 @@ local.get $6 local.get $1 local.get $8 - i32.extend8_s i32.const -1028477379 i32.mul i32.const 374761394 @@ -2189,11 +2182,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -2378,12 +2369,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#get:size" (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2409,12 +2398,10 @@ i32.store local.get $0 i32.load offset=20 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -3083,12 +3070,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3134,12 +3119,10 @@ i32.shl i32.add i32.load - local.set $0 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" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3216,11 +3199,9 @@ i32.store local.get $0 i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $3 local.get $0 i32.load offset=4 @@ -3281,11 +3262,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -3298,11 +3277,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -3406,7 +3383,6 @@ local.get $6 local.get $7 local.get $11 - i32.extend8_s i32.const -1028477379 i32.mul i32.const 374761394 @@ -3614,11 +3590,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -3929,11 +3903,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -4163,11 +4135,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -4294,7 +4264,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4373,7 +4342,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $1 i32.store loop $for-loop|0 @@ -4564,7 +4532,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -4746,7 +4713,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -4758,7 +4724,6 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4837,7 +4802,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -5245,12 +5209,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -5518,11 +5480,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -5708,12 +5668,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -5791,11 +5749,9 @@ i32.store local.get $0 i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $3 local.get $0 i32.load offset=4 @@ -5856,11 +5812,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -5873,11 +5827,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -6275,11 +6227,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -6327,7 +6277,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -6406,7 +6355,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $1 i32.store loop $for-loop|0 @@ -6597,7 +6545,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -6779,7 +6726,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -6791,7 +6737,6 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -6870,7 +6815,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -7246,11 +7190,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -7355,12 +7297,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -7455,7 +7395,6 @@ local.get $6 local.get $1 local.get $8 - i32.extend16_s i32.const -1028477379 i32.mul i32.const 374761395 @@ -7628,11 +7567,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -7817,12 +7754,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -8004,11 +7939,9 @@ i32.store local.get $0 i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $3 local.get $0 i32.load offset=4 @@ -8069,11 +8002,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -8086,11 +8017,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -8194,7 +8123,6 @@ local.get $6 local.get $7 local.get $11 - i32.extend16_s i32.const -1028477379 i32.mul i32.const 374761395 @@ -8488,11 +8416,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -8540,7 +8466,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8619,7 +8544,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $1 i32.store loop $for-loop|0 @@ -8810,7 +8734,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -8994,7 +8917,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -9006,7 +8928,6 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -9085,7 +9006,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -9495,12 +9415,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -9768,11 +9686,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -9958,12 +9874,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -10041,11 +9955,9 @@ i32.store local.get $0 i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $3 local.get $0 i32.load offset=4 @@ -10106,11 +10018,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -10123,11 +10033,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -10525,11 +10433,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -10577,7 +10483,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -10656,7 +10561,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $1 i32.store loop $for-loop|0 @@ -10847,7 +10751,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -11031,7 +10934,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -11043,7 +10945,6 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11122,7 +11023,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -11530,12 +11430,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -11602,12 +11500,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) @@ -11719,11 +11615,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -11961,7 +11855,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -12040,7 +11933,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -12395,11 +12287,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -12501,12 +12391,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -12772,11 +12660,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -12960,12 +12846,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -13038,11 +12922,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -13055,11 +12937,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -13455,11 +13335,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -13507,7 +13385,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -13586,7 +13463,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $1 i32.store loop $for-loop|0 @@ -13777,7 +13653,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -13961,7 +13836,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -13973,7 +13847,6 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14052,7 +13925,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -14430,11 +14302,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -14548,12 +14418,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -14844,11 +14712,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -15044,12 +14910,10 @@ end local.get $0 i32.load offset=8 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) @@ -15289,11 +15153,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $1 i32.wrap_i64 i32.const -1028477379 @@ -15392,11 +15254,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -15409,11 +15269,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -15834,11 +15692,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -15966,7 +15822,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -16045,7 +15900,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $1 i32.store loop $for-loop|0 @@ -16241,7 +16095,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -16423,7 +16276,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -16435,7 +16287,6 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -16514,7 +16365,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -16897,11 +16747,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -17015,12 +16863,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -17311,11 +17157,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -17511,12 +17355,10 @@ end local.get $0 i32.load offset=8 - local.set $0 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" (param $0 i32) (param $1 i64) (param $2 i64) (local $3 i32) @@ -17563,11 +17405,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $1 i32.wrap_i64 i32.const -1028477379 @@ -17666,11 +17506,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -17683,11 +17521,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -18108,11 +17944,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -18161,7 +17995,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -18240,7 +18073,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $1 i32.store loop $for-loop|0 @@ -18436,7 +18268,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -18618,7 +18449,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -18630,7 +18460,6 @@ local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -18709,7 +18538,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -19092,11 +18920,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -19199,12 +19025,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -19473,11 +19297,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -19662,12 +19484,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#keys" (param $0 i32) (result i32) (local $1 i32) @@ -19998,11 +19818,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -20015,11 +19833,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -20418,11 +20234,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -20469,7 +20283,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20548,7 +20361,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store loop $for-loop|0 @@ -20760,7 +20572,6 @@ local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20839,7 +20650,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -21220,11 +21030,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -21341,12 +21149,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -21643,11 +21449,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.eq @@ -21846,12 +21650,10 @@ end local.get $0 i32.load offset=8 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#keys" (param $0 i32) (result i32) (local $1 i32) @@ -22155,11 +21957,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $1 i64.reinterpret_f64 local.tee $5 @@ -22260,11 +22060,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -22277,11 +22075,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -22707,11 +22503,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.const 3 @@ -22758,7 +22552,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22837,7 +22630,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store loop $for-loop|0 @@ -23049,7 +22841,6 @@ local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23128,7 +22919,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat index 9e691da3f0..8dc86c5333 100644 --- a/tests/compiler/std/math.release.wat +++ b/tests/compiler/std/math.release.wat @@ -3894,10 +3894,8 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 local.get $3 br $~lib/math/rempio2|inlined.0 @@ -5872,10 +5870,8 @@ i64.gt_u if local.get $4 - local.set $6 local.get $5 local.set $4 - local.get $6 local.set $5 end local.get $5 @@ -6039,10 +6035,8 @@ i32.gt_u if local.get $4 - local.set $6 local.get $5 local.set $4 - local.get $6 local.set $5 end local.get $4 @@ -9305,10 +9299,8 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 local.get $3 br $~lib/math/rempio2|inlined.1 @@ -10471,10 +10463,8 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 br $~lib/math/rempio2|inlined.2 end @@ -11364,10 +11354,8 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 local.get $3 br $~lib/math/rempio2|inlined.3 diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index abc198a4f5..3e9a97e4fe 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1032,7 +1032,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1064,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 798cf087d5..1813e83bcf 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -1097,7 +1097,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1130,7 +1129,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2102,11 +2100,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.eq @@ -2116,23 +2112,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.eq else i32.const 0 end - 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/operator-overloading/Tester.notEquals (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2159,11 +2151,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.ne @@ -2173,23 +2163,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.ne else i32.const 0 end - 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/operator-overloading/TesterInlineStatic#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2517,12 +2503,10 @@ local.get $0 i32.load offset=4 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:std/operator-overloading (local $0 i32) @@ -2605,36 +2589,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.add - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/a global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a @@ -2697,36 +2673,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.sub - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/s global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/s @@ -2787,36 +2755,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.mul - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/m global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/m @@ -2879,36 +2839,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.div_s - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/d global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/d @@ -2971,36 +2923,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.rem_s - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/f global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/f @@ -3060,36 +3004,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load call $~lib/math/ipow32 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/p global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/p @@ -3152,36 +3088,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.and - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/n global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/n @@ -3244,36 +3172,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.or - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/o global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/o @@ -3336,36 +3256,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.xor - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/x global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/x @@ -3532,11 +3444,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.gt_s @@ -3546,23 +3456,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.gt_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/gt global.get $std/operator-overloading/gt i32.const 1 @@ -3607,11 +3513,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.ge_s @@ -3621,23 +3525,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.ge_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/gte global.get $std/operator-overloading/gte i32.const 1 @@ -3682,11 +3582,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.lt_s @@ -3696,23 +3594,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.lt_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/le global.get $std/operator-overloading/le i32.const 1 @@ -3757,11 +3651,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.le_s @@ -3771,23 +3663,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.le_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/leq global.get $std/operator-overloading/leq i32.const 1 @@ -3826,22 +3714,18 @@ i32.load i32.const 3 i32.shr_s - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.shr_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/sres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres @@ -3898,22 +3782,18 @@ i32.load i32.const 3 i32.shr_u - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.shr_u call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/ures global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ures @@ -3970,22 +3850,18 @@ i32.load i32.const 3 i32.shl - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.shl call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/sres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres @@ -4040,20 +3916,16 @@ i32.store local.get $0 i32.load - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/pres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pres @@ -4061,12 +3933,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pos local.tee $1 i32.store - local.get $0 local.get $1 i32.load i32.eq @@ -4077,12 +3947,10 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pos local.tee $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.eq @@ -4124,22 +3992,18 @@ local.get $0 i32.load i32.sub - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 i32.const 0 local.get $0 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/nres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/nres @@ -4147,12 +4011,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/neg local.tee $1 i32.store - local.get $0 i32.const 0 local.get $1 i32.load @@ -4165,12 +4027,10 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/neg local.tee $1 i32.store - local.get $0 i32.const 0 local.get $1 i32.load offset=4 @@ -4214,22 +4074,18 @@ i32.load i32.const -1 i32.xor - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const -1 i32.xor call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/res global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/res @@ -4237,12 +4093,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/not local.tee $1 i32.store - local.get $0 local.get $1 i32.load i32.const -1 @@ -4255,12 +4109,10 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/not local.tee $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.const -1 @@ -4311,12 +4163,10 @@ local.get $0 i32.load offset=4 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz global.set $std/operator-overloading/bres global.get $~lib/memory/__stack_pointer @@ -4536,22 +4386,18 @@ i32.load i32.const 1 i32.add - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/Tester#constructor - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 global.set $std/operator-overloading/incdec local.get $0 global.set $std/operator-overloading/tmp @@ -4636,22 +4482,18 @@ i32.load i32.const 1 i32.sub - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 1 i32.sub call $std/operator-overloading/Tester#constructor - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 global.set $std/operator-overloading/incdec local.get $0 global.set $std/operator-overloading/tmp @@ -4729,11 +4571,9 @@ i32.load i32.const 1 i32.add - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 1 @@ -4757,26 +4597,20 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.add - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.add @@ -4826,11 +4660,9 @@ i32.load i32.const 1 i32.add - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 1 @@ -4854,26 +4686,20 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.add - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.add diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index c9ea6759a7..455f22dbab 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -1054,7 +1054,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1087,7 +1086,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1888,11 +1886,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -1997,12 +1993,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -2093,7 +2087,6 @@ local.get $5 local.get $1 local.get $8 - i32.extend8_s i32.const -1028477379 i32.mul i32.const 374761394 @@ -2259,11 +2252,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -2313,7 +2304,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -2327,7 +2317,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -2401,12 +2390,10 @@ i32.store local.get $0 i32.load offset=20 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -2673,12 +2660,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2722,12 +2707,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -2840,11 +2823,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -3101,7 +3082,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3283,7 +3263,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -3686,12 +3665,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -3948,11 +3925,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -4002,7 +3977,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -4016,7 +3990,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -4108,12 +4081,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -4227,11 +4198,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -4409,7 +4378,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -4591,7 +4559,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -4962,11 +4929,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -5071,12 +5036,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -5167,7 +5130,6 @@ local.get $5 local.get $1 local.get $8 - i32.extend16_s i32.const -1028477379 i32.mul i32.const 374761395 @@ -5333,11 +5295,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -5387,7 +5347,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -5401,7 +5360,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -5600,12 +5558,10 @@ i32.shl i32.add i32.load16_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -5718,11 +5674,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -5900,7 +5854,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -6084,7 +6037,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -6487,12 +6439,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -6749,11 +6699,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -6803,7 +6751,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6817,7 +6764,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -6911,12 +6857,10 @@ i32.shl i32.add i32.load16_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -7030,11 +6974,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -7212,7 +7154,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -7396,7 +7337,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -7767,11 +7707,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -7873,12 +7811,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -8133,11 +8069,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -8187,7 +8121,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -8201,7 +8134,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -8400,12 +8332,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -8517,11 +8447,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -8699,7 +8627,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -8883,7 +8810,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -9254,11 +9180,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -9360,12 +9284,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -9620,11 +9542,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -9674,7 +9594,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -9688,7 +9607,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -9782,12 +9700,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -9899,11 +9815,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -10081,7 +9995,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -10265,7 +10178,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -10636,11 +10548,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -10754,12 +10664,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -11039,11 +10947,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -11093,7 +10999,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -11107,7 +11012,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 4 i32.shl @@ -11307,12 +11211,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) @@ -11437,11 +11339,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -11700,7 +11600,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -11882,7 +11781,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -12253,11 +12151,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -12371,12 +12267,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -12656,11 +12550,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -12710,7 +12602,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -12724,7 +12615,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 4 i32.shl @@ -12819,12 +12709,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) @@ -12949,11 +12837,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -13133,7 +13019,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -13315,7 +13200,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -13686,11 +13570,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -13793,12 +13675,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -14056,11 +13936,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -14110,7 +13988,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -14124,7 +14001,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 3 i32.shl @@ -14475,12 +14351,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (local $2 i32) @@ -14594,11 +14468,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -15144,11 +15016,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -15265,12 +15135,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -15556,11 +15424,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.eq @@ -15610,7 +15476,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -15624,7 +15489,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $4 local.get $5 i32.const 4 i32.shl @@ -15975,12 +15839,10 @@ i32.shl i32.add f64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) (local $2 i64) @@ -16108,11 +15970,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.const 3 diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 78fadac341..23f01fa406 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -1066,7 +1066,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1099,7 +1098,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1332,12 +1330,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1383,12 +1379,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -1921,12 +1915,10 @@ i32.shl i32.add i64.load - 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#__get (param $0 i32) (result f32) (local $1 f32) @@ -1973,12 +1965,10 @@ i32.shl i32.add f32.load - 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#__get (param $0 i32) (result f64) (local $1 f64) @@ -2025,12 +2015,10 @@ i32.shl i32.add f64.load - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $start:std/static-array global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 5c505b09e8..4fde8c58d3 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -994,7 +994,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -1027,7 +1026,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -1970,7 +1968,6 @@ i32.shl i32.add i32.load - local.set $4 local.get $0 local.get $1 i32.const 1 @@ -1980,11 +1977,8 @@ i32.shl i32.add i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 3872 i32.load call_indirect (type $0) @@ -2003,14 +1997,10 @@ i32.add local.tee $4 i32.load offset=4 - local.set $5 local.get $4 i32.load - local.set $4 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $4 i32.const 3872 i32.load call_indirect (type $0) @@ -2078,14 +2068,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $4 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $1 i32.const 3872 i32.load call_indirect (type $0) @@ -2473,12 +2459,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer @@ -2551,7 +2535,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2580,7 +2563,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2621,12 +2603,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray.fromArray (param $0 i32) (result i32) (local $1 i32) @@ -2721,12 +2701,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2989,12 +2967,10 @@ local.get $1 local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3727,12 +3703,10 @@ local.get $1 local.get $2 call $~lib/staticarray/StaticArray#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3989,12 +3963,10 @@ local.get $2 local.get $1 call $~lib/util/string/joinStringArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#filter (param $0 i32) (result i32) (local $1 i32) @@ -4290,13 +4262,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -4366,13 +4336,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -4443,13 +4411,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -4520,13 +4486,11 @@ i32.shl i32.add i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $3 local.get $2 local.get $0 local.get $1 @@ -5317,7 +5281,6 @@ i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5339,7 +5302,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -5475,7 +5437,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 0 i32.const 7 i32.const 1824 @@ -5484,7 +5445,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 call $~lib/staticarray/StaticArray.fromArray local.tee $0 @@ -5507,7 +5467,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 4 call $~lib/rt/itcms/__new @@ -5515,14 +5474,12 @@ i32.const 1856 i64.load align=1 i64.store align=1 - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new @@ -5533,7 +5490,6 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=24 - local.get $0 local.get $1 local.get $5 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> @@ -5562,7 +5518,6 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 0 i32.const 4 call $~lib/rt/itcms/__new @@ -5573,7 +5528,6 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=24 - local.get $0 local.get $1 local.get $5 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> @@ -5588,11 +5542,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 20 i32.sub @@ -5609,7 +5561,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 8 call $~lib/rt/itcms/__new @@ -5617,11 +5568,9 @@ i32.const 2016 i64.load align=1 i64.store align=1 - local.get $0 local.get $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -5694,7 +5643,7 @@ call $~lib/rt/itcms/__new local.tee $8 i32.store offset=4 - loop $for-loop|011 + loop $for-loop|03 local.get $0 local.get $2 i32.gt_u @@ -5716,7 +5665,7 @@ i32.const 4 i32.add local.set $2 - br $for-loop|011 + br $for-loop|03 end end local.get $0 @@ -5729,7 +5678,7 @@ local.set $2 i32.const 0 local.set $0 - loop $for-loop|112 + loop $for-loop|14 local.get $0 local.get $2 i32.lt_u @@ -5751,14 +5700,13 @@ i32.const 4 i32.add local.set $0 - br $for-loop|112 + br $for-loop|14 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer @@ -5781,7 +5729,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new @@ -5789,7 +5736,6 @@ i32.const 2288 i32.const 20 memory.copy - local.get $0 local.get $2 i32.store offset=40 global.get $~lib/memory/__stack_pointer @@ -5812,11 +5758,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $1 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $1 local.get $2 i32.const 20 i32.sub @@ -5985,11 +5929,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 i32.const 20 i32.sub @@ -6026,11 +5968,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 i32.const 20 i32.sub @@ -6211,7 +6151,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new @@ -6219,14 +6158,12 @@ i32.const 2464 i32.const 20 memory.copy - local.get $0 local.get $1 i32.store offset=52 global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 0 i32.const 9 i32.const 2512 @@ -6235,7 +6172,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=24 - local.get $0 local.get $1 local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> @@ -6246,11 +6182,9 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 20 i32.sub @@ -6270,7 +6204,6 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 1 i32.const 9 i32.const 2576 @@ -6279,7 +6212,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=24 - local.get $0 local.get $1 local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> @@ -6290,11 +6222,9 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 20 i32.sub @@ -6313,7 +6243,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new @@ -6321,7 +6250,6 @@ i32.const 2608 i32.const 20 memory.copy - local.get $0 local.get $1 i32.store offset=60 global.get $~lib/memory/__stack_pointer @@ -6530,7 +6458,7 @@ i32.const 0 br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end - loop $while-continue|026 + loop $while-continue|030 local.get $1 local.get $2 i32.lt_s @@ -6556,7 +6484,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|026 + br $while-continue|030 end end global.get $~lib/memory/__stack_pointer @@ -6575,7 +6503,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -6583,7 +6510,6 @@ i32.const 2720 i32.const 12 memory.copy - local.get $0 local.get $1 i32.store offset=64 global.get $~lib/memory/__stack_pointer @@ -6668,7 +6594,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new @@ -6676,7 +6601,6 @@ i32.const 2752 i32.const 16 memory.copy - local.get $0 local.get $1 i32.store offset=68 global.get $~lib/memory/__stack_pointer @@ -6780,7 +6704,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new @@ -6788,7 +6711,6 @@ i32.const 2896 i32.const 12 memory.copy - local.get $0 local.get $1 i32.store offset=72 global.get $~lib/memory/__stack_pointer @@ -6960,7 +6882,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 4 call $~lib/rt/itcms/__new @@ -6968,7 +6889,6 @@ i32.const 3264 i64.load align=1 i64.store align=1 - local.get $0 local.get $1 i32.store offset=80 global.get $~lib/memory/__stack_pointer @@ -7017,7 +6937,7 @@ i32.gt_u select local.set $0 - loop $for-loop|026 + loop $for-loop|032 local.get $0 local.get $2 i32.lt_s @@ -7033,7 +6953,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|026 + br $for-loop|032 end end global.get $~lib/memory/__stack_pointer @@ -7075,7 +6995,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -7083,7 +7002,6 @@ i32.const 3296 i32.const 12 memory.copy - local.get $0 local.get $1 i32.store offset=84 global.get $~lib/memory/__stack_pointer @@ -7123,7 +7041,7 @@ i32.const 1 i32.sub local.set $2 - loop $while-continue|028 + loop $while-continue|035 local.get $0 local.get $5 i32.lt_u @@ -7154,7 +7072,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|028 + br $while-continue|035 end end end @@ -7211,7 +7129,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 4 call $~lib/rt/itcms/__new @@ -7219,7 +7136,6 @@ i32.const 3328 i32.const 20 memory.copy - local.get $0 local.get $1 i32.store offset=88 global.get $~lib/memory/__stack_pointer @@ -7389,7 +7305,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -7397,11 +7312,9 @@ i32.const 3376 i32.const 12 memory.copy - local.get $0 local.get $2 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -7443,7 +7356,7 @@ local.set $7 i32.const 0 local.set $0 - loop $for-loop|029 + loop $for-loop|038 local.get $0 local.get $5 i32.lt_s @@ -7475,14 +7388,13 @@ i32.const 1 i32.add local.set $0 - br $for-loop|029 + br $for-loop|038 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $6 i32.store offset=96 global.get $~lib/memory/__stack_pointer @@ -7562,7 +7474,7 @@ i32.const 2 i32.shr_u local.set $0 - loop $for-loop|030 + loop $for-loop|040 local.get $0 local.get $1 i32.gt_s @@ -7573,13 +7485,11 @@ i32.shl i32.add i32.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $2 i32.store i32.const 3 global.set $~argumentsLength - local.get $5 local.get $1 local.get $2 i32.const 3440 @@ -7589,7 +7499,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|030 + br $for-loop|040 end end global.get $~lib/memory/__stack_pointer @@ -7696,7 +7606,7 @@ i32.const 2 i32.shr_u local.set $5 - loop $for-loop|031 + loop $for-loop|042 local.get $0 local.get $5 i32.lt_s @@ -7725,7 +7635,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|031 + br $for-loop|042 end end global.get $~lib/memory/__stack_pointer @@ -7774,7 +7684,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|032 + loop $for-loop|044 local.get $0 i32.const 0 i32.ge_s @@ -7803,7 +7713,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|032 + br $for-loop|044 end end global.get $~lib/memory/__stack_pointer @@ -7968,7 +7878,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new @@ -7976,7 +7885,6 @@ i32.const 3824 i32.const 16 memory.copy - local.get $0 local.get $1 i32.store offset=104 global.get $~lib/memory/__stack_pointer @@ -8110,12 +8018,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|01 + loop $while-continue|047 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|01 + br $while-continue|047 end end end @@ -8175,7 +8083,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $5 local.get $0 i32.const 2 i32.shl @@ -8190,7 +8097,6 @@ local.get $4 memory.copy end - local.get $5 local.get $3 i32.store i32.const 16 diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index 617fc04b1e..907c9e971e 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -1481,7 +1481,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1514,7 +1513,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2626,12 +2624,10 @@ i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3356,12 +3352,10 @@ i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index 1896b425de..d0b260e91e 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -1068,7 +1068,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1101,7 +1100,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2218,7 +2216,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1904 i32.store offset=4 @@ -2230,7 +2227,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 0 call $~lib/string/String.UTF8.decode @@ -2255,7 +2251,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1904 i32.store offset=4 @@ -2267,7 +2262,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 0 call $~lib/string/String.UTF8.decode @@ -2292,7 +2286,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1968 i32.store offset=4 @@ -2304,7 +2297,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 0 call $~lib/string/String.UTF8.decode @@ -2329,7 +2321,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1968 i32.store offset=4 @@ -2341,7 +2332,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 0 call $~lib/string/String.UTF8.decode @@ -2737,12 +2727,10 @@ i32.sub i32.load offset=16 call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3396,12 +3384,10 @@ local.get $1 i32.const 0 call $~lib/string/String.UTF8.encode - 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/string-encoding/testUTF8EncodeNullTerminated (local $0 i32) @@ -3656,12 +3642,10 @@ i32.load offset=16 local.get $1 call $~lib/string/String.UTF8.decodeUnsafe - 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/string-encoding/testUTF8DecodeUnsafe (local $0 i32) diff --git a/tests/compiler/std/string-nonnull.release.wat b/tests/compiler/std/string-nonnull.release.wat index c4efea7937..63edc700be 100644 --- a/tests/compiler/std/string-nonnull.release.wat +++ b/tests/compiler/std/string-nonnull.release.wat @@ -104,12 +104,10 @@ i32.const 1 i32.shr_u i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -185,11 +183,9 @@ i32.store offset=4 call $~lib/string/String.__eq i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index 6f48e9cd48..2bb47b7467 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -2078,7 +2078,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -2111,7 +2110,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -4453,12 +4451,10 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -4624,12 +4620,10 @@ else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) @@ -4656,12 +4650,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.fromCharCodes (param $0 i32) (result i32) (local $1 i32) @@ -5154,12 +5146,10 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -5278,12 +5268,10 @@ local.get $1 local.get $2 call $~lib/string/String#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#localeCompare (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -6161,12 +6149,10 @@ i64.load i64.const 28429475166421108 i64.eq - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) (local $2 i32) @@ -6541,12 +6527,10 @@ local.get $0 local.get $1 call $~lib/util/string/strtol - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/util/string/strtod (param $0 i32) (result f64) (local $1 i32) @@ -7410,12 +7394,10 @@ i32.store local.get $0 call $~lib/util/string/strtod - 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/util/string/strtol (result i32) (local $0 i32) @@ -8129,12 +8111,10 @@ local.get $0 local.get $1 call $~lib/string/String#concat - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -8165,12 +8145,10 @@ local.get $1 call $~lib/string/String.__eq i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__gt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8388,12 +8366,10 @@ local.get $1 call $~lib/string/String.__lt i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__lte (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -8424,12 +8400,10 @@ local.get $1 call $~lib/string/String.__gt i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#repeat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9234,12 +9208,10 @@ local.get $1 local.get $2 call $~lib/string/String#slice - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#substr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9373,12 +9345,10 @@ local.get $1 local.get $2 call $~lib/string/String#substr - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9538,12 +9508,10 @@ local.get $1 local.get $2 call $~lib/string/String#substring - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -10107,12 +10075,10 @@ local.get $1 local.get $2 call $~lib/string/String#split - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -11095,12 +11061,10 @@ call $~lib/string/String#indexOf i32.const -1 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz if i32.const 0 @@ -11834,12 +11798,10 @@ local.get $0 i32.const 1712 call $~lib/string/String#lastIndexOf@varargs - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $4 i32.store - local.get $0 local.get $4 i32.const 20 i32.sub @@ -13348,12 +13310,10 @@ i32.const 4880 i32.store call $~lib/util/string/strtol - 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 2147483647 i32.ne if @@ -13399,12 +13359,10 @@ i32.const 4928 i32.store call $~lib/util/string/strtol - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 i64.const 9223372036854775807 i64.ne if @@ -16605,7 +16563,6 @@ local.tee $4 i32.store offset=84 global.get $~lib/memory/__stack_pointer - local.set $5 i32.const 55296 call $~lib/string/String.fromCodePoint local.set $6 @@ -16618,7 +16575,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 local.get $6 local.get $0 call $~lib/string/String.__concat @@ -24638,7 +24594,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $5 local.get $0 i32.const 2 i32.shl @@ -24653,7 +24608,6 @@ local.get $4 memory.copy end - local.get $5 local.get $3 i32.store i32.const 16 diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index 59048f83cc..365b6a445b 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1135,7 +1135,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1168,7 +1167,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2081,12 +2079,10 @@ i32.shr_u i32.xor end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2275,11 +2271,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $1 local.get $0 i32.load offset=4 @@ -2384,11 +2378,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -2401,11 +2393,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -2706,11 +2696,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -2836,11 +2824,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -2853,11 +2839,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -3208,12 +3192,10 @@ call $"~lib/map/Map<~lib/string/String,usize>#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId @@ -3368,12 +3350,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3440,12 +3420,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/symbol/_Symbol.keyFor (param $0 i32) (result i32) (local $1 i32) @@ -3485,12 +3463,10 @@ else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3761,12 +3737,10 @@ local.get $0 i32.const 2464 call $~lib/string/String.__concat - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:std/symbol (local $0 i32) diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 30c2366c5a..cfce31d9b4 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -1500,7 +1500,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -1533,7 +1532,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -2427,7 +2425,6 @@ i32.shl i32.add f64.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -2437,11 +2434,8 @@ i32.shl i32.add f64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $10) @@ -2460,14 +2454,10 @@ i32.add local.tee $6 f64.load offset=8 - local.set $5 local.get $6 f64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $10) @@ -2535,14 +2525,10 @@ i32.add local.tee $1 f64.load offset=8 - local.set $5 local.get $1 f64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $10) @@ -5590,7 +5576,6 @@ local.get $1 i32.add i32.load8_s - local.set $5 local.get $1 i32.const 1 i32.add @@ -5598,11 +5583,8 @@ local.get $0 i32.add i32.load8_s - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -5619,14 +5601,10 @@ i32.add local.tee $5 i32.load8_s offset=1 - local.set $6 local.get $5 i32.load8_s - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -5688,14 +5666,10 @@ i32.add local.tee $1 i32.load8_s offset=1 - local.set $5 local.get $1 i32.load8_s - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -6003,7 +5977,6 @@ local.get $1 i32.add i32.load8_u - local.set $5 local.get $1 i32.const 1 i32.add @@ -6011,11 +5984,8 @@ local.get $0 i32.add i32.load8_u - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -6032,14 +6002,10 @@ i32.add local.tee $5 i32.load8_u offset=1 - local.set $6 local.get $5 i32.load8_u - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -6101,14 +6067,10 @@ i32.add local.tee $1 i32.load8_u offset=1 - local.set $5 local.get $1 i32.load8_u - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -6438,7 +6400,6 @@ i32.shl i32.add i32.load16_s - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -6448,11 +6409,8 @@ i32.shl i32.add i32.load16_s - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -6471,14 +6429,10 @@ i32.add local.tee $5 i32.load16_s offset=2 - local.set $6 local.get $5 i32.load16_s - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -6546,14 +6500,10 @@ i32.add local.tee $1 i32.load16_s offset=2 - local.set $5 local.get $1 i32.load16_s - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -6888,7 +6838,6 @@ i32.shl i32.add i32.load16_u - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -6898,11 +6847,8 @@ i32.shl i32.add i32.load16_u - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -6921,14 +6867,10 @@ i32.add local.tee $5 i32.load16_u offset=2 - local.set $6 local.get $5 i32.load16_u - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -6996,14 +6938,10 @@ i32.add local.tee $1 i32.load16_u offset=2 - local.set $5 local.get $1 i32.load16_u - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -7348,7 +7286,6 @@ i32.shl i32.add i32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -7358,11 +7295,8 @@ i32.shl i32.add i32.load - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -7381,14 +7315,10 @@ i32.add local.tee $5 i32.load offset=4 - local.set $6 local.get $5 i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -7456,14 +7386,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $5 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -7792,7 +7718,6 @@ i32.shl i32.add i32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -7802,11 +7727,8 @@ i32.shl i32.add i32.load - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -7825,14 +7747,10 @@ i32.add local.tee $5 i32.load offset=4 - local.set $6 local.get $5 i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -7900,14 +7818,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $5 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -8241,7 +8155,6 @@ i32.shl i32.add i64.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -8251,11 +8164,8 @@ i32.shl i32.add i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8274,14 +8184,10 @@ i32.add local.tee $6 i64.load offset=8 - local.set $5 local.get $6 i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8349,14 +8255,10 @@ i32.add local.tee $1 i64.load offset=8 - local.set $5 local.get $1 i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8692,7 +8594,6 @@ i32.shl i32.add i64.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -8702,11 +8603,8 @@ i32.shl i32.add i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8725,14 +8623,10 @@ i32.add local.tee $6 i64.load offset=8 - local.set $5 local.get $6 i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8800,14 +8694,10 @@ i32.add local.tee $1 i64.load offset=8 - local.set $5 local.get $1 i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -9143,7 +9033,6 @@ i32.shl i32.add f32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -9153,11 +9042,8 @@ i32.shl i32.add f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $11) @@ -9176,14 +9062,10 @@ i32.add local.tee $6 f32.load offset=4 - local.set $5 local.get $6 f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $11) @@ -9251,14 +9133,10 @@ i32.add local.tee $1 f32.load offset=4 - local.set $5 local.get $1 f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $11) @@ -9711,20 +9589,16 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load i32.sub - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -9750,12 +9624,10 @@ i32.store local.get $0 i32.load offset=8 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -9909,12 +9781,10 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -10026,12 +9896,10 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -10143,12 +10011,10 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -10944,12 +10810,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -11709,18 +11573,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -11775,12 +11635,10 @@ local.get $0 local.get $1 call $~lib/typedarray/Float64Array#sort - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) (local $2 f64) @@ -11829,12 +11687,10 @@ i32.shl i32.add f64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -11938,12 +11794,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -12092,12 +11946,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -12141,12 +11993,10 @@ i32.load offset=4 i32.add i32.load8_s - 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/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12235,12 +12085,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.ne br_if $folding-inner1 @@ -12594,12 +12442,10 @@ i32.shl i32.add i32.load - 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/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12829,11 +12675,9 @@ i32.store offset=4 local.get $3 i32.load offset=4 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -12888,12 +12732,10 @@ i32.const 0 local.get $1 call $~lib/typedarray/Int32Array#slice - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -13071,12 +12913,10 @@ local.get $2 local.get $3 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -13571,12 +13411,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13630,12 +13468,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13689,12 +13525,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13752,12 +13586,10 @@ i32.shl i32.add i32.load16_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13815,12 +13647,10 @@ i32.shl i32.add i32.load16_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13878,12 +13708,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13941,12 +13769,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) (local $2 i32) @@ -14005,12 +13831,10 @@ i32.shl i32.add i64.load - 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/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) (local $2 i32) @@ -14069,12 +13893,10 @@ i32.shl i32.add i64.load - 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/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) (local $2 i32) @@ -14133,12 +13955,10 @@ i32.shl i32.add f32.load - 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/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) (local $2 i32) @@ -14197,12 +14017,10 @@ i32.shl i32.add f64.load - 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/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -14337,7 +14155,6 @@ i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -14434,7 +14251,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -14540,12 +14356,10 @@ i32.load offset=4 i32.add i32.load8_u - 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/testArrayMap<~lib/typedarray/Uint8Array,u8>" (local $0 i32) @@ -14598,7 +14412,6 @@ i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -14695,7 +14508,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -14810,7 +14622,6 @@ i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -14907,7 +14718,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15017,12 +14827,10 @@ i32.shl i32.add i32.load16_s - 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/testArrayMap<~lib/typedarray/Int16Array,i16>" (local $0 i32) @@ -15077,7 +14885,6 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -15180,7 +14987,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15290,12 +15096,10 @@ i32.shl i32.add i32.load16_u - 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/testArrayMap<~lib/typedarray/Uint16Array,u16>" (local $0 i32) @@ -15350,7 +15154,6 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -15453,7 +15256,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15570,7 +15372,6 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -15673,7 +15474,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15783,12 +15583,10 @@ i32.shl i32.add i32.load - 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/testArrayMap<~lib/typedarray/Uint32Array,u32>" (local $0 i32) @@ -15843,7 +15641,6 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -15946,7 +15743,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16057,12 +15853,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" (local $0 i32) @@ -16117,7 +15911,6 @@ i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16220,7 +16013,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16331,12 +16123,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" (local $0 i32) @@ -16391,7 +16181,6 @@ i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16494,7 +16283,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16605,12 +16393,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" (local $0 i32) @@ -16665,7 +16451,6 @@ f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16768,7 +16553,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16885,7 +16669,6 @@ f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16988,7 +16771,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17118,7 +16900,6 @@ i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -17225,7 +17006,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17383,7 +17163,6 @@ i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -17490,7 +17269,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17648,7 +17426,6 @@ i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -17755,7 +17532,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17913,7 +17689,6 @@ i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -18029,7 +17804,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18187,7 +17961,6 @@ i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -18303,7 +18076,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18461,7 +18233,6 @@ i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -18577,7 +18348,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18735,7 +18505,6 @@ i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -18851,7 +18620,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19009,7 +18777,6 @@ i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -19125,7 +18892,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19283,7 +19049,6 @@ i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -19399,7 +19164,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19557,7 +19321,6 @@ f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -19673,7 +19436,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19831,7 +19593,6 @@ f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -19947,7 +19708,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -20117,12 +19877,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20202,12 +19960,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20289,12 +20045,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20376,12 +20130,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20463,12 +20215,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20550,12 +20300,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20637,12 +20385,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20724,12 +20470,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20811,12 +20555,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20898,12 +20640,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20959,13 +20699,11 @@ local.get $3 i32.add i32.load8_s - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21042,13 +20780,11 @@ local.get $3 i32.add i32.load8_u - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21127,13 +20863,11 @@ i32.shl i32.add i32.load16_s - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21212,13 +20946,11 @@ i32.shl i32.add i32.load16_u - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21297,13 +21029,11 @@ i32.shl i32.add i32.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21382,13 +21112,11 @@ i32.shl i32.add i32.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21467,13 +21195,11 @@ i32.shl i32.add i64.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21552,13 +21278,11 @@ i32.shl i32.add i64.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21637,13 +21361,11 @@ i32.shl i32.add f32.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21722,13 +21444,11 @@ i32.shl i32.add f64.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21806,13 +21526,11 @@ local.get $3 i32.add i32.load8_s - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -21890,13 +21608,11 @@ local.get $3 i32.add i32.load8_u - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -21976,13 +21692,11 @@ i32.shl i32.add i32.load16_s - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22062,13 +21776,11 @@ i32.shl i32.add i32.load16_u - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22148,13 +21860,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22234,13 +21944,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22320,13 +22028,11 @@ i32.shl i32.add i64.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22406,13 +22112,11 @@ i32.shl i32.add i64.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22492,13 +22196,11 @@ i32.shl i32.add f32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22578,13 +22280,11 @@ i32.shl i32.add f64.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22686,12 +22386,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -22772,12 +22470,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -22860,12 +22556,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -22948,12 +22642,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23036,12 +22728,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23124,12 +22814,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23212,12 +22900,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23300,12 +22986,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23388,12 +23072,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23476,12 +23158,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -23606,13 +23286,11 @@ local.get $3 i32.add i32.load8_u - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -24238,11 +23916,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Int8Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -24268,7 +23944,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -24280,7 +23955,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int8Array#reverse local.tee $0 @@ -24560,11 +24234,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Uint8Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -24591,7 +24263,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -24602,7 +24273,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int8Array#reverse local.tee $0 @@ -24882,11 +24552,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -24913,7 +24581,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -24924,7 +24591,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int8Array#reverse local.tee $0 @@ -25340,11 +25006,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Int16Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -25370,7 +25034,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -25381,7 +25044,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int16Array#reverse local.tee $0 @@ -25665,11 +25327,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Uint16Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -25696,7 +25356,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -25707,7 +25366,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int16Array#reverse local.tee $0 @@ -25998,7 +25656,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -26010,7 +25667,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int32Array#reverse local.tee $0 @@ -26319,7 +25975,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -26330,7 +25985,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int32Array#reverse local.tee $0 @@ -26701,11 +26355,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Int64Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -26731,7 +26383,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -26742,7 +26393,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int64Array#reverse local.tee $0 @@ -27024,11 +26674,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Uint64Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -27054,7 +26702,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -27065,7 +26712,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int64Array#reverse local.tee $0 @@ -27436,11 +27082,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Float32Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -27466,7 +27110,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -27477,7 +27120,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Float32Array#reverse local.tee $0 @@ -27741,11 +27383,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Float64Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -27771,7 +27411,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -27783,7 +27422,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Float64Array#reverse local.tee $0 @@ -27941,12 +27579,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -28029,12 +27665,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -28080,12 +27714,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Int8Array#lastIndexOf - 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" (local $0 i32) @@ -29775,12 +29407,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -29865,12 +29495,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -29916,12 +29544,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Int16Array#lastIndexOf - 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" (local $0 i32) @@ -31074,12 +30700,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -31162,12 +30786,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -31213,12 +30835,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Int32Array#lastIndexOf - 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" (local $0 i32) @@ -31837,12 +31457,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -31925,12 +31543,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -31976,12 +31592,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Uint32Array#lastIndexOf - 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" (local $0 i32) @@ -32599,12 +32213,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) @@ -32687,12 +32299,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) (local $2 i32) @@ -32738,12 +32348,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Int64Array#lastIndexOf - 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" (local $0 i32) @@ -33362,12 +32970,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) @@ -33450,12 +33056,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) (local $2 i32) @@ -33501,12 +33105,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Uint64Array#lastIndexOf - 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" (local $0 i32) @@ -34125,12 +33727,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) @@ -34213,12 +33813,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result i32) (local $2 i32) @@ -34264,12 +33862,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Float32Array#lastIndexOf - 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" (local $0 i32) @@ -34888,12 +34484,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) @@ -34976,12 +34570,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) (local $2 i32) @@ -35027,12 +34619,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Float64Array#lastIndexOf - 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/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" (local $0 i32) @@ -35686,11 +35276,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -35699,7 +35289,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -35709,18 +35299,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$6 (result 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 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1396 local.get $0 i32.const 1 i32.sub @@ -35733,121 +35323,120 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1396 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1396 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $2 + i32.const 9584 local.get $4 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered + i32.const 1 + i32.shl + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + br $__inlined_func$~lib/util/string/joinIntegerArray$1396 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36035,11 +35624,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36048,7 +35637,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36058,18 +35647,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$7 (result 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 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1397 local.get $0 i32.const 1 i32.sub @@ -36082,121 +35671,120 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1397 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1397 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $2 + i32.const 9584 local.get $4 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered + i32.const 1 + i32.shl + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + br $__inlined_func$~lib/util/string/joinIntegerArray$1397 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36238,12 +35826,10 @@ i32.store offset=4 local.get $0 call $~lib/typedarray/Uint8Array#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) (local $1 i32) @@ -36256,11 +35842,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36269,7 +35855,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36279,18 +35865,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$8 (result 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 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1398 local.get $0 i32.const 1 i32.sub @@ -36303,125 +35889,124 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$8 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1398 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load16_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1398 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add + i32.const 9584 local.get $4 - local.get $2 i32.const 1 i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$8 + br $__inlined_func$~lib/util/string/joinIntegerArray$1398 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36447,11 +36032,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36460,7 +36045,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36470,18 +36055,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$9 (result 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 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1399 local.get $0 i32.const 1 i32.sub @@ -36494,125 +36079,124 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1399 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1399 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add + i32.const 9584 local.get $4 - local.get $2 i32.const 1 i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + br $__inlined_func$~lib/util/string/joinIntegerArray$1399 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36638,11 +36222,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36651,7 +36235,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36661,18 +36245,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$10 (result 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 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1400 local.get $0 i32.const 1 i32.sub @@ -36685,125 +36269,124 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1400 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 + local.get $6 + i32.eqz + if + local.get $5 i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1400 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add + i32.const 9584 local.get $4 - local.get $2 - i32.const 2 + i32.const 1 i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + br $__inlined_func$~lib/util/string/joinIntegerArray$1400 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36829,11 +36412,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36842,7 +36425,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36852,18 +36435,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$11 (result 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 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1401 local.get $0 i32.const 1 i32.sub @@ -36876,125 +36459,124 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$11 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1401 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 + local.get $6 + i32.eqz + if + local.get $5 i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1401 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add + i32.const 9584 local.get $4 - local.get $2 - i32.const 2 + i32.const 1 i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$11 + br $__inlined_func$~lib/util/string/joinIntegerArray$1401 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -37055,7 +36637,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$12 + block $__inlined_func$~lib/util/string/joinIntegerArray$6 local.get $0 i32.const 1 i32.sub @@ -37069,7 +36651,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$12 + br $__inlined_func$~lib/util/string/joinIntegerArray$6 end block $folding-inner0 local.get $6 @@ -37361,7 +36943,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$12 + br $__inlined_func$~lib/util/string/joinIntegerArray$6 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -37718,25 +37300,19 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinIntegerArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -37982,25 +37558,19 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinFloatArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -38243,25 +37813,19 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinFloatArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -38574,7 +38138,6 @@ local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -38587,7 +38150,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -38598,7 +38160,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -38669,7 +38230,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -38794,7 +38354,6 @@ local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -38807,7 +38366,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -38818,7 +38376,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -38889,7 +38446,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39013,7 +38569,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -39026,7 +38581,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -39037,7 +38591,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -39118,7 +38671,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39243,7 +38795,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -39256,7 +38807,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -39267,7 +38817,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -39348,7 +38897,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39471,7 +39019,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -39484,7 +39031,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -39495,7 +39041,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -39576,7 +39121,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39699,7 +39243,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -39712,7 +39255,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -39723,7 +39265,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -39804,7 +39345,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39929,7 +39469,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $4 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 @@ -39942,7 +39481,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $4 local.get $0 local.get $5 local.get $6 @@ -39953,7 +39491,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -40034,7 +39571,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 i32.store offset=20 i32.const 0 @@ -40159,7 +39695,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $4 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 @@ -40172,7 +39707,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $4 local.get $0 local.get $5 local.get $6 @@ -40183,7 +39717,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -40264,7 +39797,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 i32.store offset=20 i32.const 0 @@ -40389,7 +39921,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $4 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 @@ -40402,7 +39933,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $4 local.get $0 local.get $5 local.get $6 @@ -40413,7 +39943,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -40494,7 +40023,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 i32.store offset=20 i32.const 0 @@ -40619,7 +40147,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $4 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 @@ -40632,7 +40159,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $4 local.get $0 local.get $5 local.get $6 @@ -40643,7 +40169,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -40724,7 +40249,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 i32.store offset=20 i32.const 0 @@ -41046,102 +40570,7 @@ local.get $1 i32.store offset=8 local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $2 - i32.const 6 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length + call $~lib/typedarray/Int64Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 @@ -41149,6 +40578,8 @@ local.get $0 call $~lib/typedarray/Int8Array#get:length local.get $2 + i32.const 6 + i32.add i32.lt_s if i32.const 1360 @@ -41163,11 +40594,102 @@ i32.store offset=8 local.get $0 i32.load offset=4 + i32.const 6 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $1 i32.load offset=4 local.get $2 @@ -41332,11 +40854,9 @@ i32.load offset=4 i32.const 7 i32.add - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 - local.get $0 i32.const 11268 i32.load local.get $1 @@ -41810,12 +41330,10 @@ i32.load offset=4 i32.add i32.load8_u - 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/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -43437,12 +42955,10 @@ i32.shl i32.add i32.load16_s - 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/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -43792,11 +43308,9 @@ i32.load offset=4 i32.const 8 i32.add - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $1 i32.load offset=4 local.get $2 @@ -44375,12 +43889,10 @@ i32.shl i32.add i32.load16_u - 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/Uint16Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -44990,11 +44502,9 @@ i32.const 2 i32.shl i32.add - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $1 i32.load offset=4 local.get $3 @@ -45035,12 +44545,10 @@ i32.shl i32.add i32.load - 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/Int32Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -45999,12 +45507,10 @@ i32.shl i32.add i32.load - 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/Uint32Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -46674,12 +46180,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -46839,11 +46343,9 @@ i32.load offset=4 i32.const 48 i32.add - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $1 i32.load offset=4 local.get $2 @@ -47613,12 +47115,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -48190,12 +47690,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -48950,12 +48448,10 @@ i32.shl i32.add f64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -50211,18 +49707,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -50688,18 +50180,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -51167,18 +50655,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -51646,18 +51130,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -52125,18 +51605,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -52604,18 +52080,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -53085,18 +52557,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -53566,18 +53034,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -54048,18 +53512,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -56354,11 +55814,9 @@ i32.store offset=4 local.get $7 i32.load offset=8 - local.set $7 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - local.get $7 local.get $6 i32.load offset=8 i32.ne @@ -56818,7 +56276,7 @@ local.get $6 call $~lib/typedarray/Int16Array#get:length local.set $8 - loop $for-loop|03 + loop $for-loop|04 local.get $0 local.get $8 i32.lt_s @@ -56847,7 +56305,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $for-loop|04 end end global.get $~lib/memory/__stack_pointer @@ -56946,7 +56404,7 @@ local.get $6 call $~lib/typedarray/Int32Array#get:length local.set $8 - loop $for-loop|04 + loop $for-loop|06 local.get $0 local.get $8 i32.lt_s @@ -56975,7 +56433,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|04 + br $for-loop|06 end end global.get $~lib/memory/__stack_pointer @@ -57072,7 +56530,7 @@ local.get $6 call $~lib/typedarray/Int32Array#get:length local.set $8 - loop $for-loop|05 + loop $for-loop|08 local.get $0 local.get $8 i32.lt_s @@ -57101,7 +56559,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|08 end end global.get $~lib/memory/__stack_pointer @@ -57196,7 +56654,7 @@ local.get $1 call $~lib/typedarray/Int64Array#get:length local.set $7 - loop $for-loop|06 + loop $for-loop|010 local.get $0 local.get $7 i32.lt_s @@ -57225,7 +56683,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|06 + br $for-loop|010 end end global.get $~lib/memory/__stack_pointer @@ -57322,7 +56780,7 @@ local.get $1 call $~lib/typedarray/Int64Array#get:length local.set $7 - loop $for-loop|07 + loop $for-loop|012 local.get $0 local.get $7 i32.lt_s @@ -57351,7 +56809,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|07 + br $for-loop|012 end end global.get $~lib/memory/__stack_pointer @@ -57446,7 +56904,7 @@ local.get $1 call $~lib/typedarray/Int32Array#get:length local.set $7 - loop $for-loop|08 + loop $for-loop|014 local.get $0 local.get $7 i32.lt_s @@ -57475,7 +56933,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|08 + br $for-loop|014 end end global.get $~lib/memory/__stack_pointer @@ -57570,7 +57028,7 @@ local.get $1 call $~lib/typedarray/Int64Array#get:length local.set $7 - loop $for-loop|09 + loop $for-loop|016 local.get $0 local.get $7 i32.lt_s @@ -57599,7 +57057,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|09 + br $for-loop|016 end end global.get $~lib/memory/__stack_pointer @@ -58444,7 +57902,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|010 + loop $for-loop|018 local.get $0 i32.const 0 i32.ge_s @@ -58471,7 +57929,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|010 + br $for-loop|018 end end global.get $~lib/memory/__stack_pointer @@ -58686,7 +58144,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|011 + loop $for-loop|020 local.get $0 i32.const 0 i32.ge_s @@ -58715,7 +58173,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|011 + br $for-loop|020 end end global.get $~lib/memory/__stack_pointer @@ -58814,7 +58272,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|012 + loop $for-loop|022 local.get $0 i32.const 0 i32.ge_s @@ -58843,7 +58301,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|012 + br $for-loop|022 end end global.get $~lib/memory/__stack_pointer @@ -58942,7 +58400,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|013 + loop $for-loop|024 local.get $0 i32.const 0 i32.ge_s @@ -58971,7 +58429,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|013 + br $for-loop|024 end end global.get $~lib/memory/__stack_pointer @@ -59068,7 +58526,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|014 + loop $for-loop|026 local.get $0 i32.const 0 i32.ge_s @@ -59097,7 +58555,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|014 + br $for-loop|026 end end global.get $~lib/memory/__stack_pointer @@ -59194,7 +58652,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|015 + loop $for-loop|028 local.get $0 i32.const 0 i32.ge_s @@ -59223,7 +58681,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|015 + br $for-loop|028 end end global.get $~lib/memory/__stack_pointer @@ -59320,7 +58778,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|016 + loop $for-loop|030 local.get $0 i32.const 0 i32.ge_s @@ -59349,7 +58807,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|016 + br $for-loop|030 end end global.get $~lib/memory/__stack_pointer @@ -59446,7 +58904,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|017 + loop $for-loop|032 local.get $0 i32.const 0 i32.ge_s @@ -59475,7 +58933,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|017 + br $for-loop|032 end end global.get $~lib/memory/__stack_pointer @@ -59572,7 +59030,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|018 + loop $for-loop|034 local.get $0 i32.const 0 i32.ge_s @@ -59601,7 +59059,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|018 + br $for-loop|034 end end global.get $~lib/memory/__stack_pointer @@ -62666,7 +62124,7 @@ local.get $1 call $~lib/typedarray/Int8Array#get:length local.set $7 - loop $for-loop|019 + loop $for-loop|036 local.get $0 local.get $7 i32.lt_s @@ -62675,13 +62133,11 @@ local.get $6 i32.add i32.load8_s - local.set $8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 local.get $0 local.get $1 i32.const 7200 @@ -62691,7 +62147,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|019 + br $for-loop|036 end end global.get $~lib/memory/__stack_pointer @@ -62972,7 +62428,7 @@ local.get $1 call $~lib/typedarray/Int16Array#get:length local.set $7 - loop $for-loop|020 + loop $for-loop|038 local.get $0 local.get $7 i32.lt_s @@ -62983,13 +62439,11 @@ i32.shl i32.add i32.load16_s - local.set $8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 local.get $0 local.get $1 i32.const 7296 @@ -62999,7 +62453,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|020 + br $for-loop|038 end end global.get $~lib/memory/__stack_pointer @@ -63119,7 +62573,7 @@ local.get $1 call $~lib/typedarray/Int16Array#get:length local.set $7 - loop $for-loop|021 + loop $for-loop|040 local.get $0 local.get $7 i32.lt_s @@ -63130,13 +62584,11 @@ i32.shl i32.add i32.load16_u - local.set $8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 local.get $0 local.get $1 i32.const 7328 @@ -63146,7 +62598,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|021 + br $for-loop|040 end end global.get $~lib/memory/__stack_pointer @@ -63260,7 +62712,7 @@ local.get $1 call $~lib/typedarray/Int32Array#get:length local.set $7 - loop $for-loop|022 + loop $for-loop|042 local.get $0 local.get $7 i32.lt_s @@ -63271,13 +62723,11 @@ i32.shl i32.add i32.load - local.set $8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 local.get $0 local.get $1 i32.const 7360 @@ -63287,7 +62737,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|022 + br $for-loop|042 end end global.get $~lib/memory/__stack_pointer @@ -63401,7 +62851,7 @@ local.get $1 call $~lib/typedarray/Int32Array#get:length local.set $7 - loop $for-loop|023 + loop $for-loop|044 local.get $0 local.get $7 i32.lt_s @@ -63412,13 +62862,11 @@ i32.shl i32.add i32.load - local.set $8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $8 local.get $0 local.get $1 i32.const 7392 @@ -63428,7 +62876,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|023 + br $for-loop|044 end end global.get $~lib/memory/__stack_pointer @@ -63545,7 +62993,7 @@ local.get $1 call $~lib/typedarray/Int64Array#get:length local.set $7 - loop $for-loop|024 + loop $for-loop|046 local.get $0 local.get $7 i32.lt_s @@ -63556,13 +63004,11 @@ i32.shl i32.add i64.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $0 local.get $1 i32.const 7424 @@ -63572,7 +63018,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|024 + br $for-loop|046 end end global.get $~lib/memory/__stack_pointer @@ -63689,7 +63135,7 @@ local.get $1 call $~lib/typedarray/Int64Array#get:length local.set $7 - loop $for-loop|025 + loop $for-loop|048 local.get $0 local.get $7 i32.lt_s @@ -63700,13 +63146,11 @@ i32.shl i32.add i64.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $0 local.get $1 i32.const 7456 @@ -63716,7 +63160,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|025 + br $for-loop|048 end end global.get $~lib/memory/__stack_pointer @@ -63833,7 +63277,7 @@ local.get $1 call $~lib/typedarray/Int32Array#get:length local.set $7 - loop $for-loop|026 + loop $for-loop|050 local.get $0 local.get $7 i32.lt_s @@ -63844,13 +63288,11 @@ i32.shl i32.add f32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $0 local.get $1 i32.const 7488 @@ -63860,7 +63302,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|026 + br $for-loop|050 end end global.get $~lib/memory/__stack_pointer @@ -63977,7 +63419,7 @@ local.get $1 call $~lib/typedarray/Int64Array#get:length local.set $7 - loop $for-loop|027 + loop $for-loop|052 local.get $0 local.get $7 i32.lt_s @@ -63988,13 +63430,11 @@ i32.shl i32.add f64.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $0 local.get $1 i32.const 7520 @@ -64004,7 +63444,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|027 + br $for-loop|052 end end global.get $~lib/memory/__stack_pointer @@ -64136,12 +63576,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz if i32.const 0 @@ -64220,7 +63658,7 @@ local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|01 + loop $while-continue|05 local.get $0 local.get $6 i32.lt_s @@ -64241,17 +63679,15 @@ i32.const 1 i32.add local.set $0 - br $while-continue|01 + br $while-continue|05 end end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz if i32.const 0 @@ -65558,7 +64994,7 @@ call $~lib/typedarray/Uint8Array#constructor local.tee $1 i32.store offset=8 - loop $for-loop|01 + loop $for-loop|062 local.get $0 local.get $2 i32.gt_s @@ -65581,7 +65017,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|01 + br $for-loop|062 end end global.get $~lib/memory/__stack_pointer @@ -65596,7 +65032,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $6 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $7 @@ -65609,7 +65044,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $6 local.get $2 local.get $7 local.get $8 @@ -65832,7 +65266,7 @@ local.set $0 i32.const 0 local.set $2 - loop $for-loop|00 + loop $for-loop|0663 local.get $2 local.get $8 i32.lt_s @@ -65866,7 +65300,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|00 + br $for-loop|0663 end end global.get $~lib/memory/__stack_pointer @@ -65941,7 +65375,7 @@ local.set $7 i32.const 0 local.set $2 - loop $for-loop|01213 + loop $for-loop|07 local.get $0 local.get $2 i32.gt_s @@ -65973,7 +65407,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|01213 + br $for-loop|07 end end global.get $~lib/memory/__stack_pointer @@ -66115,7 +65549,7 @@ local.set $8 i32.const 0 local.set $0 - loop $for-loop|02324 + loop $for-loop|0864 local.get $0 local.get $6 i32.lt_s @@ -66140,7 +65574,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|02324 + br $for-loop|0864 end end global.get $~lib/memory/__stack_pointer @@ -66177,11 +65611,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" - block $folding-inner036 + block $folding-inner02 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner036 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66215,7 +65649,6 @@ i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -66228,7 +65661,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner036 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66252,7 +65685,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -66379,11 +65811,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" - block $folding-inner037 + block $folding-inner04 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner037 + br_if $folding-inner04 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66417,7 +65849,6 @@ i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -66430,7 +65861,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner037 + br_if $folding-inner04 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66454,7 +65885,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -66581,11 +66011,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" - block $folding-inner038 + block $folding-inner06 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner038 + br_if $folding-inner06 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66619,7 +66049,6 @@ i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -66632,7 +66061,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner038 + br_if $folding-inner06 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66656,7 +66085,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -66783,11 +66211,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" - block $folding-inner039 + block $folding-inner08 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner039 + br_if $folding-inner08 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66821,7 +66249,6 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -66834,7 +66261,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner039 + br_if $folding-inner08 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66858,7 +66285,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -66985,11 +66411,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" - block $folding-inner040 + block $folding-inner010 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner040 + br_if $folding-inner010 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67023,7 +66449,6 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -67036,7 +66461,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner040 + br_if $folding-inner010 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67060,7 +66485,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -67187,11 +66611,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" - block $folding-inner041 + block $folding-inner012 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner041 + br_if $folding-inner012 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67225,7 +66649,6 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -67238,7 +66661,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner041 + br_if $folding-inner012 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67262,7 +66685,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -67389,11 +66811,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" - block $folding-inner042 + block $folding-inner014 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner042 + br_if $folding-inner014 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67427,7 +66849,6 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -67440,7 +66861,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner042 + br_if $folding-inner014 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67464,7 +66885,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -67591,11 +67011,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" - block $folding-inner043 + block $folding-inner016 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner043 + br_if $folding-inner016 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67629,7 +67049,6 @@ i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -67642,7 +67061,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner043 + br_if $folding-inner016 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67666,7 +67085,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -67793,11 +67211,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" - block $folding-inner044 + block $folding-inner018 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner044 + br_if $folding-inner018 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67831,7 +67249,6 @@ i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -67844,7 +67261,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner044 + br_if $folding-inner018 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67868,7 +67285,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -67995,11 +67411,11 @@ i32.sub global.set $~lib/memory/__stack_pointer block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" - block $folding-inner045 + block $folding-inner020 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner045 + br_if $folding-inner020 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -68033,7 +67449,6 @@ f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -68046,7 +67461,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner045 + br_if $folding-inner020 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -68070,7 +67485,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -68358,12 +67772,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|013 + loop $while-continue|010 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|013 + br $while-continue|010 end end end @@ -68555,7 +67969,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $4 local.get $0 local.get $1 i32.shl @@ -68570,7 +67983,6 @@ local.get $5 memory.copy end - local.get $4 local.get $1 i32.store i32.const 16 diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index e5e37589ca..19b44988e5 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -1148,7 +1148,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1181,7 +1180,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2674,12 +2672,10 @@ i32.shr_u i32.const 1068 call $~lib/util/uri/encode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2874,12 +2870,10 @@ i32.shr_u i32.const 3388 call $~lib/util/uri/encode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/uri/decodeURIComponent (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2912,12 +2906,10 @@ i32.shr_u i32.const 1 call $~lib/util/uri/decode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/uri/decodeURI (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2950,12 +2942,10 @@ i32.shr_u i32.const 0 call $~lib/util/uri/decode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:std/uri (local $0 i32) diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index bafd07b72f..703cbc6f3c 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1039,7 +1039,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1072,7 +1071,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1552,7 +1550,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1580,7 +1577,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index a2ded6a5ae..55f98e34df 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -1132,7 +1132,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1165,7 +1164,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -4266,12 +4264,10 @@ local.get $0 local.get $1 call $~lib/util/string/joinStringArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $templateliteral/test_fast_paths_string (local $0 i32) @@ -4577,7 +4573,6 @@ i32.const 5328 local.get $0 call $~lib/string/String#concat - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -4586,7 +4581,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 38496 @@ -4694,12 +4688,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -4752,11 +4744,9 @@ i32.store offset=16 i32.const 5616 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index 8fad062a65..e0bd055a29 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -911,7 +911,6 @@ i64.shl local.tee $2 i32.wrap_i64 - local.set $4 local.get $2 i64.const 36100 i64.lt_u @@ -957,7 +956,6 @@ i32.const 0 end local.set $0 - local.get $4 i32.const -16 i32.and local.get $1 @@ -1003,7 +1001,6 @@ global.set $~lib/rt/tlsf/ROOT end global.get $~lib/rt/tlsf/ROOT - local.set $0 local.get $3 i32.const 4 i32.sub @@ -1036,7 +1033,6 @@ i32.const 1 i32.or i32.store - local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock end @@ -1222,11 +1218,11 @@ i32.const 0 i32.gt_s if - loop $while-continue|01 + loop $while-continue|05 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step - br $while-continue|01 + br $while-continue|05 end end end diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 2be7d98141..f0c11fa359 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1055,7 +1055,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1088,7 +1087,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2037,7 +2035,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2065,7 +2062,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/unicode-identifier.debug.wat b/tests/compiler/unicode-identifier.debug.wat index cf2105a944..7e69185a00 100644 --- a/tests/compiler/unicode-identifier.debug.wat +++ b/tests/compiler/unicode-identifier.debug.wat @@ -5,8 +5,8 @@ (memory $0 0) (table $0 1 1 funcref) (elem $0 (i32.const 1)) - (export "ÀÈ" (global $"unicode-identifier/\c3\80\c3\88")) - (export "变量" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) - (export "𠜎𠜱" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) + (export "\c3\80\c3\88" (global $"unicode-identifier/\c3\80\c3\88")) + (export "\e5\8f\98\e9\87\8f" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) + (export "\f0\a0\9c\8e\f0\a0\9c\b1" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) (export "memory" (memory $0)) ) diff --git a/tests/compiler/unicode-identifier.release.wat b/tests/compiler/unicode-identifier.release.wat index f0072ed5f6..35ea64349a 100644 --- a/tests/compiler/unicode-identifier.release.wat +++ b/tests/compiler/unicode-identifier.release.wat @@ -3,8 +3,8 @@ (global $"unicode-identifier/\e5\8f\98\e9\87\8f" (mut i32) (i32.const 0)) (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1" (mut i32) (i32.const 0)) (memory $0 0) - (export "ÀÈ" (global $"unicode-identifier/\c3\80\c3\88")) - (export "变量" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) - (export "𠜎𠜱" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) + (export "\c3\80\c3\88" (global $"unicode-identifier/\c3\80\c3\88")) + (export "\e5\8f\98\e9\87\8f" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) + (export "\f0\a0\9c\8e\f0\a0\9c\b1" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) (export "memory" (memory $0)) ) diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index 57ed01f821..d6ca6fba01 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1496,7 +1494,7 @@ local.set $0 i32.const 0 local.set $2 - loop $while-continue|02 + loop $while-continue|03 local.get $0 local.tee $1 i32.const 1 @@ -1511,7 +1509,7 @@ else i32.const 0 end - br_if $while-continue|02 + br_if $while-continue|03 end local.get $0 i32.const -1 @@ -1537,14 +1535,14 @@ end i32.const 0 local.set $0 - loop $while-continue|03 + loop $while-continue|05 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $while-continue|03 + br_if $while-continue|05 end local.get $0 i32.const 10 @@ -1559,14 +1557,14 @@ end i32.const 0 local.set $0 - loop $while-continue|04 + loop $while-continue|07 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $while-continue|04 + br_if $while-continue|07 end local.get $0 i32.const 10 @@ -1581,14 +1579,14 @@ end i32.const 10 local.set $0 - loop $while-continue|07 + loop $while-continue|013 local.get $0 if local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|07 + br $while-continue|013 end end local.get $0 @@ -1604,24 +1602,24 @@ local.set $0 i32.const 10 local.set $1 - loop $while-continue|08 + loop $while-continue|015 local.get $0 if - loop $while-continue|110 + loop $while-continue|117 local.get $1 if local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|110 + br $while-continue|117 end end local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|08 + br $while-continue|015 end end local.get $0 @@ -1692,7 +1690,7 @@ call $while/Ref#constructor local.tee $0 i32.store - loop $while-continue|11 + loop $while-continue|15 local.get $0 if local.get $1 @@ -1710,7 +1708,7 @@ local.tee $0 i32.store end - br $while-continue|11 + br $while-continue|15 end end local.get $1 @@ -1754,10 +1752,10 @@ call $while/Ref#constructor local.tee $1 i32.store - loop $while-continue|09 + loop $while-continue|08 call $while/Ref#constructor if - block $while-break|08 + block $while-break|07 local.get $0 i32.const 1 i32.add @@ -1767,9 +1765,9 @@ if i32.const 0 local.set $1 - br $while-break|08 + br $while-break|07 end - br $while-continue|09 + br $while-continue|08 end end end @@ -1799,25 +1797,25 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - loop $while-continue|0911 + loop $while-continue|019 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 0 i32.le_s - br_if $while-continue|0911 + br_if $while-continue|019 end i32.const 0 local.set $0 - loop $while-continue|010 + loop $while-continue|021 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 0 i32.le_s - br_if $while-continue|010 + br_if $while-continue|021 end i32.const 0 local.set $0 @@ -1845,23 +1843,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|011 + loop $while-continue|023 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|011 + br $while-continue|023 end end end call $~lib/rt/itcms/step drop - loop $while-continue|113 + loop $while-continue|125 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|113 + br $while-continue|125 end end global.get $~lib/rt/itcms/total @@ -1939,7 +1937,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1967,7 +1964,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer From 4e5fe9cf6f38c54219efdd3fb941596a3aa8f705 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Tue, 3 Jun 2025 15:42:56 -0700 Subject: [PATCH 46/86] fix: allow using nullable strings in template literals (#2928) --- src/compiler.ts | 32 ++- tests/compiler/templateliteral.debug.wat | 160 +++++++++++-- tests/compiler/templateliteral.release.wat | 255 ++++++++++++++------- tests/compiler/templateliteral.ts | 7 + 4 files changed, 350 insertions(+), 104 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index 29b73f2c69..4cacf19fa4 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -10154,6 +10154,7 @@ export class Compiler extends DiagnosticEmitter { /** Makes a string conversion of the given expression. */ makeToString(expr: ExpressionRef, type: Type, reportNode: Node): ExpressionRef { + let module = this.module; let stringType = this.program.stringInstance.type; if (type == stringType) { return expr; @@ -10170,15 +10171,30 @@ export class Compiler extends DiagnosticEmitter { reportNode )) { this.currentType = stringType; - return this.module.unreachable(); + return module.unreachable(); } if (!type.isStrictlyAssignableTo(assert(toStringSignature.thisType))) { - this.errorRelated( - DiagnosticCode.The_this_types_of_each_signature_are_incompatible, - reportNode.range, toStringInstance.identifierAndSignatureRange + if (!type.is(TypeFlags.Nullable)) { + this.errorRelated( + DiagnosticCode.The_this_types_of_each_signature_are_incompatible, + reportNode.range, toStringInstance.identifierAndSignatureRange + ); + this.currentType = stringType; + return module.unreachable(); + } + + // Attempt to retry on the non-nullable form of the type, wrapped in a ternary: + // `expr ? expr.toString() : "null"` + const tempLocal = this.currentFlow.getTempLocal(type); + return module.if( + module.local_tee(tempLocal.index, expr, type.isManaged), + this.makeToString( + module.local_get(tempLocal.index, type.toRef()), + type.nonNullableType, + reportNode + ), + this.ensureStaticString("null") ); - this.currentType = stringType; - return this.module.unreachable(); } let toStringReturnType = toStringSignature.returnType; if (!toStringReturnType.isStrictlyAssignableTo(stringType)) { @@ -10187,7 +10203,7 @@ export class Compiler extends DiagnosticEmitter { reportNode.range, toStringInstance.identifierAndSignatureRange, toStringReturnType.toString(), stringType.toString() ); this.currentType = stringType; - return this.module.unreachable(); + return module.unreachable(); } return this.makeCallDirect(toStringInstance, [ expr ], reportNode); } @@ -10197,7 +10213,7 @@ export class Compiler extends DiagnosticEmitter { reportNode.range, type.toString(), stringType.toString() ); this.currentType = stringType; - return this.module.unreachable(); + return module.unreachable(); } /** Makes an allocation suitable to hold the data of an instance of the given class. */ diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 629dbcd62d..4ba00fcccb 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -39,10 +39,10 @@ (global $~lib/util/number/_K (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 4640)) - (global $~lib/memory/__data_end i32 (i32.const 4672)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37440)) - (global $~lib/memory/__heap_base i32 (i32.const 37440)) + (global $~lib/rt/__rtti_base i32 (i32.const 4848)) + (global $~lib/memory/__data_end i32 (i32.const 4880)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37648)) + (global $~lib/memory/__heap_base i32 (i32.const 37648)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") @@ -98,11 +98,16 @@ (data $50 (i32.const 4348) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00r\00e\00f\00#\001\00r\00e\00f\00#\002\00\00\00\00\00\00\00\00\00") (data $51 (i32.const 4396) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\14\00\00\00p\02\00\00\00\00\00\00\90\02\00\00\00\00\00\00\b0\02\00\00\00\00\00\00\00\00\00\00") (data $52 (i32.const 4444) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00(\00A\00=\00r\00e\00f\00#\001\00,\00 \00B\00=\00r\00e\00f\00#\002\00)\00\00\00\00\00\00\00\00\00") - (data $53 (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") - (data $54 (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data $55 (i32.const 4572) "\1c\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\d0\11\00\00\00\00\00\00") - (data $56 (i32.const 4604) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00:\00b\00:\00c\00\00\00") - (data $57 (i32.const 4640) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 \00\00\00\00\00\00\00") + (data $53 (i32.const 4508) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00c\00:\00 \00\00\00\00\00\00\00") + (data $54 (i32.const 4540) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00;\00 \00d\00:\00 \00\00\00") + (data $55 (i32.const 4572) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\b0\11\00\00\00\00\00\00\d0\11\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $56 (i32.const 4620) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00n\00u\00l\00l\00\00\00\00\00") + (data $57 (i32.const 4652) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00c\00:\00 \00r\00e\00f\00#\003\00;\00 \00d\00:\00 \00n\00u\00l\00l\00\00\00\00\00\00\00\00\00\00\00") + (data $58 (i32.const 4716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00c\00\00\00\00\00\00\00\00\00\00\00") + (data $59 (i32.const 4748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data $60 (i32.const 4780) "\1c\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\a0\12\00\00\00\00\00\00") + (data $61 (i32.const 4812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00a\00:\00b\00:\00c\00\00\00") + (data $62 (i32.const 4848) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 \00\00\00\00\00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -4365,6 +4370,7 @@ call $templateliteral/test_float call $templateliteral/test_fast_paths_string call $templateliteral/test_ref + call $templateliteral/test_null call $templateliteral/test_recursive ) (func $~lib/rt/__visit_globals (param $0 i32) @@ -4519,8 +4525,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 37472 - i32.const 37520 + i32.const 37680 + i32.const 37728 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -5991,6 +5997,126 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $templateliteral/test_null + (local $c i32) + (local $d i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 3 + call $templateliteral/Ref#constructor + local.tee $c + i32.store + i32.const 0 + local.set $d + global.get $~lib/memory/__stack_pointer + local.get $c + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $templateliteral/Ref#toString + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $d + local.tee $4 + i32.store offset=20 + local.get $4 + if (result i32) + local.get $4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + call $templateliteral/Ref#toString + else + i32.const 4640 + end + local.tee $3 + i32.store offset=24 + i32.const 4592 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const 1 + local.get $2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=28 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 4592 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const 3 + local.get $3 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=28 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset + i32.const 4592 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $5 + i32.const 160 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=28 + local.get $5 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 4672 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $templateliteral/RecursiveObject#constructor (param $this i32) (param $key i32) (param $val i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -6110,7 +6236,7 @@ call $templateliteral/RecursiveObject#toString local.tee $3 i32.store offset=12 - i32.const 4592 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6124,7 +6250,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4592 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6138,7 +6264,7 @@ i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset - i32.const 4592 + i32.const 4800 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -6175,7 +6301,7 @@ memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 4528 + i32.const 4736 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -6231,7 +6357,7 @@ local.get $3 i32.store local.get $3 - i32.const 4624 + i32.const 4832 local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 @@ -6242,7 +6368,7 @@ if i32.const 0 i32.const 96 - i32.const 118 + i32.const 125 i32.const 3 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 55f98e34df..4103fc0f3f 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -28,7 +28,7 @@ (global $~lib/util/number/_K (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 38464)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 38672)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) "\1c") @@ -122,13 +122,22 @@ (data $52 (i32.const 5468) "<") (data $52.1 (i32.const 5480) "\02\00\00\00$\00\00\00(\00A\00=\00r\00e\00f\00#\001\00,\00 \00B\00=\00r\00e\00f\00#\002\00)") (data $53 (i32.const 5532) "\1c") - (data $53.1 (i32.const 5544) "\02\00\00\00\02\00\00\00c") + (data $53.1 (i32.const 5544) "\02\00\00\00\06\00\00\00c\00:\00 ") (data $54 (i32.const 5564) "\1c") - (data $54.1 (i32.const 5576) "\02\00\00\00\02\00\00\00:") - (data $55 (i32.const 5596) "\1c\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\d0\15") - (data $56 (i32.const 5628) "\1c") - (data $56.1 (i32.const 5640) "\02\00\00\00\n\00\00\00a\00:\00b\00:\00c") - (data $57 (i32.const 5664) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 ") + (data $54.1 (i32.const 5576) "\02\00\00\00\n\00\00\00;\00 \00d\00:\00 ") + (data $55 (i32.const 5596) ",\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\10\00\00\00\b0\15\00\00\00\00\00\00\d0\15") + (data $56 (i32.const 5644) "\1c") + (data $56.1 (i32.const 5656) "\02\00\00\00\08\00\00\00n\00u\00l\00l") + (data $57 (i32.const 5676) "<") + (data $57.1 (i32.const 5688) "\02\00\00\00\"\00\00\00c\00:\00 \00r\00e\00f\00#\003\00;\00 \00d\00:\00 \00n\00u\00l\00l") + (data $58 (i32.const 5740) "\1c") + (data $58.1 (i32.const 5752) "\02\00\00\00\02\00\00\00c") + (data $59 (i32.const 5772) "\1c") + (data $59.1 (i32.const 5784) "\02\00\00\00\02\00\00\00:") + (data $60 (i32.const 5804) "\1c\00\00\00\03\00\00\00\00\00\00\00\04\00\00\00\0c\00\00\00\00\00\00\00\a0\16") + (data $61 (i32.const 5836) "\1c") + (data $61.1 (i32.const 5848) "\02\00\00\00\n\00\00\00a\00:\00b\00:\00c") + (data $62 (i32.const 5872) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/rt/itcms/visitRoots @@ -203,7 +212,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$162 + block $__inlined_func$~lib/rt/itcms/Object#unlink$164 local.get $0 i32.load offset=4 i32.const -4 @@ -215,7 +224,7 @@ i32.load offset=8 i32.eqz local.get $0 - i32.const 38464 + i32.const 38672 i32.lt_u i32.and i32.eqz @@ -227,7 +236,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$162 + br $__inlined_func$~lib/rt/itcms/Object#unlink$164 end local.get $0 i32.load offset=8 @@ -264,7 +273,7 @@ i32.const 1 else local.get $1 - i32.const 5664 + i32.const 5872 i32.load i32.gt_u if @@ -278,7 +287,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 5668 + i32.const 5876 i32.add i32.load i32.const 32 @@ -862,10 +871,10 @@ if unreachable end - i32.const 38464 + i32.const 38672 i32.const 0 i32.store - i32.const 40032 + i32.const 40240 i32.const 0 i32.store loop $for-loop|0 @@ -876,7 +885,7 @@ local.get $0 i32.const 2 i32.shl - i32.const 38464 + i32.const 38672 i32.add i32.const 0 i32.store offset=4 @@ -894,7 +903,7 @@ i32.add i32.const 2 i32.shl - i32.const 38464 + i32.const 38672 i32.add i32.const 0 i32.store offset=96 @@ -912,14 +921,14 @@ br $for-loop|0 end end - i32.const 38464 - i32.const 40036 + i32.const 38672 + i32.const 40244 memory.size i64.extend_i32_s i64.const 16 i64.shl call $~lib/rt/tlsf/addMemory - i32.const 38464 + i32.const 38672 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) @@ -1004,7 +1013,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 38464 + i32.const 38672 i32.lt_u if local.get $0 @@ -1100,7 +1109,7 @@ unreachable end local.get $0 - i32.const 38464 + i32.const 38672 i32.lt_u if local.get $0 @@ -1123,7 +1132,7 @@ i32.const 4 i32.add local.tee $0 - i32.const 38464 + i32.const 38672 i32.ge_u if global.get $~lib/rt/tlsf/ROOT @@ -1799,11 +1808,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -2947,11 +2956,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3018,7 +3027,7 @@ memory.size i32.const 16 i32.shl - i32.const 38464 + i32.const 38672 i32.sub i32.const 1 i32.shr_u @@ -3053,7 +3062,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3180,7 +3189,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3314,7 +3323,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3449,7 +3458,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3604,11 +3613,99 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $templateliteral/Ref#toString + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 5664 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=28 + i32.const 5620 + local.get $0 + i32.store + i32.const 5616 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 5664 + i32.store offset=28 + i32.const 5628 + i32.const 5664 + i32.store + i32.const 5616 + i32.const 5664 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=28 + i32.const 5616 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 5696 + i32.store offset=8 + local.get $0 + i32.const 5696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -3616,10 +3713,10 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 5552 + i32.const 5760 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5552 + i32.const 5760 i32.const 0 call $templateliteral/RecursiveObject#constructor local.tee $0 @@ -3658,16 +3755,16 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 5648 + i32.const 5856 i32.store offset=8 local.get $0 - i32.const 5648 + i32.const 5856 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 118 + i32.const 125 i32.const 3 call $~lib/builtins/abort unreachable @@ -3678,8 +3775,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3784,11 +3881,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -3887,7 +3984,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$89 + block $__inlined_func$~lib/util/string/compareImpl$90 loop $while-continue|1 local.get $0 local.tee $3 @@ -3907,7 +4004,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$89 + br_if $__inlined_func$~lib/util/string/compareImpl$90 local.get $2 i32.const 2 i32.add @@ -3945,11 +4042,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4023,11 +4120,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4235,11 +4332,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4276,11 +4373,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4493,11 +4590,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4531,7 +4628,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4558,7 +4655,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4583,8 +4680,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4597,11 +4694,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4658,11 +4755,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5904 i32.lt_s if - i32.const 38496 - i32.const 38544 + i32.const 38704 + i32.const 38752 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -4711,38 +4808,38 @@ local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 5616 + i32.const 5824 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - i32.const 5616 + i32.const 5824 local.get $0 i32.store - i32.const 5616 + i32.const 5824 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5616 + i32.const 5824 i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 - i32.const 5624 + i32.const 5832 local.get $1 i32.store - i32.const 5616 + i32.const 5824 local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5616 + i32.const 5824 i32.store global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store offset=16 - i32.const 5616 + i32.const 5824 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer i32.const 20 diff --git a/tests/compiler/templateliteral.ts b/tests/compiler/templateliteral.ts index b6d3782712..7ced6c8454 100644 --- a/tests/compiler/templateliteral.ts +++ b/tests/compiler/templateliteral.ts @@ -54,6 +54,13 @@ function test_ref(): void { } test_ref(); +function test_null(): void { + var c: Ref | null = new Ref(3); + var d: Ref | null = null; + assert(`c: ${c}; d: ${d}` == "c: ref#3; d: null"); +} +test_null(); + function tag(parts: TemplateStringsArray, a: i32): string { var raw = parts.raw; assert(parts.length == 2); From 3defefd5b09248d697a2e6bd1e7201c0cf98def1 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Tue, 3 Jun 2025 15:59:32 -0700 Subject: [PATCH 47/86] feat: support more types in switch statements (#2926) --- src/compiler.ts | 104 +- tests/compiler/switch.debug.wat | 4799 ++++++++++++++++++++++++++++- tests/compiler/switch.release.wat | 3107 +++++++++++++++++++ tests/compiler/switch.ts | 212 +- 4 files changed, 8096 insertions(+), 126 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index 4cacf19fa4..dcc5e84978 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -2816,19 +2816,18 @@ export class Compiler extends DiagnosticEmitter { let numCases = cases.length; // Compile the condition (always executes) - let condExpr = this.compileExpression(statement.condition, Type.u32, - Constraints.ConvImplicit - ); - + let condExpr = this.compileExpression(statement.condition, Type.auto); + let condType = this.currentType; + // Shortcut if there are no cases if (!numCases) return module.drop(condExpr); // Assign the condition to a temporary local as we compare it multiple times let outerFlow = this.currentFlow; - let tempLocal = outerFlow.getTempLocal(Type.u32); + let tempLocal = outerFlow.getTempLocal(condType); let tempLocalIndex = tempLocal.index; let breaks = new Array(1 + numCases); - breaks[0] = module.local_set(tempLocalIndex, condExpr, false); // u32 + breaks[0] = module.local_set(tempLocalIndex, condExpr, condType.isManaged); // Make one br_if per labeled case and leave it to Binaryen to optimize the // sequence of br_ifs to a br_table according to optimization levels @@ -2841,14 +2840,24 @@ export class Compiler extends DiagnosticEmitter { defaultIndex = i; continue; } - breaks[breakIndex++] = module.br(`case${i}|${label}`, - module.binary(BinaryOp.EqI32, - module.local_get(tempLocalIndex, TypeRef.I32), - this.compileExpression(assert(case_.label), Type.u32, - Constraints.ConvImplicit - ) - ) + + // Compile the equality expression for this case + const left = statement.condition; + const leftExpr = module.local_get(tempLocalIndex, condType.toRef()); + const leftType = condType; + const right = case_.label!; + const rightExpr = this.compileExpression(assert(case_.label), condType, Constraints.ConvImplicit); + const rightType = this.currentType; + const equalityExpr = this.compileCommutativeCompareBinaryExpressionFromParts( + Token.Equals_Equals, + left, leftExpr, leftType, + right, rightExpr, rightType, + condType, + statement ); + + // Add it to the list of breaks + breaks[breakIndex++] = module.br(`case${i}|${label}`, equalityExpr); } // If there is a default case, break to it, otherwise break out of the switch @@ -3800,24 +3809,44 @@ export class Compiler extends DiagnosticEmitter { expression: BinaryExpression, contextualType: Type, ): ExpressionRef { - let module = this.module; - let left = expression.left; - let right = expression.right; + + const left = expression.left; + const leftExpr = this.compileExpression(left, contextualType); + const leftType = this.currentType; + + const right = expression.right; + const rightExpr = this.compileExpression(right, leftType); + const rightType = this.currentType; + + return this.compileCommutativeCompareBinaryExpressionFromParts( + expression.operator, + left, leftExpr, leftType, + right, rightExpr, rightType, + contextualType, + expression + ); + } - let leftExpr: ExpressionRef; - let leftType: Type; - let rightExpr: ExpressionRef; - let rightType: Type; - let commonType: Type | null; + /** + * compile `==` `===` `!=` `!==` BinaryExpression, from previously compiled left and right expressions. + * + * This is split from `compileCommutativeCompareBinaryExpression` so that the logic can be reused + * for switch cases in `compileSwitchStatement`, where the left expression only should be compiled once. + */ + private compileCommutativeCompareBinaryExpressionFromParts( + operator: Token, + left: Expression, + leftExpr: ExpressionRef, + leftType: Type, + right: Expression, + rightExpr: ExpressionRef, + rightType: Type, + contextualType: Type, + reportNode: Node + ): ExpressionRef { - let operator = expression.operator; + let module = this.module; let operatorString = operatorTokenToString(operator); - - leftExpr = this.compileExpression(left, contextualType); - leftType = this.currentType; - - rightExpr = this.compileExpression(right, leftType); - rightType = this.currentType; // check operator overload const operatorKind = OperatorKind.fromBinaryToken(operator); @@ -3825,7 +3854,8 @@ export class Compiler extends DiagnosticEmitter { const rightOverload = rightType.lookupOverload(operatorKind, this.program); if (leftOverload && rightOverload && leftOverload != rightOverload) { this.error( - DiagnosticCode.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2, expression.range, + DiagnosticCode.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2, + reportNode.range, operatorString, leftOverload.internalName, rightOverload.internalName @@ -3838,7 +3868,7 @@ export class Compiler extends DiagnosticEmitter { leftOverload, left, leftExpr, leftType, right, rightExpr, rightType, - expression + reportNode ); } if (rightOverload) { @@ -3846,15 +3876,15 @@ export class Compiler extends DiagnosticEmitter { rightOverload, right, rightExpr, rightType, left, leftExpr, leftType, - expression + reportNode ); } const signednessIsRelevant = false; - commonType = Type.commonType(leftType, rightType, contextualType, signednessIsRelevant); + const commonType = Type.commonType(leftType, rightType, contextualType, signednessIsRelevant); if (!commonType) { this.error( DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, - expression.range, + reportNode.range, operatorString, leftType.toString(), rightType.toString() @@ -3867,13 +3897,13 @@ export class Compiler extends DiagnosticEmitter { if (isConstExpressionNaN(module, rightExpr) || isConstExpressionNaN(module, leftExpr)) { this.warning( DiagnosticCode._NaN_does_not_compare_equal_to_any_other_value_including_itself_Use_isNaN_x_instead, - expression.range + reportNode.range ); } if (isConstNegZero(rightExpr) || isConstNegZero(leftExpr)) { this.warning( DiagnosticCode.Comparison_with_0_0_is_sign_insensitive_Use_Object_is_x_0_0_if_the_sign_matters, - expression.range + reportNode.range ); } } @@ -3887,10 +3917,10 @@ export class Compiler extends DiagnosticEmitter { switch (operator) { case Token.Equals_Equals_Equals: case Token.Equals_Equals: - return this.makeEq(leftExpr, rightExpr, commonType, expression); + return this.makeEq(leftExpr, rightExpr, commonType, reportNode); case Token.Exclamation_Equals_Equals: case Token.Exclamation_Equals: - return this.makeNe(leftExpr, rightExpr, commonType, expression); + return this.makeNe(leftExpr, rightExpr, commonType, reportNode); default: assert(false); return module.unreachable(); diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index 6510f0aca7..e38ffb1605 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -1,13 +1,67 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32))) + (type $4 (func)) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i64) (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (type $11 (func (param f32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (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/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/native/ASC_SHRINK_LEVEL 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 $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $switch/Foo.A i32 (i32.const 1)) + (global $switch/Foo.B i32 (i32.const 2)) + (global $switch/Foo.C i32 (i32.const 3)) + (global $switch/Foo.D i32 (i32.const 4)) + (global $switch/foo1 (mut i32) (i32.const 0)) + (global $switch/foo2 (mut i32) (i32.const 0)) + (global $~lib/rt/__rtti_base i32 (i32.const 912)) + (global $~lib/memory/__data_end i32 (i32.const 940)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33708)) + (global $~lib/memory/__heap_base i32 (i32.const 33708)) (memory $0 1) (data $0 (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 60) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") + (data $2 (i32.const 92) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") + (data $3 (i32.const 124) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") + (data $4 (i32.const 156) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") + (data $5 (i32.const 188) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00o\00\00\00\00\00\00\00\00\00\00\00") + (data $6 (i32.const 220) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00n\00\00\00\00\00\00\00\00\00\00\00") + (data $7 (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $8 (i32.const 284) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") + (data $9 (i32.const 348) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $10 (i32.const 416) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $11 (i32.const 448) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $12 (i32.const 476) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data $13 (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data $14 (i32.const 592) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $15 (i32.const 620) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data $16 (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00e\00\00\00\00\00\00\00\00\00\00\00") + (data $17 (i32.const 716) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00t\00\00\00\00\00\00\00\00\00\00\00") + (data $18 (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00w\00\00\00\00\00\00\00\00\00\00\00") + (data $19 (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00h\00\00\00\00\00\00\00\00\00\00\00") + (data $20 (i32.const 812) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00r\00\00\00\00\00\00\00\00\00\00\00") + (data $21 (i32.const 844) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00f\00\00\00\00\00\00\00\00\00\00\00") + (data $22 (i32.const 876) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00u\00\00\00\00\00\00\00\00\00\00\00") + (data $23 (i32.const 912) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -50,6 +104,38 @@ i32.const 23 return ) + (func $switch/doSwitchDefaultFirst (param $n i32) (result i32) + (local $1 i32) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $1 + i32.const 3 + i32.eq + br_if $case3|0 + br $case0|0 + end + i32.const 0 + return + end + i32.const 1 + return + end + end + i32.const 23 + return + ) (func $switch/doSwitchDefaultOmitted (param $n i32) (result i32) (local $1 i32) block $break|0 @@ -166,399 +252,4944 @@ i32.const 2 return ) - (func $start:switch + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) + (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) + (local $ptr1 i32) + (local $ptr2 i32) + (local $7 i32) + (local $a i32) + (local $b i32) + local.get $str1 + local.get $index1 + i32.const 1 + i32.shl + i32.add + local.set $ptr1 + local.get $str2 + local.get $index2 + i32.const 1 + i32.shl + i32.add + local.set $ptr2 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $len + i32.const 4 + i32.ge_u + if (result i32) + local.get $ptr1 + i32.const 7 + i32.and + local.get $ptr2 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $ptr1 + i64.load + local.get $ptr2 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $ptr1 + i32.const 8 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 8 + i32.add + local.set $ptr2 + local.get $len + i32.const 4 + i32.sub + local.set $len + local.get $len + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 + end + end + i32.const 0 + return + ) + (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) + local.get $this + local.get $nextWithColor + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=8 + ) + (func $~lib/rt/itcms/initLazy (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 + return + ) + (func $~lib/rt/itcms/Object#get:nextWithColor (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/itcms/Object#get:next (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 + return + ) + (func $~lib/rt/itcms/Object#get:color (param $this i32) (result i32) + local.get $this + call $~lib/rt/itcms/Object#get:nextWithColor + i32.const 3 + i32.and + return + ) + (func $~lib/rt/itcms/visitRoots (param $cookie i32) + (local $pn i32) + (local $iter 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 + 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 368 + i32.const 160 + 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 (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 (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/itcms/Object#set:next (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 (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 368 + i32.const 128 + 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 368 + i32.const 132 + 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 (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/shared/typeinfo/Typeinfo#get:flags (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/__typeinfo (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 + i32.gt_u + if + i32.const 496 + i32.const 560 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $ptr + i32.const 4 + i32.add + local.get $id + i32.const 4 + i32.mul + i32.add + call $~lib/shared/typeinfo/Typeinfo#get:flags + return + ) + (func $~lib/rt/itcms/Object#get:isPointerfree (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 2 + 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 + return + ) + (func $~lib/rt/itcms/Object#linkTo (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 (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 368 + i32.const 148 + 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 (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 (param $cookie i32) + (local $ptr 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 + if + local.get $ptr + i32.load + 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 (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:size (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 + return + ) + (func $~lib/rt/tlsf/Root#set:flMap (param $this i32) (param $flMap i32) + local.get $this + local.get $flMap + i32.store + ) + (func $~lib/rt/common/BLOCK#set:mmInfo (param $this i32) (param $mmInfo i32) + local.get $this + local.get $mmInfo + i32.store + ) + (func $~lib/rt/tlsf/Block#set:prev (param $this i32) (param $prev i32) + local.get $this + local.get $prev + i32.store offset=4 + ) + (func $~lib/rt/tlsf/Block#set:next (param $this i32) (param $next i32) + local.get $this + local.get $next + i32.store offset=8 + ) + (func $~lib/rt/tlsf/Block#get:prev (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) + (func $~lib/rt/tlsf/Block#get:next (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/rt/tlsf/Root#get:flMap (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/tlsf/removeBlock (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 640 + 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 640 + 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 640 + 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 + block $~lib/rt/tlsf/GETHEAD|inlined.0 (result i32) + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.0 + end + 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 offset=96 + local.get $next + i32.eqz + if + block $~lib/rt/tlsf/GETSL|inlined.0 (result i32) + local.get $root + local.set $root|18 + local.get $fl + local.set $fl|19 + local.get $root|18 + local.get $fl|19 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.0 + end + 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 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 (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 640 + 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 640 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETRIGHT|inlined.0 (result i32) + local.get $block + local.set $block|3 + local.get $block|3 + i32.const 4 + i32.add + local.get $block|3 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.0 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.1 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.1 + end + local.set $right + local.get $right + call $~lib/rt/common/BLOCK#get:mmInfo + local.set $rightInfo + end + local.get $blockInfo + i32.const 2 + i32.and + if + block $~lib/rt/tlsf/GETFREELEFT|inlined.0 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.sub + i32.load + br $~lib/rt/tlsf/GETFREELEFT|inlined.0 + end + 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 640 + 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 640 + 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 640 + 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 + 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 640 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.1 (result i32) + local.get $root + local.set $root|16 + local.get $fl + local.set $fl|17 + local.get $sl + local.set $sl|18 + local.get $root|16 + local.get $fl|17 + i32.const 4 + i32.shl + local.get $sl|18 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.1 + end + 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 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 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + 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 offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) + (local $end i32) + (local $root|4 i32) + (local $tail i32) + (local $tailInfo i32) + (local $size i32) + (local $leftSize i32) + (local $left i32) + (local $root|10 i32) + (local $tail|11 i32) + local.get $endU64 + i32.wrap_i64 + local.set $end + i32.const 1 + drop + local.get $start + i64.extend_i32_u + local.get $endU64 + i64.le_u + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 382 + 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 + block $~lib/rt/tlsf/GETTAIL|inlined.0 (result i32) + local.get $root + local.set $root|4 + local.get $root|4 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.0 + end + 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 640 + i32.const 389 + 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 + 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 640 + i32.const 402 + 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|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + local.get $root + local.get $left + call $~lib/rt/tlsf/insertBlock + i32.const 1 + return + ) + (func $~lib/rt/tlsf/initialize + (local $rootOffset i32) + (local $pagesBefore i32) + (local $pagesNeeded i32) + (local $root i32) + (local $root|4 i32) + (local $tail i32) + (local $fl i32) + (local $root|7 i32) + (local $fl|8 i32) + (local $slMap i32) + (local $sl i32) + (local $root|11 i32) + (local $fl|12 i32) + (local $sl|13 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 + 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 + 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 offset=1568 + i32.const 0 + local.set $fl + loop $for-loop|0 + local.get $fl + i32.const 23 + i32.lt_u + if + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + i32.const 0 + local.set $sl + loop $for-loop|1 + local.get $sl + i32.const 16 + i32.lt_u + if + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + 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 + local.get $head + i32.store 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 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + local.get $root + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/checkUsedBlock (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 640 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $block + return + ) + (func $~lib/rt/tlsf/freeBlock (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 (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 (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 (result i32) + (local $obj i32) + (local $1 i32) + (local $black 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 + 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 + 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 368 + i32.const 229 + 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 + return + ) + (func $~lib/rt/itcms/interrupt + (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 (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 + return + ) + (func $~lib/rt/tlsf/prepareSize (param $size i32) (result i32) + local.get $size + i32.const 1073741820 + i32.gt_u + if + i32.const 304 + i32.const 640 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $size + call $~lib/rt/tlsf/computeSize + return + ) + (func $~lib/rt/tlsf/roundSize (param $size i32) (result i32) + 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 + return + ) + (func $~lib/rt/tlsf/searchBlock (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 + call $~lib/rt/tlsf/roundSize + local.set $requestSize + i32.const 4 + i32.const 8 + i32.mul + i32.const 1 + i32.sub + 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 640 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETSL|inlined.2 (result i32) + local.get $root + local.set $root|5 + local.get $fl + local.set $fl|6 + local.get $root|5 + local.get $fl|6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.2 + end + 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 + block $~lib/rt/tlsf/GETSL|inlined.3 (result i32) + local.get $root + local.set $root|10 + local.get $fl + local.set $fl|11 + local.get $root|10 + local.get $fl|11 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.3 + end + local.set $slMap + i32.const 1 + drop + local.get $slMap + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + block $~lib/rt/tlsf/GETHEAD|inlined.2 (result i32) + local.get $root + local.set $root|12 + local.get $fl + local.set $fl|13 + local.get $slMap + i32.ctz + local.set $sl|14 + local.get $root|12 + local.get $fl|13 + i32.const 4 + i32.shl + local.get $sl|14 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.2 + end + local.set $head + end + else + block $~lib/rt/tlsf/GETHEAD|inlined.3 (result i32) + local.get $root + local.set $root|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 offset=96 + br $~lib/rt/tlsf/GETHEAD|inlined.3 + end + local.set $head + end + local.get $head + return + ) + (func $~lib/rt/tlsf/growMemory (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 256 + i32.ge_u + if + local.get $size + call $~lib/rt/tlsf/roundSize + local.set $size + end + memory.size + local.set $pagesBefore + local.get $size + i32.const 4 + local.get $pagesBefore + i32.const 16 + i32.shl + i32.const 4 + i32.sub + block $~lib/rt/tlsf/GETTAIL|inlined.1 (result i32) + local.get $root + local.set $root|3 + local.get $root|3 + i32.load offset=1568 + br $~lib/rt/tlsf/GETTAIL|inlined.1 + end + 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 + i32.const 0 + i32.lt_s + if + local.get $pagesNeeded + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + memory.size + local.set $pagesAfter + local.get $root + local.get $pagesBefore + i32.const 16 + i32.shl + local.get $pagesAfter + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + drop + ) + (func $~lib/rt/tlsf/prepareBlock (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 640 + i32.const 361 + 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 + block $~lib/rt/tlsf/GETRIGHT|inlined.3 (result i32) + local.get $block + local.set $block|7 + local.get $block|7 + i32.const 4 + i32.add + local.get $block|7 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.3 + end + block $~lib/rt/tlsf/GETRIGHT|inlined.2 (result i32) + local.get $block + local.set $block|6 + local.get $block|6 + i32.const 4 + i32.add + local.get $block|6 + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.add + br $~lib/rt/tlsf/GETRIGHT|inlined.2 + end + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 2 + i32.const -1 + i32.xor + i32.and + call $~lib/rt/common/BLOCK#set:mmInfo + end + ) + (func $~lib/rt/tlsf/allocateBlock (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 640 + i32.const 499 + 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 640 + i32.const 501 + 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 + return + ) + (func $~lib/rt/tlsf/__alloc (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 + return + ) + (func $~lib/rt/itcms/Object#set:rtId (param $this i32) (param $rtId i32) + local.get $this + local.get $rtId + i32.store offset=12 + ) + (func $~lib/rt/itcms/Object#set:rtSize (param $this i32) (param $rtSize i32) + local.get $this + local.get $rtSize + i32.store offset=16 + ) + (func $~lib/rt/itcms/__new (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 304 + i32.const 368 + i32.const 261 + 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 + local.get $ptr + return + ) + (func $switch/doSwitchBoolean (param $b i32) (result i32) + (local $1 i32) + block $break|0 + block $case1|0 + block $case0|0 + local.get $b + local.set $1 + local.get $1 + i32.const 0 + i32.ne + i32.const 1 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 0 + i32.ne + i32.const 0 + i32.eq + br_if $case1|0 + br $break|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchUInt32 (param $n i32) (result i32) + (local $1 i32) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 3 + i32.eq + br_if $case2|0 + br $case3|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 3 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchEnum (param $n i32) (result i32) + (local $1 i32) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + global.get $switch/Foo.A + i32.eq + br_if $case0|0 + local.get $1 + global.get $switch/Foo.B + i32.eq + br_if $case1|0 + local.get $1 + global.get $switch/Foo.C + i32.eq + br_if $case2|0 + br $case3|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 3 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchUint8 (param $n i32) (result i32) + (local $1 i32) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 255 + i32.and + i32.const 1 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 255 + i32.and + i32.const 2 + i32.eq + br_if $case1|0 + local.get $1 + i32.const 255 + i32.and + i32.const 3 + i32.eq + br_if $case2|0 + br $case3|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 3 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchFloat (param $n f32) (result i32) + (local $1 f32) + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + f32.const 1 + f32.eq + br_if $case0|0 + local.get $1 + f32.const 2 + f32.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchInt64 (param $n i64) (result i32) + (local $1 i64) + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i64.const 1 + i64.eq + br_if $case0|0 + local.get $1 + i64.const 2 + i64.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 0 + return + ) + (func $switch/doSwitchUInt64 (param $n i64) (result i32) + (local $1 i64) + block $case2|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i64.const 1 + i64.eq + br_if $case0|0 + local.get $1 + i64.const 2 + i64.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + return + end + i32.const 2 + return + end + i32.const 0 + return + ) + (func $switch/FooClass#set:value (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store + ) + (func $switch/FooClass#get:value (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $switch/BarClass#get:value (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $switch/BarClass#set:value (param $this i32) (param $value i32) + local.get $this + local.get $value + i32.store + ) + (func $~lib/rt/__visit_globals (param $0 i32) + (local $1 i32) + global.get $switch/foo1 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $switch/foo2 + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 496 + local.get $0 + call $~lib/rt/itcms/__visit + i32.const 304 + local.get $0 + call $~lib/rt/itcms/__visit + ) + (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + local.get $1 + call $~lib/rt/itcms/__visit + end + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + ) + (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) + block $invalid + block $switch/BarClass + block $switch/FooClass + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $switch/FooClass $switch/BarClass $invalid + end + return + end + return + end + return + end + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:switch + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33728 + i32.const 33776 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 + local.get $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $switch/doSwitchString (param $s i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/memory/__stack_pointer + local.get $s + local.tee $1 + i32.store + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 80 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + br_if $case0|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 112 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + br_if $case1|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 144 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + br_if $case2|0 + br $case3|0 + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $~lib/string/String#concat (param $this i32) (param $other i32) (result i32) + (local $thisSize i32) + (local $otherSize i32) + (local $outSize i32) + (local $out 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 + local.get $this + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $thisSize + local.get $other + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/string/String#get:length + i32.const 1 + i32.shl + local.set $otherSize + local.get $thisSize + local.get $otherSize + i32.add + local.set $outSize + local.get $outSize + i32.const 0 + i32.eq + if + i32.const 272 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + global.get $~lib/memory/__stack_pointer + local.get $outSize + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=4 + local.get $out + local.get $this + local.get $thisSize + memory.copy + local.get $out + local.get $thisSize + i32.add + local.get $other + local.get $otherSize + memory.copy + local.get $out + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + ) + (func $~lib/string/String.__concat (param $left i32) (param $right 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 + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/string/String#concat + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $switch/doSwitchNullableString (param $s i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/memory/__stack_pointer + local.get $s + local.tee $1 + i32.store + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $~lib/string/String.__eq + br_if $case0|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 80 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + br_if $case1|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 112 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + br_if $case2|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 144 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/string/String.__eq + br_if $case3|0 + br $case4|0 + end + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $switch/FooClass#constructor (param $this i32) (param $value 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 + 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 + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $switch/FooClass#set:value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $value + call $switch/FooClass#set:value + 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 $switch/doSwitchClassMember (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 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $foo + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $switch/FooClass#get:value + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case0|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $switch/BarClass.__eq (param $left i32) (param $right 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 + local.get $left + local.get $right + i32.eq + if + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $left + i32.eqz + if (result i32) + i32.const 1 + else + local.get $right + i32.eqz + end + if + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $left + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $switch/BarClass#get:value + local.get $right + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $switch/BarClass#get:value + i32.eq + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $switch/BarClass#constructor (param $this i32) (param $value 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 + 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 + end + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $switch/BarClass#set:value + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $value + call $switch/BarClass#set:value + 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 $switch/doSwitchClassInstanceWithOverload (param $foo i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/memory/__stack_pointer + local.get $foo + local.tee $1 + i32.store + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + call $switch/BarClass.__eq + br_if $case0|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1 + call $switch/BarClass#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $switch/BarClass.__eq + br_if $case1|0 + local.get $1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 2 + call $switch/BarClass#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $switch/BarClass.__eq + br_if $case2|0 + br $case3|0 + end + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $start:switch + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 36 + memory.fill + i32.const 0 + call $switch/doSwitch + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitch + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitch + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/doSwitch + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + call $switch/doSwitch + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchDefaultFirst + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchDefaultFirst + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchDefaultFirst + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/doSwitchDefaultFirst + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + call $switch/doSwitchDefaultFirst + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchDefaultOmitted + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchDefaultOmitted + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 39 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchDefaultOmitted + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/doSwitchDefaultOmitted + i32.const 23 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 4 + call $switch/doSwitchDefaultOmitted + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchBreakCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBreakCase + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 52 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchBreakCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 53 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchBreakDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBreakDefault + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchBreakDefault + i32.const 2 + i32.eq + 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 $switch/doSwitchFallThroughCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchFallThroughCase + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchFallThroughCase + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchFallThroughDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchFallThroughDefault + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchFallThroughDefault + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 86 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/doSwitchEmpty + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 80 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 112 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 176 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + 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 416 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 448 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 592 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + i32.const 208 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 240 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 704 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 112 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 768 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 208 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=28 + local.get $0 + i32.const 800 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=32 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $0 + i32.const 832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 704 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 704 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 864 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $0 + i32.const 208 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 896 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 - call $switch/doSwitch + call $switch/doSwitchNullableString i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 10 + i32.const 128 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 80 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 1 - call $switch/doSwitch + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 129 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 112 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 130 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 144 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 131 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 176 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 208 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 240 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 704 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 11 + i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 768 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 208 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 2 - call $switch/doSwitch - i32.const 23 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 12 + i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 736 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=28 + local.get $0 + i32.const 800 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=32 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $0 + i32.const 832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 704 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 704 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 3 - call $switch/doSwitch - i32.const 23 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 13 + i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 864 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $0 + i32.const 208 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 896 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 832 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString i32.const 4 - call $switch/doSwitch + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 138 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/doSwitchBoolean + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 148 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 + call $switch/doSwitchBoolean + i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 14 + i32.const 149 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - call $switch/doSwitch + call $switch/doSwitchUInt32 i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 24 + i32.const 159 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1 - call $switch/doSwitch + call $switch/doSwitchUInt32 i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 25 + i32.const 160 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 2 - call $switch/doSwitch - i32.const 23 + call $switch/doSwitchUInt32 + i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 26 + i32.const 161 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 3 - call $switch/doSwitch - i32.const 23 + call $switch/doSwitchUInt32 + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 27 + i32.const 162 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 4 - call $switch/doSwitch + call $switch/doSwitchUInt32 i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 28 + i32.const 163 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $switch/Foo.A + call $switch/doSwitchEnum + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 180 i32.const 1 call $~lib/builtins/abort unreachable end + global.get $switch/Foo.B + call $switch/doSwitchEnum + i32.const 2 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 181 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $switch/Foo.C + call $switch/doSwitchEnum + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 182 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $switch/Foo.D + call $switch/doSwitchEnum i32.const 0 - call $switch/doSwitchDefaultOmitted + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 183 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchUint8 i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 38 + i32.const 193 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1 - call $switch/doSwitchDefaultOmitted + call $switch/doSwitchUint8 i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 39 + i32.const 194 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 2 - call $switch/doSwitchDefaultOmitted - i32.const 23 + call $switch/doSwitchUint8 + i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 40 + i32.const 195 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 3 - call $switch/doSwitchDefaultOmitted - i32.const 23 + call $switch/doSwitchUint8 + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 41 + i32.const 196 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 4 - call $switch/doSwitchDefaultOmitted + call $switch/doSwitchUint8 i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 42 + i32.const 197 i32.const 1 call $~lib/builtins/abort unreachable end + f32.const 0 + call $switch/doSwitchFloat i32.const 0 - call $switch/doSwitchBreakCase - i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 51 + i32.const 206 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - call $switch/doSwitchBreakCase + f32.const 1 + call $switch/doSwitchFloat i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 52 + i32.const 207 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2 - call $switch/doSwitchBreakCase + f32.const 2 + call $switch/doSwitchFloat i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 53 + i32.const 208 i32.const 1 call $~lib/builtins/abort unreachable end + i64.const 0 + call $switch/doSwitchInt64 i32.const 0 - call $switch/doSwitchBreakDefault - i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 62 + i32.const 217 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - call $switch/doSwitchBreakDefault + i64.const 1 + call $switch/doSwitchInt64 i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 63 + i32.const 218 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2 - call $switch/doSwitchBreakDefault + i64.const 2 + call $switch/doSwitchInt64 i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 64 + i32.const 219 i32.const 1 call $~lib/builtins/abort unreachable end + i64.const 0 + call $switch/doSwitchUInt64 i32.const 0 - call $switch/doSwitchFallThroughCase + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 230 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 1 + call $switch/doSwitchUInt64 + i32.const 1 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 231 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i64.const 2 + call $switch/doSwitchUInt64 i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 73 + i32.const 232 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 i32.const 1 - call $switch/doSwitchFallThroughCase + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 74 + i32.const 251 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 i32.const 2 - call $switch/doSwitchFallThroughCase + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 75 + i32.const 252 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - call $switch/doSwitchFallThroughDefault - i32.const 2 + i32.const 3 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 84 + i32.const 253 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 i32.const 1 - call $switch/doSwitchFallThroughDefault + call $switch/FooClass#constructor + global.set $switch/foo1 + i32.const 0 + i32.const 2 + call $switch/FooClass#constructor + global.set $switch/foo2 + global.get $switch/foo1 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 85 + i32.const 266 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2 - call $switch/doSwitchFallThroughDefault + global.get $switch/foo2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 86 + i32.const 267 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 - call $switch/doSwitchEmpty - i32.const 2 + i32.const 1 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance + i32.const 3 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 92 + i32.const 268 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 293 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload i32.const 1 - call $switch/doSwitchEmpty - i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 93 + i32.const 294 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 i32.const 2 - call $switch/doSwitchEmpty + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 32 - i32.const 94 + i32.const 295 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 3 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 296 i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~start - call $start:switch + (func $switch/doSwitchClassInstance (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 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/memory/__stack_pointer + local.get $foo + local.tee $1 + i32.store + local.get $1 + global.get $switch/foo1 + i32.eq + br_if $case0|0 + local.get $1 + global.get $switch/foo2 + i32.eq + br_if $case1|0 + br $case2|0 + end + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 2 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 3 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return ) ) diff --git a/tests/compiler/switch.release.wat b/tests/compiler/switch.release.wat index b5389b07f8..ef3d9d9622 100644 --- a/tests/compiler/switch.release.wat +++ b/tests/compiler/switch.release.wat @@ -1,6 +1,3113 @@ (module + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) + (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 $switch/foo1 (mut i32) (i32.const 0)) + (global $switch/foo2 (mut i32) (i32.const 0)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34732)) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\12\00\00\00s\00w\00i\00t\00c\00h\00.\00t\00s") + (data $1 (i32.const 1084) "\1c") + (data $1.1 (i32.const 1096) "\02\00\00\00\06\00\00\00o\00n\00e") + (data $2 (i32.const 1116) "\1c") + (data $2.1 (i32.const 1128) "\02\00\00\00\06\00\00\00t\00w\00o") + (data $3 (i32.const 1148) "\1c") + (data $3.1 (i32.const 1160) "\02\00\00\00\n\00\00\00t\00h\00r\00e\00e") + (data $4 (i32.const 1180) "\1c") + (data $4.1 (i32.const 1192) "\02\00\00\00\08\00\00\00f\00o\00u\00r") + (data $5 (i32.const 1212) "\1c") + (data $5.1 (i32.const 1224) "\02\00\00\00\02\00\00\00o") + (data $6 (i32.const 1244) "\1c") + (data $6.1 (i32.const 1256) "\02\00\00\00\02\00\00\00n") + (data $7 (i32.const 1276) "\1c") + (data $7.1 (i32.const 1288) "\02") + (data $8 (i32.const 1308) "<") + (data $8.1 (i32.const 1320) "\02\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") + (data $9 (i32.const 1372) "<") + (data $9.1 (i32.const 1384) "\02\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data $12 (i32.const 1500) "<") + (data $12.1 (i32.const 1512) "\02\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data $13 (i32.const 1564) ",") + (data $13.1 (i32.const 1576) "\02\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data $15 (i32.const 1644) "<") + (data $15.1 (i32.const 1656) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") + (data $16 (i32.const 1708) "\1c") + (data $16.1 (i32.const 1720) "\02\00\00\00\02\00\00\00e") + (data $17 (i32.const 1740) "\1c") + (data $17.1 (i32.const 1752) "\02\00\00\00\02\00\00\00t") + (data $18 (i32.const 1772) "\1c") + (data $18.1 (i32.const 1784) "\02\00\00\00\02\00\00\00w") + (data $19 (i32.const 1804) "\1c") + (data $19.1 (i32.const 1816) "\02\00\00\00\02\00\00\00h") + (data $20 (i32.const 1836) "\1c") + (data $20.1 (i32.const 1848) "\02\00\00\00\02\00\00\00r") + (data $21 (i32.const 1868) "\1c") + (data $21.1 (i32.const 1880) "\02\00\00\00\02\00\00\00f") + (data $22 (i32.const 1900) "\1c") + (data $22.1 (i32.const 1912) "\02\00\00\00\02\00\00\00u") + (data $23 (i32.const 1936) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) + (start $~start) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $switch/foo1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $switch/foo2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1520 + call $~lib/rt/itcms/__visit + i32.const 1328 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1392 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$186 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34732 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$186 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1936 + i32.load + i32.gt_u + if + i32.const 1520 + i32.const 1584 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1940 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1664 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1664 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1664 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1664 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1664 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1664 + 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 1664 + 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 + 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 1664 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1664 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1664 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1664 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34736 + i32.const 0 + i32.store + i32.const 36304 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34736 + i32.add + i32.const 0 + i32.store 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 34736 + i32.add + i32.const 0 + i32.store 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 34736 + i32.const 36308 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34736 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34732 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1392 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34732 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34732 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1664 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1664 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/itcms/__new (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 1328 + i32.const 1392 + i32.const 261 + 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$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + 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$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1328 + i32.const 1664 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + memory.size + local.tee $2 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1664 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1664 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $switch/BarClass + block $switch/FooClass + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $switch/FooClass $switch/BarClass $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + return + end + return + end + return + end + unreachable + ) + (func $~start + call $start:switch + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$76 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$76 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $switch/doSwitchString (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1104 + i32.store offset=8 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 1104 + call $~lib/string/String.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1136 + i32.store offset=8 + local.get $0 + i32.const 1136 + call $~lib/string/String.__eq + br_if $case1|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store offset=8 + local.get $0 + i32.const 1168 + call $~lib/string/String.__eq + br_if $case2|0 + br $case3|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4 + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$191 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1296 + local.set $0 + br $__inlined_func$~lib/string/String#concat$191 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $switch/doSwitchNullableString (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1104 + i32.store offset=8 + local.get $0 + i32.const 1104 + call $~lib/string/String.__eq + br_if $case1|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1136 + i32.store offset=8 + local.get $0 + i32.const 1136 + call $~lib/string/String.__eq + br_if $case2|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store offset=8 + local.get $0 + i32.const 1168 + call $~lib/string/String.__eq + br_if $case3|0 + br $case4|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4 + ) + (func $switch/FooClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $switch/doSwitchClassMember (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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $case2|0 + block $case1|0 + local.get $0 + i32.load + local.tee $0 + i32.const 1 + i32.ne + if + local.get $0 + i32.const 2 + i32.eq + br_if $case1|0 + br $case2|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + ) + (func $switch/BarClass.__eq (param $0 i32) (param $1 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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $switch/BarClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $switch/doSwitchClassInstanceWithOverload (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 0 + call $switch/BarClass.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + call $switch/BarClass#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $switch/BarClass.__eq + br_if $case1|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 2 + call $switch/BarClass#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $switch/BarClass.__eq + br_if $case2|0 + br $case3|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + ) + (func $start:switch + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 36 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1104 + i32.store + i32.const 1104 + call $switch/doSwitchString + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1136 + i32.store + i32.const 1136 + call $switch/doSwitchString + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1168 + call $switch/doSwitchString + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1200 + i32.store + i32.const 1200 + call $switch/doSwitchString + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 34732 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/pinSpace + i32.const 1476 + i32.const 1472 + i32.store + i32.const 1480 + i32.const 1472 + i32.store + i32.const 1472 + global.set $~lib/rt/itcms/toSpace + i32.const 1620 + i32.const 1616 + i32.store + i32.const 1624 + i32.const 1616 + i32.store + i32.const 1616 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 1232 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1264 + i32.store offset=16 + i32.const 1232 + i32.const 1264 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1728 + i32.store offset=8 + local.get $0 + i32.const 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 1 + i32.ne + 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 + i32.const 1760 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1792 + i32.store offset=16 + i32.const 1760 + i32.const 1792 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1232 + i32.store offset=8 + local.get $0 + i32.const 1232 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1760 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 1824 + i32.store offset=32 + i32.const 1760 + i32.const 1824 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 1856 + i32.store offset=24 + local.get $0 + i32.const 1856 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1728 + i32.store offset=16 + local.get $0 + i32.const 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1728 + i32.store offset=8 + local.get $0 + i32.const 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1888 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 1232 + i32.store offset=24 + i32.const 1888 + i32.const 1232 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1920 + i32.store offset=16 + local.get $0 + i32.const 1920 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1856 + i32.store offset=8 + local.get $0 + i32.const 1856 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchString + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchNullableString + if + i32.const 0 + i32.const 1056 + i32.const 128 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1104 + i32.store + i32.const 1104 + call $switch/doSwitchNullableString + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 129 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1136 + i32.store + i32.const 1136 + call $switch/doSwitchNullableString + i32.const 2 + i32.ne + 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 + i32.const 1168 + i32.store + i32.const 1168 + call $switch/doSwitchNullableString + i32.const 3 + i32.ne + 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 + i32.const 1200 + i32.store + i32.const 1200 + call $switch/doSwitchNullableString + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 132 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1232 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1264 + i32.store offset=16 + i32.const 1232 + i32.const 1264 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1728 + i32.store offset=8 + local.get $0 + i32.const 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 1 + i32.ne + 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 + i32.const 1760 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1792 + i32.store offset=16 + i32.const 1760 + i32.const 1792 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1232 + i32.store offset=8 + local.get $0 + i32.const 1232 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 2 + i32.ne + 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 + i32.const 1760 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 1824 + i32.store offset=32 + i32.const 1760 + i32.const 1824 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 1856 + i32.store offset=24 + local.get $0 + i32.const 1856 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1728 + i32.store offset=16 + local.get $0 + i32.const 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1728 + i32.store offset=8 + local.get $0 + i32.const 1728 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1888 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 1232 + i32.store offset=24 + i32.const 1888 + i32.const 1232 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1920 + i32.store offset=16 + local.get $0 + i32.const 1920 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1856 + i32.store offset=8 + local.get $0 + i32.const 1856 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchNullableString + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 138 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 251 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 252 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassMember + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 253 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/FooClass#constructor + global.set $switch/foo1 + i32.const 2 + call $switch/FooClass#constructor + global.set $switch/foo2 + global.get $~lib/memory/__stack_pointer + global.get $switch/foo1 + local.tee $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 266 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $switch/foo2 + local.tee $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 267 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/FooClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstance + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 268 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $switch/doSwitchClassInstanceWithOverload + if + i32.const 0 + i32.const 1056 + i32.const 293 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 294 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 295 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $switch/BarClass#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $switch/doSwitchClassInstanceWithOverload + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 296 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $switch/doSwitchClassInstance (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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $case2|0 + block $case1|0 + global.get $switch/foo1 + local.get $0 + i32.ne + if + local.get $0 + global.get $switch/foo2 + i32.eq + br_if $case1|0 + br $case2|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + ) ) diff --git a/tests/compiler/switch.ts b/tests/compiler/switch.ts index bd73eb7051..11167dc19f 100644 --- a/tests/compiler/switch.ts +++ b/tests/compiler/switch.ts @@ -21,11 +21,11 @@ function doSwitchDefaultFirst(n: i32): i32 { case 3: return 23; } } -assert(doSwitch(0) == 0); -assert(doSwitch(1) == 1); -assert(doSwitch(2) == 23); -assert(doSwitch(3) == 23); -assert(doSwitch(4) == 0); +assert(doSwitchDefaultFirst(0) == 0); +assert(doSwitchDefaultFirst(1) == 1); +assert(doSwitchDefaultFirst(2) == 23); +assert(doSwitchDefaultFirst(3) == 23); +assert(doSwitchDefaultFirst(4) == 0); function doSwitchDefaultOmitted(n: i32): i32 { switch (n) { @@ -92,3 +92,205 @@ function doSwitchEmpty(n: i32): i32 { assert(doSwitchEmpty(0) == 2); assert(doSwitchEmpty(1) == 2); assert(doSwitchEmpty(2) == 2); + +function doSwitchString(s: string): i32 { + switch (s) { + case "one": return 1; + case "two": return 2; + case "three": return 3; + default: return 4; + } +} + +// these will pass regardless of whether the comparison is done by value or reference +assert(doSwitchString("one") == 1); +assert(doSwitchString("two") == 2); +assert(doSwitchString("three") == 3); +assert(doSwitchString("four") == 4); + +// these would fail if the comparison was done by reference +assert(doSwitchString("o" + "n" + "e") == 1); +assert(doSwitchString("t" + "w" + "o") == 2); +assert(doSwitchString("t" + "h" + "r" + "e" + "e") == 3); +assert(doSwitchString("f" + "o" + "u" + "r") == 4); + +function doSwitchNullableString(s: string | null): i32 { + switch (s) { + case null: return 0; + case "one": return 1; + case "two": return 2; + case "three": return 3; + default: return 4; + } +} + +// these will pass regardless of whether the comparison is done by value or reference +assert(doSwitchNullableString(null) == 0); +assert(doSwitchNullableString("one") == 1); +assert(doSwitchNullableString("two") == 2); +assert(doSwitchNullableString("three") == 3); +assert(doSwitchNullableString("four") == 4); + +// these would fail if the comparison was done by reference +assert(doSwitchNullableString("o" + "n" + "e") == 1); +assert(doSwitchNullableString("t" + "w" + "o") == 2); +assert(doSwitchNullableString("t" + "h" + "r" + "e" + "e") == 3); +assert(doSwitchNullableString("f" + "o" + "u" + "r") == 4); + +function doSwitchBoolean(b: bool): i32 { + switch (b) { + case true: return 1; + case false: return 2; + } + return 0; +} + +assert(doSwitchBoolean(true) == 1); +assert(doSwitchBoolean(false) == 2); + +function doSwitchUInt32(n: u32): i32 { + switch (n) { + case 1: return 1; + case 2: return 2; + case 3: return 3; + default: return 0; + } +} +assert(doSwitchUInt32(0) == 0); +assert(doSwitchUInt32(1) == 1); +assert(doSwitchUInt32(2) == 2); +assert(doSwitchUInt32(3) == 3); +assert(doSwitchUInt32(4) == 0); + +enum Foo { + A = 1, + B = 2, + C = 3, + D = 4, +} + +function doSwitchEnum(n: Foo): i32 { + switch (n) { + case Foo.A: return 1; + case Foo.B: return 2; + case Foo.C: return 3; + default: return 0; + } +} +assert(doSwitchEnum(Foo.A) == 1); +assert(doSwitchEnum(Foo.B) == 2); +assert(doSwitchEnum(Foo.C) == 3); +assert(doSwitchEnum(Foo.D) == 0); + +function doSwitchUint8(n: u8): i32 { + switch (n) { + case 1: return 1; + case 2: return 2; + case 3: return 3; + default: return 0; + } +} +assert(doSwitchUint8(0) == 0); +assert(doSwitchUint8(1) == 1); +assert(doSwitchUint8(2) == 2); +assert(doSwitchUint8(3) == 3); +assert(doSwitchUint8(4) == 0); + +function doSwitchFloat(n: f32): i32 { + switch (n) { + case 1.0: return 1; + case 2.0: return 2; + default: return 0; + } +} +assert(doSwitchFloat(0.0) == 0); +assert(doSwitchFloat(1.0) == 1); +assert(doSwitchFloat(2.0) == 2); + +function doSwitchInt64(n: i64): i32 { + switch (n) { + case (1): return 1; + case (2): return 2; + default: return 0; + } +} +assert(doSwitchInt64(0) == 0); +assert(doSwitchInt64(1) == 1); +assert(doSwitchInt64(2) == 2); + +function doSwitchUInt64(n: u64): i32 { + const one: u64 = 1; + const two: u64 = 2; + switch (n) { + case one: return 1; + case two: return 2; + default: return 0; + } +} +assert(doSwitchUInt64(0) == 0); +assert(doSwitchUInt64(1) == 1); +assert(doSwitchUInt64(2) == 2); + + +// class members should switch like any other expression +class FooClass { + value: i32; + + constructor(value: i32) { + this.value = value; + } +} + +function doSwitchClassMember(foo: FooClass): i32 { + switch (foo.value) { + case 1: return 1; + case 2: return 2; + default: return 3; + } +} +assert(doSwitchClassMember(new FooClass(1)) == 1); +assert(doSwitchClassMember(new FooClass(2)) == 2); +assert(doSwitchClassMember(new FooClass(3)) == 3); + + +// class instances switch using reference equality by default +const foo1 = new FooClass(1); +const foo2 = new FooClass(2); +function doSwitchClassInstance(foo: FooClass): i32 { + switch (foo) { + case foo1: return 1; + case foo2: return 2; + default: return 3; + } +} +assert(doSwitchClassInstance(foo1) == 1); +assert(doSwitchClassInstance(foo2) == 2); +assert(doSwitchClassInstance(new FooClass(1)) == 3); + +// class instances can switch using value equality with an operator overload +class BarClass { + value: i32; + + constructor(value: i32) { + this.value = value; + } + + @operator("==") private static __eq(left: BarClass | null, right: BarClass | null): bool { + if (changetype(left) == changetype(right)) return true; + if (!left || !right) return false; + return left.value == right.value; + } +} + +function doSwitchClassInstanceWithOverload(foo: BarClass | null): i32 { + switch (foo) { + case null: return 0; + case new BarClass(1): return 1; + case new BarClass(2): return 2; + default: return 3; + } +} +assert(doSwitchClassInstanceWithOverload(null) == 0); +assert(doSwitchClassInstanceWithOverload(new BarClass(1)) == 1); +assert(doSwitchClassInstanceWithOverload(new BarClass(2)) == 2); +assert(doSwitchClassInstanceWithOverload(new BarClass(3)) == 3); From ef01f2bf095c8e6b3849f576cd22196c4f5d1aab Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 11 Jul 2025 10:10:11 +0800 Subject: [PATCH 48/86] fix: remove non-zero check before `__visit` (#2933) --- src/builtins.ts | 22 +- tests/compiler/assignment-chain.debug.wat | 8 +- tests/compiler/assignment-chain.release.wat | 6 +- tests/compiler/bindings/esm.debug.wat | 32 +- tests/compiler/bindings/esm.release.wat | 44 +-- .../bindings/noExportRuntime.debug.wat | 8 +- .../bindings/noExportRuntime.release.wat | 172 +++++----- tests/compiler/bindings/raw.debug.wat | 32 +- tests/compiler/bindings/raw.release.wat | 44 +-- tests/compiler/call-inferred.debug.wat | 8 +- tests/compiler/call-inferred.release.wat | 6 +- tests/compiler/call-rest.debug.wat | 16 +- tests/compiler/call-rest.release.wat | 163 ++++----- tests/compiler/call-super.debug.wat | 8 +- tests/compiler/call-super.release.wat | 6 +- tests/compiler/class-implements.debug.wat | 8 +- tests/compiler/class-implements.release.wat | 6 +- .../compiler/class-overloading-cast.debug.wat | 8 +- .../class-overloading-cast.release.wat | 6 +- tests/compiler/class-overloading.debug.wat | 8 +- tests/compiler/class-overloading.release.wat | 6 +- tests/compiler/class-override.debug.wat | 8 +- tests/compiler/class-override.release.wat | 6 +- tests/compiler/class.debug.wat | 16 +- tests/compiler/class.release.wat | 91 ++--- tests/compiler/constructor.debug.wat | 8 +- tests/compiler/constructor.release.wat | 6 +- tests/compiler/do.debug.wat | 8 +- tests/compiler/do.release.wat | 6 +- tests/compiler/duplicate-fields.debug.wat | 24 +- tests/compiler/duplicate-fields.release.wat | 17 +- tests/compiler/empty-exportruntime.debug.wat | 8 +- .../compiler/empty-exportruntime.release.wat | 6 +- tests/compiler/empty-new.debug.wat | 8 +- tests/compiler/empty-new.release.wat | 6 +- .../compiler/exportstar-rereexport.debug.wat | 8 +- .../exportstar-rereexport.release.wat | 6 +- .../compiler/extends-baseaggregate.debug.wat | 32 +- .../extends-baseaggregate.release.wat | 62 ++-- tests/compiler/extends-recursive.debug.wat | 16 +- tests/compiler/extends-recursive.release.wat | 14 +- tests/compiler/field-initialization.debug.wat | 128 ++----- .../compiler/field-initialization.release.wat | 81 ++--- tests/compiler/field.debug.wat | 16 +- tests/compiler/field.release.wat | 170 +++++----- tests/compiler/for.debug.wat | 8 +- tests/compiler/for.release.wat | 6 +- tests/compiler/function-call.debug.wat | 8 +- tests/compiler/function-call.release.wat | 6 +- tests/compiler/function-expression.debug.wat | 16 +- .../compiler/function-expression.release.wat | 98 +++--- tests/compiler/getter-call.debug.wat | 8 +- tests/compiler/getter-call.release.wat | 6 +- .../incremental-gc/call-indirect.debug.wat | 8 +- .../incremental-gc/call-indirect.release.wat | 6 +- tests/compiler/infer-array.debug.wat | 8 +- tests/compiler/infer-array.release.wat | 6 +- tests/compiler/infer-generic.debug.wat | 8 +- tests/compiler/infer-generic.release.wat | 6 +- tests/compiler/inlining.debug.wat | 8 +- tests/compiler/inlining.release.wat | 6 +- tests/compiler/instanceof.debug.wat | 8 +- tests/compiler/instanceof.release.wat | 6 +- tests/compiler/issues/1095.debug.wat | 16 +- tests/compiler/issues/1095.release.wat | 39 ++- tests/compiler/issues/1225.debug.wat | 8 +- tests/compiler/issues/1225.release.wat | 6 +- tests/compiler/issues/1699.debug.wat | 8 +- tests/compiler/issues/1699.release.wat | 6 +- tests/compiler/issues/2166.debug.wat | 8 +- tests/compiler/issues/2166.release.wat | 6 +- tests/compiler/issues/2322/index.debug.wat | 8 +- tests/compiler/issues/2322/index.release.wat | 6 +- tests/compiler/issues/2622.debug.wat | 8 +- tests/compiler/issues/2622.release.wat | 6 +- tests/compiler/issues/2707.debug.wat | 8 +- tests/compiler/issues/2707.release.wat | 6 +- tests/compiler/issues/2873.debug.wat | 8 +- tests/compiler/issues/2873.release.wat | 6 +- tests/compiler/logical.debug.wat | 8 +- tests/compiler/logical.release.wat | 6 +- tests/compiler/managed-cast.debug.wat | 8 +- tests/compiler/managed-cast.release.wat | 6 +- tests/compiler/new.debug.wat | 8 +- tests/compiler/new.release.wat | 6 +- tests/compiler/object-literal.debug.wat | 88 ++--- tests/compiler/object-literal.release.wat | 134 +++----- .../operator-overload-non-ambiguity.debug.wat | 8 +- ...perator-overload-non-ambiguity.release.wat | 6 +- .../optional-typeparameters.debug.wat | 8 +- .../optional-typeparameters.release.wat | 6 +- tests/compiler/reexport.debug.wat | 8 +- tests/compiler/reexport.release.wat | 6 +- tests/compiler/rereexport.debug.wat | 8 +- tests/compiler/rereexport.release.wat | 6 +- tests/compiler/resolve-access.debug.wat | 8 +- tests/compiler/resolve-access.release.wat | 6 +- tests/compiler/resolve-binary.debug.wat | 8 +- tests/compiler/resolve-binary.release.wat | 6 +- .../compiler/resolve-elementaccess.debug.wat | 8 +- .../resolve-elementaccess.release.wat | 10 +- .../resolve-function-expression.debug.wat | 8 +- .../resolve-function-expression.release.wat | 6 +- tests/compiler/resolve-new.debug.wat | 8 +- tests/compiler/resolve-new.release.wat | 6 +- .../compiler/resolve-propertyaccess.debug.wat | 8 +- .../resolve-propertyaccess.release.wat | 6 +- tests/compiler/resolve-ternary.debug.wat | 8 +- tests/compiler/resolve-ternary.release.wat | 6 +- tests/compiler/resolve-unary.debug.wat | 8 +- tests/compiler/resolve-unary.release.wat | 6 +- tests/compiler/return-unreachable.debug.wat | 8 +- tests/compiler/return-unreachable.release.wat | 6 +- tests/compiler/rt/finalize.debug.wat | 8 +- tests/compiler/rt/finalize.release.wat | 6 +- tests/compiler/rt/issue-2719.debug.wat | 8 +- tests/compiler/rt/issue-2719.release.wat | 6 +- .../rt/runtime-incremental-export.debug.wat | 8 +- .../rt/runtime-incremental-export.release.wat | 6 +- .../rt/runtime-minimal-export.debug.wat | 8 +- .../rt/runtime-minimal-export.release.wat | 6 +- tests/compiler/simd.debug.wat | 8 +- tests/compiler/simd.release.wat | 6 +- tests/compiler/std/array-literal.debug.wat | 8 +- tests/compiler/std/array-literal.release.wat | 6 +- tests/compiler/std/array.debug.wat | 8 +- tests/compiler/std/array.release.wat | 320 +++++++++--------- tests/compiler/std/arraybuffer.debug.wat | 16 +- tests/compiler/std/arraybuffer.release.wat | 14 +- tests/compiler/std/dataview.debug.wat | 16 +- tests/compiler/std/dataview.release.wat | 14 +- tests/compiler/std/date.debug.wat | 8 +- tests/compiler/std/date.release.wat | 6 +- tests/compiler/std/map.debug.wat | 8 +- tests/compiler/std/map.release.wat | 6 +- tests/compiler/std/new.debug.wat | 8 +- tests/compiler/std/new.release.wat | 6 +- .../std/operator-overloading.debug.wat | 8 +- .../std/operator-overloading.release.wat | 6 +- tests/compiler/std/set.debug.wat | 8 +- tests/compiler/std/set.release.wat | 6 +- tests/compiler/std/static-array.debug.wat | 8 +- tests/compiler/std/static-array.release.wat | 6 +- tests/compiler/std/staticarray.debug.wat | 8 +- tests/compiler/std/staticarray.release.wat | 6 +- .../compiler/std/string-casemapping.debug.wat | 8 +- .../std/string-casemapping.release.wat | 6 +- tests/compiler/std/string-encoding.debug.wat | 8 +- .../compiler/std/string-encoding.release.wat | 6 +- tests/compiler/std/string.debug.wat | 8 +- tests/compiler/std/string.release.wat | 6 +- tests/compiler/std/symbol.debug.wat | 8 +- tests/compiler/std/symbol.release.wat | 6 +- tests/compiler/std/typedarray.debug.wat | 8 +- tests/compiler/std/typedarray.release.wat | 64 ++-- tests/compiler/std/uri.debug.wat | 8 +- tests/compiler/std/uri.release.wat | 6 +- tests/compiler/super-inline.debug.wat | 8 +- tests/compiler/super-inline.release.wat | 6 +- tests/compiler/switch.debug.wat | 8 +- tests/compiler/switch.release.wat | 6 +- tests/compiler/templateliteral.debug.wat | 24 +- tests/compiler/templateliteral.release.wat | 18 +- tests/compiler/throw.debug.wat | 8 +- tests/compiler/throw.release.wat | 6 +- tests/compiler/typeof.debug.wat | 8 +- tests/compiler/typeof.release.wat | 6 +- tests/compiler/while.debug.wat | 8 +- tests/compiler/while.release.wat | 6 +- 169 files changed, 1058 insertions(+), 1963 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index f8b3deedb6..94596b4849 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -10808,20 +10808,14 @@ function ensureVisitMembersOf(compiler: Compiler, instance: Class): void { 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) - ) + // __visit(load($this, fieldOffset), $cookie) + module.call(visitInstance.internalName, [ + module.load(sizeTypeSize, false, + module.local_get(0, sizeTypeRef), + sizeTypeRef, fieldOffset + ), // value + module.local_get(1, TypeRef.I32) // cookie + ], TypeRef.None) ); } } diff --git a/tests/compiler/assignment-chain.debug.wat b/tests/compiler/assignment-chain.debug.wat index 84f831ff37..dc86b62eb1 100644 --- a/tests/compiler/assignment-chain.debug.wat +++ b/tests/compiler/assignment-chain.debug.wat @@ -2349,12 +2349,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index d4610178d1..2d02b94594 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -1570,11 +1570,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index cebadb0ee0..b025730171 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -2874,12 +2874,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2941,28 +2937,16 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=56 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=60 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=64 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) local.get $0 diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index a06cd5b88d..d2fae9e068 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -2006,25 +2006,13 @@ end local.get $0 i32.load offset=56 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=60 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=64 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return @@ -2040,11 +2028,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer @@ -2208,7 +2192,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$280 + block $__inlined_func$~lib/string/String#concat$285 local.get $1 i32.const 20 i32.sub @@ -2227,7 +2211,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1760 local.set $2 - br $__inlined_func$~lib/string/String#concat$280 + br $__inlined_func$~lib/string/String#concat$285 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -2414,7 +2398,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) + block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) local.get $1 call $~lib/typedarray/Float32Array#get:length local.get $5 @@ -2544,7 +2528,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 + br $__inlined_func$~lib/typedarray/Uint64Array#constructor end br $folding-inner1 end @@ -2941,7 +2925,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$265 + block $__inlined_func$~lib/rt/itcms/__renew$270 i32.const 1073741820 local.get $2 i32.const 1 @@ -2984,7 +2968,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$265 + br $__inlined_func$~lib/rt/itcms/__renew$270 end local.get $3 local.get $4 @@ -3493,7 +3477,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - block $__inlined_func$bindings/esm/staticarrayFunction$2 (result i32) + block $__inlined_func$bindings/esm/staticarrayFunction$1 (result i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3649,7 +3633,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - br $__inlined_func$bindings/esm/staticarrayFunction$2 + br $__inlined_func$bindings/esm/staticarrayFunction$1 end br $folding-inner1 end @@ -4222,7 +4206,7 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) + block $__inlined_func$bindings/esm/PlainObject#constructor$4 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4385,7 +4369,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 + br $__inlined_func$bindings/esm/PlainObject#constructor$4 end br $folding-inner1 end diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index 25e76de235..a75c227578 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -2469,12 +2469,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index d26dcae561..dd2b17bc43 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -156,7 +156,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$130 + block $__inlined_func$~lib/rt/itcms/Object#unlink$132 local.get $0 i32.load offset=4 i32.const -4 @@ -180,7 +180,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$130 + br $__inlined_func$~lib/rt/itcms/Object#unlink$132 end local.get $0 i32.load offset=8 @@ -1657,40 +1657,38 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $bindings/noExportRuntime/NonPlainObject - block $~lib/array/Array<~lib/array/Array> - block $~lib/array/Array - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid + block $folding-inner1 + block $folding-inner0 + block $invalid + block $bindings/noExportRuntime/NonPlainObject + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array + block $~lib/typedarray/Int32Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Int32Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid + end + return end return end return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - 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 1780 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1703,73 +1701,77 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + br $folding-inner1 + end + 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 1780 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 + local.get $2 + i32.lt_u + if local.get $1 - local.get $2 - i32.lt_u + i32.load + local.tee $3 if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + local.get $3 + call $~lib/rt/itcms/__visit end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - br $folding-inner1 end - return + br $folding-inner1 end - unreachable + return end - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 34576 + i32.const 34624 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~start (local $0 i32) @@ -1817,7 +1819,7 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $__inlined_func$start:bindings/noExportRuntime$2 + block $__inlined_func$start:bindings/noExportRuntime block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1780 @@ -1940,7 +1942,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $bindings/noExportRuntime/isTypedArray - br $__inlined_func$start:bindings/noExportRuntime$2 + br $__inlined_func$start:bindings/noExportRuntime end i32.const 34576 i32.const 34624 diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 7bf955aa6b..5947b885ed 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -2877,12 +2877,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2944,28 +2940,16 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=56 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=60 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=64 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) local.get $0 diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index 8bcf862a3c..85e626eef7 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -2006,25 +2006,13 @@ end local.get $0 i32.load offset=56 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=60 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=64 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return @@ -2040,11 +2028,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer @@ -2208,7 +2192,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$281 + block $__inlined_func$~lib/string/String#concat$286 local.get $1 i32.const 20 i32.sub @@ -2227,7 +2211,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1760 local.set $2 - br $__inlined_func$~lib/string/String#concat$281 + br $__inlined_func$~lib/string/String#concat$286 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -2414,7 +2398,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) + block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) local.get $1 call $~lib/typedarray/Float32Array#get:length local.get $5 @@ -2544,7 +2528,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 + br $__inlined_func$~lib/typedarray/Uint64Array#constructor end br $folding-inner1 end @@ -2941,7 +2925,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$265 + block $__inlined_func$~lib/rt/itcms/__renew$270 i32.const 1073741820 local.get $2 i32.const 1 @@ -2984,7 +2968,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$265 + br $__inlined_func$~lib/rt/itcms/__renew$270 end local.get $3 local.get $4 @@ -3493,7 +3477,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - block $__inlined_func$bindings/esm/staticarrayFunction$2 (result i32) + block $__inlined_func$bindings/esm/staticarrayFunction$1 (result i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3649,7 +3633,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - br $__inlined_func$bindings/esm/staticarrayFunction$2 + br $__inlined_func$bindings/esm/staticarrayFunction$1 end br $folding-inner1 end @@ -4222,7 +4206,7 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) + block $__inlined_func$bindings/esm/PlainObject#constructor$4 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4385,7 +4369,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 + br $__inlined_func$bindings/esm/PlainObject#constructor$4 end br $folding-inner1 end diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index e080fb3da0..3fd88cbe2d 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -2311,12 +2311,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/call-inferred.release.wat b/tests/compiler/call-inferred.release.wat index 559793b4c5..2ef72953b6 100644 --- a/tests/compiler/call-inferred.release.wat +++ b/tests/compiler/call-inferred.release.wat @@ -1546,11 +1546,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat index 53208c38ec..af743cb0b0 100644 --- a/tests/compiler/call-rest.debug.wat +++ b/tests/compiler/call-rest.debug.wat @@ -2456,12 +2456,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2508,12 +2504,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index d4b2e80337..24506bdd09 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -147,7 +147,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$158 + block $__inlined_func$~lib/rt/itcms/Object#unlink$160 local.get $0 i32.load offset=4 i32.const -4 @@ -171,7 +171,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$158 + br $__inlined_func$~lib/rt/itcms/Object#unlink$160 end local.get $0 i32.load offset=8 @@ -1659,26 +1659,32 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array<~lib/string/String> + block $folding-inner0 + block $invalid + block $~lib/array/Array<~lib/string/String> + block $call-rest/Foo block $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> block $~lib/array/Array block $~lib/array/Array - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> $folding-inner1 $~lib/array/Array<~lib/string/String> $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> $call-rest/Foo $~lib/array/Array<~lib/string/String> $invalid + end + return end return end return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end local.get $0 @@ -1712,80 +1718,77 @@ global.set $~lib/memory/__stack_pointer return end - 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 2136 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load + call $~lib/rt/itcms/__visit + return + end + 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 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 + local.get $2 + i32.lt_u + if local.get $1 - local.get $2 - i32.lt_u + i32.load + local.tee $3 if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + local.get $3 + call $~lib/rt/itcms/__visit end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~start call $start:call-rest @@ -2025,7 +2028,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$152 + block $__inlined_func$~lib/rt/itcms/__renew$154 i32.const 1073741820 local.get $2 i32.const 1 @@ -2068,7 +2071,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$152 + br $__inlined_func$~lib/rt/itcms/__renew$154 end local.get $3 local.get $4 diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index 050aff4d05..6ff707d75c 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -2372,12 +2372,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index a4f2af9fe6..efaaeb7079 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -2265,11 +2265,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index e967a93f72..bf0b70087e 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -2698,12 +2698,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index 9415e99e5d..5d0ad2a21e 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -1740,11 +1740,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 86441b6a1b..677c68b11c 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -2513,12 +2513,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index 39ce65ceb7..8b131f6fab 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1435,11 +1435,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 4f55946065..d84b9f7cce 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -2811,12 +2811,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index ac88e87ea3..777b8bf3cc 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1489,11 +1489,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/class-override.debug.wat b/tests/compiler/class-override.debug.wat index 5fb98225b9..c354bbb2c2 100644 --- a/tests/compiler/class-override.debug.wat +++ b/tests/compiler/class-override.debug.wat @@ -2346,12 +2346,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/class-override.release.wat b/tests/compiler/class-override.release.wat index dad3c95a7e..6dc55da64d 100644 --- a/tests/compiler/class-override.release.wat +++ b/tests/compiler/class-override.release.wat @@ -1400,11 +1400,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index e8f373491e..7e5b928f9c 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -2452,12 +2452,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2468,12 +2464,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 947b8a14a1..d0d28890f0 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -109,7 +109,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$137 + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 local.get $0 i32.load offset=4 i32.const -4 @@ -133,7 +133,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 + br $__inlined_func$~lib/rt/itcms/Object#unlink$139 end local.get $0 i32.load offset=8 @@ -1748,66 +1748,69 @@ unreachable ) (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/array/Array + block $invalid + block $~lib/array/Array + block $class/GenericInitializer block $class/Animal - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $class/Animal $folding-inner0 $~lib/array/Array $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class/Animal $class/GenericInitializer $~lib/array/Array $invalid + end + return end return end return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end return end - 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 1568 - 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 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if + 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 1568 + 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 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.load call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end + unreachable ) (func $~start memory.size diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 5ab44a6260..b607b591d6 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -2422,12 +2422,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index 7c0c6d806b..339b5624fc 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1618,11 +1618,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index 1327ed8a52..21952a0df2 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -3024,12 +3024,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index d44d65ece2..780e6e3cf4 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1836,11 +1836,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 79b3b9b121..d8ebed0ef6 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -2407,12 +2407,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2423,12 +2419,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $duplicate-fields/B2~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2437,12 +2429,8 @@ call $duplicate-fields/A2~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index 4a316496d2..5bd2b707b9 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -116,7 +116,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$136 + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 local.get $0 i32.load offset=4 i32.const -4 @@ -140,7 +140,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$136 + br $__inlined_func$~lib/rt/itcms/Object#unlink$139 end local.get $0 i32.load offset=8 @@ -1596,7 +1596,6 @@ end ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) block $folding-inner0 block $invalid block $duplicate-fields/A3 @@ -1628,11 +1627,7 @@ end local.get $0 i32.load - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit br $folding-inner0 end return @@ -1643,11 +1638,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit ) (func $~start (local $0 i32) diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index e0441f24cb..7dfec531fb 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -2384,12 +2384,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index f050d955d0..5d32a49a36 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -1706,11 +1706,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index dc8a97157f..7d7b9b7c2f 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -2280,12 +2280,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index 73a85ba25d..ec0402c94c 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -1382,11 +1382,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 22900fa807..47375975e0 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -2327,12 +2327,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index 2dddf5b5b2..4a5b09f453 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1420,11 +1420,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index cdab16fe1e..ae6d22ffe4 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -2442,12 +2442,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2458,12 +2454,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $extends-baseaggregate/A1~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2472,12 +2464,8 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=16 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $extends-baseaggregate/C1~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2486,12 +2474,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $extends-baseaggregate/A2~visit (param $0 i32) (param $1 i32) local.get $0 diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index ea1eb369b1..997ed95a65 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -120,7 +120,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$137 + block $__inlined_func$~lib/rt/itcms/Object#unlink$142 local.get $0 i32.load offset=4 i32.const -4 @@ -144,7 +144,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 + br $__inlined_func$~lib/rt/itcms/Object#unlink$142 end local.get $0 i32.load offset=8 @@ -1672,52 +1672,50 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $~lib/array/Array - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $~lib/array/Array $~lib/array/Array $invalid + block $folding-inner0 + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $extends-baseaggregate/A2 + block $extends-baseaggregate/A1 + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $extends-baseaggregate/A1 $folding-inner0 $extends-baseaggregate/A2 $~lib/array/Array $~lib/array/Array $invalid + end + return end return end return end + local.get $0 + i32.load offset=16 + call $~lib/rt/itcms/__visit return end local.get $0 - call $~lib/array/Array~visit + i32.load offset=16 + call $~lib/rt/itcms/__visit return end local.get $0 call $~lib/array/Array~visit return end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if local.get $0 - call $~lib/rt/itcms/__visit + call $~lib/array/Array~visit + return end - return + unreachable end local.get $0 - i32.load offset=16 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + i32.load + call $~lib/rt/itcms/__visit ) (func $~start (local $0 i32) @@ -1939,7 +1937,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$136 + block $__inlined_func$~lib/rt/itcms/__renew$141 i32.const 1073741820 local.get $0 i32.const 1 @@ -1982,7 +1980,7 @@ i32.store offset=16 local.get $0 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$136 + br $__inlined_func$~lib/rt/itcms/__renew$141 end local.get $3 local.get $2 diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index e0074d457f..e0d1b59343 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -2356,12 +2356,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2377,12 +2373,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index 19332bc021..5ccacc74bf 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -115,7 +115,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$113 + block $__inlined_func$~lib/rt/itcms/Object#unlink$116 local.get $0 i32.load offset=4 i32.const -4 @@ -139,7 +139,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$113 + br $__inlined_func$~lib/rt/itcms/Object#unlink$116 end local.get $0 i32.load offset=8 @@ -1542,17 +1542,13 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit ) (func $~start (local $0 i32) (local $1 i32) (local $2 i32) - block $__inlined_func$start:extends-recursive$4 + block $__inlined_func$start:extends-recursive$1 memory.size i32.const 16 i32.shl @@ -1675,7 +1671,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:extends-recursive$4 + br $__inlined_func$start:extends-recursive$1 end i32.const 34256 i32.const 34304 diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index d94296464e..9966c1244e 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -2705,12 +2705,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2721,12 +2717,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2735,12 +2727,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2749,12 +2737,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_Init_Ctor~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2763,12 +2747,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_Ctor_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2777,12 +2757,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_Ctor_Param~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2791,12 +2767,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable_Ctor~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2805,12 +2777,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable_Init_Ctor~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2819,12 +2787,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Nullable_Ctor_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2833,12 +2797,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Inherit~visit (param $0 i32) (param $1 i32) local.get $0 @@ -2852,12 +2812,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Inherit_Ctor~visit (param $0 i32) (param $1 i32) local.get $0 @@ -2871,12 +2827,8 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=4 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/SomeOtherObject~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2885,12 +2837,8 @@ call $field-initialization/SomeObject~visit local.get $0 i32.load offset=8 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Flow_Balanced~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2899,12 +2847,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_Init_InlineCtor~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2913,12 +2857,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $field-initialization/Ref_InlineCtor_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2927,12 +2867,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index f85c91295c..8d91dd1b64 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -120,7 +120,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$223 + block $__inlined_func$~lib/rt/itcms/Object#unlink$241 local.get $0 i32.load offset=4 i32.const -4 @@ -144,7 +144,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$223 + br $__inlined_func$~lib/rt/itcms/Object#unlink$241 end local.get $0 i32.load offset=8 @@ -1599,27 +1599,23 @@ end ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $field-initialization/SomeOtherObject - block $field-initialization/SomeObject - block $field-initialization/Value_Ctor_Init - block $field-initialization/Value_Init_Ctor - block $field-initialization/Value_Ctor - block $field-initialization/Value - block $field-initialization/Value_Init - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return + block $folding-inner0 + block $invalid + block $field-initialization/SomeOtherObject + block $field-initialization/SomeObject + block $field-initialization/Value_Ctor_Init + block $field-initialization/Value_Init_Ctor + block $field-initialization/Value_Ctor + block $field-initialization/Value + block $field-initialization/Value_Init + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid end return end @@ -1635,49 +1631,26 @@ end return end - local.get $0 - i32.load offset=4 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end return end local.get $0 i32.load offset=4 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=8 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 call $~lib/rt/itcms/__visit + return end - return + unreachable end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit ) (func $~start call $start:field-initialization diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index aab5de284e..6623182b6f 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -2422,12 +2422,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2438,12 +2434,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index e272877b64..c267b61219 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -103,7 +103,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 + block $__inlined_func$~lib/rt/itcms/Object#unlink$127 local.get $0 i32.load offset=4 i32.const -4 @@ -127,7 +127,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + br $__inlined_func$~lib/rt/itcms/Object#unlink$127 end local.get $0 i32.load offset=8 @@ -1796,74 +1796,37 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $~lib/array/Array<~lib/string/String> - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array + block $~lib/array/Array<~lib/string/String> + block $field/NoStaticConflict + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $field/NoStaticConflict $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + end + return end return end return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - 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 1504 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - br $folding-inner1 + i32.load + call $~lib/rt/itcms/__visit + return end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1876,36 +1839,75 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end br $folding-inner1 end - unreachable + 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 1504 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner1 end - 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.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + 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.get $0 + i32.store local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~start call $start:field diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index b83cf2740a..6e699486f2 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -3031,12 +3031,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index 792073686e..6c772a187c 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1832,11 +1832,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index 067a7f4fc0..85c7ac0268 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -2313,12 +2313,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 3260e51904..ab9646583b 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -1432,11 +1432,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index 4d60cddafc..4564289ea6 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -2580,12 +2580,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2656,12 +2652,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index b9e8e461a9..b3f4027a8c 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -166,7 +166,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$131 + block $__inlined_func$~lib/rt/itcms/Object#unlink$133 local.get $0 i32.load offset=4 i32.const -4 @@ -190,7 +190,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$131 + br $__inlined_func$~lib/rt/itcms/Object#unlink$133 end local.get $0 i32.load offset=8 @@ -1462,63 +1462,65 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $invalid + block $folding-inner0 + block $invalid + block $function-expression/FieldClass + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $function-expression/FieldClass $invalid + end + return end return end return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - unreachable - end - 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 2156 - i32.lt_s - if - i32.const 34944 - i32.const 34992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end - local.get $0 - i32.load - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 34944 + i32.const 34992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~start call $start:function-expression diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index 593954b022..7ac0d77688 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -2267,12 +2267,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 69870f1d3b..907d6feeec 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -1395,11 +1395,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/incremental-gc/call-indirect.debug.wat b/tests/compiler/incremental-gc/call-indirect.debug.wat index 8af875461c..15fb51f132 100644 --- a/tests/compiler/incremental-gc/call-indirect.debug.wat +++ b/tests/compiler/incremental-gc/call-indirect.debug.wat @@ -2356,12 +2356,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/incremental-gc/call-indirect.release.wat b/tests/compiler/incremental-gc/call-indirect.release.wat index 351beb9151..142078dea4 100644 --- a/tests/compiler/incremental-gc/call-indirect.release.wat +++ b/tests/compiler/incremental-gc/call-indirect.release.wat @@ -1551,11 +1551,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index 4bbaa8d706..b864b32944 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -2501,12 +2501,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 2773042932..4e368e641f 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -1652,11 +1652,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index dbbf12c951..e5325dead1 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -2346,12 +2346,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index db2d8f2c77..c09c4b901d 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1576,11 +1576,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 4613c1a7a4..1478d40aca 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -2779,12 +2779,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index bcc7cbc9ed..bb306de122 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1930,11 +1930,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index 79d6b3b7cb..43f6efa61f 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -4592,12 +4592,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index 58abc45ae3..3ee62101c1 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -1781,11 +1781,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 8d55faf3bc..14796c217b 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -2341,12 +2341,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2357,12 +2353,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index b5acbcd83e..05e4b9ab36 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -106,7 +106,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$115 + block $__inlined_func$~lib/rt/itcms/Object#unlink$117 local.get $0 i32.load offset=4 i32.const -4 @@ -130,7 +130,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$115 + br $__inlined_func$~lib/rt/itcms/Object#unlink$117 end local.get $0 i32.load offset=8 @@ -1586,32 +1586,35 @@ end ) (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid + block $invalid + block $issues/1095/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1095/Foo $invalid + end + return end return end return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if local.get $0 + i32.load call $~lib/rt/itcms/__visit + return end + unreachable ) (func $~start (local $0 i32) diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 73eec5c752..b87f40c3c9 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -2391,12 +2391,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index e790c53130..be387fc91c 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1397,11 +1397,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index bec13bbd0b..168e3faaaf 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -2451,12 +2451,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index f33b7a54aa..80c73bc8a5 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -1908,11 +1908,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 6d3ac1a299..701aad2877 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -2381,12 +2381,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 62bd8230fe..1d28375ece 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -1398,11 +1398,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index 63522c906a..febbe4e10f 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -2265,12 +2265,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index fda55107c4..9349beea7c 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1542,11 +1542,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/issues/2622.debug.wat b/tests/compiler/issues/2622.debug.wat index 134f40c571..07020ccd43 100644 --- a/tests/compiler/issues/2622.debug.wat +++ b/tests/compiler/issues/2622.debug.wat @@ -2335,12 +2335,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index c2bec41f20..835db6b8c6 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -1427,11 +1427,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat index 90ba543503..bf7710636a 100644 --- a/tests/compiler/issues/2707.debug.wat +++ b/tests/compiler/issues/2707.debug.wat @@ -2351,12 +2351,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat index cfe04d539a..bdafcad22f 100644 --- a/tests/compiler/issues/2707.release.wat +++ b/tests/compiler/issues/2707.release.wat @@ -1403,11 +1403,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat index cb6ced6aba..d33ceba234 100644 --- a/tests/compiler/issues/2873.debug.wat +++ b/tests/compiler/issues/2873.debug.wat @@ -4189,12 +4189,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat index 7d78da32e1..6b6cd33c92 100644 --- a/tests/compiler/issues/2873.release.wat +++ b/tests/compiler/issues/2873.release.wat @@ -2941,11 +2941,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end local.get $0 diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index c5d2e58444..78f3bc8b0e 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -2337,12 +2337,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 698a99aac3..185b69545e 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1405,11 +1405,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index 38367f2b11..9aa6652349 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -2327,12 +2327,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index aba3aac064..48251000ec 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1393,11 +1393,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index 8714ae4b69..f0dc63a471 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -2317,12 +2317,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index b6df35a2b3..72a7a42fe2 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -1431,11 +1431,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index e66ee803a9..b7d7b949ca 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -2839,12 +2839,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2855,12 +2851,8 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=4 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $object-literal/MixedOmitted~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2869,12 +2861,8 @@ call $~lib/object/Object~visit local.get $0 i32.load offset=4 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $object-literal/OmittedFoo~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2883,68 +2871,36 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=4 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=8 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=12 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=16 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=20 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=24 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=28 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index 3185b00ccb..1ce89a0e76 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -71,7 +71,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$203 + block $__inlined_func$~lib/rt/itcms/Object#unlink$205 local.get $0 i32.load offset=4 i32.const -4 @@ -95,7 +95,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$203 + br $__inlined_func$~lib/rt/itcms/Object#unlink$205 end local.get $0 i32.load offset=8 @@ -1604,105 +1604,71 @@ local.get $1 ) (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - block $folding-inner0 - block $invalid - block $object-literal/OmittedFoo + block $invalid + block $object-literal/OmittedFoo + block $object-literal/MixedOmitted block $object-literal/OmittedTypes - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $object-literal/OmittedTypes $folding-inner0 $object-literal/OmittedFoo $invalid + block $object-literal/Managed + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $object-literal/Managed $object-literal/OmittedTypes $object-literal/MixedOmitted $object-literal/OmittedFoo $invalid + end + return end return end return end - return - end - local.get $0 - i32.load - local.tee $0 - if local.get $0 + i32.load call $~lib/rt/itcms/__visit + return end + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit return end return end local.get $0 - i32.load - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 i32.load offset=4 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=8 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=12 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=16 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=20 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=24 - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=28 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end - unreachable - end - local.get $0 - i32.load offset=4 - local.tee $0 - if local.get $0 + i32.load call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=12 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=16 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=20 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=24 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=28 + call $~lib/rt/itcms/__visit + return end + unreachable ) (func $~start call $start:object-literal @@ -2537,7 +2503,7 @@ i32.const 1 i32.shl local.set $3 - block $__inlined_func$~lib/string/String#substring$208 + block $__inlined_func$~lib/string/String#substring$210 local.get $2 i32.const 0 local.get $2 @@ -2558,7 +2524,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1568 local.set $0 - br $__inlined_func$~lib/string/String#substring$208 + br $__inlined_func$~lib/string/String#substring$210 end local.get $3 i32.eqz @@ -2575,7 +2541,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1056 local.set $0 - br $__inlined_func$~lib/string/String#substring$208 + br $__inlined_func$~lib/string/String#substring$210 end global.get $~lib/memory/__stack_pointer local.get $2 diff --git a/tests/compiler/operator-overload-non-ambiguity.debug.wat b/tests/compiler/operator-overload-non-ambiguity.debug.wat index 4906ce43bf..243a2fc1ae 100644 --- a/tests/compiler/operator-overload-non-ambiguity.debug.wat +++ b/tests/compiler/operator-overload-non-ambiguity.debug.wat @@ -2278,12 +2278,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/operator-overload-non-ambiguity.release.wat b/tests/compiler/operator-overload-non-ambiguity.release.wat index 0492d014af..f80cb51cd9 100644 --- a/tests/compiler/operator-overload-non-ambiguity.release.wat +++ b/tests/compiler/operator-overload-non-ambiguity.release.wat @@ -1391,11 +1391,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index f74a3d0ef3..181ae2e1ec 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -2317,12 +2317,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index 753b8a0ace..da3cdefbb6 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1421,11 +1421,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 627d155d23..6343f7999e 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -2323,12 +2323,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index 5f3c208a7c..336ee88140 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1427,11 +1427,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index f915695912..8d023dca80 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -2324,12 +2324,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index bdef63163f..ebef106da3 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1420,11 +1420,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 5864d93eba..6dc9f58eb4 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -2987,12 +2987,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 2fb8a6ecc6..7e043af3e4 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -1955,11 +1955,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end local.get $0 diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index f911a1e884..85528b7fcc 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -5607,12 +5607,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index 127a98403b..30919db575 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -2894,11 +2894,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index ec97507c90..19b64a3360 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -4330,12 +4330,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index d02af1c470..9760a11e21 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -176,7 +176,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$150 + block $__inlined_func$~lib/rt/itcms/Object#unlink$153 local.get $0 i32.load offset=4 i32.const -4 @@ -200,7 +200,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$150 + br $__inlined_func$~lib/rt/itcms/Object#unlink$153 end local.get $0 i32.load offset=8 @@ -2950,11 +2950,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit ) (func $~start call $start:resolve-elementaccess diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index 96ada2500c..c111bd2b58 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -2829,12 +2829,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index b0045a24b7..d8b70cbaa4 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1799,11 +1799,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 915a1b52a1..0a56bb3df4 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -2267,12 +2267,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index c64de3724e..96c78f0c84 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1393,11 +1393,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 7c13c3bb67..f3e37c2895 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -2846,12 +2846,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index eeb39ece91..96be668c1e 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -1804,11 +1804,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 65d9fa68c2..d765983685 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -4234,12 +4234,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 4969034cb3..d52b01b12f 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -2448,11 +2448,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index f22d05a02b..a38f493802 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -2912,12 +2912,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index ecbca645a6..f598875764 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -1832,11 +1832,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index c08d881355..f66ebe5b52 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -2374,12 +2374,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index 5b53eebc9c..3e068205cc 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -1716,11 +1716,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index d3cb87b0de..9f6475284f 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -2360,12 +2360,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index 7bd0a828a6..b61f14014d 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1406,11 +1406,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/rt/issue-2719.debug.wat b/tests/compiler/rt/issue-2719.debug.wat index 2071e914a1..2c202baebd 100644 --- a/tests/compiler/rt/issue-2719.debug.wat +++ b/tests/compiler/rt/issue-2719.debug.wat @@ -2313,12 +2313,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index dafe0b0096..376cd994e9 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -1543,11 +1543,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index e0441f24cb..7dfec531fb 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -2384,12 +2384,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index f050d955d0..5d32a49a36 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -1706,11 +1706,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index 4ba694d3dc..95a809eadd 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -2034,12 +2034,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/tcms/__visit - end + local.get $1 + call $~lib/rt/tcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/rt/runtime-minimal-export.release.wat b/tests/compiler/rt/runtime-minimal-export.release.wat index fdbc294ad7..bbaf5cc296 100644 --- a/tests/compiler/rt/runtime-minimal-export.release.wat +++ b/tests/compiler/rt/runtime-minimal-export.release.wat @@ -1440,11 +1440,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/tcms/__visit - end + call $~lib/rt/tcms/__visit return end unreachable diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index f6d7384348..03792d9a1d 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -6811,12 +6811,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index 218b6a5907..df1c762f6a 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -2144,11 +2144,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end local.get $0 diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index 805fdac3a4..b6f795367b 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -2571,12 +2571,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index aee35e910a..0fa3c9f108 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1770,11 +1770,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end local.get $0 diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index 752b4957b2..3f0fbbcfca 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -9297,12 +9297,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 0d14dcf146..ebdfcda2cc 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -758,7 +758,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$729 + block $__inlined_func$~lib/rt/itcms/Object#unlink$731 local.get $0 i32.load offset=4 i32.const -4 @@ -782,7 +782,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$729 + br $__inlined_func$~lib/rt/itcms/Object#unlink$731 end local.get $0 i32.load offset=8 @@ -6237,51 +6237,49 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $std/array/Proxy - block $std/array/Dim + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $std/array/Proxy + block $std/array/Dim + block $~lib/typedarray/Uint8Array block $std/array/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $std/array/Dim $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $std/array/Ref $~lib/typedarray/Uint8Array $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $std/array/Dim $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $invalid + end + return end return end return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end return end - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner5 + unreachable end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6294,42 +6292,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - br $folding-inner5 + br $folding-inner4 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6347,28 +6310,67 @@ i32.store local.get $0 i32.load offset=4 - call $~lib/rt/itcms/__visit + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + br $folding-inner4 end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load - local.tee $0 - if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + i32.load offset=4 call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - return + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer local.get $0 @@ -7591,7 +7593,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$651 + block $__inlined_func$~lib/rt/itcms/__renew$653 local.get $3 i32.const 20 i32.sub @@ -7609,7 +7611,7 @@ i32.store offset=16 local.get $3 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$651 + br $__inlined_func$~lib/rt/itcms/__renew$653 end local.get $1 local.get $4 @@ -13084,7 +13086,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted$656 (result i32) + block $__inlined_func$std/array/isSorted$658 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -13152,7 +13154,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted$656 + br $__inlined_func$std/array/isSorted$658 end local.get $0 i32.const 1 @@ -14389,7 +14391,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/array/Array>$658 (result i32) + block $__inlined_func$std/array/isSorted<~lib/array/Array>$660 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -14472,7 +14474,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/array/Array>$658 + br $__inlined_func$std/array/isSorted<~lib/array/Array>$660 end local.get $1 i32.const 1 @@ -14899,7 +14901,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$734 + block $__inlined_func$~lib/string/String#concat$736 local.get $1 i32.const 20 i32.sub @@ -14918,7 +14920,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/string/String#concat$734 + br $__inlined_func$~lib/string/String#concat$736 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -15107,7 +15109,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$736 + block $__inlined_func$~lib/util/string/joinIntegerArray$738 local.get $0 i32.const 1 i32.sub @@ -15121,7 +15123,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$736 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end local.get $7 i32.eqz @@ -15134,7 +15136,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$736 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -15233,7 +15235,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$736 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -15299,7 +15301,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$737 + block $__inlined_func$~lib/util/string/joinIntegerArray$739 local.get $0 i32.const 1 i32.sub @@ -15313,7 +15315,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$737 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 end local.get $7 i32.eqz @@ -15326,7 +15328,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$737 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -15425,7 +15427,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$737 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -15952,7 +15954,7 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray$6 (result i32) + block $__inlined_func$~lib/util/string/joinReferenceArray$4 (result i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -15977,7 +15979,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray$6 + br $__inlined_func$~lib/util/string/joinReferenceArray$4 end local.get $2 i32.eqz @@ -16000,7 +16002,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray$6 + br $__inlined_func$~lib/util/string/joinReferenceArray$4 end i32.const 11568 local.set $0 @@ -16210,7 +16212,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$738 + block $__inlined_func$~lib/util/string/joinIntegerArray$740 local.get $0 i32.const 1 i32.sub @@ -16224,7 +16226,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$738 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 end local.get $6 i32.eqz @@ -16237,7 +16239,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$738 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -16330,7 +16332,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$738 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16417,7 +16419,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$739 + block $__inlined_func$~lib/util/string/joinIntegerArray$741 local.get $0 i32.const 1 i32.sub @@ -16431,7 +16433,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$739 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end local.get $6 i32.eqz @@ -16444,7 +16446,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$739 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -16541,7 +16543,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$739 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -16628,7 +16630,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$740 + block $__inlined_func$~lib/util/string/joinIntegerArray$742 local.get $0 i32.const 1 i32.sub @@ -16642,7 +16644,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$740 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end local.get $6 i32.eqz @@ -16655,7 +16657,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$740 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -16752,7 +16754,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$740 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17183,7 +17185,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$741 + block $__inlined_func$~lib/util/string/joinIntegerArray$743 local.get $0 i32.const 1 i32.sub @@ -17197,7 +17199,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end local.get $6 i32.eqz @@ -17210,7 +17212,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -17303,7 +17305,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17412,7 +17414,7 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 (result i32) + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 (result i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -17437,7 +17439,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 end local.get $4 i32.eqz @@ -17461,7 +17463,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 end i32.const 11568 local.set $0 @@ -21551,7 +21553,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf$712 + block $__inlined_func$~lib/array/Array#indexOf$714 local.get $2 i32.load offset=12 local.tee $4 @@ -21567,7 +21569,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$712 + br $__inlined_func$~lib/array/Array#indexOf$714 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -21593,7 +21595,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$712 + br $__inlined_func$~lib/array/Array#indexOf$714 end local.get $0 i32.const 1 @@ -21645,7 +21647,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf$713 + block $__inlined_func$~lib/array/Array#indexOf$715 local.get $2 i32.load offset=12 local.tee $4 @@ -21661,7 +21663,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$713 + br $__inlined_func$~lib/array/Array#indexOf$715 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -21687,7 +21689,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$713 + br $__inlined_func$~lib/array/Array#indexOf$715 end local.get $0 i32.const 1 @@ -21998,7 +22000,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#includes$714 (result i32) + block $__inlined_func$~lib/array/Array#includes$716 (result i32) i32.const 1 i32.const 2 i32.const 9 @@ -22038,7 +22040,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$714 + br $__inlined_func$~lib/array/Array#includes$716 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -22066,7 +22068,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$714 + br $__inlined_func$~lib/array/Array#includes$716 end local.get $0 i32.const 1 @@ -22090,7 +22092,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#includes$715 (result i32) + block $__inlined_func$~lib/array/Array#includes$717 (result i32) i32.const 1 i32.const 3 i32.const 12 @@ -22130,7 +22132,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$715 + br $__inlined_func$~lib/array/Array#includes$717 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -22158,7 +22160,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$715 + br $__inlined_func$~lib/array/Array#includes$717 end local.get $0 i32.const 1 @@ -26297,7 +26299,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - block $__inlined_func$std/array/isArraysEqual$9 (result i32) + block $__inlined_func$std/array/isArraysEqual$7 (result i32) i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer @@ -26413,7 +26415,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual$9 + br $__inlined_func$std/array/isArraysEqual$7 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27512,7 +27514,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 (result i32) + block $__inlined_func$std/array/isSorted<~lib/string/String|null>$662 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -27593,7 +27595,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 + br $__inlined_func$std/array/isSorted<~lib/string/String|null>$662 end local.get $1 i32.const 1 @@ -27625,7 +27627,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 (result i32) + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27665,7 +27667,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end local.get $0 local.get $2 @@ -27676,7 +27678,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end i32.const 0 local.set $1 @@ -27736,7 +27738,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end local.get $1 i32.const 1 @@ -27940,7 +27942,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store - block $__inlined_func$~lib/string/String#charAt$735 + block $__inlined_func$~lib/string/String#charAt$737 local.get $12 i32.const 10028 i32.load @@ -27954,7 +27956,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $2 - br $__inlined_func$~lib/string/String#charAt$735 + br $__inlined_func$~lib/string/String#charAt$737 end global.get $~lib/memory/__stack_pointer i32.const 2 @@ -28102,7 +28104,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinBooleanArray$14 + block $__inlined_func$~lib/util/string/joinBooleanArray$12 local.get $0 i32.const 1 i32.sub @@ -28116,7 +28118,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $2 - br $__inlined_func$~lib/util/string/joinBooleanArray$14 + br $__inlined_func$~lib/util/string/joinBooleanArray$12 end block $folding-inner07 local.get $0 @@ -28249,7 +28251,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinBooleanArray$14 + br $__inlined_func$~lib/util/string/joinBooleanArray$12 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28995,7 +28997,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$15 + block $__inlined_func$~lib/util/string/joinIntegerArray$13 local.get $2 i32.const 1 i32.sub @@ -29009,7 +29011,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $2 - br $__inlined_func$~lib/util/string/joinIntegerArray$15 + br $__inlined_func$~lib/util/string/joinIntegerArray$13 end block $folding-inner09 local.get $4 @@ -29301,7 +29303,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$15 + br $__inlined_func$~lib/util/string/joinIntegerArray$13 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29483,7 +29485,7 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 local.get $1 i32.const 1 i32.sub @@ -29497,7 +29499,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $2 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 end local.get $1 i32.eqz @@ -29522,7 +29524,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 end i32.const 11568 local.set $2 @@ -29742,7 +29744,7 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 local.get $1 i32.const 1 i32.sub @@ -29756,7 +29758,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $2 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 end local.get $1 i32.eqz @@ -29781,7 +29783,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 end i32.const 11568 local.set $2 @@ -30005,7 +30007,7 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 local.get $1 i32.const 1 i32.sub @@ -30019,7 +30021,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $2 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 end local.get $1 i32.eqz @@ -30044,7 +30046,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 end i32.const 11568 local.set $2 diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 79b69d7b74..ed31bd6c6a 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -2686,12 +2686,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2769,12 +2765,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index d7d3749387..19c0a0192a 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -113,7 +113,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$172 + block $__inlined_func$~lib/rt/itcms/Object#unlink$185 local.get $0 i32.load offset=4 i32.const -4 @@ -137,7 +137,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$172 + br $__inlined_func$~lib/rt/itcms/Object#unlink$185 end local.get $0 i32.load offset=8 @@ -1644,11 +1644,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit ) (func $~start call $start:std/arraybuffer @@ -2303,7 +2299,7 @@ i32.load local.tee $0 i32.store offset=16 - block $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 (result i32) + block $__inlined_func$~lib/dataview/DataView#constructor@varargs (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2425,7 +2421,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 + br $__inlined_func$~lib/dataview/DataView#constructor@varargs end br $folding-inner1 end diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index d2e17e744a..9b9e4e7e62 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -2574,12 +2574,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -2595,12 +2591,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index 427669238d..d1290df97c 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -121,7 +121,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$218 + block $__inlined_func$~lib/rt/itcms/Object#unlink$221 local.get $0 i32.load offset=4 i32.const -4 @@ -145,7 +145,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$218 + br $__inlined_func$~lib/rt/itcms/Object#unlink$221 end local.get $0 i32.load offset=8 @@ -1622,11 +1622,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit ) (func $~start call $start:std/dataview @@ -3087,7 +3083,7 @@ i32.const 1456 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 (result i32) + block $__inlined_func$~lib/typedarray/Uint8Array#constructor (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3190,7 +3186,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - br $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 + br $__inlined_func$~lib/typedarray/Uint8Array#constructor end br $folding-inner1 end diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index c06e79635e..f76228e436 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -3684,12 +3684,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 9dc722dd42..9c9a523680 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -2393,11 +2393,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index 0bea8bdde5..da8784b71b 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -5247,12 +5247,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 01aae0315a..4148a7ac94 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -1635,11 +1635,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 5b911b3d42..04a2b09a95 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -2305,12 +2305,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index 3e9a97e4fe..941f28ce40 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1392,11 +1392,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index eb247a5394..0abd1231af 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -3158,12 +3158,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 1813e83bcf..5e5c560d3b 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -2012,11 +2012,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 2b9cc560d4..b643b683f8 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -4348,12 +4348,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index 455f22dbab..2a2f9d8ff2 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -1626,11 +1626,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 7ab6891f98..9cb6bc3014 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -2488,12 +2488,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 23f01fa406..9b5ed278de 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -1265,11 +1265,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index d05a08308f..d083482d6b 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -3562,12 +3562,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 4fde8c58d3..eeafb67230 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -2284,11 +2284,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 21f3389d96..946aa3b013 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -3437,12 +3437,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index 907c9e971e..621340f408 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -2288,11 +2288,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 8bc24bd177..8b5dc5579c 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -2885,12 +2885,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index d0b260e91e..3182351243 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -1673,11 +1673,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 957f42687b..f75a97a1ea 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -5554,12 +5554,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index 2bb47b7467..11588257fe 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -4288,11 +4288,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index ca03f8216a..a6cb7d2d76 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -2799,12 +2799,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index 365b6a445b..51197770e1 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1715,11 +1715,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index fecf5869a5..ecf75231bf 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -13162,12 +13162,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index cfce31d9b4..9270604b3c 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -766,7 +766,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1391 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1403 local.get $0 i32.load offset=4 i32.const -4 @@ -790,7 +790,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1391 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1403 end local.get $0 i32.load offset=8 @@ -9400,11 +9400,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end i32.const 49120 @@ -35310,7 +35306,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1396 + block $__inlined_func$~lib/util/string/joinIntegerArray$1408 local.get $0 i32.const 1 i32.sub @@ -35324,7 +35320,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1396 + br $__inlined_func$~lib/util/string/joinIntegerArray$1408 end local.get $6 i32.eqz @@ -35337,7 +35333,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1396 + br $__inlined_func$~lib/util/string/joinIntegerArray$1408 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -35430,7 +35426,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1396 + br $__inlined_func$~lib/util/string/joinIntegerArray$1408 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -35658,7 +35654,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1397 + block $__inlined_func$~lib/util/string/joinIntegerArray$1409 local.get $0 i32.const 1 i32.sub @@ -35672,7 +35668,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1397 + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 end local.get $6 i32.eqz @@ -35685,7 +35681,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1397 + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -35778,7 +35774,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1397 + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -35876,7 +35872,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1398 + block $__inlined_func$~lib/util/string/joinIntegerArray$1410 local.get $0 i32.const 1 i32.sub @@ -35890,7 +35886,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1398 + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 end local.get $6 i32.eqz @@ -35903,7 +35899,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1398 + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -36000,7 +35996,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1398 + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36066,7 +36062,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1399 + block $__inlined_func$~lib/util/string/joinIntegerArray$1411 local.get $0 i32.const 1 i32.sub @@ -36080,7 +36076,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1399 + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 end local.get $6 i32.eqz @@ -36093,7 +36089,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1399 + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -36190,7 +36186,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1399 + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36256,7 +36252,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1400 + block $__inlined_func$~lib/util/string/joinIntegerArray$1412 local.get $0 i32.const 1 i32.sub @@ -36270,7 +36266,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1400 + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 end local.get $6 i32.eqz @@ -36283,7 +36279,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1400 + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -36380,7 +36376,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1400 + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36446,7 +36442,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1401 + block $__inlined_func$~lib/util/string/joinIntegerArray$1413 local.get $0 i32.const 1 i32.sub @@ -36460,7 +36456,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1401 + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 end local.get $6 i32.eqz @@ -36473,7 +36469,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1401 + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -36570,7 +36566,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1401 + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36637,7 +36633,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$6 + block $__inlined_func$~lib/util/string/joinIntegerArray$5 local.get $0 i32.const 1 i32.sub @@ -36651,7 +36647,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + br $__inlined_func$~lib/util/string/joinIntegerArray$5 end block $folding-inner0 local.get $6 @@ -36943,7 +36939,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + br $__inlined_func$~lib/util/string/joinIntegerArray$5 end global.get $~lib/memory/__stack_pointer i32.const 8 diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index ef094cef9d..5a8c5dce8f 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -3422,12 +3422,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index 19b44988e5..f3835303da 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -2629,11 +2629,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index 347d6527fd..1037d7b726 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -2299,12 +2299,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index 703cbc6f3c..0f870aa03f 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1401,11 +1401,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index e38ffb1605..0c85ee2625 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -2833,12 +2833,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/switch.release.wat b/tests/compiler/switch.release.wat index ef3d9d9622..b53df8bee3 100644 --- a/tests/compiler/switch.release.wat +++ b/tests/compiler/switch.release.wat @@ -1587,11 +1587,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 4ba00fcccb..204db8df29 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -4395,12 +4395,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) @@ -4456,20 +4452,12 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=4 - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 4103fc0f3f..24e06cf256 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -3807,11 +3807,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end local.get $0 @@ -3846,18 +3842,10 @@ end local.get $0 i32.load - local.tee $1 - if - local.get $1 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit local.get $0 i32.load offset=4 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index c487003992..0b8420d409 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -1815,12 +1815,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index e0bd055a29..d1427154ca 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -1098,11 +1098,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end unreachable diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index a91488290e..2510d717ba 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -2411,12 +2411,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index f0c11fa359..698d29d147 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1417,11 +1417,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index f7c2a8c485..1dfafed2d8 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -3166,12 +3166,8 @@ call $~lib/object/Object~visit local.get $0 i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end + local.get $1 + call $~lib/rt/itcms/__visit ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index d6ca6fba01..c5b0c20429 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1902,11 +1902,7 @@ end local.get $0 i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end + call $~lib/rt/itcms/__visit return end return From 69cc1cbcd1781caa9f895e9912cbb4e793842417 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Tue, 15 Jul 2025 13:16:11 +0800 Subject: [PATCH 49/86] chore: refactor `ensureConstructor` with `CommonNames` instead of raw string (#2935) --- src/compiler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler.ts b/src/compiler.ts index dcc5e84978..6ad4719cd2 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -8830,7 +8830,7 @@ export class Compiler extends DiagnosticEmitter { classInstance.constructorInstance = instance; let members = classInstance.members; if (!members) classInstance.members = members = new Map(); - members.set("constructor", instance.prototype); + members.set(CommonNames.constructor, instance.prototype); let previousFlow = this.currentFlow; let flow = instance.flow; From 6cd638e2f7ba9f947ea51078041247f9f01c8cd7 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Mon, 4 Aug 2025 19:18:41 -0700 Subject: [PATCH 50/86] fix: make asinit exit if package.json has a "type" not equal to "module" (#2938) --- bin/asinit.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/bin/asinit.js b/bin/asinit.js index 1da4ddedd1..6950a2341a 100755 --- a/bin/asinit.js +++ b/bin/asinit.js @@ -115,12 +115,23 @@ const paths = [ [gitignoreFile, "Git configuration that excludes compiled binaries from source control."], [asconfigFile, "Configuration file defining both a 'debug' and a 'release' target."], [packageFile, "Package info containing the necessary commands to compile to WebAssembly."], - [testsIndexFile, "Stater test to check that the module is functioning."], + [testsIndexFile, "Starter test to check that the module is functioning."], [indexHtmlFile, "Starter HTML file that loads the module in a browser."] ]; const formatPath = filePath => "./" + path.relative(projectDir, filePath).replace(/\\/g, "/"); +if (fs.existsSync(packageFile)) { + const pkg = JSON.parse(fs.readFileSync(packageFile)); + if ("type" in pkg && pkg["type"] !== "module") { + console.error(stdoutColors.red([ + `Error: The "type" field in ${formatPath(packageFile)} is set to "${pkg["type"]}".`, + ` asinit requires the "type" field to be set to "module" (ES modules).` + ].join("\n"))); + process.exit(1); + } +} + console.log([ "Version: " + version, "", From 7e2a62d9615d2ae02b593af87ee4920a3c57b0bd Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 29 Aug 2025 12:45:56 +0800 Subject: [PATCH 51/86] fix: avoid to visit nullptr in binaryen (#2943) --- src/compiler.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index 6ad4719cd2..f02c0f7439 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -6764,7 +6764,7 @@ export class Compiler extends DiagnosticEmitter { if (thisType.isManaged) { let operand = operands[0]; let precomp = module.runExpression(operand, ExpressionRunnerFlags.Default); - if (!isConstZero(precomp)) { // otherwise unnecessary + if (!precomp || !isConstZero(precomp)) { // otherwise unnecessary operands[operandIndex] = module.tostack(operand); } } @@ -6778,7 +6778,7 @@ export class Compiler extends DiagnosticEmitter { if (paramType.isManaged) { let operand = operands[operandIndex]; let precomp = module.runExpression(operand, ExpressionRunnerFlags.Default); - if (!isConstZero(precomp)) { // otherwise unnecessary + if (!precomp || !isConstZero(precomp)) { // otherwise unnecessary operands[operandIndex] = module.tostack(operand); } } From 9664c5b726990efdfc029ba158b78eb8a6047472 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Sat, 6 Sep 2025 08:17:06 +0800 Subject: [PATCH 52/86] feat: optimize string literal tostack behavior (#2945) --- src/compiler.ts | 38 +- src/module.ts | 12 + tests/compiler/NonNullable.debug.wat | 39 +- tests/compiler/NonNullable.release.wat | 27 +- tests/compiler/bindings/esm.debug.wat | 65 +- tests/compiler/bindings/esm.release.wat | 36 +- tests/compiler/bindings/raw.debug.wat | 65 +- tests/compiler/bindings/raw.release.wat | 32 +- tests/compiler/builtins.debug.wat | 226 +- tests/compiler/builtins.release.wat | 140 +- .../compiler/class-overloading-cast.debug.wat | 59 +- .../class-overloading-cast.release.wat | 43 +- tests/compiler/class-overloading.debug.wat | 131 +- tests/compiler/class-overloading.release.wat | 85 +- tests/compiler/field-initialization.debug.wat | 88 +- .../compiler/field-initialization.release.wat | 68 +- tests/compiler/issues/1095.debug.wat | 12 +- tests/compiler/issues/1095.release.wat | 10 +- tests/compiler/issues/1714.debug.wat | 13 +- tests/compiler/issues/1714.release.wat | 11 +- tests/compiler/issues/2166.debug.wat | 252 +- tests/compiler/issues/2166.release.wat | 86 +- tests/compiler/issues/2873.debug.wat | 41 +- tests/compiler/issues/2873.release.wat | 29 +- tests/compiler/object-literal.debug.wat | 106 +- tests/compiler/object-literal.release.wat | 86 +- tests/compiler/resolve-binary.debug.wat | 329 +- tests/compiler/resolve-binary.release.wat | 231 +- .../compiler/resolve-elementaccess.debug.wat | 60 +- .../resolve-elementaccess.release.wat | 48 +- .../resolve-function-expression.debug.wat | 13 +- .../resolve-function-expression.release.wat | 11 +- .../compiler/resolve-propertyaccess.debug.wat | 74 +- .../resolve-propertyaccess.release.wat | 50 +- tests/compiler/resolve-ternary.debug.wat | 18 +- tests/compiler/resolve-ternary.release.wat | 14 +- tests/compiler/resolve-unary.debug.wat | 137 +- tests/compiler/resolve-unary.release.wat | 99 +- tests/compiler/std/array-access.debug.wat | 31 +- tests/compiler/std/array-access.release.wat | 27 +- tests/compiler/std/array.debug.wat | 464 +- tests/compiler/std/array.release.wat | 1296 ++--- tests/compiler/std/console.debug.wat | 183 +- tests/compiler/std/console.release.wat | 85 +- tests/compiler/std/date.debug.wat | 503 +- tests/compiler/std/date.release.wat | 450 +- tests/compiler/std/hash.debug.wat | 251 +- tests/compiler/std/hash.release.wat | 52 - .../std/operator-overloading.debug.wat | 86 +- .../std/operator-overloading.release.wat | 62 +- tests/compiler/std/staticarray.debug.wat | 134 +- tests/compiler/std/staticarray.release.wat | 98 +- .../compiler/std/string-casemapping.debug.wat | 870 +-- .../std/string-casemapping.release.wat | 530 +- tests/compiler/std/string-encoding.debug.wat | 218 +- .../compiler/std/string-encoding.release.wat | 535 +- tests/compiler/std/string.debug.wat | 4798 +---------------- tests/compiler/std/string.release.wat | 2914 +--------- tests/compiler/std/symbol.debug.wat | 67 +- tests/compiler/std/symbol.release.wat | 45 +- tests/compiler/std/trace.debug.wat | 86 +- tests/compiler/std/trace.release.wat | 49 - tests/compiler/std/typedarray.debug.wat | 521 +- tests/compiler/std/typedarray.release.wat | 878 ++- tests/compiler/std/uri.debug.wat | 509 +- tests/compiler/std/uri.release.wat | 309 +- tests/compiler/switch.debug.wat | 272 +- tests/compiler/switch.release.wat | 182 +- tests/compiler/templateliteral.debug.wat | 362 +- tests/compiler/templateliteral.release.wat | 637 +-- tests/compiler/typealias.debug.wat | 153 +- tests/compiler/typealias.release.wat | 71 +- tests/compiler/typeof.debug.wat | 198 +- tests/compiler/typeof.release.wat | 120 +- 74 files changed, 3214 insertions(+), 17716 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index f02c0f7439..d3a5525164 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -55,11 +55,11 @@ import { SideEffects, SwitchBuilder, ExpressionRunnerFlags, - isConstZero, isConstNegZero, isConstExpressionNaN, ensureType, - createType + createType, + getConstValueInteger } from "./module"; import { @@ -451,6 +451,8 @@ export class Compiler extends DiagnosticEmitter { memorySegments: MemorySegment[] = []; /** Map of already compiled static string segments. */ stringSegments: Map = new Map(); + /** Set of static GC object offsets. tostack is unnecessary for them. */ + staticGcObjectOffsets: Map> = new Map(); /** Function table being compiled. First elem is blank. */ functionTable: Function[] = []; /** Arguments length helper global. */ @@ -1939,7 +1941,16 @@ export class Compiler extends DiagnosticEmitter { stringSegment = this.addRuntimeMemorySegment(buf); segments.set(stringValue, stringSegment); } - return i64_add(stringSegment.offset, i64_new(totalOverhead)); + let stringOffset = i64_add(stringSegment.offset, i64_new(totalOverhead)); + let staticGcObjectOffsets = this.staticGcObjectOffsets; + if (staticGcObjectOffsets.has(i64_high(stringOffset))) { + assert(staticGcObjectOffsets.get(i64_high(stringOffset))).add(i64_low(stringOffset)); + } else { + let s = new Set(); + s.add(i64_low(stringOffset)); + staticGcObjectOffsets.set(i64_high(stringOffset), s); + } + return stringOffset; } /** Writes a series of static values of the specified type to a buffer. */ @@ -6754,6 +6765,21 @@ export class Compiler extends DiagnosticEmitter { stub.set(CommonFlags.Compiled); } + private needToStack(expr: ExpressionRef): bool { + const precomp = this.module.runExpression(expr, ExpressionRunnerFlags.Default); + // cannot precompute, so must go to stack + if (precomp == 0) return true; + const value = getConstValueInteger(precomp, this.options.isWasm64); + // zero constant doesn't need to go to stack + if (i64_eq(value, i64_zero)) return false; + // static GC objects doesn't need to go to stack + let staticGcObjectOffsets = this.staticGcObjectOffsets; + if (staticGcObjectOffsets.has(i64_high(value))) { + if (assert(staticGcObjectOffsets.get(i64_high(value))).has(i64_low(value))) return false; + } + return true; + } + /** Marks managed call operands for the shadow stack. */ private operandsTostack(signature: Signature, operands: ExpressionRef[]): void { if (!this.options.stackSize) return; @@ -6763,8 +6789,7 @@ export class Compiler extends DiagnosticEmitter { if (thisType) { if (thisType.isManaged) { let operand = operands[0]; - let precomp = module.runExpression(operand, ExpressionRunnerFlags.Default); - if (!precomp || !isConstZero(precomp)) { // otherwise unnecessary + if (this.needToStack(operand)) { operands[operandIndex] = module.tostack(operand); } } @@ -6777,8 +6802,7 @@ export class Compiler extends DiagnosticEmitter { let paramType = parameterTypes[parameterIndex]; if (paramType.isManaged) { let operand = operands[operandIndex]; - let precomp = module.runExpression(operand, ExpressionRunnerFlags.Default); - if (!precomp || !isConstZero(precomp)) { // otherwise unnecessary + if (this.needToStack(operand)) { operands[operandIndex] = module.tostack(operand); } } diff --git a/src/module.ts b/src/module.ts index c6eb00b579..2719f60c50 100644 --- a/src/module.ts +++ b/src/module.ts @@ -3038,6 +3038,18 @@ export function getConstValueI64High(expr: ExpressionRef): i32 { return binaryen._BinaryenConstGetValueI64High(expr); } +export function getConstValueInteger(expr: ExpressionRef, isWasm64: bool): i64 { + let lo: i32 = 0; + let hi: i32 = 0; + if (isWasm64) { + lo = getConstValueI64Low(expr); + hi = getConstValueI64High(expr); + } else { + lo = getConstValueI32(expr); + } + return i64_new(lo, hi); +} + export function getConstValueF32(expr: ExpressionRef): f32 { return binaryen._BinaryenConstGetValueF32(expr); } diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index 5620f0ae0b..52a1e1e96d 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -357,28 +357,15 @@ (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 i32.const 32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -390,17 +377,7 @@ unreachable end i32.const 112 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 112 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -412,17 +389,7 @@ unreachable end i32.const 144 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 i32.const 144 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -436,7 +403,7 @@ global.get $~lib/memory/__stack_pointer global.get $NonNullable/z local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 if (result i32) local.get $0 @@ -462,7 +429,7 @@ local.get $1 call $NonNullable/safetyCheck<~lib/string/String|null> global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index 8a503aa3f3..7f27ab78fa 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -22,7 +22,7 @@ (start $~start) (func $~start global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -33,15 +33,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -54,12 +45,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -72,12 +57,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -92,7 +71,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 1248 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1248 i32.store @@ -126,7 +105,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index b025730171..c5ae968aba 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -124,6 +124,27 @@ (export "functionFunction" (func $export:bindings/esm/functionFunction)) (func $start:bindings/esm~anonymous|0 ) + (func $start:bindings/esm + i32.const 128 + i32.const 1 + f64.const 42 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 160 + call $~lib/bindings/dom/console.log + global.get $~lib/bindings/dom/Math.E + call $~lib/bindings/dom/Math.log + drop + global.get $bindings/esm/immutableGlobal + drop + global.get $bindings/esm/immutableGlobalNested + drop + call $bindings/esm/Date_getTimezoneOffset + drop + ) (func $bindings/esm/plainFunction (param $a i32) (param $b i32) (result i32) local.get $a local.get $b @@ -3081,50 +3102,6 @@ unreachable end ) - (func $start:bindings/esm - (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 - i32.const 128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1 - f64.const 42 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 160 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/bindings/dom/console.log - global.get $~lib/bindings/dom/Math.E - call $~lib/bindings/dom/Math.log - drop - global.get $bindings/esm/immutableGlobal - drop - global.get $bindings/esm/immutableGlobalNested - drop - call $bindings/esm/Date_getTimezoneOffset - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $bindings/esm/bufferFunction (param $a i32) (param $b i32) (result i32) (local $aByteLength i32) (local $bByteLength i32) diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index d2fae9e068..9367b73e53 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -2053,27 +2053,6 @@ end i32.const 1 global.set $~started - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store i32.const 1152 i32.const 1 f64.const 42 @@ -2082,9 +2061,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store i32.const 1184 call $~lib/bindings/dom/console.log global.get $~lib/bindings/dom/Math.E @@ -2092,10 +2068,6 @@ drop call $bindings/esm/Date_getTimezoneOffset drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer memory.size i32.const 16 i32.shl @@ -2192,7 +2164,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$285 + block $__inlined_func$~lib/string/String#concat$284 local.get $1 i32.const 20 i32.sub @@ -2211,7 +2183,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1760 local.set $2 - br $__inlined_func$~lib/string/String#concat$285 + br $__inlined_func$~lib/string/String#concat$284 end global.get $~lib/memory/__stack_pointer local.get $2 @@ -2925,7 +2897,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$270 + block $__inlined_func$~lib/rt/itcms/__renew$269 i32.const 1073741820 local.get $2 i32.const 1 @@ -2968,7 +2940,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$270 + br $__inlined_func$~lib/rt/itcms/__renew$269 end local.get $3 local.get $4 diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 5947b885ed..1a05e8c669 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -124,6 +124,27 @@ (export "functionFunction" (func $export:bindings/esm/functionFunction)) (func $start:bindings/esm~anonymous|0 ) + (func $start:bindings/esm + i32.const 128 + i32.const 1 + f64.const 42 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 160 + call $~lib/bindings/dom/console.log + global.get $~lib/bindings/dom/Math.E + call $~lib/bindings/dom/Math.log + drop + global.get $bindings/esm/immutableGlobal + drop + global.get $bindings/esm/immutableGlobalNested + drop + call $bindings/esm/Date_getTimezoneOffset + drop + ) (func $start:bindings/raw call $start:bindings/esm ) @@ -3084,50 +3105,6 @@ unreachable end ) - (func $start:bindings/esm - (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 - i32.const 128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1 - f64.const 42 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 160 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/bindings/dom/console.log - global.get $~lib/bindings/dom/Math.E - call $~lib/bindings/dom/Math.log - drop - global.get $bindings/esm/immutableGlobal - drop - global.get $bindings/esm/immutableGlobalNested - drop - call $bindings/esm/Date_getTimezoneOffset - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $bindings/esm/bufferFunction (param $a i32) (param $b i32) (result i32) (local $aByteLength i32) (local $bByteLength i32) diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index 85e626eef7..e2ed7cd278 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -2053,27 +2053,6 @@ end i32.const 1 global.set $~started - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store i32.const 1152 i32.const 1 f64.const 42 @@ -2082,9 +2061,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store i32.const 1184 call $~lib/bindings/dom/console.log global.get $~lib/bindings/dom/Math.E @@ -2092,10 +2068,6 @@ drop call $bindings/esm/Date_getTimezoneOffset drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer memory.size i32.const 16 i32.shl @@ -2192,7 +2164,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$286 + block $__inlined_func$~lib/string/String#concat$285 local.get $1 i32.const 20 i32.sub @@ -2211,7 +2183,7 @@ global.set $~lib/memory/__stack_pointer i32.const 1760 local.set $2 - br $__inlined_func$~lib/string/String#concat$286 + br $__inlined_func$~lib/string/String#concat$285 end global.get $~lib/memory/__stack_pointer local.get $2 diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index c5c210aea4..fd74409ab4 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -549,16 +549,13 @@ (local $52 i32) (local $53 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 i32.const 1 drop i32.const 0 @@ -2551,7 +2548,7 @@ local.set $53 global.get $~lib/memory/__stack_pointer local.get $53 - i32.store offset=8 + i32.store offset=4 local.get $53 call $~lib/function/Function<%28i32%2Ci32%29=>i32>#get:name local.set $53 @@ -2560,11 +2557,6 @@ i32.store local.get $53 i32.const 32 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -2615,7 +2607,7 @@ local.set $53 global.get $~lib/memory/__stack_pointer local.get $53 - i32.store offset=8 + i32.store offset=4 local.get $53 call $~lib/function/Function<%28i32%2Ci32%29=>i32>#toString local.set $53 @@ -2624,11 +2616,6 @@ i32.store local.get $53 i32.const 176 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3270,11 +3257,6 @@ i32.const 52 local.set $52 i32.const 256 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 5 local.get $48 f64.convert_i32_u @@ -3336,17 +3318,7 @@ unreachable end i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3358,17 +3330,7 @@ unreachable end i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3380,17 +3342,7 @@ unreachable end i32.const 400 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 400 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3402,17 +3354,7 @@ unreachable end i32.const 432 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 432 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3424,17 +3366,7 @@ unreachable end i32.const 464 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 464 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3446,17 +3378,7 @@ unreachable end i32.const 496 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 496 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3468,17 +3390,7 @@ unreachable end i32.const 528 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 528 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3490,17 +3402,7 @@ unreachable end i32.const 560 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 560 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3512,17 +3414,7 @@ unreachable end i32.const 592 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 592 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3534,17 +3426,7 @@ unreachable end i32.const 624 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 624 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3556,17 +3438,7 @@ unreachable end i32.const 656 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 656 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3578,17 +3450,7 @@ unreachable end i32.const 688 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 688 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3600,17 +3462,7 @@ unreachable end i32.const 720 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 720 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3622,17 +3474,7 @@ unreachable end i32.const 752 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 752 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3644,17 +3486,7 @@ unreachable end i32.const 784 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 784 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3666,17 +3498,7 @@ unreachable end i32.const 816 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 816 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3688,17 +3510,7 @@ unreachable end i32.const 848 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 848 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3710,17 +3522,7 @@ unreachable end i32.const 880 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 880 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3732,17 +3534,7 @@ unreachable end i32.const 432 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 432 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3754,17 +3546,7 @@ unreachable end i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store - local.get $53 i32.const 352 - local.set $53 - global.get $~lib/memory/__stack_pointer - local.get $53 - i32.store offset=4 - local.get $53 call $~lib/string/String.__eq i32.eqz if @@ -3902,7 +3684,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index fa7c2b22ee..a22c2024c1 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -246,7 +246,7 @@ ) (func $start:builtins 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 @@ -263,9 +263,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 i32.const 1 global.set $builtins/i i32.const 0 @@ -652,13 +649,10 @@ end global.get $~lib/memory/__stack_pointer i32.const 1168 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -679,13 +673,10 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 1168 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1200 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1200 - i32.store offset=4 i32.const 1200 i32.const 1200 call $~lib/string/String.__eq @@ -767,9 +758,6 @@ i32.const 8 f64.const 1 f64.store - global.get $~lib/memory/__stack_pointer - i32.const 1280 - i32.store i32.const 1280 i32.const 5 f64.const 0 @@ -778,12 +766,6 @@ f64.const 52 f64.const 52 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store offset=4 i32.const 1376 i32.const 1376 call $~lib/string/String.__eq @@ -796,12 +778,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store offset=4 i32.const 1376 i32.const 1376 call $~lib/string/String.__eq @@ -814,12 +790,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1424 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1424 - i32.store offset=4 i32.const 1424 i32.const 1424 call $~lib/string/String.__eq @@ -832,12 +802,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store offset=4 i32.const 1456 i32.const 1456 call $~lib/string/String.__eq @@ -850,12 +814,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store offset=4 i32.const 1488 i32.const 1488 call $~lib/string/String.__eq @@ -868,12 +826,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 i32.const 1520 i32.const 1520 call $~lib/string/String.__eq @@ -886,12 +838,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=4 i32.const 1552 i32.const 1552 call $~lib/string/String.__eq @@ -904,12 +850,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1584 - i32.store offset=4 i32.const 1584 i32.const 1584 call $~lib/string/String.__eq @@ -922,12 +862,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 i32.const 1616 i32.const 1616 call $~lib/string/String.__eq @@ -940,12 +874,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 i32.const 1648 i32.const 1648 call $~lib/string/String.__eq @@ -958,12 +886,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=4 i32.const 1680 i32.const 1680 call $~lib/string/String.__eq @@ -976,12 +898,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 call $~lib/string/String.__eq @@ -994,12 +910,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=4 i32.const 1744 i32.const 1744 call $~lib/string/String.__eq @@ -1012,12 +922,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store offset=4 i32.const 1776 i32.const 1776 call $~lib/string/String.__eq @@ -1030,12 +934,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 i32.const 1808 i32.const 1808 call $~lib/string/String.__eq @@ -1048,12 +946,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1840 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1840 - i32.store offset=4 i32.const 1840 i32.const 1840 call $~lib/string/String.__eq @@ -1066,12 +958,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1872 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1872 - i32.store offset=4 i32.const 1872 i32.const 1872 call $~lib/string/String.__eq @@ -1084,12 +970,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 i32.const 1904 i32.const 1904 call $~lib/string/String.__eq @@ -1102,12 +982,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store offset=4 i32.const 1456 i32.const 1456 call $~lib/string/String.__eq @@ -1120,12 +994,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store offset=4 i32.const 1376 i32.const 1376 call $~lib/string/String.__eq @@ -1139,7 +1007,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 677c68b11c..d3b2c941ba 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -3074,16 +3074,13 @@ (func $start:class-overloading-cast (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 memory.size i32.const 16 i32.shl @@ -3114,7 +3111,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $class-overloading-cast/A#foo@override @@ -3124,11 +3121,6 @@ i32.store local.get $0 i32.const 464 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3143,7 +3135,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $"class-overloading-cast/B#foo" @@ -3153,11 +3145,6 @@ i32.store local.get $0 i32.const 464 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3172,7 +3159,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 f64.const 1.1 call $class-overloading-cast/A#foo@override @@ -3182,11 +3169,6 @@ i32.store local.get $0 i32.const 464 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3204,14 +3186,9 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 576 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 call $class-overloading-cast/A<~lib/string/String>#foo@override local.set $0 global.get $~lib/memory/__stack_pointer @@ -3219,11 +3196,6 @@ i32.store local.get $0 i32.const 432 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3238,14 +3210,9 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 576 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 call $class-overloading-cast/A<~lib/string/String>#foo@override local.set $0 global.get $~lib/memory/__stack_pointer @@ -3253,11 +3220,6 @@ i32.store local.get $0 i32.const 432 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3273,7 +3235,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 f32.const 2.5 call $class-overloading-cast/D#bar @@ -3283,11 +3245,6 @@ i32.store local.get $0 i32.const 608 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3299,7 +3256,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index 8b131f6fab..855f1b9054 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1678,7 +1678,7 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1689,9 +1689,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 memory.size i32.const 16 i32.shl @@ -1849,7 +1846,7 @@ global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v local.tee $0 - i32.store offset=8 + i32.store offset=4 block $default block $case1 local.get $0 @@ -1876,9 +1873,6 @@ end local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store offset=4 local.get $0 i32.const 1488 call $~lib/string/String.__eq @@ -1893,13 +1887,10 @@ end global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v2 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store offset=4 i32.const 1488 i32.const 1488 call $~lib/string/String.__eq @@ -1917,7 +1908,7 @@ global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v3 local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1488 local.get $0 i32.const 8 @@ -1931,9 +1922,6 @@ end local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store offset=4 local.get $0 i32.const 1488 call $~lib/string/String.__eq @@ -2009,10 +1997,7 @@ global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/c local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store offset=12 + i32.store offset=4 local.get $0 i32.const 8 i32.sub @@ -2021,9 +2006,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store offset=4 i32.const 1456 i32.const 1456 call $~lib/string/String.__eq @@ -2039,10 +2021,7 @@ global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/c local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store offset=12 + i32.store offset=4 local.get $0 i32.const 8 i32.sub @@ -2051,9 +2030,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store offset=4 i32.const 1456 i32.const 1456 call $~lib/string/String.__eq @@ -2156,13 +2132,10 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1632 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1632 - i32.store offset=4 i32.const 1632 i32.const 1632 call $~lib/string/String.__eq @@ -2176,7 +2149,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index d84b9f7cce..e922ed5a1d 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -3118,13 +3118,13 @@ (func $class-overloading/C#a (param $this i32) (param $a i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $2 global.get $~lib/memory/__stack_pointer @@ -3140,11 +3140,6 @@ i32.store local.get $2 i32.const 496 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -3158,7 +3153,7 @@ i32.const 592 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -3431,13 +3426,13 @@ (func $start:class-overloading (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -3473,11 +3468,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3505,11 +3495,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3537,11 +3522,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3569,11 +3549,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3604,11 +3579,6 @@ i32.store local.get $0 i32.const 592 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3636,11 +3606,6 @@ i32.store local.get $0 i32.const 592 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3668,11 +3633,6 @@ i32.store local.get $0 i32.const 592 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3698,11 +3658,6 @@ i32.store local.get $0 i32.const 592 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3733,11 +3688,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3765,11 +3715,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3797,11 +3742,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3827,11 +3767,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3862,11 +3797,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3894,11 +3824,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3926,11 +3851,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3956,11 +3876,6 @@ i32.store local.get $0 i32.const 496 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3991,11 +3906,6 @@ i32.store local.get $0 i32.const 624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4023,11 +3933,6 @@ i32.store local.get $0 i32.const 624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4055,11 +3960,6 @@ i32.store local.get $0 i32.const 624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4087,11 +3987,6 @@ i32.store local.get $0 i32.const 624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4121,11 +4016,6 @@ i32.store local.get $0 i32.const 656 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4155,11 +4045,6 @@ i32.store local.get $0 i32.const 688 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4192,7 +4077,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index 777b8bf3cc..540c8b0e03 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1770,7 +1770,7 @@ ) (func $class-overloading/C#a (param $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1785,8 +1785,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -1795,9 +1795,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 i32.const 1520 i32.const 1520 call $~lib/string/String.__eq @@ -1813,7 +1810,7 @@ i32.const 1616 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -1905,7 +1902,7 @@ (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -1914,8 +1911,8 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -1961,9 +1958,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2014,9 +2008,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2067,9 +2058,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2120,9 +2108,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2177,9 +2162,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 local.get $0 i32.const 1616 call $~lib/string/String.__eq @@ -2202,9 +2184,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 i32.const 1616 i32.const 1616 call $~lib/string/String.__eq @@ -2227,9 +2206,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 i32.const 1616 i32.const 1616 call $~lib/string/String.__eq @@ -2250,9 +2226,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 i32.const 1616 i32.const 1616 call $~lib/string/String.__eq @@ -2280,9 +2253,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2333,9 +2303,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2386,9 +2353,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2437,9 +2401,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2467,9 +2428,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2520,9 +2478,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2573,9 +2528,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2624,9 +2576,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 local.get $0 i32.const 1520 call $~lib/string/String.__eq @@ -2681,9 +2630,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 local.get $0 i32.const 1648 call $~lib/string/String.__eq @@ -2734,9 +2680,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 local.get $0 i32.const 1648 call $~lib/string/String.__eq @@ -2787,9 +2730,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 local.get $0 i32.const 1648 call $~lib/string/String.__eq @@ -2840,9 +2780,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 local.get $0 i32.const 1648 call $~lib/string/String.__eq @@ -2922,9 +2859,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=4 local.get $0 i32.const 1680 call $~lib/string/String.__eq @@ -3004,9 +2938,6 @@ global.get $class-overloading/which local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -3209,7 +3140,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index 9966c1244e..acb835fa02 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -4112,13 +4112,13 @@ (local $33 i32) (local $34 i32) global.get $~lib/memory/__stack_pointer - i32.const 148 + i32.const 144 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 148 + i32.const 144 memory.fill memory.size i32.const 16 @@ -4647,11 +4647,6 @@ i32.store offset=4 local.get $34 i32.const 624 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeObject#set:b local.get $21 i32.const 0 @@ -4681,7 +4676,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeObject#get:b local.set $34 @@ -4690,11 +4685,6 @@ i32.store offset=4 local.get $34 i32.const 624 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -4710,7 +4700,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $23 - i32.store offset=104 + i32.store offset=100 local.get $23 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4726,15 +4716,10 @@ i32.store offset=4 local.get $34 i32.const 656 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeObject#set:b local.get $23 local.tee $24 - i32.store offset=108 + i32.store offset=104 local.get $24 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4757,7 +4742,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeObject#get:b local.set $34 @@ -4766,11 +4751,6 @@ i32.store offset=4 local.get $34 i32.const 656 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -4786,7 +4766,7 @@ i32.const 0 call $field-initialization/SomeOtherObject#constructor local.tee $25 - i32.store offset=112 + i32.store offset=108 local.get $25 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4794,11 +4774,6 @@ i32.store offset=4 local.get $34 i32.const 688 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeOtherObject#set:c local.get $25 i32.const 0 @@ -4808,7 +4783,7 @@ i32.store offset=4 local.get $25 local.tee $26 - i32.store offset=116 + i32.store offset=112 local.get $26 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4854,7 +4829,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeOtherObject#get:c local.set $34 @@ -4863,11 +4838,6 @@ i32.store offset=4 local.get $34 i32.const 688 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -4883,7 +4853,7 @@ i32.const 0 call $field-initialization/SomeOtherObject#constructor local.tee $27 - i32.store offset=120 + i32.store offset=116 local.get $27 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4899,11 +4869,6 @@ i32.store offset=4 local.get $34 i32.const 720 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeObject#set:b local.get $27 local.set $34 @@ -4912,15 +4877,10 @@ i32.store offset=4 local.get $34 i32.const 752 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $field-initialization/SomeOtherObject#set:c local.get $27 local.tee $28 - i32.store offset=124 + i32.store offset=120 local.get $28 local.set $34 global.get $~lib/memory/__stack_pointer @@ -4943,7 +4903,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeObject#get:b local.set $34 @@ -4952,11 +4912,6 @@ i32.store offset=4 local.get $34 i32.const 720 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -4971,7 +4926,7 @@ local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 - i32.store offset=100 + i32.store offset=80 local.get $34 call $field-initialization/SomeOtherObject#get:c local.set $34 @@ -4980,11 +4935,6 @@ i32.store offset=4 local.get $34 i32.const 752 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 call $~lib/string/String.__eq i32.eqz if @@ -5000,7 +4950,7 @@ i32.const 1 call $field-initialization/Flow_Balanced#constructor local.tee $29 - i32.store offset=128 + i32.store offset=124 local.get $29 local.set $34 global.get $~lib/memory/__stack_pointer @@ -5030,7 +4980,7 @@ i32.const 24 call $~lib/rt/itcms/__new local.tee $30 - i32.store offset=132 + i32.store offset=128 end local.get $30 local.set $34 @@ -5049,7 +4999,7 @@ call $field-initialization/Ref_Init_InlineCtor#set:a local.get $30 local.tee $31 - i32.store offset=136 + i32.store offset=132 local.get $31 local.set $34 global.get $~lib/memory/__stack_pointer @@ -5079,7 +5029,7 @@ i32.const 25 call $~lib/rt/itcms/__new local.tee $32 - i32.store offset=140 + i32.store offset=136 end local.get $32 local.set $34 @@ -5106,7 +5056,7 @@ call $field-initialization/Ref_InlineCtor_Init#set:a local.get $32 local.tee $33 - i32.store offset=144 + i32.store offset=140 local.get $33 local.set $34 global.get $~lib/memory/__stack_pointer @@ -5126,7 +5076,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 148 + i32.const 144 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index 8d91dd1b64..c5911e7208 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1990,7 +1990,7 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 148 + i32.const 144 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2000,7 +2000,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 148 + i32.const 144 memory.fill memory.size i32.const 16 @@ -3002,9 +3002,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=80 local.get $1 i32.const 1648 i32.store offset=4 @@ -3031,15 +3028,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=100 + i32.store offset=80 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=80 local.get $0 i32.const 1648 call $~lib/string/String.__eq @@ -3057,7 +3051,7 @@ i32.const 0 call $field-initialization/SomeObject#constructor local.tee $1 - i32.store offset=104 + i32.store offset=100 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3067,9 +3061,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=80 local.get $1 i32.const 1680 i32.store offset=4 @@ -3077,7 +3068,7 @@ i32.const 1680 call $~lib/rt/itcms/__link local.get $1 - i32.store offset=108 + i32.store offset=104 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3095,15 +3086,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=100 + i32.store offset=80 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=80 local.get $0 i32.const 1680 call $~lib/string/String.__eq @@ -3120,13 +3108,10 @@ global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 - i32.store offset=112 + i32.store offset=108 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=80 local.get $1 i32.const 1712 i32.store offset=8 @@ -3140,7 +3125,7 @@ i32.const 0 i32.store offset=4 local.get $1 - i32.store offset=116 + i32.store offset=112 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3176,15 +3161,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=100 + i32.store offset=80 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=80 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -3201,7 +3183,7 @@ global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 - i32.store offset=120 + i32.store offset=116 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3211,9 +3193,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=80 local.get $1 i32.const 1744 i32.store offset=4 @@ -3223,9 +3202,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store offset=80 local.get $1 i32.const 1776 i32.store offset=8 @@ -3233,7 +3209,7 @@ i32.const 1776 call $~lib/rt/itcms/__link local.get $1 - i32.store offset=124 + i32.store offset=120 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3251,15 +3227,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=100 + i32.store offset=80 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=80 local.get $0 i32.const 1744 call $~lib/string/String.__eq @@ -3274,15 +3247,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=100 + i32.store offset=80 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=8 local.tee $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store offset=80 local.get $0 i32.const 1776 call $~lib/string/String.__eq @@ -3344,7 +3314,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=128 + i32.store offset=124 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3365,7 +3335,7 @@ i32.const 24 call $~lib/rt/itcms/__new local.tee $1 - i32.store offset=132 + i32.store offset=128 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3381,7 +3351,7 @@ local.get $2 call $~lib/rt/itcms/__link local.get $1 - i32.store offset=136 + i32.store offset=132 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3402,7 +3372,7 @@ i32.const 25 call $~lib/rt/itcms/__new local.tee $1 - i32.store offset=140 + i32.store offset=136 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3427,7 +3397,7 @@ local.get $2 call $~lib/rt/itcms/__link local.get $1 - i32.store offset=144 + i32.store offset=140 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 @@ -3443,7 +3413,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 148 + i32.const 144 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 14796c217b..9acf0935c0 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -2406,16 +2406,13 @@ (func $issues/1095/Foo#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $this i32.eqz if @@ -2443,16 +2440,11 @@ i32.store offset=4 local.get $1 i32.const 432 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $issues/1095/Foo#set:bar local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 05e4b9ab36..14500886a4 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1664,7 +1664,7 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1675,9 +1675,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new @@ -1717,14 +1714,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store offset=8 local.get $0 i32.const 1456 call $issues/1095/Foo#set:bar global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index acce532285..a99a595629 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -276,13 +276,13 @@ (func $start:issues/1714 (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store call $"issues/1714/foo" i32.const 0 i32.eq @@ -302,11 +302,6 @@ i32.store local.get $0 i32.const 80 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -318,7 +313,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/issues/1714.release.wat b/tests/compiler/issues/1714.release.wat index 36448f1d18..5fc4c4ca7e 100644 --- a/tests/compiler/issues/1714.release.wat +++ b/tests/compiler/issues/1714.release.wat @@ -12,7 +12,7 @@ (start $~start) (func $~start global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -21,14 +21,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1104 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer i32.const 1104 - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -45,7 +42,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 701aad2877..48b86fe01b 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -2365,6 +2365,46 @@ i32.const 0 return ) + (func $issues/2166/Test2166Ref1<~lib/string/String>#fn (param $this i32) (param $a1 i32) (param $a2 i32) + i32.const 464 + i32.const 464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 544 + i32.const 544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 10 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) + (func $issues/2166/Test2166Ref2#bar<~lib/string/String> (param $this i32) (param $i i32) + i32.const 464 + i32.const 464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 22 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 224 @@ -2567,70 +2607,11 @@ local.get $3 return ) - (func $issues/2166/Test2166Ref1<~lib/string/String>#fn (param $this i32) (param $a1 i32) (param $a2 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 - i32.const 464 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 464 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - i32.const 544 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 544 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 10 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $issues/2166/testfunc2166 (local $a i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -2639,9 +2620,6 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 call $issues/2166/Test2166Ref1<~lib/string/String>#constructor local.tee $a i32.store @@ -2652,104 +2630,9 @@ i32.store offset=4 local.get $1 i32.const 432 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 i32.const 1 call $issues/2166/Test2166Ref1<~lib/string/String>#fn global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $issues/2166/Test2166Ref2#constructor (param $this i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - i32.const 544 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 544 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $issues/2166/Test2166Ref2#bar<~lib/string/String> (param $this i32) (param $i 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 - i32.const 464 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 464 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 22 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -2757,13 +2640,13 @@ (func $start:issues/2166 (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -2790,14 +2673,9 @@ i32.store local.get $0 i32.const 576 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $issues/2166/Test2166Ref2#bar<~lib/string/String> global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2829,4 +2707,44 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $issues/2166/Test2166Ref2#constructor (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 + 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 + end + i32.const 544 + i32.const 544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 18 + i32.const 5 + 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 + ) ) diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 1d28375ece..959b426ae6 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -126,7 +126,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$123 + block $__inlined_func$~lib/rt/itcms/Object#unlink$122 local.get $1 i32.load offset=4 i32.const -4 @@ -150,7 +150,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$123 + br $__inlined_func$~lib/rt/itcms/Object#unlink$122 end local.get $1 i32.load offset=8 @@ -1412,7 +1412,7 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1421,8 +1421,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -1456,7 +1456,7 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1467,9 +1467,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1525,26 +1522,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store offset=4 i32.const 1488 i32.const 1488 call $~lib/string/String.__eq @@ -1557,12 +1534,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=4 i32.const 1568 i32.const 1568 call $~lib/string/String.__eq @@ -1580,11 +1551,7 @@ i32.add global.set $~lib/memory/__stack_pointer 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.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1592,22 +1559,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.store global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=8 i32.const 1568 i32.const 1568 call $~lib/string/String.__eq @@ -1621,32 +1579,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store offset=4 i32.const 1488 i32.const 1488 call $~lib/string/String.__eq @@ -1660,11 +1598,7 @@ unreachable end 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.const 4 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat index d33ceba234..6e59a0ad5a 100644 --- a/tests/compiler/issues/2873.debug.wat +++ b/tests/compiler/issues/2873.debug.wat @@ -4961,16 +4961,13 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 memory.size i32.const 16 i32.shl @@ -4997,11 +4994,6 @@ i32.store local.get $2 i32.const 1968 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5021,11 +5013,6 @@ i32.store local.get $2 i32.const 1968 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5040,14 +5027,9 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 + i32.store offset=4 local.get $2 i32.const 2160 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/array/Array#join local.set $2 global.get $~lib/memory/__stack_pointer @@ -5055,11 +5037,6 @@ i32.store local.get $2 i32.const 2192 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5074,14 +5051,9 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 + i32.store offset=4 local.get $2 i32.const 2160 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/array/Array#join local.set $2 global.get $~lib/memory/__stack_pointer @@ -5089,11 +5061,6 @@ i32.store local.get $2 i32.const 2192 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5105,7 +5072,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat index 6b6cd33c92..72b243e83c 100644 --- a/tests/compiler/issues/2873.release.wat +++ b/tests/compiler/issues/2873.release.wat @@ -2963,7 +2963,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2974,9 +2974,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 memory.size i32.const 16 i32.shl @@ -3015,9 +3012,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=4 local.get $1 i32.const 2992 call $~lib/string/String.__eq @@ -3036,9 +3030,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=4 local.get $1 i32.const 2992 call $~lib/string/String.__eq @@ -3053,10 +3044,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 3104 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3184 - i32.store offset=12 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3231,9 +3219,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3216 - i32.store offset=4 local.get $1 i32.const 3216 call $~lib/string/String.__eq @@ -3248,10 +3233,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 3312 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3184 - i32.store offset=12 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3430,9 +3412,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3216 - i32.store offset=4 local.get $1 i32.const 3216 call $~lib/string/String.__eq @@ -3446,7 +3425,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index b7d7b949ca..f5a5c6902a 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -3117,16 +3117,13 @@ (func $object-literal/testManaged (param $managed i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $managed local.set $1 global.get $~lib/memory/__stack_pointer @@ -3149,7 +3146,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $object-literal/Managed#get:baz local.set $1 @@ -3158,11 +3155,6 @@ i32.store local.get $1 i32.const 32 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3174,7 +3166,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -3330,13 +3322,13 @@ (func $object-literal/testUnmanaged (param $unmanaged i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $unmanaged call $object-literal/Unmanaged#get:bar i32.const 123 @@ -3358,11 +3350,6 @@ i32.store local.get $1 i32.const 576 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3376,7 +3363,7 @@ local.get $unmanaged call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -3870,16 +3857,13 @@ (func $object-literal/testMixedOmitted (param $omitted i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $omitted local.set $1 global.get $~lib/memory/__stack_pointer @@ -3902,7 +3886,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $object-literal/MixedOmitted#get:complexType local.set $1 @@ -3911,11 +3895,6 @@ i32.store local.get $1 i32.const 608 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3945,23 +3924,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) (func $object-literal/OmittedFoo#constructor (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $this i32.eqz if @@ -3989,11 +3965,6 @@ i32.store offset=4 local.get $1 i32.const 640 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $object-literal/OmittedFoo#set:bar local.get $this local.set $1 @@ -4002,11 +3973,6 @@ i32.store offset=4 local.get $1 i32.const 672 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $object-literal/OmittedFoo#set:baz local.get $this local.set $1 @@ -4075,7 +4041,7 @@ local.get $this local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -4083,21 +4049,18 @@ (func $object-literal/testOmittedFoo (param $foo i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $foo local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $object-literal/OmittedFoo#get:bar local.set $1 @@ -4106,11 +4069,6 @@ i32.store local.get $1 i32.const 640 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4125,7 +4083,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $object-literal/OmittedFoo#get:baz local.set $1 @@ -4134,11 +4092,6 @@ i32.store local.get $1 i32.const 672 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4324,7 +4277,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -4336,13 +4289,13 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 28 + i32.const 24 memory.fill i32.const 128 call $~lib/rt/itcms/initLazy @@ -4381,11 +4334,6 @@ i32.store offset=8 local.get $5 i32.const 32 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 call $object-literal/Managed#set:baz local.get $0 local.set $5 @@ -4402,11 +4350,6 @@ call $object-literal/Unmanaged#set:bar local.get $1 i32.const 32 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 i32.const 0 i32.const 5 call $~lib/string/String#substring @@ -4422,7 +4365,7 @@ i32.const 0 call $object-literal/OmittedTypes#constructor local.tee $2 - i32.store offset=16 + i32.store offset=12 local.get $2 i32.const 0 i32.store @@ -4476,7 +4419,7 @@ i32.const 0 call $object-literal/MixedOmitted#constructor local.tee $3 - i32.store offset=20 + i32.store offset=16 local.get $3 local.set $5 global.get $~lib/memory/__stack_pointer @@ -4492,11 +4435,6 @@ i32.store offset=8 local.get $5 i32.const 608 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $5 call $object-literal/MixedOmitted#set:complexType local.get $3 f64.const 0 @@ -4512,7 +4450,7 @@ i32.const 0 call $object-literal/OmittedFoo#constructor local.tee $4 - i32.store offset=24 + i32.store offset=20 local.get $4 i32.const 0 i32.store offset=8 @@ -4545,7 +4483,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index 1ce89a0e76..9070d20967 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -2054,7 +2054,7 @@ (func $object-literal/testOmittedFoo (param $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2072,19 +2072,13 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.load local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1664 - i32.store offset=4 local.get $1 i32.const 1664 call $~lib/string/String.__eq @@ -2099,15 +2093,12 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1696 - i32.store offset=4 local.get $1 i32.const 1696 call $~lib/string/String.__eq @@ -2269,7 +2260,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2280,7 +2271,7 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -2290,7 +2281,7 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 28 + i32.const 24 memory.fill i32.const 1156 i32.const 1152 @@ -2380,9 +2371,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 local.get $1 i32.const 1056 i32.store offset=4 @@ -2393,7 +2381,7 @@ local.get $1 i32.store 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 @@ -2404,9 +2392,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -2423,15 +2408,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -2445,7 +2427,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/rt/tlsf/ROOT @@ -2468,9 +2450,6 @@ i32.const 123 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2567,7 +2546,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2575,8 +2554,8 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $1 i32.load i32.const 123 @@ -2594,9 +2573,6 @@ i32.load offset=4 local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store offset=4 local.get $0 i32.const 1600 call $~lib/string/String.__eq @@ -2612,7 +2588,7 @@ local.get $1 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2730,7 +2706,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 i32.const 0 i32.store @@ -2830,7 +2806,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -2840,9 +2816,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1632 - i32.store offset=12 local.get $1 i32.const 1632 i32.store offset=4 @@ -2856,7 +2829,7 @@ local.get $1 i32.store 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 @@ -2867,9 +2840,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 @@ -2884,15 +2854,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1632 - i32.store offset=4 local.get $0 i32.const 1632 call $~lib/string/String.__eq @@ -2921,12 +2888,12 @@ unreachable end 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 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 @@ -2937,9 +2904,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 40 i32.const 7 call $~lib/rt/itcms/__new @@ -2956,9 +2920,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1664 - i32.store offset=8 local.get $0 i32.const 1664 i32.store @@ -2968,9 +2929,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1696 - i32.store offset=8 local.get $0 i32.const 1696 i32.store offset=4 @@ -3044,11 +3002,11 @@ i32.const -1 i32.store offset=36 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=24 + i32.store offset=20 local.get $0 i32.const 0 i32.store offset=8 @@ -3111,7 +3069,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 85528b7fcc..86ec23b334 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -5875,14 +5875,16 @@ (func $start:resolve-binary (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 i32.const 1 i32.const 2 i32.lt_s @@ -5894,11 +5896,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5920,11 +5917,6 @@ i32.store local.get $0 i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5946,11 +5938,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5972,11 +5959,6 @@ i32.store local.get $0 i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5998,11 +5980,6 @@ i32.store local.get $0 i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6024,11 +6001,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6067,11 +6039,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6095,11 +6062,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6123,11 +6085,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6151,11 +6108,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6181,11 +6133,6 @@ i32.store local.get $0 i32.const 9696 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6211,11 +6158,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6239,11 +6181,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6267,11 +6204,6 @@ i32.store local.get $0 i32.const 9728 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6295,11 +6227,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6323,11 +6250,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6351,11 +6273,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6379,11 +6296,6 @@ i32.store local.get $0 i32.const 9760 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6407,11 +6319,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6433,11 +6340,6 @@ i32.store local.get $0 i32.const 9760 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6459,11 +6361,6 @@ i32.store local.get $0 i32.const 9792 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6485,11 +6382,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6511,11 +6403,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6537,11 +6424,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6563,11 +6445,6 @@ i32.store local.get $0 i32.const 9728 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6589,11 +6466,6 @@ i32.store local.get $0 i32.const 9696 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6615,11 +6487,6 @@ i32.store local.get $0 i32.const 9696 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6641,11 +6508,6 @@ i32.store local.get $0 i32.const 9728 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6667,11 +6529,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6693,11 +6550,6 @@ i32.store local.get $0 i32.const 9760 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6719,11 +6571,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6745,11 +6592,6 @@ i32.store local.get $0 i32.const 9760 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6771,11 +6613,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6800,11 +6637,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6829,11 +6661,6 @@ i32.store local.get $0 i32.const 352 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6858,11 +6685,6 @@ i32.store local.get $0 i32.const 2336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6887,11 +6709,6 @@ i32.store local.get $0 i32.const 2368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6909,19 +6726,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#lt local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -6930,11 +6747,6 @@ i32.store local.get $0 i32.const 9824 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6949,19 +6761,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#gt local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -6970,11 +6782,6 @@ i32.store local.get $0 i32.const 9856 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6989,19 +6796,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#le local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7010,11 +6817,6 @@ i32.store local.get $0 i32.const 9888 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7029,19 +6831,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#ge local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7050,11 +6852,6 @@ i32.store local.get $0 i32.const 9920 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7069,19 +6866,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#eq local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7090,11 +6887,6 @@ i32.store local.get $0 i32.const 9952 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7109,19 +6901,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#ne local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7130,11 +6922,6 @@ i32.store local.get $0 i32.const 9984 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7149,19 +6936,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#add local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7170,11 +6957,6 @@ i32.store local.get $0 i32.const 10016 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7189,19 +6971,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo.sub local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7210,11 +6992,6 @@ i32.store local.get $0 i32.const 10048 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7229,19 +7006,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#mul local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7250,11 +7027,6 @@ i32.store local.get $0 i32.const 10080 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7269,19 +7041,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#div local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7290,11 +7062,6 @@ i32.store local.get $0 i32.const 10112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7309,19 +7076,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#rem local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7330,11 +7097,6 @@ i32.store local.get $0 i32.const 10144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7349,19 +7111,19 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 global.get $resolve-binary/foo local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 local.get $0 call $resolve-binary/Foo#pow local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String#toString local.set $0 @@ -7370,11 +7132,6 @@ i32.store local.get $0 i32.const 10176 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -7515,7 +7272,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index 30919db575..072017c8a7 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -3113,7 +3113,7 @@ (func $start:resolve-binary (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -3122,15 +3122,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1056 - i32.store offset=4 + i32.store i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -3146,9 +3145,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 i32.const 1088 i32.const 1088 call $~lib/string/String.__eq @@ -3164,9 +3160,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -3182,9 +3175,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 i32.const 1088 i32.const 1088 call $~lib/string/String.__eq @@ -3200,9 +3190,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 i32.const 1088 i32.const 1088 call $~lib/string/String.__eq @@ -3218,9 +3205,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -3273,9 +3257,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3298,9 +3279,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3323,9 +3301,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3348,9 +3323,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3368,9 +3340,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10720 - i32.store offset=4 local.get $0 i32.const 10720 call $~lib/string/String.__eq @@ -3393,9 +3362,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3418,9 +3384,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3443,9 +3406,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10752 - i32.store offset=4 local.get $0 i32.const 10752 call $~lib/string/String.__eq @@ -3468,9 +3428,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3493,9 +3450,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3518,9 +3472,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3543,9 +3494,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10784 - i32.store offset=4 local.get $0 i32.const 10784 call $~lib/string/String.__eq @@ -3568,9 +3516,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3589,9 +3534,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10784 - i32.store offset=4 local.get $0 i32.const 10784 call $~lib/string/String.__eq @@ -3610,9 +3552,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10816 - i32.store offset=4 local.get $0 i32.const 10816 call $~lib/string/String.__eq @@ -3631,9 +3570,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3652,9 +3588,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3673,9 +3606,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3694,9 +3624,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10752 - i32.store offset=4 local.get $0 i32.const 10752 call $~lib/string/String.__eq @@ -3714,9 +3641,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10720 - i32.store offset=4 local.get $0 i32.const 10720 call $~lib/string/String.__eq @@ -3734,9 +3658,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10720 - i32.store offset=4 local.get $0 i32.const 10720 call $~lib/string/String.__eq @@ -3755,9 +3676,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10752 - i32.store offset=4 local.get $0 i32.const 10752 call $~lib/string/String.__eq @@ -3776,9 +3694,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3797,9 +3712,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10784 - i32.store offset=4 local.get $0 i32.const 10784 call $~lib/string/String.__eq @@ -3818,9 +3730,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3839,9 +3748,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10784 - i32.store offset=4 local.get $0 i32.const 10784 call $~lib/string/String.__eq @@ -3860,9 +3766,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3881,9 +3784,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3902,9 +3802,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store offset=4 local.get $0 i32.const 1376 call $~lib/string/String.__eq @@ -3923,9 +3820,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -3944,9 +3838,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -3992,19 +3883,16 @@ global.set $resolve-binary/foo global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 10848 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store offset=4 i32.const 10848 i32.const 10848 call $~lib/string/String.__eq @@ -4019,19 +3907,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 10880 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10880 - i32.store offset=4 i32.const 10880 i32.const 10880 call $~lib/string/String.__eq @@ -4046,19 +3931,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 10912 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10912 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10912 - i32.store offset=4 i32.const 10912 i32.const 10912 call $~lib/string/String.__eq @@ -4073,19 +3955,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 10944 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10944 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10944 - i32.store offset=4 i32.const 10944 i32.const 10944 call $~lib/string/String.__eq @@ -4100,19 +3979,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 10976 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10976 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10976 - i32.store offset=4 i32.const 10976 i32.const 10976 call $~lib/string/String.__eq @@ -4127,19 +4003,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=4 i32.const 11008 i32.const 11008 call $~lib/string/String.__eq @@ -4154,19 +4027,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11040 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11040 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11040 - i32.store offset=4 i32.const 11040 i32.const 11040 call $~lib/string/String.__eq @@ -4181,19 +4051,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11072 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11072 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11072 - i32.store offset=4 i32.const 11072 i32.const 11072 call $~lib/string/String.__eq @@ -4208,19 +4075,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11104 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11104 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11104 - i32.store offset=4 i32.const 11104 i32.const 11104 call $~lib/string/String.__eq @@ -4235,19 +4099,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11136 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11136 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11136 - i32.store offset=4 i32.const 11136 i32.const 11136 call $~lib/string/String.__eq @@ -4262,19 +4123,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11168 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11168 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11168 - i32.store offset=4 i32.const 11168 i32.const 11168 call $~lib/string/String.__eq @@ -4289,19 +4147,16 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $resolve-binary/foo - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11200 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11200 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11200 - i32.store offset=4 i32.const 11200 i32.const 11200 call $~lib/string/String.__eq @@ -4421,7 +4276,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index 19b64a3360..77ff64f407 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -4927,13 +4927,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill memory.size i32.const 16 @@ -4978,7 +4978,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -4990,11 +4990,6 @@ i32.store local.get $4 i32.const 2144 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5009,7 +5004,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 1 call $~lib/typedarray/Float32Array#__get @@ -5021,11 +5016,6 @@ i32.store local.get $4 i32.const 2256 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5039,12 +5029,12 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $0 - i32.store offset=12 + i32.store offset=8 local.get $0 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 0 local.tee $1 @@ -5052,7 +5042,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -5063,7 +5053,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 local.get $1 call $~lib/typedarray/Float32Array#__get @@ -5075,11 +5065,6 @@ i32.store local.get $4 i32.const 2288 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5153,7 +5138,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -5165,11 +5150,6 @@ i32.store local.get $4 i32.const 3696 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5184,7 +5164,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 1 call $~lib/typedarray/Uint8Array#__get @@ -5196,11 +5176,6 @@ i32.store local.get $4 i32.const 3728 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5214,12 +5189,12 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $2 - i32.store offset=20 + i32.store offset=16 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 0 local.tee $3 @@ -5227,7 +5202,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -5238,7 +5213,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 local.get $3 call $~lib/typedarray/Uint8Array#__get @@ -5250,11 +5225,6 @@ i32.store local.get $4 i32.const 3760 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5303,7 +5273,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index 9760a11e21..5e4a644023 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -3420,7 +3420,7 @@ (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -3430,7 +3430,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill memory.size i32.const 16 @@ -3515,7 +3515,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -3524,9 +3524,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3168 - i32.store offset=4 local.get $0 i32.const 3168 call $~lib/string/String.__eq @@ -3542,7 +3539,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/typedarray/Float32Array#__get @@ -3551,9 +3548,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3280 - i32.store offset=4 local.get $0 i32.const 3280 call $~lib/string/String.__eq @@ -3569,14 +3563,14 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/arr local.tee $1 - i32.store offset=16 + i32.store offset=12 local.get $0 i32.const 0 local.get $1 @@ -3587,7 +3581,7 @@ call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get @@ -3596,9 +3590,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3312 - i32.store offset=4 local.get $0 i32.const 3312 call $~lib/string/String.__eq @@ -3726,7 +3717,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -3735,9 +3726,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4720 - i32.store offset=4 local.get $0 i32.const 4720 call $~lib/string/String.__eq @@ -3753,7 +3741,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get @@ -3762,9 +3750,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=4 local.get $0 i32.const 4752 call $~lib/string/String.__eq @@ -3780,14 +3765,14 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $0 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $resolve-elementaccess/buf local.tee $1 - i32.store offset=16 + i32.store offset=12 local.get $0 i32.const 0 local.get $1 @@ -3798,7 +3783,7 @@ call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get @@ -3807,9 +3792,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4784 - i32.store offset=4 local.get $0 i32.const 4784 call $~lib/string/String.__eq @@ -3856,7 +3838,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index c111bd2b58..41b9a28c81 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -2992,13 +2992,13 @@ (func $start:resolve-function-expression (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store i32.const 2 i32.const 1 global.set $~argumentsLength @@ -3064,11 +3064,6 @@ i32.store local.get $0 i32.const 2384 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3080,7 +3075,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index d8b70cbaa4..ad27a4cfac 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1842,7 +1842,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -1851,8 +1851,8 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store i32.const 2 i32.const 1056 i32.load @@ -1922,9 +1922,6 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=4 block $__inlined_func$~lib/string/String.__eq$1 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2074,7 +2071,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index f3e37c2895..88a40fd4ff 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -3041,7 +3041,7 @@ (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -3049,8 +3049,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 memory.size i32.const 16 i32.shl @@ -3077,11 +3077,6 @@ i32.store local.get $1 i32.const 2208 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3101,11 +3096,6 @@ i32.store local.get $1 i32.const 2320 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3125,11 +3115,6 @@ i32.store local.get $1 i32.const 2352 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3149,11 +3134,6 @@ i32.store local.get $1 i32.const 2384 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3173,11 +3153,6 @@ i32.store local.get $1 i32.const 2416 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3197,11 +3172,6 @@ i32.store local.get $1 i32.const 2448 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3221,11 +3191,6 @@ i32.store local.get $1 i32.const 2480 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3245,11 +3210,6 @@ i32.store local.get $1 i32.const 2512 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3269,11 +3229,6 @@ i32.store local.get $1 i32.const 2544 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3293,11 +3248,6 @@ i32.store local.get $1 i32.const 2576 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3312,12 +3262,12 @@ i32.const 0 call $resolve-propertyaccess/Class#constructor local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $resolve-propertyaccess/Class#get:instanceField i32.const 10 @@ -3328,11 +3278,6 @@ i32.store local.get $1 i32.const 2608 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3347,7 +3292,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $resolve-propertyaccess/Class#get:instanceProperty i32.const 10 @@ -3358,11 +3303,6 @@ i32.store local.get $1 i32.const 2640 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -3374,7 +3314,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index 96be668c1e..9340b8dc98 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -1981,7 +1981,7 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1993,8 +1993,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 memory.size i32.const 16 i32.shl @@ -2033,9 +2033,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 local.get $0 i32.const 3232 call $~lib/string/String.__eq @@ -2054,9 +2051,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3344 - i32.store offset=4 local.get $0 i32.const 3344 call $~lib/string/String.__eq @@ -2075,9 +2069,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3376 - i32.store offset=4 local.get $0 i32.const 3376 call $~lib/string/String.__eq @@ -2096,9 +2087,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=4 local.get $0 i32.const 3408 call $~lib/string/String.__eq @@ -2117,9 +2105,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3440 - i32.store offset=4 local.get $0 i32.const 3440 call $~lib/string/String.__eq @@ -2138,9 +2123,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3472 - i32.store offset=4 local.get $0 i32.const 3472 call $~lib/string/String.__eq @@ -2159,9 +2141,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=4 local.get $0 i32.const 3504 call $~lib/string/String.__eq @@ -2180,9 +2159,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3536 - i32.store offset=4 local.get $0 i32.const 3536 call $~lib/string/String.__eq @@ -2201,9 +2177,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3568 - i32.store offset=4 local.get $0 i32.const 3568 call $~lib/string/String.__eq @@ -2222,9 +2195,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3600 - i32.store offset=4 local.get $0 i32.const 3600 call $~lib/string/String.__eq @@ -2297,10 +2267,10 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.load call $~lib/number/I32#toString @@ -2308,9 +2278,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3632 - i32.store offset=4 local.get $1 i32.const 3632 call $~lib/string/String.__eq @@ -2325,16 +2292,13 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 i32.const 8 call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3664 - i32.store offset=4 local.get $0 i32.const 3664 call $~lib/string/String.__eq @@ -2348,7 +2312,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index d765983685..20c870d9c4 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -4397,13 +4397,13 @@ (func $start:resolve-ternary (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -4435,11 +4435,6 @@ i32.store local.get $0 i32.const 2208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4464,11 +4459,6 @@ i32.store local.get $0 i32.const 3440 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4546,7 +4536,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index d52b01b12f..8fa84ef7ad 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -2492,7 +2492,7 @@ (local $5 i64) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -2501,8 +2501,8 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store memory.size i32.const 16 i32.shl @@ -2562,9 +2562,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 local.get $0 i32.const 3232 call $~lib/string/String.__eq @@ -2710,9 +2707,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=4 local.get $0 i32.const 4464 call $~lib/string/String.__eq @@ -2768,7 +2762,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index a38f493802..9157dbee04 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -3163,13 +3163,13 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill memory.size i32.const 16 @@ -3197,11 +3197,6 @@ i32.store local.get $6 i32.const 2208 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3221,11 +3216,6 @@ i32.store local.get $6 i32.const 2304 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3249,11 +3239,6 @@ i32.store local.get $6 i32.const 2336 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3277,11 +3262,6 @@ i32.store local.get $6 i32.const 2304 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3302,11 +3282,6 @@ i32.store local.get $6 i32.const 2400 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3328,11 +3303,6 @@ i32.store local.get $6 i32.const 2368 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3354,11 +3324,6 @@ i32.store local.get $6 i32.const 2432 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3383,11 +3348,6 @@ i32.store local.get $6 i32.const 2304 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3412,11 +3372,6 @@ i32.store local.get $6 i32.const 2336 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3434,13 +3389,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Foo#plus local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3449,11 +3404,6 @@ i32.store local.get $6 i32.const 2464 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3468,13 +3418,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Foo#minus local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3483,11 +3433,6 @@ i32.store local.get $6 i32.const 2496 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3554,13 +3499,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Foo#not local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3569,11 +3514,6 @@ i32.store local.get $6 i32.const 2528 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3588,13 +3528,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Foo#bitwise_not local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3603,11 +3543,6 @@ i32.store local.get $6 i32.const 2560 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3621,7 +3556,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $2 - i32.store offset=16 + i32.store offset=12 local.get $2 local.set $6 global.get $~lib/memory/__stack_pointer @@ -3651,7 +3586,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $3 - i32.store offset=20 + i32.store offset=16 local.get $3 local.set $6 global.get $~lib/memory/__stack_pointer @@ -3685,13 +3620,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Bar.prefix_inc local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3700,11 +3635,6 @@ i32.store local.get $6 i32.const 2592 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3719,13 +3649,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Bar.prefix_dec local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3734,11 +3664,6 @@ i32.store local.get $6 i32.const 2624 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3753,13 +3678,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Bar.postfix_inc local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3768,11 +3693,6 @@ i32.store local.get $6 i32.const 2656 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3787,13 +3707,13 @@ local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=12 + i32.store offset=8 local.get $6 call $resolve-unary/Bar.postfix_dec local.set $6 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 + i32.store offset=4 local.get $6 call $~lib/string/String#toString local.set $6 @@ -3802,11 +3722,6 @@ i32.store local.get $6 i32.const 2688 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -3820,24 +3735,14 @@ i32.const 1 drop i32.const 2720 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 call $~lib/string/String#get:length drop i32.const 2752 drop i32.const 2784 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 call $resolve-unary/generic<~lib/string/String> global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index f598875764..05a765c4bf 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -2039,7 +2039,7 @@ (func $start:resolve-unary (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2049,7 +2049,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill memory.size i32.const 16 @@ -2089,9 +2089,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 local.get $0 i32.const 3232 call $~lib/string/String.__eq @@ -2110,9 +2107,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.store offset=4 local.get $0 i32.const 3328 call $~lib/string/String.__eq @@ -2135,9 +2129,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -2160,9 +2151,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.store offset=4 local.get $0 i32.const 3328 call $~lib/string/String.__eq @@ -2182,9 +2170,6 @@ select local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3424 - i32.store offset=4 local.get $0 i32.const 3424 call $~lib/string/String.__eq @@ -2204,9 +2189,6 @@ select local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -2227,9 +2209,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 local.get $0 i32.const 3456 call $~lib/string/String.__eq @@ -2253,9 +2232,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.store offset=4 local.get $0 i32.const 3328 call $~lib/string/String.__eq @@ -2279,9 +2255,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=4 local.get $0 i32.const 3360 call $~lib/string/String.__eq @@ -2327,16 +2300,13 @@ global.set $resolve-unary/foo global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3488 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3488 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3488 - i32.store offset=4 + i32.store i32.const 3488 i32.const 3488 call $~lib/string/String.__eq @@ -2351,16 +2321,13 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3520 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3520 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3520 - i32.store offset=4 + i32.store i32.const 3520 i32.const 3520 call $~lib/string/String.__eq @@ -2417,16 +2384,13 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3552 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3552 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3552 - i32.store offset=4 + i32.store i32.const 3552 i32.const 3552 call $~lib/string/String.__eq @@ -2441,16 +2405,13 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3584 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3584 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3584 - i32.store offset=4 + i32.store i32.const 3584 i32.const 3584 call $~lib/string/String.__eq @@ -2466,7 +2427,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2489,7 +2450,7 @@ global.get $~lib/memory/__stack_pointer global.get $resolve-unary/foo local.tee $0 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2542,16 +2503,13 @@ global.set $resolve-unary/bar global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3616 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3616 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3616 - i32.store offset=4 + i32.store i32.const 3616 i32.const 3616 call $~lib/string/String.__eq @@ -2566,16 +2524,13 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3648 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3648 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3648 - i32.store offset=4 + i32.store i32.const 3648 i32.const 3648 call $~lib/string/String.__eq @@ -2590,16 +2545,13 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3680 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3680 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3680 - i32.store offset=4 + i32.store i32.const 3680 i32.const 3680 call $~lib/string/String.__eq @@ -2614,16 +2566,13 @@ end global.get $~lib/memory/__stack_pointer global.get $resolve-unary/bar - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 3712 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3712 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3712 - i32.store offset=4 + i32.store i32.const 3712 i32.const 3712 call $~lib/string/String.__eq @@ -2636,17 +2585,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store i32.const 3740 i32.load drop global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index a86f14c3ee..951850584d 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -541,21 +541,18 @@ (func $std/array-access/stringArrayMethodCall (param $a i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $a local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -565,16 +562,11 @@ i32.store local.get $1 i32.const 272 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 call $~lib/string/String#startsWith local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -692,7 +684,7 @@ (func $std/array-access/stringArrayArrayMethodCall (param $a i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -700,20 +692,20 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 local.get $a local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 0 call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -723,16 +715,11 @@ i32.store local.get $1 i32.const 272 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 call $~lib/string/String#startsWith local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $1 diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index a76d742da9..d9ec8e7386 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -379,7 +379,7 @@ local.get $0 i32.store 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 @@ -390,11 +390,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get @@ -402,13 +399,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store offset=4 local.get $0 call $~lib/string/String#startsWith 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 @@ -505,7 +499,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -516,18 +510,18 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/array/Array>#__get @@ -535,13 +529,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store offset=4 local.get $0 call $~lib/string/String#startsWith global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index 3f0fbbcfca..76974815e0 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -26356,14 +26356,16 @@ (local $x f64) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 10544 local.tee $result @@ -26383,19 +26385,9 @@ i32.store offset=4 local.get $4 global.get $std/array/charset - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 block $~lib/math/NativeMath.floor|inlined.0 (result f64) call $~lib/math/NativeMath.random global.get $std/array/charset - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 call $~lib/string/String#get:length f64.convert_i32_s f64.mul @@ -26424,7 +26416,7 @@ local.get $result local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -30020,13 +30012,13 @@ (func $~lib/array/Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30034,15 +30026,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -30279,13 +30266,13 @@ (func $~lib/array/Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30293,15 +30280,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -30538,13 +30520,13 @@ (func $~lib/array/Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30552,15 +30534,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -30797,13 +30774,13 @@ (func $~lib/array/Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -30811,15 +30788,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -31056,13 +31028,13 @@ (func $~lib/array/Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31070,15 +31042,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -31317,13 +31284,13 @@ (func $~lib/array/Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31331,15 +31298,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -31348,13 +31310,13 @@ (func $~lib/array/Array<~lib/string/String|null>#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31362,15 +31324,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/string/String|null>#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -31627,13 +31584,13 @@ (func $~lib/array/Array<~lib/array/Array>#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31641,15 +31598,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/array/Array>#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -31959,13 +31911,13 @@ (func $~lib/array/Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -31973,15 +31925,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -32238,13 +32185,13 @@ (func $~lib/array/Array<~lib/array/Array>#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -32252,15 +32199,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/array/Array>#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -32415,13 +32357,13 @@ (func $~lib/array/Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -32429,15 +32371,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -32694,13 +32631,13 @@ (func $~lib/array/Array<~lib/array/Array>#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -32708,15 +32645,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/array/Array>#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -32973,13 +32905,13 @@ (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -32987,15 +32919,10 @@ i32.store local.get $1 i32.const 10832 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -33923,13 +33850,13 @@ (local $295 i32) (local $296 i32) global.get $~lib/memory/__stack_pointer - i32.const 448 + i32.const 444 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 448 + i32.const 444 memory.fill i32.const 0 i32.const 0 @@ -34027,11 +33954,6 @@ unreachable end i32.const 640 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store - local.get $296 call $~lib/array/Array.isArray<~lib/string/String> i32.eqz i32.eqz @@ -43345,14 +43267,9 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 i32.const 10832 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=332 - local.get $296 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer @@ -43360,11 +43277,6 @@ i32.store local.get $296 i32.const 10864 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43383,14 +43295,9 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 i32.const 10544 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=332 - local.get $296 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer @@ -43398,11 +43305,6 @@ i32.store local.get $296 i32.const 10944 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43421,14 +43323,9 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 i32.const 11008 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=332 - local.get $296 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer @@ -43436,11 +43333,6 @@ i32.store local.get $296 i32.const 10944 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43459,14 +43351,9 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 i32.const 11072 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=332 - local.get $296 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer @@ -43474,11 +43361,6 @@ i32.store local.get $296 i32.const 11104 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43497,14 +43379,9 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 i32.const 11264 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=332 - local.get $296 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer @@ -43512,11 +43389,6 @@ i32.store local.get $296 i32.const 12432 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43535,14 +43407,9 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 i32.const 10544 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=332 - local.get $296 call $~lib/array/Array<~lib/string/String|null>#join local.set $296 global.get $~lib/memory/__stack_pointer @@ -43550,11 +43417,6 @@ i32.store local.get $296 i32.const 12544 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43573,7 +43435,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $235 - i32.store offset=336 + i32.store offset=332 local.get $235 i32.const 0 i32.const 0 @@ -43592,19 +43454,14 @@ call $~lib/array/Array#__set local.get $235 local.tee $236 - i32.store offset=340 + i32.store offset=336 local.get $236 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 i32.const 10832 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=332 - local.get $296 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer @@ -43612,11 +43469,6 @@ i32.store local.get $296 i32.const 12672 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43635,7 +43487,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $237 - i32.store offset=344 + i32.store offset=340 local.get $237 i32.const 0 i32.const 0 @@ -43650,19 +43502,14 @@ call $~lib/array/Array#__set local.get $237 local.tee $238 - i32.store offset=348 + i32.store offset=344 local.get $238 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 i32.const 10832 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=332 - local.get $296 call $~lib/array/Array#join local.set $296 global.get $~lib/memory/__stack_pointer @@ -43670,11 +43517,6 @@ i32.store local.get $296 i32.const 12768 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43692,7 +43534,7 @@ i32.const 12864 call $~lib/rt/__newArray local.tee $240 - i32.store offset=352 + i32.store offset=348 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -43700,7 +43542,7 @@ i32.const 12896 call $~lib/rt/__newArray local.tee $242 - i32.store offset=356 + i32.store offset=352 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -43708,7 +43550,7 @@ i32.const 12928 call $~lib/rt/__newArray local.tee $244 - i32.store offset=360 + i32.store offset=356 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -43716,12 +43558,12 @@ i32.const 12960 call $~lib/rt/__newArray local.tee $246 - i32.store offset=364 + i32.store offset=360 local.get $240 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43730,11 +43572,6 @@ i32.store local.get $296 i32.const 10544 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43749,7 +43586,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43758,11 +43595,6 @@ i32.store local.get $296 i32.const 12544 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43777,7 +43609,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43786,11 +43618,6 @@ i32.store local.get $296 i32.const 13008 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43805,7 +43632,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43814,11 +43641,6 @@ i32.store local.get $296 i32.const 13040 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43837,7 +43659,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43846,11 +43668,6 @@ i32.store local.get $296 i32.const 13120 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43869,7 +43686,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43878,11 +43695,6 @@ i32.store local.get $296 i32.const 13184 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43901,7 +43713,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43910,11 +43722,6 @@ i32.store local.get $296 i32.const 13264 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43933,7 +43740,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43942,11 +43749,6 @@ i32.store local.get $296 i32.const 13344 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43965,7 +43767,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -43974,11 +43776,6 @@ i32.store local.get $296 i32.const 13424 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -43997,7 +43794,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -44006,11 +43803,6 @@ i32.store local.get $296 i32.const 13536 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44029,7 +43821,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array#toString local.set $296 @@ -44038,11 +43830,6 @@ i32.store local.get $296 i32.const 13680 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44060,12 +43847,12 @@ i32.const 13840 call $~lib/rt/__newArray local.tee $255 - i32.store offset=368 + i32.store offset=364 local.get $255 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array<~lib/string/String|null>#toString local.set $296 @@ -44074,11 +43861,6 @@ i32.store local.get $296 i32.const 13888 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44097,7 +43879,7 @@ local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array<~lib/string/String|null>#toString local.set $296 @@ -44106,11 +43888,6 @@ i32.store local.get $296 i32.const 14048 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44129,7 +43906,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $257 - i32.store offset=372 + i32.store offset=368 local.get $257 i32.const 0 i32.const 2 @@ -44148,12 +43925,12 @@ call $~lib/array/Array<~lib/array/Array>#__set local.get $257 local.tee $260 - i32.store offset=376 + i32.store offset=372 local.get $260 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array<~lib/array/Array>#toString local.set $296 @@ -44162,11 +43939,6 @@ i32.store local.get $296 i32.const 14144 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44185,7 +43957,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $261 - i32.store offset=380 + i32.store offset=376 local.get $261 i32.const 0 i32.const 2 @@ -44204,12 +43976,12 @@ call $~lib/array/Array<~lib/array/Array>#__set local.get $261 local.tee $264 - i32.store offset=384 + i32.store offset=380 local.get $264 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array<~lib/array/Array>#toString local.set $296 @@ -44218,11 +43990,6 @@ i32.store local.get $296 i32.const 14144 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44241,7 +44008,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $265 - i32.store offset=388 + i32.store offset=384 local.get $265 i32.const 0 global.get $~lib/memory/__stack_pointer @@ -44251,7 +44018,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $266 - i32.store offset=392 + i32.store offset=388 local.get $266 i32.const 0 i32.const 1 @@ -44264,12 +44031,12 @@ call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__set local.get $265 local.tee $268 - i32.store offset=396 + i32.store offset=392 local.get $268 local.set $296 global.get $~lib/memory/__stack_pointer local.get $296 - i32.store offset=48 + i32.store offset=8 local.get $296 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString local.set $296 @@ -44278,11 +44045,6 @@ i32.store local.get $296 i32.const 12544 - local.set $296 - global.get $~lib/memory/__stack_pointer - local.get $296 - i32.store offset=8 - local.get $296 call $~lib/string/String.__eq i32.eqz if @@ -44301,7 +44063,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $269 - i32.store offset=400 + i32.store offset=396 local.get $269 i32.const 0 i32.const 1 @@ -44336,7 +44098,7 @@ call $~lib/array/Array<~lib/array/Array>#__set local.get $269 local.tee $274 - i32.store offset=404 + i32.store offset=400 global.get $~lib/memory/__stack_pointer local.get $274 local.set $296 @@ -44346,7 +44108,7 @@ local.get $296 call $~lib/array/Array<~lib/array/Array>#flat local.tee $275 - i32.store offset=408 + i32.store offset=404 local.get $275 local.set $296 global.get $~lib/memory/__stack_pointer @@ -44406,7 +44168,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $277 - i32.store offset=412 + i32.store offset=408 local.get $277 i32.const 0 i32.const 1 @@ -44441,7 +44203,7 @@ call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__set local.get $277 local.tee $282 - i32.store offset=416 + i32.store offset=412 global.get $~lib/memory/__stack_pointer local.get $282 local.set $296 @@ -44451,7 +44213,7 @@ local.get $296 call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat local.tee $283 - i32.store offset=420 + i32.store offset=416 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 @@ -44459,7 +44221,7 @@ i32.const 14768 call $~lib/rt/__newArray local.tee $285 - i32.store offset=424 + i32.store offset=420 local.get $283 local.set $296 global.get $~lib/memory/__stack_pointer @@ -44542,7 +44304,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $287 - i32.store offset=428 + i32.store offset=424 local.get $287 i32.const 0 i32.const 0 @@ -44561,7 +44323,7 @@ call $~lib/array/Array<~lib/array/Array>#__set local.get $287 local.tee $290 - i32.store offset=432 + i32.store offset=428 local.get $290 local.set $296 global.get $~lib/memory/__stack_pointer @@ -44594,7 +44356,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $291 - i32.store offset=436 + i32.store offset=432 local.get $291 i32.const 0 i32.const 1 @@ -44613,7 +44375,7 @@ call $~lib/array/Array<~lib/array/Array>#__set local.get $291 local.tee $294 - i32.store offset=440 + i32.store offset=436 global.get $~lib/memory/__stack_pointer local.get $294 local.set $296 @@ -44635,7 +44397,7 @@ local.get $296 call $~lib/array/Array<~lib/array/Array>#flat local.tee $295 - i32.store offset=444 + i32.store offset=440 local.get $295 local.set $296 global.get $~lib/memory/__stack_pointer @@ -44740,7 +44502,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 448 + i32.const 444 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index ebdfcda2cc..22943cdb01 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -16119,7 +16119,7 @@ ) (func $~lib/array/Array#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16134,19 +16134,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 local.get $0 i32.const 11856 call $~lib/array/Array#join global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -16158,7 +16155,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -16167,15 +16164,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16344,7 +16338,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -16357,73 +16351,30 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$741 - local.get $0 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $7 i32.const 0 i32.lt_s if @@ -16432,415 +16383,36 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + return end - local.get $6 + local.get $7 i32.eqz if - local.get $5 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 + local.get $0 + i64.load + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$741 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 16192 i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64$485 local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 + i64.eqz if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7712 local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$741 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#toString (param $0 i32) (result 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$742 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$742 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load16_s - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$742 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$742 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $7 - i32.eqz - if - local.get $0 - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64$485 - local.get $3 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7712 - local.set $1 - br $__inlined_func$~lib/util/number/utoa64$485 + br $__inlined_func$~lib/util/number/utoa64$485 end local.get $3 i64.const 4294967295 @@ -17092,7 +16664,7 @@ ) (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17107,19 +16679,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 local.get $0 i32.const 11856 call $~lib/array/Array<~lib/string/String|null>#join global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -17131,7 +16700,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -17140,15 +16709,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17317,7 +16883,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -17332,7 +16898,7 @@ ) (func $~lib/array/Array#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17347,19 +16913,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 local.get $0 i32.const 11856 call $~lib/array/Array#join global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -17371,7 +16934,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -17380,15 +16943,12 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17576,7 +17136,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return @@ -17811,7 +17371,7 @@ (local $13 i32) (local $14 i32) global.get $~lib/memory/__stack_pointer - i32.const 448 + i32.const 444 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner2 @@ -17821,7 +17381,7 @@ br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 448 + i32.const 444 memory.fill memory.size i32.const 16 @@ -17976,9 +17536,6 @@ local.get $2 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1664 - i32.store - global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $2 i32.store @@ -27885,7 +27442,7 @@ i32.trunc_sat_f64_s local.set $10 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 @@ -27893,9 +27450,11 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer @@ -27912,13 +27471,7 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 10032 - i32.store offset=12 call $~lib/math/NativeMath.random - global.get $~lib/memory/__stack_pointer - i32.const 10032 - i32.store offset=16 i32.const 10028 i32.load i32.const 1 @@ -27993,7 +27546,7 @@ end end 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 @@ -28059,10 +27612,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=332 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28265,9 +27815,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11888 - i32.store offset=8 local.get $2 i32.const 11888 call $~lib/string/String.__eq @@ -28288,10 +27835,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=332 + i32.store offset=8 local.get $0 i32.const 11568 call $~lib/array/Array#join @@ -28299,9 +27843,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11968 - i32.store offset=8 local.get $0 i32.const 11968 call $~lib/string/String.__eq @@ -28322,10 +27863,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 12032 - i32.store offset=332 + i32.store offset=8 local.get $0 i32.const 12032 call $~lib/array/Array#join @@ -28333,9 +27871,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11968 - i32.store offset=8 local.get $0 i32.const 11968 call $~lib/string/String.__eq @@ -28356,10 +27891,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 12096 - i32.store offset=332 + i32.store offset=8 local.get $0 i32.const 12096 call $~lib/array/Array#join @@ -28367,9 +27899,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12128 - i32.store offset=8 local.get $0 i32.const 12128 call $~lib/string/String.__eq @@ -28390,10 +27919,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store offset=332 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28427,9 +27953,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13456 - i32.store offset=8 local.get $0 i32.const 13456 call $~lib/string/String.__eq @@ -28450,10 +27973,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=332 + i32.store offset=8 local.get $0 i32.const 11568 call $~lib/array/Array<~lib/string/String|null>#join @@ -28461,9 +27981,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13568 - i32.store offset=8 local.get $0 i32.const 13568 call $~lib/string/String.__eq @@ -28484,7 +28001,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=336 + i32.store offset=332 local.get $1 i32.const 0 i32.const 0 @@ -28500,22 +28017,16 @@ call $std/array/Ref#constructor call $~lib/array/Array#__set local.get $1 - i32.store offset=340 + i32.store offset=336 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=332 + i32.store offset=8 local.get $1 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13696 - i32.store offset=8 local.get $0 i32.const 13696 call $~lib/string/String.__eq @@ -28536,7 +28047,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=344 + i32.store offset=340 local.get $1 i32.const 0 i32.const 0 @@ -28548,22 +28059,16 @@ call $std/array/Ref#constructor call $~lib/array/Array#__set local.get $1 - i32.store offset=348 + i32.store offset=344 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=332 + i32.store offset=8 local.get $1 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13792 - i32.store offset=8 local.get $0 i32.const 13792 call $~lib/string/String.__eq @@ -28583,7 +28088,7 @@ i32.const 13888 call $~lib/rt/__newArray local.tee $0 - i32.store offset=352 + i32.store offset=348 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -28591,7 +28096,7 @@ i32.const 13920 call $~lib/rt/__newArray local.tee $1 - i32.store offset=356 + i32.store offset=352 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -28599,7 +28104,7 @@ i32.const 13952 call $~lib/rt/__newArray local.tee $2 - i32.store offset=360 + i32.store offset=356 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -28607,19 +28112,16 @@ i32.const 13984 call $~lib/rt/__newArray local.tee $4 - i32.store offset=364 + i32.store offset=360 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=8 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=8 local.get $0 i32.const 11568 call $~lib/string/String.__eq @@ -28634,16 +28136,13 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 + i32.store offset=8 local.get $1 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13568 - i32.store offset=8 local.get $0 i32.const 13568 call $~lib/string/String.__eq @@ -28658,16 +28157,13 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=48 + i32.store offset=8 local.get $2 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14032 - i32.store offset=8 local.get $0 i32.const 14032 call $~lib/string/String.__eq @@ -28682,16 +28178,13 @@ end global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=48 + i32.store offset=8 local.get $4 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14064 - i32.store offset=8 local.get $0 i32.const 14064 call $~lib/string/String.__eq @@ -28712,16 +28205,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=8 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14144 - i32.store offset=8 local.get $0 i32.const 14144 call $~lib/string/String.__eq @@ -28742,16 +28232,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=8 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14208 - i32.store offset=8 local.get $0 i32.const 14208 call $~lib/string/String.__eq @@ -28764,55 +28251,429 @@ call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 1 - i32.const 11 - i32.const 14256 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - local.get $0 - call $~lib/array/Array#toString - local.set $0 + i32.const 3 + i32.const 1 + i32.const 11 + i32.const 14256 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=12 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$741 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $2 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 + end + local.get $1 + i32.eqz + if + local.get $4 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$741 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $8 + i32.const 10 + i32.add + local.get $1 + i32.mul + i32.const 10 + i32.add + local.tee $9 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + loop $for-loop|03 + local.get $1 + local.get $3 + i32.gt_s + if + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $8 + if + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $8 + i32.const 1 + i32.shl + memory.copy + local.get $0 + local.get $8 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|03 + end + end + local.get $9 + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/string/String#substring + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$741 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + 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.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 14288 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1220 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + i32.const 39 + i32.const 14336 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 0 + local.set $0 + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=12 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$742 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $2 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 + end + local.get $1 + i32.eqz + if + local.get $4 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$742 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $8 + i32.const 11 + i32.add + local.get $1 + i32.mul + i32.const 11 + i32.add + local.tee $9 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + loop $for-loop|05 + local.get $1 + local.get $3 + i32.gt_s + if + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $8 + if + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $8 + i32.const 1 + i32.shl + memory.copy + local.get $0 + local.get $8 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|05 + end + end + local.get $9 + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/string/String#substring + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$742 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14288 - i32.store offset=8 - local.get $0 - i32.const 14288 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1220 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 1 - i32.const 39 - i32.const 14336 - call $~lib/rt/__newArray - local.set $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - local.get $0 - call $~lib/array/Array#toString - local.set $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14368 - i32.store offset=8 - local.get $0 + local.get $2 i32.const 14368 call $~lib/string/String.__eq i32.eqz @@ -28832,16 +28693,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=8 local.get $0 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14448 - i32.store offset=8 local.get $0 i32.const 14448 call $~lib/string/String.__eq @@ -28862,9 +28720,9 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -28872,15 +28730,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -28911,15 +28766,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14560 - i32.store offset=8 local.get $0 i32.const 14560 call $~lib/string/String.__eq @@ -28940,9 +28792,9 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -28950,15 +28802,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -28986,6 +28835,8 @@ i32.store i32.const 0 local.set $0 + i32.const 0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29017,7 +28868,7 @@ local.get $4 i32.eqz if - block $__inlined_func$~lib/util/number/itoa64$2 (result i32) + block $__inlined_func$~lib/util/number/itoa64$4 (result i32) local.get $1 i64.load i64.extend32_s @@ -29041,7 +28892,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7712 - br $__inlined_func$~lib/util/number/itoa64$2 + br $__inlined_func$~lib/util/number/itoa64$4 end i64.const 0 local.get $5 @@ -29315,15 +29166,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14704 - i32.store offset=8 local.get $2 i32.const 14704 call $~lib/string/String.__eq @@ -29343,19 +29191,16 @@ i32.const 14864 call $~lib/rt/__newArray local.tee $0 - i32.store offset=368 + i32.store offset=364 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=8 local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14912 - i32.store offset=8 local.get $0 i32.const 14912 call $~lib/string/String.__eq @@ -29376,16 +29221,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=8 local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15072 - i32.store offset=8 local.get $0 i32.const 15072 call $~lib/string/String.__eq @@ -29406,7 +29248,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=372 + i32.store offset=368 local.get $1 i32.const 0 i32.const 2 @@ -29424,12 +29266,12 @@ call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 - i32.store offset=376 + i32.store offset=372 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29437,15 +29279,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -29636,15 +29475,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15168 - i32.store offset=8 local.get $2 i32.const 15168 call $~lib/string/String.__eq @@ -29665,7 +29501,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=380 + i32.store offset=376 local.get $1 i32.const 0 i32.const 2 @@ -29683,12 +29519,12 @@ call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 - i32.store offset=384 + i32.store offset=380 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29696,15 +29532,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -29895,15 +29728,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15168 - i32.store offset=8 local.get $2 i32.const 15168 call $~lib/string/String.__eq @@ -29924,7 +29754,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=388 + i32.store offset=384 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -29932,7 +29762,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $2 - i32.store offset=392 + i32.store offset=388 local.get $2 i32.const 0 i32.const 1 @@ -29946,12 +29776,12 @@ local.get $2 call $~lib/array/Array#__set local.get $1 - i32.store offset=396 + i32.store offset=392 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29959,15 +29789,12 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -30158,15 +29985,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13568 - i32.store offset=8 local.get $2 i32.const 13568 call $~lib/string/String.__eq @@ -30187,7 +30011,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=400 + i32.store offset=396 local.get $1 i32.const 0 i32.const 1 @@ -30221,7 +30045,7 @@ call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 - i32.store offset=404 + i32.store offset=400 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30229,7 +30053,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#flat local.tee $1 - i32.store offset=408 + i32.store offset=404 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30283,7 +30107,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=412 + i32.store offset=408 local.get $1 i32.const 0 i32.const 1 @@ -30317,7 +30141,7 @@ call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 - i32.store offset=416 + i32.store offset=412 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $1 @@ -30479,7 +30303,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $10 - i32.store offset=420 + i32.store offset=416 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 @@ -30487,7 +30311,7 @@ i32.const 15792 call $~lib/rt/__newArray local.tee $1 - i32.store offset=424 + i32.store offset=420 global.get $~lib/memory/__stack_pointer local.get $10 i32.store @@ -30561,7 +30385,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=428 + i32.store offset=424 local.get $1 i32.const 0 i32.const 0 @@ -30579,7 +30403,7 @@ call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 - i32.store offset=432 + i32.store offset=428 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -30607,7 +30431,7 @@ i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=436 + i32.store offset=432 local.get $1 i32.const 0 i32.const 1 @@ -30625,7 +30449,7 @@ call $~lib/rt/__newArray call $~lib/array/Array#__set local.get $1 - i32.store offset=440 + i32.store offset=436 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $1 @@ -30735,7 +30559,7 @@ local.get $3 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 - i32.store offset=444 + i32.store offset=440 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -30857,7 +30681,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 448 + i32.const 444 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/std/console.debug.wat b/tests/compiler/std/console.debug.wat index 7cb71cc16f..2bd7371986 100644 --- a/tests/compiler/std/console.debug.wat +++ b/tests/compiler/std/console.debug.wat @@ -35,6 +35,46 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (start $~start) + (func $start:std/console + i32.const 0 + i32.const 32 + call $~lib/console/console.assert + i32.const 1 + i32.const 64 + call $~lib/console/console.assert + i32.const 96 + call $~lib/console/console.log + i32.const 144 + call $~lib/console/console.debug + i32.const 192 + call $~lib/console/console.info + i32.const 240 + call $~lib/console/console.warn + i32.const 288 + call $~lib/console/console.error + i32.const 336 + call $~lib/console/console.time + i32.const 336 + call $~lib/console/console.timeLog + i32.const 336 + call $~lib/console/console.timeEnd + i32.const 384 + call $~lib/console/console.timeLog + i32.const 384 + call $~lib/console/console.timeEnd + i32.const 432 + call $~lib/console/console.time + i32.const 432 + call $~lib/console/console.time + i32.const 480 + call $~lib/console/console.log + i32.const 512 + call $~lib/console/console.log + i32.const 544 + call $~lib/console/console.log + i32.const 576 + call $~lib/console/console.log + ) (func $~start call $start:std/console ) @@ -252,147 +292,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $start:std/console - (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 - i32.const 0 - i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.assert - i32.const 1 - i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.assert - i32.const 96 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.debug - i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.info - i32.const 240 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.warn - i32.const 288 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.error - i32.const 336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.time - i32.const 336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.timeLog - i32.const 336 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.timeEnd - i32.const 384 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.timeLog - i32.const 384 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.timeEnd - i32.const 432 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.time - i32.const 432 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.time - i32.const 480 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - i32.const 512 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - i32.const 544 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - i32.const 576 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/std/console.release.wat b/tests/compiler/std/console.release.wat index 6fb1edc1d1..a45eaf7c52 100644 --- a/tests/compiler/std/console.release.wat +++ b/tests/compiler/std/console.release.wat @@ -46,42 +46,19 @@ (export "memory" (memory $0)) (start $~start) (func $~start + i32.const 0 + i32.const 1056 + call $~lib/console/console.assert + i32.const 1 + i32.const 1088 + call $~lib/console/console.assert + i32.const 1120 + call $~lib/console/console.log 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 0 - i32.const 1056 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 1 - i32.const 1088 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 1120 - i32.store - i32.const 1120 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - 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 1612 i32.lt_s @@ -99,9 +76,6 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -122,9 +96,6 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1264 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -145,9 +116,6 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1312 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -167,65 +135,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store i32.const 1360 call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store i32.const 1360 call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store i32.const 1360 call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 1408 - i32.store i32.const 1408 call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 1408 - i32.store i32.const 1408 call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store i32.const 1456 call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 1456 - i32.store i32.const 1456 call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 1504 - i32.store i32.const 1504 call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store i32.const 1536 call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store i32.const 1568 call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store i32.const 1600 call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer return end i32.const 34400 diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index f76228e436..f67503e5e9 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -4711,13 +4711,13 @@ (func $~lib/date/stringify (param $value i32) (param $padding i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $value i32.const 10 call $~lib/number/I32#toString @@ -4728,15 +4728,10 @@ local.get $2 local.get $padding i32.const 848 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String#padStart local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -5415,11 +5410,6 @@ i32.store local.get $19 i32.const 2432 - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store offset=4 - local.get $19 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $19 global.get $~lib/memory/__stack_pointer @@ -5746,11 +5736,6 @@ i32.store offset=8 local.get $20 i32.const 2432 - local.set $20 - global.get $~lib/memory/__stack_pointer - local.get $20 - i32.store offset=48 - local.get $20 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $20 global.get $~lib/memory/__stack_pointer @@ -5874,11 +5859,6 @@ i32.store local.get $7 i32.const 2432 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=28 - local.get $7 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $7 global.get $~lib/memory/__stack_pointer @@ -6205,11 +6185,6 @@ i32.store offset=8 local.get $26 i32.const 2432 - local.set $26 - global.get $~lib/memory/__stack_pointer - local.get $26 - i32.store offset=72 - local.get $26 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $26 global.get $~lib/memory/__stack_pointer @@ -7479,11 +7454,6 @@ i32.store offset=4 local.get $21 i32.const 2432 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 call $~lib/array/Array<~lib/string/String>#push drop end @@ -7584,11 +7554,6 @@ i32.store offset=4 local.get $21 i32.const 2432 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 call $~lib/array/Array<~lib/string/String>#push drop end @@ -8017,13 +7982,13 @@ (local $radix|45 i32) (local $46 i32) global.get $~lib/memory/__stack_pointer - i32.const 76 + 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 76 + i32.const 72 memory.fill local.get $dateTimeString local.set $46 @@ -8062,11 +8027,6 @@ i32.store local.get $46 i32.const 2464 - local.set $46 - global.get $~lib/memory/__stack_pointer - local.get $46 - i32.store offset=8 - local.get $46 i32.const 0 call $~lib/string/String#indexOf local.set $posT @@ -8101,7 +8061,7 @@ i32.const 0 call $~lib/string/String#substring@varargs local.tee $timeString - i32.store offset=12 + i32.store offset=8 local.get $timeString local.set $46 global.get $~lib/memory/__stack_pointer @@ -8142,7 +8102,7 @@ local.get $i call $~lib/string/String#substring local.tee $timeString - i32.store offset=12 + i32.store offset=8 br $for-break0 else local.get $c @@ -8182,11 +8142,6 @@ i32.store local.get $46 i32.const 2496 - local.set $46 - global.get $~lib/memory/__stack_pointer - local.get $46 - i32.store offset=8 - local.get $46 local.get $i i32.const 1 i32.add @@ -8210,7 +8165,7 @@ local.get $posColon call $~lib/string/String#substring local.tee $value - i32.store offset=16 + i32.store offset=12 i32.const 0 local.set $radix local.get $value @@ -8240,7 +8195,7 @@ i32.const 0 call $~lib/string/String#substring@varargs local.tee $value|15 - i32.store offset=20 + i32.store offset=16 i32.const 0 local.set $radix|16 local.get $value|15 @@ -8279,7 +8234,7 @@ i32.const 0 call $~lib/string/String#substring@varargs local.tee $value|18 - i32.store offset=24 + i32.store offset=20 i32.const 0 local.set $radix|19 local.get $value|18 @@ -8318,7 +8273,7 @@ local.get $i call $~lib/string/String#substring local.tee $timeString - i32.store offset=12 + i32.store offset=8 br $for-break0 end end @@ -8338,17 +8293,12 @@ i32.store local.get $46 i32.const 2496 - local.set $46 - global.get $~lib/memory/__stack_pointer - local.get $46 - i32.store offset=8 - local.get $46 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $timeParts - i32.store offset=28 + i32.store offset=24 local.get $timeParts local.set $46 global.get $~lib/memory/__stack_pointer @@ -8379,7 +8329,7 @@ i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $value|23 - i32.store offset=32 + i32.store offset=28 i32.const 0 local.set $radix|24 local.get $value|23 @@ -8404,7 +8354,7 @@ i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $value|25 - i32.store offset=36 + i32.store offset=32 i32.const 0 local.set $radix|26 local.get $value|25 @@ -8432,7 +8382,7 @@ i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $secAndFrac - i32.store offset=40 + i32.store offset=36 local.get $secAndFrac local.set $46 global.get $~lib/memory/__stack_pointer @@ -8440,11 +8390,6 @@ i32.store local.get $46 i32.const 2528 - local.set $46 - global.get $~lib/memory/__stack_pointer - local.get $46 - i32.store offset=8 - local.get $46 i32.const 0 call $~lib/string/String#indexOf local.set $posDot @@ -8464,7 +8409,7 @@ local.get $posDot call $~lib/string/String#substring local.tee $value|29 - i32.store offset=44 + i32.store offset=40 i32.const 0 local.set $radix|30 local.get $value|29 @@ -8484,7 +8429,7 @@ local.set $46 global.get $~lib/memory/__stack_pointer local.get $46 - i32.store offset=48 + i32.store offset=44 local.get $46 local.get $posDot i32.const 1 @@ -8498,14 +8443,9 @@ local.get $46 i32.const 3 i32.const 848 - local.set $46 - global.get $~lib/memory/__stack_pointer - local.get $46 - i32.store offset=8 - local.get $46 call $~lib/string/String#padEnd local.tee $value|31 - i32.store offset=52 + i32.store offset=48 i32.const 0 local.set $radix|32 local.get $value|31 @@ -8524,7 +8464,7 @@ global.get $~lib/memory/__stack_pointer local.get $secAndFrac local.tee $value|33 - i32.store offset=56 + i32.store offset=52 i32.const 0 local.set $radix|34 local.get $value|33 @@ -8549,17 +8489,12 @@ i32.store local.get $46 i32.const 592 - local.set $46 - global.get $~lib/memory/__stack_pointer - local.get $46 - i32.store offset=8 - local.get $46 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $parts - i32.store offset=60 + i32.store offset=56 block $~lib/builtins/i32.parse|inlined.8 (result i32) global.get $~lib/memory/__stack_pointer local.get $parts @@ -8571,7 +8506,7 @@ i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $value|36 - i32.store offset=64 + i32.store offset=60 i32.const 0 local.set $radix|37 local.get $value|36 @@ -8612,7 +8547,7 @@ i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $value|42 - i32.store offset=68 + i32.store offset=64 i32.const 0 local.set $radix|43 local.get $value|42 @@ -8641,7 +8576,7 @@ i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $value|44 - i32.store offset=72 + i32.store offset=68 i32.const 0 local.set $radix|45 local.get $value|44 @@ -8672,7 +8607,7 @@ call $~lib/date/Date#constructor local.set $46 global.get $~lib/memory/__stack_pointer - i32.const 76 + i32.const 72 i32.add global.set $~lib/memory/__stack_pointer local.get $46 @@ -8845,13 +8780,13 @@ (local $163 i32) (local $164 i32) global.get $~lib/memory/__stack_pointer - i32.const 440 + i32.const 436 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 440 + i32.const 436 memory.fill block $~lib/date/Date.UTC|inlined.0 (result i64) i32.const 1970 @@ -11876,7 +11811,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -11885,11 +11820,6 @@ i32.store offset=8 local.get $164 i32.const 2672 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11912,7 +11842,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -11921,11 +11851,6 @@ i32.store offset=8 local.get $164 i32.const 2752 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11946,7 +11871,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -11955,11 +11880,6 @@ i32.store offset=8 local.get $164 i32.const 2832 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -11980,7 +11900,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -11989,11 +11909,6 @@ i32.store offset=8 local.get $164 i32.const 2912 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12014,7 +11929,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -12023,11 +11938,6 @@ i32.store offset=8 local.get $164 i32.const 2992 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12048,7 +11958,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -12057,11 +11967,6 @@ i32.store offset=8 local.get $164 i32.const 3072 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12082,7 +11987,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -12091,11 +11996,6 @@ i32.store offset=8 local.get $164 i32.const 3152 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12116,7 +12016,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -12125,11 +12025,6 @@ i32.store offset=8 local.get $164 i32.const 3232 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12150,7 +12045,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -12159,11 +12054,6 @@ i32.store offset=8 local.get $164 i32.const 3312 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12179,12 +12069,12 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $124 - i32.store offset=280 + i32.store offset=276 local.get $124 local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toDateString local.set $164 @@ -12193,11 +12083,6 @@ i32.store offset=8 local.get $164 i32.const 4240 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12213,12 +12098,12 @@ i64.const 1580601600000 call $~lib/date/Date#constructor local.tee $124 - i32.store offset=280 + i32.store offset=276 local.get $124 local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toDateString local.set $164 @@ -12227,11 +12112,6 @@ i32.store offset=8 local.get $164 i32.const 4304 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12247,12 +12127,12 @@ i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $124 - i32.store offset=280 + i32.store offset=276 local.get $124 local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toDateString local.set $164 @@ -12261,11 +12141,6 @@ i32.store offset=8 local.get $164 i32.const 4368 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12281,12 +12156,12 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $125 - i32.store offset=284 + i32.store offset=280 local.get $125 local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toTimeString local.set $164 @@ -12295,11 +12170,6 @@ i32.store offset=8 local.get $164 i32.const 4480 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12315,12 +12185,12 @@ i64.const 253402300799999 call $~lib/date/Date#constructor local.tee $125 - i32.store offset=284 + i32.store offset=280 local.get $125 local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toTimeString local.set $164 @@ -12329,11 +12199,6 @@ i32.store offset=8 local.get $164 i32.const 4528 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12349,12 +12214,12 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $126 - i32.store offset=288 + i32.store offset=284 local.get $126 local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toUTCString local.set $164 @@ -12363,11 +12228,6 @@ i32.store offset=8 local.get $164 i32.const 5424 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12383,12 +12243,12 @@ i64.const 1580741613467 call $~lib/date/Date#constructor local.tee $126 - i32.store offset=288 + i32.store offset=284 local.get $126 local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toUTCString local.set $164 @@ -12397,11 +12257,6 @@ i32.store offset=8 local.get $164 i32.const 5504 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12417,12 +12272,12 @@ i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $126 - i32.store offset=288 + i32.store offset=284 local.get $126 local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toUTCString local.set $164 @@ -12431,11 +12286,6 @@ i32.store offset=8 local.get $164 i32.const 5584 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -12448,19 +12298,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 5664 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.26 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $128 - i32.store offset=296 + i32.store offset=292 local.get $128 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12483,19 +12328,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 5936 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.27 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $129 - i32.store offset=300 + i32.store offset=296 local.get $129 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12518,19 +12358,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 5984 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.28 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $130 - i32.store offset=304 + i32.store offset=300 local.get $130 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12553,19 +12388,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6032 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.29 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $131 - i32.store offset=308 + i32.store offset=304 local.get $131 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12588,19 +12418,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6096 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.30 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $132 - i32.store offset=312 + i32.store offset=308 local.get $132 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12623,19 +12448,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6176 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.31 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $133 - i32.store offset=316 + i32.store offset=312 local.get $133 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12658,19 +12478,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6256 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.32 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $134 - i32.store offset=320 + i32.store offset=316 local.get $134 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12693,19 +12508,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6336 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.33 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $135 - i32.store offset=324 + i32.store offset=320 local.get $135 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12728,19 +12538,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6416 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.34 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $136 - i32.store offset=328 + i32.store offset=324 local.get $136 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12763,19 +12568,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6480 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.35 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $137 - i32.store offset=332 + i32.store offset=328 local.get $137 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12798,19 +12598,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6560 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.36 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $138 - i32.store offset=336 + i32.store offset=332 local.get $138 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12833,19 +12628,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6640 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.37 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $139 - i32.store offset=340 + i32.store offset=336 local.get $139 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12868,19 +12658,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6720 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.38 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $140 - i32.store offset=344 + i32.store offset=340 local.get $140 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12903,19 +12688,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6800 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.39 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $141 - i32.store offset=348 + i32.store offset=344 local.get $141 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12938,19 +12718,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6896 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.40 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $142 - i32.store offset=352 + i32.store offset=348 local.get $142 local.set $164 global.get $~lib/memory/__stack_pointer @@ -12973,19 +12748,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6928 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.41 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $143 - i32.store offset=356 + i32.store offset=352 local.get $143 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13008,19 +12778,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6960 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.42 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $144 - i32.store offset=360 + i32.store offset=356 local.get $144 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13043,19 +12808,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6992 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.43 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $145 - i32.store offset=364 + i32.store offset=360 local.get $145 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13078,19 +12838,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 5664 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.44 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $146 - i32.store offset=368 + i32.store offset=364 local.get $146 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13113,19 +12868,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 7040 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.45 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $147 - i32.store offset=372 + i32.store offset=368 local.get $147 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13148,19 +12898,14 @@ end global.get $~lib/memory/__stack_pointer i32.const 6032 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 call $~lib/date/Date.fromString local.tee $127 - i32.store offset=292 + i32.store offset=288 block $~lib/date/Date#getTime|inlined.46 (result i64) global.get $~lib/memory/__stack_pointer local.get $127 local.tee $148 - i32.store offset=376 + i32.store offset=372 local.get $148 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13186,18 +12931,18 @@ i64.const -8640000000000000 call $~lib/date/Date#constructor local.tee $149 - i32.store offset=380 + i32.store offset=376 global.get $~lib/memory/__stack_pointer i32.const 0 i64.const 8640000000000000 call $~lib/date/Date#constructor local.tee $150 - i32.store offset=384 + i32.store offset=380 block $~lib/date/Date#getTime|inlined.47 (result i64) global.get $~lib/memory/__stack_pointer local.get $149 local.tee $151 - i32.store offset=388 + i32.store offset=384 local.get $151 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13222,7 +12967,7 @@ global.get $~lib/memory/__stack_pointer local.get $150 local.tee $152 - i32.store offset=392 + i32.store offset=388 local.get $152 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13247,7 +12992,7 @@ global.get $~lib/memory/__stack_pointer local.get $149 local.tee $153 - i32.store offset=396 + i32.store offset=392 local.get $153 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13272,7 +13017,7 @@ global.get $~lib/memory/__stack_pointer local.get $150 local.tee $154 - i32.store offset=400 + i32.store offset=396 local.get $154 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13297,7 +13042,7 @@ global.get $~lib/memory/__stack_pointer local.get $149 local.tee $155 - i32.store offset=404 + i32.store offset=400 local.get $155 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13324,7 +13069,7 @@ global.get $~lib/memory/__stack_pointer local.get $150 local.tee $156 - i32.store offset=408 + i32.store offset=404 local.get $156 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13351,7 +13096,7 @@ global.get $~lib/memory/__stack_pointer local.get $149 local.tee $157 - i32.store offset=412 + i32.store offset=408 local.get $157 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13376,7 +13121,7 @@ global.get $~lib/memory/__stack_pointer local.get $150 local.tee $158 - i32.store offset=416 + i32.store offset=412 local.get $158 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13401,7 +13146,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -13410,11 +13155,6 @@ i32.store offset=8 local.get $164 i32.const 7104 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -13429,7 +13169,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -13438,11 +13178,6 @@ i32.store offset=8 local.get $164 i32.const 7184 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -13460,7 +13195,7 @@ i64.sub call $~lib/date/Date#constructor local.tee $159 - i32.store offset=420 + i32.store offset=416 global.get $~lib/memory/__stack_pointer i32.const 0 i64.const -8640000000000000 @@ -13468,12 +13203,12 @@ i64.add call $~lib/date/Date#constructor local.tee $160 - i32.store offset=424 + i32.store offset=420 block $~lib/date/Date#getUTCFullYear|inlined.9 (result i32) global.get $~lib/memory/__stack_pointer local.get $160 local.tee $161 - i32.store offset=428 + i32.store offset=424 local.get $161 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13498,7 +13233,7 @@ global.get $~lib/memory/__stack_pointer local.get $160 local.tee $162 - i32.store offset=432 + i32.store offset=428 local.get $162 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13525,7 +13260,7 @@ global.get $~lib/memory/__stack_pointer local.get $160 local.tee $163 - i32.store offset=436 + i32.store offset=432 local.get $163 local.set $164 global.get $~lib/memory/__stack_pointer @@ -13622,7 +13357,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -13631,11 +13366,6 @@ i32.store offset=8 local.get $164 i32.const 7264 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -13650,7 +13380,7 @@ local.set $164 global.get $~lib/memory/__stack_pointer local.get $164 - i32.store offset=276 + i32.store offset=272 local.get $164 call $~lib/date/Date#toISOString local.set $164 @@ -13659,11 +13389,6 @@ i32.store offset=8 local.get $164 i32.const 7344 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 call $~lib/string/String.__eq i32.eqz if @@ -13675,7 +13400,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 440 + i32.const 436 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 9c9a523680..4b706f0de3 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -3269,7 +3269,7 @@ (local $6 i32) (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -3278,8 +3278,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $0 call $~lib/number/I32#toString local.set $0 @@ -3287,9 +3287,6 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1872 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3402,7 +3399,7 @@ local.set $0 end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 @@ -3998,9 +3995,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 i32.const 3616 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer @@ -4351,9 +4345,6 @@ global.get $~lib/memory/__stack_pointer i32.const 5152 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=48 i32.const 5152 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer @@ -4464,9 +4455,6 @@ global.get $~lib/memory/__stack_pointer i32.const 5456 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=28 i32.const 5456 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer @@ -4804,9 +4792,6 @@ global.get $~lib/memory/__stack_pointer i32.const 6368 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=72 i32.const 6368 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer @@ -5829,9 +5814,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=24 local.get $2 i32.const 3456 call $~lib/array/Array<~lib/string/String>#push @@ -5901,9 +5883,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=24 local.get $2 i32.const 3456 call $~lib/array/Array<~lib/string/String>#push @@ -6091,7 +6070,7 @@ (local $11 i32) (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 76 + i32.const 72 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -6101,7 +6080,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 76 + i32.const 72 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -6121,17 +6100,15 @@ call $~lib/builtins/abort unreachable end + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3488 - i32.store offset=8 local.get $0 - local.tee $1 i32.const 3488 i32.const 0 call $~lib/string/String#indexOf @@ -6160,12 +6137,12 @@ i32.const 1 i32.add call $~lib/string/String#substring@varargs - local.tee $0 - i32.store offset=12 + local.tee $2 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -6180,7 +6157,7 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6194,11 +6171,11 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store block $__inlined_func$~lib/string/String#charCodeAt$386 local.get $3 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -6211,39 +6188,39 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $2 + local.set $0 br $__inlined_func$~lib/string/String#charCodeAt$386 end - local.get $0 + local.get $2 local.get $3 i32.const 1 i32.shl i32.add i32.load16_u - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer end block $for-break0 - local.get $2 + local.get $0 i32.const 90 i32.eq br_if $for-break0 - local.get $2 + local.get $0 i32.const 45 i32.eq - local.get $2 + local.get $0 i32.const 43 i32.eq i32.or if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store local.get $3 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -6261,13 +6238,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3520 - i32.store offset=8 i32.const 0 - local.get $0 + local.get $2 i32.const 3520 local.get $3 i32.const 1 @@ -6279,15 +6253,15 @@ i32.xor if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 local.get $5 local.get $7 call $~lib/string/String#substring local.tee $5 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $5 i32.store @@ -6295,18 +6269,18 @@ call $~lib/util/string/strtol local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 local.get $7 i32.const 1 i32.add call $~lib/string/String#substring@varargs local.tee $7 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -6320,18 +6294,18 @@ i32.mul else global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 local.get $3 i32.const 1 i32.add call $~lib/string/String#substring@varargs local.tee $5 - i32.store offset=24 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $5 i32.store @@ -6343,7 +6317,7 @@ local.tee $5 i32.sub local.get $5 - local.get $2 + local.get $0 i32.const 45 i32.eq select @@ -6357,31 +6331,28 @@ br $for-loop|0 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 local.get $3 call $~lib/string/String#substring - local.tee $0 - i32.store offset=12 + local.tee $2 + i32.store offset=8 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3520 - i32.store offset=8 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 3520 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6406,7 +6377,7 @@ i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $3 - i32.store offset=32 + i32.store offset=28 global.get $~lib/memory/__stack_pointer local.get $3 i32.store @@ -6421,7 +6392,7 @@ i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $7 - i32.store offset=36 + i32.store offset=32 global.get $~lib/memory/__stack_pointer local.get $7 i32.store @@ -6440,13 +6411,10 @@ i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $2 - i32.store offset=40 + i32.store offset=36 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3552 - i32.store offset=8 local.get $2 i32.const 3552 i32.const 0 @@ -6464,7 +6432,7 @@ local.get $0 call $~lib/string/String#substring local.tee $6 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -6475,7 +6443,7 @@ block $__inlined_func$~lib/string/String#substr$387 (result i32) global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=48 + i32.store offset=44 local.get $0 i32.const 1 i32.add @@ -6562,9 +6530,6 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1872 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6680,7 +6645,7 @@ local.set $0 end local.get $0 - i32.store offset=52 + i32.store offset=48 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6690,7 +6655,7 @@ else global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=56 + i32.store offset=52 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -6703,9 +6668,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=8 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -6713,7 +6675,7 @@ i32.const 1616 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=60 + i32.store offset=56 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6722,7 +6684,7 @@ i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $1 - i32.store offset=64 + i32.store offset=60 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -6747,7 +6709,7 @@ i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $1 - i32.store offset=68 + i32.store offset=64 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -6766,7 +6728,7 @@ i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $0 - i32.store offset=72 + i32.store offset=68 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6791,7 +6753,7 @@ i64.sub call $~lib/date/Date#constructor global.get $~lib/memory/__stack_pointer - i32.const 76 + i32.const 72 i32.add global.set $~lib/memory/__stack_pointer return @@ -6809,7 +6771,7 @@ (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 440 + i32.const 436 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6825,7 +6787,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 440 + i32.const 436 memory.fill block $folding-inner0 i32.const 1970 @@ -9332,16 +9294,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3696 - i32.store offset=272 local.get $0 i32.const 3696 call $~lib/string/String.__eq @@ -9361,16 +9320,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=272 local.get $0 i32.const 3776 call $~lib/string/String.__eq @@ -9390,16 +9346,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3856 - i32.store offset=272 local.get $0 i32.const 3856 call $~lib/string/String.__eq @@ -9419,16 +9372,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3936 - i32.store offset=272 local.get $0 i32.const 3936 call $~lib/string/String.__eq @@ -9448,16 +9398,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=272 local.get $0 i32.const 4016 call $~lib/string/String.__eq @@ -9477,16 +9424,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4096 - i32.store offset=272 local.get $0 i32.const 4096 call $~lib/string/String.__eq @@ -9506,16 +9450,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=272 local.get $0 i32.const 4176 call $~lib/string/String.__eq @@ -9535,16 +9476,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4256 - i32.store offset=272 local.get $0 i32.const 4256 call $~lib/string/String.__eq @@ -9564,16 +9502,13 @@ i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=272 local.get $0 i32.const 4336 call $~lib/string/String.__eq @@ -9590,19 +9525,16 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=280 + i32.store offset=276 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5264 - i32.store offset=272 local.get $0 i32.const 5264 call $~lib/string/String.__eq @@ -9619,19 +9551,16 @@ i64.const 1580601600000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=280 + i32.store offset=276 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5328 - i32.store offset=272 local.get $0 i32.const 5328 call $~lib/string/String.__eq @@ -9648,19 +9577,16 @@ i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=280 + i32.store offset=276 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=272 local.get $0 i32.const 5392 call $~lib/string/String.__eq @@ -9677,19 +9603,16 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=284 + i32.store offset=280 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toTimeString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5504 - i32.store offset=272 local.get $0 i32.const 5504 call $~lib/string/String.__eq @@ -9706,19 +9629,16 @@ i64.const 253402300799999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=284 + i32.store offset=280 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toTimeString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5552 - i32.store offset=272 local.get $0 i32.const 5552 call $~lib/string/String.__eq @@ -9735,19 +9655,16 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=288 + i32.store offset=284 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=272 local.get $0 i32.const 6448 call $~lib/string/String.__eq @@ -9764,19 +9681,16 @@ i64.const 1580741613467 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=288 + i32.store offset=284 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6528 - i32.store offset=272 local.get $0 i32.const 6528 call $~lib/string/String.__eq @@ -9793,19 +9707,16 @@ i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=288 + i32.store offset=284 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6608 - i32.store offset=272 local.get $0 i32.const 6608 call $~lib/string/String.__eq @@ -9820,15 +9731,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 6688 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6688 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=296 + i32.store offset=292 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9846,15 +9754,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 6960 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6960 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=300 + i32.store offset=296 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9872,15 +9777,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7008 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7008 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=304 + i32.store offset=300 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9898,15 +9800,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7056 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=308 + i32.store offset=304 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9924,15 +9823,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7120 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7120 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=312 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9950,15 +9846,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7200 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7200 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=316 + i32.store offset=312 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9976,15 +9869,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7280 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7280 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=320 + i32.store offset=316 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10002,15 +9892,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7360 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7360 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=324 + i32.store offset=320 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10028,15 +9915,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7440 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7440 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=328 + i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10054,15 +9938,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7504 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7504 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=332 + i32.store offset=328 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10080,15 +9961,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7584 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7584 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=336 + i32.store offset=332 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10106,15 +9984,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7664 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7664 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=340 + i32.store offset=336 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10132,15 +10007,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7744 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7744 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=344 + i32.store offset=340 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10158,15 +10030,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7824 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7824 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=348 + i32.store offset=344 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10184,15 +10053,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7920 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7920 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=352 + i32.store offset=348 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10210,15 +10076,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7952 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7952 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=356 + i32.store offset=352 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10236,15 +10099,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7984 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7984 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=360 + i32.store offset=356 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10262,15 +10122,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 8016 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8016 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=364 + i32.store offset=360 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10288,15 +10145,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 6688 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6688 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=368 + i32.store offset=364 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10314,15 +10168,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 8064 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8064 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=372 + i32.store offset=368 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10340,15 +10191,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 7056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 7056 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=292 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=376 + i32.store offset=372 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10368,15 +10216,15 @@ i64.const -8640000000000000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=380 + i32.store offset=376 global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor local.tee $2 - i32.store offset=384 + i32.store offset=380 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=388 + i32.store offset=384 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10394,7 +10242,7 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=392 + i32.store offset=388 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10412,7 +10260,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=396 + i32.store offset=392 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10430,7 +10278,7 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=400 + i32.store offset=396 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10448,7 +10296,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=404 + i32.store offset=400 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10466,7 +10314,7 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=408 + i32.store offset=404 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10484,7 +10332,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=412 + i32.store offset=408 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10502,7 +10350,7 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=416 + i32.store offset=412 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10520,16 +10368,13 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8128 - i32.store offset=272 local.get $0 i32.const 8128 call $~lib/string/String.__eq @@ -10544,16 +10389,13 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=276 + i32.store offset=272 local.get $2 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8208 - i32.store offset=272 local.get $0 i32.const 8208 call $~lib/string/String.__eq @@ -10570,15 +10412,15 @@ i64.const 8639999999999999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=420 + i32.store offset=416 global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 call $~lib/date/Date#constructor local.tee $2 - i32.store offset=424 + i32.store offset=420 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=428 + i32.store offset=424 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10596,7 +10438,7 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=432 + i32.store offset=428 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10614,7 +10456,7 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=436 + i32.store offset=432 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10686,16 +10528,13 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=276 + i32.store offset=272 local.get $0 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8288 - i32.store offset=272 local.get $0 i32.const 8288 call $~lib/string/String.__eq @@ -10710,16 +10549,13 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=276 + i32.store offset=272 local.get $2 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8368 - i32.store offset=272 local.get $0 i32.const 8368 call $~lib/string/String.__eq @@ -10733,7 +10569,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 440 + i32.const 436 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index 0a04055d0c..12f679f2a3 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -198,6 +198,100 @@ end return ) + (func $start:std/hash + i32.const 0 + call $~lib/util/hash/HASH<~lib/string/String|null> + call $std/hash/check + drop + i32.const 32 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 64 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 96 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 128 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 160 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 192 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 224 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 256 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 304 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + i32.const 352 + call $~lib/util/hash/HASH<~lib/string/String> + call $std/hash/check + drop + f32.const 0 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const 1 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const 1.100000023841858 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const -0 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const inf + call $~lib/util/hash/HASH + call $std/hash/check + drop + f32.const nan:0x400000 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const 0 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const 1 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const 1.1 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const -0 + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const inf + call $~lib/util/hash/HASH + call $std/hash/check + drop + f64.const nan:0x8000000000000 + call $~lib/util/hash/HASH + call $std/hash/check + drop + ) (func $~start call $start:std/hash ) @@ -792,161 +886,4 @@ local.get $19 return ) - (func $start:std/hash - (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 - i32.const 0 - call $~lib/util/hash/HASH<~lib/string/String|null> - call $std/hash/check - drop - i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 64 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 96 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 160 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 224 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 256 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 304 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - i32.const 352 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $std/hash/check - drop - f32.const 0 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const 1 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const 1.100000023841858 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const -0 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const inf - call $~lib/util/hash/HASH - call $std/hash/check - drop - f32.const nan:0x400000 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const 0 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const 1 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const 1.1 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const -0 - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const inf - call $~lib/util/hash/HASH - call $std/hash/check - drop - f64.const nan:0x8000000000000 - call $~lib/util/hash/HASH - call $std/hash/check - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/std/hash.release.wat b/tests/compiler/std/hash.release.wat index b4ee8781f3..1620d1e03e 100644 --- a/tests/compiler/std/hash.release.wat +++ b/tests/compiler/std/hash.release.wat @@ -28,80 +28,28 @@ (export "memory" (memory $0)) (start $~start) (func $~start - 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 - i32.const 0 - i32.store i32.const 0 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store i32.const 1088 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1120 - i32.store i32.const 1120 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store i32.const 1152 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store i32.const 1184 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store i32.const 1216 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store i32.const 1248 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1280 - i32.store i32.const 1280 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1328 - i32.store i32.const 1328 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 1376 - i32.store i32.const 1376 call $~lib/util/hash/HASH<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $~lib/util/hash/HASH<~lib/string/String|null> (param $0 i32) (local $1 i32) diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index 0abd1231af..51dd5033e7 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -4693,13 +4693,13 @@ (func $std/operator-overloading/TesterElementAccess#__set (param $this i32) (param $key i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $key local.set $3 global.get $~lib/memory/__stack_pointer @@ -4707,11 +4707,6 @@ i32.store local.get $3 i32.const 512 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 call $~lib/string/String.__eq if local.get $this @@ -4733,20 +4728,20 @@ call $std/operator-overloading/TesterElementAccess#set:y end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $std/operator-overloading/TesterElementAccess#__get (param $this i32) (param $key i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $key local.set $2 global.get $~lib/memory/__stack_pointer @@ -4754,11 +4749,6 @@ i32.store local.get $2 i32.const 512 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 call $~lib/string/String.__eq if (result i32) local.get $this @@ -4779,7 +4769,7 @@ end local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -4797,13 +4787,13 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 48 + i32.const 40 memory.fill memory.size i32.const 16 @@ -6435,11 +6425,6 @@ i32.store local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 i32.const -1 call $std/operator-overloading/TesterElementAccess#__set global.get $std/operator-overloading/tea @@ -6449,11 +6434,6 @@ i32.store local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 i32.const -2 call $std/operator-overloading/TesterElementAccess#__set global.get $std/operator-overloading/tea @@ -6481,11 +6461,6 @@ i32.store local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const -1 i32.eq @@ -6523,11 +6498,6 @@ i32.store local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const -2 i32.eq @@ -6547,23 +6517,13 @@ i32.store local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 global.get $std/operator-overloading/tea local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=40 + i32.store offset=4 local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=44 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const 1 i32.add @@ -6575,23 +6535,13 @@ i32.store local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 global.get $std/operator-overloading/tea local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 - i32.store offset=40 + i32.store offset=4 local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=44 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const 1 i32.sub @@ -6603,11 +6553,6 @@ i32.store local.get $9 i32.const 512 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const 0 i32.eq @@ -6627,11 +6572,6 @@ i32.store local.get $9 i32.const 544 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 call $std/operator-overloading/TesterElementAccess#__get i32.const -3 i32.eq @@ -6645,7 +6585,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 5e5c560d3b..8621df2251 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -2414,7 +2414,7 @@ ) (func $std/operator-overloading/TesterElementAccess#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2429,14 +2429,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 local.get $1 call $~lib/string/String.__eq if @@ -2455,13 +2452,13 @@ i32.store offset=4 end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) (func $std/operator-overloading/TesterElementAccess#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2476,14 +2473,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 local.get $1 call $~lib/string/String.__eq if (result i32) @@ -2500,7 +2494,7 @@ i32.load offset=4 end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2509,7 +2503,7 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 40 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2519,7 +2513,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 48 + i32.const 40 memory.fill memory.size i32.const 16 @@ -4768,9 +4762,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 local.get $0 i32.const 1536 i32.const -1 @@ -4779,9 +4770,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=4 local.get $0 i32.const 1568 i32.const -2 @@ -4806,9 +4794,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 local.get $0 i32.const 1536 call $std/operator-overloading/TesterElementAccess#__get @@ -4842,9 +4827,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=4 local.get $0 i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get @@ -4863,15 +4845,9 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tea local.tee $1 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=44 + i32.store offset=4 local.get $0 i32.const 1536 local.get $1 @@ -4885,15 +4861,9 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/tea local.tee $1 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=44 + i32.store offset=4 local.get $0 i32.const 1568 local.get $1 @@ -4906,9 +4876,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 local.get $0 i32.const 1536 call $std/operator-overloading/TesterElementAccess#__get @@ -4924,9 +4891,6 @@ global.get $std/operator-overloading/tea local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store offset=4 local.get $0 i32.const 1568 call $std/operator-overloading/TesterElementAccess#__get @@ -4941,7 +4905,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index d083482d6b..eecfcbe17e 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -5785,13 +5785,13 @@ (func $~lib/staticarray/StaticArray<~lib/string/String>#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -5799,15 +5799,10 @@ i32.store local.get $1 i32.const 1936 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -7564,13 +7559,13 @@ (local $51 i32) (local $52 i32) global.get $~lib/memory/__stack_pointer - i32.const 108 + i32.const 104 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 108 + i32.const 104 memory.fill global.get $std/staticarray/arr1 local.set $52 @@ -8332,7 +8327,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=48 + i32.store offset=24 local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -8342,11 +8337,6 @@ i32.store local.get $52 i32.const 1120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8361,7 +8351,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=48 + i32.store offset=24 local.get $52 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -8371,11 +8361,6 @@ i32.store local.get $52 i32.const 1152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8530,7 +8515,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=48 + i32.store offset=24 local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -8540,11 +8525,6 @@ i32.store local.get $52 i32.const 1216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8619,7 +8599,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=48 + i32.store offset=24 local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -8629,11 +8609,6 @@ i32.store local.get $52 i32.const 1152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -8759,11 +8734,6 @@ i32.store local.get $52 i32.const 1120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -8784,11 +8754,6 @@ i32.store local.get $52 i32.const 1520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -8809,11 +8774,6 @@ i32.store local.get $52 i32.const 1216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 0 @@ -8834,11 +8794,6 @@ i32.store local.get $52 i32.const 1216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes i32.const 1 @@ -9147,14 +9102,9 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=48 + i32.store offset=24 local.get $52 i32.const 1936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=76 - local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer @@ -9162,11 +9112,6 @@ i32.store local.get $52 i32.const 1968 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9181,14 +9126,9 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=48 + i32.store offset=24 local.get $52 i32.const 1904 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=76 - local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer @@ -9196,11 +9136,6 @@ i32.store local.get $52 i32.const 2016 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9215,14 +9150,9 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=48 + i32.store offset=24 local.get $52 i32.const 2064 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=76 - local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer @@ -9230,11 +9160,6 @@ i32.store local.get $52 i32.const 2096 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9249,14 +9174,9 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=48 + i32.store offset=24 local.get $52 i32.const 2144 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=76 - local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer @@ -9264,11 +9184,6 @@ i32.store local.get $52 i32.const 2176 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=24 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -9286,11 +9201,6 @@ i32.store offset=48 local.get $52 i32.const 1936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=76 - local.get $52 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $52 global.get $~lib/memory/__stack_pointer @@ -9325,7 +9235,7 @@ i32.const 2240 call $~lib/rt/__newBuffer local.tee $39 - i32.store offset=80 + i32.store offset=76 local.get $39 local.set $52 global.get $~lib/memory/__stack_pointer @@ -9383,7 +9293,7 @@ i32.const 2272 call $~lib/rt/__newBuffer local.tee $41 - i32.store offset=84 + i32.store offset=80 local.get $41 local.set $52 global.get $~lib/memory/__stack_pointer @@ -9455,7 +9365,7 @@ i32.const 2304 call $~lib/rt/__newBuffer local.tee $43 - i32.store offset=88 + i32.store offset=84 local.get $43 local.set $52 global.get $~lib/memory/__stack_pointer @@ -9570,7 +9480,7 @@ i32.const 2352 call $~lib/rt/__newBuffer local.tee $45 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer local.get $45 local.set $52 @@ -9586,7 +9496,7 @@ local.get $52 call $~lib/staticarray/StaticArray#map local.tee $46 - i32.store offset=96 + i32.store offset=92 local.get $46 local.set $52 global.get $~lib/memory/__stack_pointer @@ -9684,7 +9594,7 @@ local.get $52 call $~lib/staticarray/StaticArray#filter local.tee $47 - i32.store offset=100 + i32.store offset=96 local.get $47 local.set $52 global.get $~lib/memory/__stack_pointer @@ -9987,7 +9897,7 @@ i32.const 2800 call $~lib/rt/__newBuffer local.tee $51 - i32.store offset=104 + i32.store offset=100 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -10079,7 +9989,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 108 + i32.const 104 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index eeafb67230..5db8f652ff 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -4952,7 +4952,7 @@ (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 108 + i32.const 104 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -4962,7 +4962,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 108 + i32.const 104 memory.fill global.get $~lib/memory/__stack_pointer i32.const 1056 @@ -5857,7 +5857,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=24 local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -5865,9 +5865,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2144 - i32.store offset=24 local.get $1 i32.const 2144 call $~lib/string/String.__eq @@ -5882,7 +5879,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=24 local.get $0 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -5890,9 +5887,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=24 local.get $0 i32.const 2176 call $~lib/string/String.__eq @@ -6042,7 +6036,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=24 local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -6050,9 +6044,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store offset=24 local.get $0 i32.const 2240 call $~lib/string/String.__eq @@ -6123,7 +6114,7 @@ end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=48 + i32.store offset=24 local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get @@ -6131,9 +6122,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=24 local.get $0 i32.const 2176 call $~lib/string/String.__eq @@ -6251,9 +6239,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2144 - i32.store offset=24 local.get $1 i32.const 2144 i32.const 0 @@ -6271,9 +6256,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=24 local.get $1 i32.const 2544 i32.const 0 @@ -6289,9 +6271,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store offset=24 local.get $1 i32.const 2240 i32.const 5 @@ -6307,9 +6286,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store offset=24 local.get $1 i32.const 2240 i32.const -1 @@ -6711,10 +6687,7 @@ i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=76 + i32.store offset=24 local.get $1 i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join @@ -6722,9 +6695,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=24 local.get $0 i32.const 2992 call $~lib/string/String.__eq @@ -6739,10 +6709,7 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 2928 - i32.store offset=76 + i32.store offset=24 local.get $1 i32.const 2928 call $~lib/staticarray/StaticArray<~lib/string/String>#join @@ -6750,9 +6717,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3040 - i32.store offset=24 local.get $0 i32.const 3040 call $~lib/string/String.__eq @@ -6767,10 +6731,7 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 3088 - i32.store offset=76 + i32.store offset=24 local.get $1 i32.const 3088 call $~lib/staticarray/StaticArray<~lib/string/String>#join @@ -6778,9 +6739,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3120 - i32.store offset=24 local.get $0 i32.const 3120 call $~lib/string/String.__eq @@ -6795,10 +6753,7 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 3168 - i32.store offset=76 + i32.store offset=24 local.get $1 i32.const 3168 call $~lib/staticarray/StaticArray<~lib/string/String>#join @@ -6806,9 +6761,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3200 - i32.store offset=24 local.get $0 i32.const 3200 call $~lib/string/String.__eq @@ -6824,9 +6776,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=76 local.get $1 i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join @@ -6838,7 +6787,7 @@ local.get $1 i32.store offset=48 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6846,20 +6795,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=4 local.get $1 i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6886,7 +6832,7 @@ i64.load align=1 i64.store align=1 local.get $1 - i32.store offset=80 + i32.store offset=76 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -6999,7 +6945,7 @@ i32.const 12 memory.copy local.get $1 - i32.store offset=84 + i32.store offset=80 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -7133,7 +7079,7 @@ i32.const 20 memory.copy local.get $1 - i32.store offset=88 + i32.store offset=84 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -7309,7 +7255,7 @@ i32.const 12 memory.copy local.get $2 - i32.store offset=92 + i32.store offset=88 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $2 @@ -7392,7 +7338,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - i32.store offset=96 + i32.store offset=92 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -7523,7 +7469,7 @@ local.get $2 call $~lib/staticarray/StaticArray#filter local.tee $0 - i32.store offset=100 + i32.store offset=96 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7882,7 +7828,7 @@ i32.const 16 memory.copy local.get $1 - i32.store offset=104 + i32.store offset=100 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -8044,7 +7990,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 108 + i32.const 104 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 946aa3b013..7c96ce666c 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -4820,13 +4820,13 @@ (local $9 i64) (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 28 + i32.const 20 memory.fill memory.size i32.const 16 @@ -4846,11 +4846,6 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 32 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4858,11 +4853,6 @@ i32.store local.get $10 i32.const 32 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4874,11 +4864,6 @@ unreachable end i32.const 32 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4886,11 +4871,6 @@ i32.store local.get $10 i32.const 32 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4902,11 +4882,6 @@ unreachable end i32.const 10784 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4914,11 +4889,6 @@ i32.store local.get $10 i32.const 10832 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4930,11 +4900,6 @@ unreachable end i32.const 10880 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4942,11 +4907,6 @@ i32.store local.get $10 i32.const 10928 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4958,11 +4918,6 @@ unreachable end i32.const 10976 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4970,11 +4925,6 @@ i32.store local.get $10 i32.const 11072 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -4986,11 +4936,6 @@ unreachable end i32.const 11072 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -4998,11 +4943,6 @@ i32.store local.get $10 i32.const 11168 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5014,11 +4954,6 @@ unreachable end i32.const 11264 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5026,11 +4961,6 @@ i32.store local.get $10 i32.const 11328 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5042,11 +4972,6 @@ unreachable end i32.const 11328 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5054,11 +4979,6 @@ i32.store local.get $10 i32.const 11392 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5070,11 +4990,6 @@ unreachable end i32.const 11456 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5082,11 +4997,6 @@ i32.store local.get $10 i32.const 11552 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5098,11 +5008,6 @@ unreachable end i32.const 11552 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5110,11 +5015,6 @@ i32.store local.get $10 i32.const 11648 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5126,11 +5026,6 @@ unreachable end i32.const 11744 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5138,11 +5033,6 @@ i32.store local.get $10 i32.const 11840 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5154,11 +5044,6 @@ unreachable end i32.const 11840 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5166,11 +5051,6 @@ i32.store local.get $10 i32.const 11936 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5182,11 +5062,6 @@ unreachable end i32.const 12032 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5194,11 +5069,6 @@ i32.store local.get $10 i32.const 12112 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5210,11 +5080,6 @@ unreachable end i32.const 12192 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5222,11 +5087,6 @@ i32.store local.get $10 i32.const 12272 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5238,11 +5098,6 @@ unreachable end i32.const 12352 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5250,11 +5105,6 @@ i32.store local.get $10 i32.const 12416 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5266,11 +5116,6 @@ unreachable end i32.const 12480 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5278,11 +5123,6 @@ i32.store local.get $10 i32.const 12560 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5294,11 +5134,6 @@ unreachable end i32.const 12640 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5306,11 +5141,6 @@ i32.store local.get $10 i32.const 12720 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5322,11 +5152,6 @@ unreachable end i32.const 12800 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5334,11 +5159,6 @@ i32.store local.get $10 i32.const 12864 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5350,11 +5170,6 @@ unreachable end i32.const 12928 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5362,11 +5177,6 @@ i32.store local.get $10 i32.const 13008 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5378,11 +5188,6 @@ unreachable end i32.const 13088 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5390,11 +5195,6 @@ i32.store local.get $10 i32.const 13168 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5406,11 +5206,6 @@ unreachable end i32.const 13248 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5418,11 +5213,6 @@ i32.store local.get $10 i32.const 13408 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5434,11 +5224,6 @@ unreachable end i32.const 13248 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5446,11 +5231,6 @@ i32.store local.get $10 i32.const 13568 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5462,11 +5242,6 @@ unreachable end i32.const 13728 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5474,11 +5249,6 @@ i32.store local.get $10 i32.const 13760 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5490,11 +5260,6 @@ unreachable end i32.const 13792 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5502,11 +5267,6 @@ i32.store local.get $10 i32.const 13824 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5518,11 +5278,6 @@ unreachable end i32.const 13856 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5530,11 +5285,6 @@ i32.store local.get $10 i32.const 14064 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5546,16 +5296,11 @@ unreachable end i32.const 13728 + call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=12 - local.get $10 - call $~lib/string/String#toUpperCase - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toLowerCase local.set $10 @@ -5564,11 +5309,6 @@ i32.store local.get $10 i32.const 14272 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5580,16 +5320,11 @@ unreachable end i32.const 14304 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toLowerCase local.set $10 @@ -5598,11 +5333,6 @@ i32.store local.get $10 i32.const 14336 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5614,16 +5344,11 @@ unreachable end i32.const 14368 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toLowerCase local.set $10 @@ -5632,11 +5357,6 @@ i32.store local.get $10 i32.const 14368 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5652,7 +5372,7 @@ local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toLowerCase local.set $10 @@ -5661,11 +5381,6 @@ i32.store local.get $10 i32.const 14624 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5681,7 +5396,7 @@ local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String#toUpperCase local.set $10 @@ -5690,11 +5405,6 @@ i32.store local.get $10 i32.const 14624 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5706,11 +5416,6 @@ unreachable end i32.const 14656 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5718,11 +5423,6 @@ i32.store local.get $10 i32.const 14688 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5734,11 +5434,6 @@ unreachable end i32.const 14720 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5746,11 +5441,6 @@ i32.store local.get $10 i32.const 14752 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5762,11 +5452,6 @@ unreachable end i32.const 14784 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5774,11 +5459,6 @@ i32.store local.get $10 i32.const 14816 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5790,11 +5470,6 @@ unreachable end i32.const 14848 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5802,11 +5477,6 @@ i32.store local.get $10 i32.const 14880 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5818,11 +5488,6 @@ unreachable end i32.const 14912 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5830,11 +5495,6 @@ i32.store local.get $10 i32.const 14944 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5846,11 +5506,6 @@ unreachable end i32.const 14976 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5858,11 +5513,6 @@ i32.store local.get $10 i32.const 15008 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5874,11 +5524,6 @@ unreachable end i32.const 15040 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5886,11 +5531,6 @@ i32.store local.get $10 i32.const 15072 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5902,11 +5542,6 @@ unreachable end i32.const 15104 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5914,11 +5549,6 @@ i32.store local.get $10 i32.const 15136 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5930,11 +5560,6 @@ unreachable end i32.const 15168 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5942,11 +5567,6 @@ i32.store local.get $10 i32.const 15200 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5958,11 +5578,6 @@ unreachable end i32.const 15232 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5970,11 +5585,6 @@ i32.store local.get $10 i32.const 15264 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -5986,11 +5596,6 @@ unreachable end i32.const 15296 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -5998,11 +5603,6 @@ i32.store local.get $10 i32.const 15328 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6014,11 +5614,6 @@ unreachable end i32.const 15360 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6026,11 +5621,6 @@ i32.store local.get $10 i32.const 15392 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6042,11 +5632,6 @@ unreachable end i32.const 15424 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6054,11 +5639,6 @@ i32.store local.get $10 i32.const 15456 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6070,11 +5650,6 @@ unreachable end i32.const 15488 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6082,11 +5657,6 @@ i32.store local.get $10 i32.const 15520 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6098,11 +5668,6 @@ unreachable end i32.const 15552 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6110,11 +5675,6 @@ i32.store local.get $10 i32.const 15584 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6126,11 +5686,6 @@ unreachable end i32.const 15616 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6138,11 +5693,6 @@ i32.store local.get $10 i32.const 15648 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6154,11 +5704,6 @@ unreachable end i32.const 15680 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6166,11 +5711,6 @@ i32.store local.get $10 i32.const 15712 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6182,11 +5722,6 @@ unreachable end i32.const 15744 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6194,11 +5729,6 @@ i32.store local.get $10 i32.const 15776 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6210,11 +5740,6 @@ unreachable end i32.const 15808 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6222,11 +5747,6 @@ i32.store local.get $10 i32.const 15840 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6238,11 +5758,6 @@ unreachable end i32.const 15872 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6250,11 +5765,6 @@ i32.store local.get $10 i32.const 15904 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6266,11 +5776,6 @@ unreachable end i32.const 15936 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6278,11 +5783,6 @@ i32.store local.get $10 i32.const 15968 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6294,11 +5794,6 @@ unreachable end i32.const 16000 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6306,11 +5801,6 @@ i32.store local.get $10 i32.const 16032 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6322,11 +5812,6 @@ unreachable end i32.const 16064 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6334,11 +5819,6 @@ i32.store local.get $10 i32.const 16096 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6350,11 +5830,6 @@ unreachable end i32.const 16128 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6362,11 +5837,6 @@ i32.store local.get $10 i32.const 16160 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6378,11 +5848,6 @@ unreachable end i32.const 16192 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6390,11 +5855,6 @@ i32.store local.get $10 i32.const 16224 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6406,11 +5866,6 @@ unreachable end i32.const 16256 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6418,11 +5873,6 @@ i32.store local.get $10 i32.const 15328 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6434,11 +5884,6 @@ unreachable end i32.const 16288 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6446,11 +5891,6 @@ i32.store local.get $10 i32.const 16320 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6462,11 +5902,6 @@ unreachable end i32.const 16352 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6474,11 +5909,6 @@ i32.store local.get $10 i32.const 16384 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6490,11 +5920,6 @@ unreachable end i32.const 16416 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6502,11 +5927,6 @@ i32.store local.get $10 i32.const 16448 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6514,15 +5934,10 @@ i32.const 6000 i32.const 87 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16480 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 + call $~lib/builtins/abort + unreachable + end + i32.const 16480 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6530,11 +5945,6 @@ i32.store local.get $10 i32.const 16512 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6546,11 +5956,6 @@ unreachable end i32.const 16544 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6558,11 +5963,6 @@ i32.store local.get $10 i32.const 16576 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6574,11 +5974,6 @@ unreachable end i32.const 16608 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6586,11 +5981,6 @@ i32.store local.get $10 i32.const 16640 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6602,11 +5992,6 @@ unreachable end i32.const 16672 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6614,11 +5999,6 @@ i32.store local.get $10 i32.const 16704 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6630,11 +6010,6 @@ unreachable end i32.const 16736 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6642,11 +6017,6 @@ i32.store local.get $10 i32.const 16768 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6658,11 +6028,6 @@ unreachable end i32.const 16800 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6670,11 +6035,6 @@ i32.store local.get $10 i32.const 16832 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6686,11 +6046,6 @@ unreachable end i32.const 16864 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6698,11 +6053,6 @@ i32.store local.get $10 i32.const 16896 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6714,11 +6064,6 @@ unreachable end i32.const 16928 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6726,11 +6071,6 @@ i32.store local.get $10 i32.const 16960 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6742,11 +6082,6 @@ unreachable end i32.const 16992 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toLowerCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6754,11 +6089,6 @@ i32.store local.get $10 i32.const 17024 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6770,11 +6100,6 @@ unreachable end i32.const 17056 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6782,11 +6107,6 @@ i32.store local.get $10 i32.const 17088 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6798,11 +6118,6 @@ unreachable end i32.const 14304 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6810,11 +6125,6 @@ i32.store local.get $10 i32.const 17120 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6826,11 +6136,6 @@ unreachable end i32.const 17152 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6838,11 +6143,6 @@ i32.store local.get $10 i32.const 17184 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6854,11 +6154,6 @@ unreachable end i32.const 17216 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6866,11 +6161,6 @@ i32.store local.get $10 i32.const 17248 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6882,11 +6172,6 @@ unreachable end i32.const 17280 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6894,11 +6179,6 @@ i32.store local.get $10 i32.const 17312 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6910,11 +6190,6 @@ unreachable end i32.const 17344 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6922,11 +6197,6 @@ i32.store local.get $10 i32.const 17376 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6938,11 +6208,6 @@ unreachable end i32.const 17408 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6950,11 +6215,6 @@ i32.store local.get $10 i32.const 17376 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6966,11 +6226,6 @@ unreachable end i32.const 17440 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -6978,11 +6233,6 @@ i32.store local.get $10 i32.const 17472 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -6994,11 +6244,6 @@ unreachable end i32.const 17504 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7006,11 +6251,6 @@ i32.store local.get $10 i32.const 17536 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7022,11 +6262,6 @@ unreachable end i32.const 17568 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7034,11 +6269,6 @@ i32.store local.get $10 i32.const 17600 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7050,11 +6280,6 @@ unreachable end i32.const 17632 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7062,11 +6287,6 @@ i32.store local.get $10 i32.const 17664 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7078,11 +6298,6 @@ unreachable end i32.const 17696 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7090,11 +6305,6 @@ i32.store local.get $10 i32.const 17728 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7106,11 +6316,6 @@ unreachable end i32.const 17760 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $10 call $~lib/string/String#toUpperCase local.set $10 global.get $~lib/memory/__stack_pointer @@ -7118,11 +6323,6 @@ i32.store local.get $10 i32.const 17792 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 call $~lib/string/String.__eq i32.eqz if @@ -7144,7 +6344,7 @@ local.get $0 call $~lib/string/String.fromCodePoint local.tee $1 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 local.set $10 @@ -7154,7 +6354,7 @@ local.get $10 call $~lib/string/String#toLowerCase local.tee $2 - i32.store offset=20 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 local.set $10 @@ -7164,7 +6364,7 @@ local.get $10 call $~lib/string/String#toUpperCase local.tee $3 - i32.store offset=24 + i32.store offset=16 local.get $2 local.set $10 global.get $~lib/memory/__stack_pointer @@ -7340,11 +6540,6 @@ i64.ne if i32.const 17824 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 i32.const 1 local.get $0 f64.convert_i32_s @@ -7354,18 +6549,13 @@ f64.const 0 call $~lib/builtins/trace i32.const 17920 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 local.get $6 i32.const 10 call $~lib/number/I64#toString local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String.__concat local.set $10 @@ -7381,18 +6571,13 @@ f64.const 0 call $~lib/builtins/trace i32.const 19760 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 local.get $8 i32.const 10 call $~lib/number/I64#toString local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String.__concat local.set $10 @@ -7413,11 +6598,6 @@ i64.ne if i32.const 19824 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 i32.const 1 local.get $0 f64.convert_i32_s @@ -7427,18 +6607,13 @@ f64.const 0 call $~lib/builtins/trace i32.const 19920 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 local.get $7 i32.const 10 call $~lib/number/I64#toString local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String.__concat local.set $10 @@ -7454,18 +6629,13 @@ f64.const 0 call $~lib/builtins/trace i32.const 19984 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - local.get $10 local.get $9 i32.const 10 call $~lib/number/I64#toString local.set $10 global.get $~lib/memory/__stack_pointer local.get $10 - i32.store offset=8 + i32.store offset=4 local.get $10 call $~lib/string/String.__concat local.set $10 @@ -7489,7 +6659,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index 621340f408..e8270d424d 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -3553,7 +3553,7 @@ (local $6 i32) (local $7 i64) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3569,7 +3569,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 28 + i32.const 20 memory.fill memory.size i32.const 16 @@ -3603,18 +3603,12 @@ i32.store i32.const 1376 global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $5 i32.const 1056 call $~lib/string/String.__eq @@ -3627,18 +3621,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $5 i32.const 1056 call $~lib/string/String.__eq @@ -3651,18 +3639,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11808 - i32.store offset=8 i32.const 11808 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 local.get $5 i32.const 11856 call $~lib/string/String.__eq @@ -3675,18 +3657,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11904 - i32.store offset=8 i32.const 11904 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11952 - i32.store offset=4 local.get $5 i32.const 11952 call $~lib/string/String.__eq @@ -3699,18 +3675,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12000 - i32.store offset=8 i32.const 12000 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12096 - i32.store offset=4 local.get $5 i32.const 12096 call $~lib/string/String.__eq @@ -3723,18 +3693,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12096 - i32.store offset=8 i32.const 12096 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12192 - i32.store offset=4 local.get $5 i32.const 12192 call $~lib/string/String.__eq @@ -3747,18 +3711,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store offset=8 i32.const 12288 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12352 - i32.store offset=4 local.get $5 i32.const 12352 call $~lib/string/String.__eq @@ -3771,18 +3729,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12352 - i32.store offset=8 i32.const 12352 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12416 - i32.store offset=4 local.get $5 i32.const 12416 call $~lib/string/String.__eq @@ -3795,18 +3747,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12480 - i32.store offset=8 i32.const 12480 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12576 - i32.store offset=4 local.get $5 i32.const 12576 call $~lib/string/String.__eq @@ -3819,18 +3765,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12576 - i32.store offset=8 i32.const 12576 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12672 - i32.store offset=4 local.get $5 i32.const 12672 call $~lib/string/String.__eq @@ -3843,18 +3783,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12768 - i32.store offset=8 i32.const 12768 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12864 - i32.store offset=4 local.get $5 i32.const 12864 call $~lib/string/String.__eq @@ -3867,18 +3801,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12864 - i32.store offset=8 i32.const 12864 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12960 - i32.store offset=4 local.get $5 i32.const 12960 call $~lib/string/String.__eq @@ -3891,18 +3819,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13056 - i32.store offset=8 i32.const 13056 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13136 - i32.store offset=4 local.get $5 i32.const 13136 call $~lib/string/String.__eq @@ -3915,18 +3837,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13216 - i32.store offset=8 i32.const 13216 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13296 - i32.store offset=4 local.get $5 i32.const 13296 call $~lib/string/String.__eq @@ -3939,18 +3855,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13376 - i32.store offset=8 i32.const 13376 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13440 - i32.store offset=4 local.get $5 i32.const 13440 call $~lib/string/String.__eq @@ -3963,18 +3873,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13504 - i32.store offset=8 i32.const 13504 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13584 - i32.store offset=4 local.get $5 i32.const 13584 call $~lib/string/String.__eq @@ -3987,18 +3891,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13664 - i32.store offset=8 i32.const 13664 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13744 - i32.store offset=4 local.get $5 i32.const 13744 call $~lib/string/String.__eq @@ -4011,18 +3909,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13824 - i32.store offset=8 i32.const 13824 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13888 - i32.store offset=4 local.get $5 i32.const 13888 call $~lib/string/String.__eq @@ -4035,18 +3927,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13952 - i32.store offset=8 i32.const 13952 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14032 - i32.store offset=4 local.get $5 i32.const 14032 call $~lib/string/String.__eq @@ -4059,18 +3945,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14112 - i32.store offset=8 i32.const 14112 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14192 - i32.store offset=4 local.get $5 i32.const 14192 call $~lib/string/String.__eq @@ -4083,18 +3963,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14272 - i32.store offset=8 i32.const 14272 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14432 - i32.store offset=4 local.get $5 i32.const 14432 call $~lib/string/String.__eq @@ -4107,18 +3981,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14272 - i32.store offset=8 i32.const 14272 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14592 - i32.store offset=4 local.get $5 i32.const 14592 call $~lib/string/String.__eq @@ -4131,18 +3999,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14752 - i32.store offset=8 i32.const 14752 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14784 - i32.store offset=4 local.get $5 i32.const 14784 call $~lib/string/String.__eq @@ -4155,18 +4017,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14816 - i32.store offset=8 i32.const 14816 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14848 - i32.store offset=4 local.get $5 i32.const 14848 call $~lib/string/String.__eq @@ -4179,18 +4035,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14880 - i32.store offset=8 i32.const 14880 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15088 - i32.store offset=4 local.get $5 i32.const 15088 call $~lib/string/String.__eq @@ -4203,24 +4053,18 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14752 - i32.store offset=12 i32.const 14752 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 local.get $5 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $5 i32.const 15296 call $~lib/string/String.__eq @@ -4233,24 +4077,18 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15328 - i32.store offset=12 i32.const 15328 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 local.get $5 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15360 - i32.store offset=4 local.get $5 i32.const 15360 call $~lib/string/String.__eq @@ -4263,24 +4101,18 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15392 - i32.store offset=12 i32.const 15392 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 local.get $5 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15392 - i32.store offset=4 local.get $5 i32.const 15392 call $~lib/string/String.__eq @@ -4298,16 +4130,13 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 local.get $5 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15648 - i32.store offset=4 local.get $5 i32.const 15648 call $~lib/string/String.__eq @@ -4325,16 +4154,13 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 local.get $5 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15648 - i32.store offset=4 local.get $5 i32.const 15648 call $~lib/string/String.__eq @@ -4347,18 +4173,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15680 - i32.store offset=8 i32.const 15680 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15712 - i32.store offset=4 local.get $5 i32.const 15712 call $~lib/string/String.__eq @@ -4371,18 +4191,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15744 - i32.store offset=8 i32.const 15744 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15776 - i32.store offset=4 local.get $5 i32.const 15776 call $~lib/string/String.__eq @@ -4395,18 +4209,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15808 - i32.store offset=8 i32.const 15808 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.store offset=4 local.get $5 i32.const 15840 call $~lib/string/String.__eq @@ -4419,18 +4227,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15872 - i32.store offset=8 i32.const 15872 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15904 - i32.store offset=4 local.get $5 i32.const 15904 call $~lib/string/String.__eq @@ -4443,18 +4245,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15936 - i32.store offset=8 i32.const 15936 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15968 - i32.store offset=4 local.get $5 i32.const 15968 call $~lib/string/String.__eq @@ -4467,18 +4263,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16000 - i32.store offset=8 i32.const 16000 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16032 - i32.store offset=4 local.get $5 i32.const 16032 call $~lib/string/String.__eq @@ -4491,18 +4281,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16064 - i32.store offset=8 i32.const 16064 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16096 - i32.store offset=4 local.get $5 i32.const 16096 call $~lib/string/String.__eq @@ -4515,18 +4299,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16128 - i32.store offset=8 i32.const 16128 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16160 - i32.store offset=4 local.get $5 i32.const 16160 call $~lib/string/String.__eq @@ -4539,18 +4317,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.store offset=8 i32.const 16192 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16224 - i32.store offset=4 local.get $5 i32.const 16224 call $~lib/string/String.__eq @@ -4563,18 +4335,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16256 - i32.store offset=8 i32.const 16256 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16288 - i32.store offset=4 local.get $5 i32.const 16288 call $~lib/string/String.__eq @@ -4587,18 +4353,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.store offset=8 i32.const 16320 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16352 - i32.store offset=4 local.get $5 i32.const 16352 call $~lib/string/String.__eq @@ -4611,18 +4371,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16384 - i32.store offset=8 i32.const 16384 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16416 - i32.store offset=4 local.get $5 i32.const 16416 call $~lib/string/String.__eq @@ -4635,18 +4389,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16448 - i32.store offset=8 i32.const 16448 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16480 - i32.store offset=4 local.get $5 i32.const 16480 call $~lib/string/String.__eq @@ -4658,19 +4406,13 @@ i32.const 1 call $~lib/builtins/abort unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16512 - i32.store offset=8 + end i32.const 16512 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16544 - i32.store offset=4 local.get $5 i32.const 16544 call $~lib/string/String.__eq @@ -4683,18 +4425,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16576 - i32.store offset=8 i32.const 16576 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16608 - i32.store offset=4 local.get $5 i32.const 16608 call $~lib/string/String.__eq @@ -4707,18 +4443,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16640 - i32.store offset=8 i32.const 16640 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16672 - i32.store offset=4 local.get $5 i32.const 16672 call $~lib/string/String.__eq @@ -4731,18 +4461,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16704 - i32.store offset=8 i32.const 16704 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16736 - i32.store offset=4 local.get $5 i32.const 16736 call $~lib/string/String.__eq @@ -4755,18 +4479,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16768 - i32.store offset=8 i32.const 16768 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16800 - i32.store offset=4 local.get $5 i32.const 16800 call $~lib/string/String.__eq @@ -4779,18 +4497,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16832 - i32.store offset=8 i32.const 16832 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16864 - i32.store offset=4 local.get $5 i32.const 16864 call $~lib/string/String.__eq @@ -4803,18 +4515,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16896 - i32.store offset=8 i32.const 16896 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16928 - i32.store offset=4 local.get $5 i32.const 16928 call $~lib/string/String.__eq @@ -4827,18 +4533,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16960 - i32.store offset=8 i32.const 16960 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16992 - i32.store offset=4 local.get $5 i32.const 16992 call $~lib/string/String.__eq @@ -4851,18 +4551,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17024 - i32.store offset=8 i32.const 17024 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17056 - i32.store offset=4 local.get $5 i32.const 17056 call $~lib/string/String.__eq @@ -4875,18 +4569,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17088 - i32.store offset=8 i32.const 17088 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17120 - i32.store offset=4 local.get $5 i32.const 17120 call $~lib/string/String.__eq @@ -4899,18 +4587,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17152 - i32.store offset=8 i32.const 17152 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17184 - i32.store offset=4 local.get $5 i32.const 17184 call $~lib/string/String.__eq @@ -4923,18 +4605,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17216 - i32.store offset=8 i32.const 17216 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17248 - i32.store offset=4 local.get $5 i32.const 17248 call $~lib/string/String.__eq @@ -4947,18 +4623,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17280 - i32.store offset=8 i32.const 17280 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16352 - i32.store offset=4 local.get $5 i32.const 16352 call $~lib/string/String.__eq @@ -4971,18 +4641,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17312 - i32.store offset=8 i32.const 17312 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17344 - i32.store offset=4 local.get $5 i32.const 17344 call $~lib/string/String.__eq @@ -4995,18 +4659,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17376 - i32.store offset=8 i32.const 17376 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17408 - i32.store offset=4 local.get $5 i32.const 17408 call $~lib/string/String.__eq @@ -5019,18 +4677,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17440 - i32.store offset=8 i32.const 17440 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17472 - i32.store offset=4 local.get $5 i32.const 17472 call $~lib/string/String.__eq @@ -5043,18 +4695,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17504 - i32.store offset=8 i32.const 17504 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17536 - i32.store offset=4 local.get $5 i32.const 17536 call $~lib/string/String.__eq @@ -5067,18 +4713,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17568 - i32.store offset=8 i32.const 17568 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17600 - i32.store offset=4 local.get $5 i32.const 17600 call $~lib/string/String.__eq @@ -5091,18 +4731,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17632 - i32.store offset=8 i32.const 17632 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17664 - i32.store offset=4 local.get $5 i32.const 17664 call $~lib/string/String.__eq @@ -5115,18 +4749,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17696 - i32.store offset=8 i32.const 17696 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17728 - i32.store offset=4 local.get $5 i32.const 17728 call $~lib/string/String.__eq @@ -5139,18 +4767,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17760 - i32.store offset=8 i32.const 17760 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17792 - i32.store offset=4 local.get $5 i32.const 17792 call $~lib/string/String.__eq @@ -5163,18 +4785,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17824 - i32.store offset=8 i32.const 17824 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17856 - i32.store offset=4 local.get $5 i32.const 17856 call $~lib/string/String.__eq @@ -5187,18 +4803,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17888 - i32.store offset=8 i32.const 17888 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17920 - i32.store offset=4 local.get $5 i32.const 17920 call $~lib/string/String.__eq @@ -5211,18 +4821,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 17952 - i32.store offset=8 i32.const 17952 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17984 - i32.store offset=4 local.get $5 i32.const 17984 call $~lib/string/String.__eq @@ -5235,18 +4839,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18016 - i32.store offset=8 i32.const 18016 call $~lib/string/String#toLowerCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18048 - i32.store offset=4 local.get $5 i32.const 18048 call $~lib/string/String.__eq @@ -5259,18 +4857,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18080 - i32.store offset=8 i32.const 18080 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18112 - i32.store offset=4 local.get $5 i32.const 18112 call $~lib/string/String.__eq @@ -5283,18 +4875,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15328 - i32.store offset=8 i32.const 15328 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18144 - i32.store offset=4 local.get $5 i32.const 18144 call $~lib/string/String.__eq @@ -5307,18 +4893,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18176 - i32.store offset=8 i32.const 18176 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18208 - i32.store offset=4 local.get $5 i32.const 18208 call $~lib/string/String.__eq @@ -5331,18 +4911,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18240 - i32.store offset=8 i32.const 18240 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18272 - i32.store offset=4 local.get $5 i32.const 18272 call $~lib/string/String.__eq @@ -5355,18 +4929,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18304 - i32.store offset=8 i32.const 18304 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18336 - i32.store offset=4 local.get $5 i32.const 18336 call $~lib/string/String.__eq @@ -5379,18 +4947,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18368 - i32.store offset=8 i32.const 18368 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18400 - i32.store offset=4 local.get $5 i32.const 18400 call $~lib/string/String.__eq @@ -5403,18 +4965,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18432 - i32.store offset=8 i32.const 18432 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18400 - i32.store offset=4 local.get $5 i32.const 18400 call $~lib/string/String.__eq @@ -5427,18 +4983,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18464 - i32.store offset=8 i32.const 18464 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18496 - i32.store offset=4 local.get $5 i32.const 18496 call $~lib/string/String.__eq @@ -5451,18 +5001,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18528 - i32.store offset=8 i32.const 18528 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18560 - i32.store offset=4 local.get $5 i32.const 18560 call $~lib/string/String.__eq @@ -5475,18 +5019,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18592 - i32.store offset=8 i32.const 18592 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18624 - i32.store offset=4 local.get $5 i32.const 18624 call $~lib/string/String.__eq @@ -5499,18 +5037,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18656 - i32.store offset=8 i32.const 18656 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18688 - i32.store offset=4 local.get $5 i32.const 18688 call $~lib/string/String.__eq @@ -5523,18 +5055,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18720 - i32.store offset=8 i32.const 18720 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18752 - i32.store offset=4 local.get $5 i32.const 18752 call $~lib/string/String.__eq @@ -5547,18 +5073,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 18784 - i32.store offset=8 i32.const 18784 call $~lib/string/String#toUpperCase local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18816 - i32.store offset=4 local.get $5 i32.const 18816 call $~lib/string/String.__eq @@ -5580,7 +5100,7 @@ local.get $4 call $~lib/string/String.fromCodePoint local.tee $5 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $5 i32.store @@ -5588,7 +5108,7 @@ local.get $5 call $~lib/string/String#toLowerCase local.tee $6 - i32.store offset=20 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $5 i32.store @@ -5596,7 +5116,7 @@ local.get $5 call $~lib/string/String#toUpperCase local.tee $5 - i32.store offset=24 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -5765,9 +5285,6 @@ local.get $3 i64.ne if - global.get $~lib/memory/__stack_pointer - i32.const 18848 - i32.store i32.const 18848 i32.const 1 local.get $4 @@ -5777,15 +5294,12 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 18944 - i32.store offset=4 local.get $1 call $~lib/util/number/itoa64 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 i32.const 18944 local.get $5 call $~lib/string/String.__concat @@ -5801,15 +5315,12 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 20784 - i32.store offset=4 local.get $3 call $~lib/util/number/itoa64 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 i32.const 20784 local.get $5 call $~lib/string/String.__concat @@ -5830,9 +5341,6 @@ local.get $2 i64.ne if - global.get $~lib/memory/__stack_pointer - i32.const 20848 - i32.store i32.const 20848 i32.const 1 local.get $4 @@ -5842,15 +5350,12 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 20944 - i32.store offset=4 local.get $2 call $~lib/util/number/itoa64 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 i32.const 20944 local.get $5 call $~lib/string/String.__concat @@ -5866,15 +5371,12 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 21008 - i32.store offset=4 local.get $0 call $~lib/util/number/itoa64 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=4 i32.const 21008 local.get $5 call $~lib/string/String.__concat @@ -5899,7 +5401,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 8b5dc5579c..4f3eae1809 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -2859,6 +2859,41 @@ i32.const 0 drop ) + (func $start:std/string-encoding + call $std/string-encoding/testUTF16Length + memory.size + 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 240 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/pinSpace + i32.const 272 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/toSpace + i32.const 416 + call $~lib/rt/itcms/initLazy + global.set $~lib/rt/itcms/fromSpace + call $std/string-encoding/testUTF16Encode + call $std/string-encoding/testUTF16Decode + call $std/string-encoding/testUTF16DecodeUnsafe + call $std/string-encoding/testUTF8Length + call $std/string-encoding/testUTF8Encode + call $std/string-encoding/testUTF8EncodeNullTerminated + call $std/string-encoding/testUTF8ErrorMode + call $std/string-encoding/testUTF8Decode + call $std/string-encoding/testUTF8DecodeNullTerminated + call $std/string-encoding/testUTF8DecodeUnsafe + i32.const 1088 + call $std/string-encoding/testRoundtrip + i32.const 14208 + call $std/string-encoding/testRoundtrip + call $~lib/rt/itcms/__collect + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) global.get $std/string-encoding/str @@ -3435,11 +3470,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3483,11 +3513,6 @@ i32.store local.get $3 i32.const 560 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3509,11 +3534,6 @@ i32.store local.get $3 i32.const 592 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3535,11 +3555,6 @@ i32.store local.get $3 i32.const 624 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3561,11 +3576,6 @@ i32.store local.get $3 i32.const 656 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -3587,11 +3597,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4204,7 +4209,7 @@ (local $str i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -4212,15 +4217,7 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 880 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode @@ -4232,7 +4229,7 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $str - i32.store offset=8 + i32.store offset=4 local.get $str local.set $1 global.get $~lib/memory/__stack_pointer @@ -4240,11 +4237,6 @@ i32.store local.get $1 i32.const 880 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4257,11 +4249,6 @@ end global.get $~lib/memory/__stack_pointer i32.const 880 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode @@ -4273,7 +4260,7 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $str - i32.store offset=8 + i32.store offset=4 local.get $str local.set $1 global.get $~lib/memory/__stack_pointer @@ -4281,11 +4268,6 @@ i32.store local.get $1 i32.const 912 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4298,11 +4280,6 @@ end global.get $~lib/memory/__stack_pointer i32.const 944 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode @@ -4314,7 +4291,7 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $str - i32.store offset=8 + i32.store offset=4 local.get $str local.set $1 global.get $~lib/memory/__stack_pointer @@ -4322,11 +4299,6 @@ i32.store local.get $1 i32.const 944 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4339,11 +4311,6 @@ end global.get $~lib/memory/__stack_pointer i32.const 944 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode @@ -4355,7 +4322,7 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $str - i32.store offset=8 + i32.store offset=4 local.get $str local.set $1 global.get $~lib/memory/__stack_pointer @@ -4363,11 +4330,6 @@ i32.store local.get $1 i32.const 912 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -4379,7 +4341,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -4710,11 +4672,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4760,11 +4717,6 @@ i32.store local.get $3 i32.const 560 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4787,11 +4739,6 @@ i32.store local.get $3 i32.const 624 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4814,11 +4761,6 @@ i32.store local.get $3 i32.const 656 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4841,11 +4783,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4868,11 +4805,6 @@ i32.store local.get $3 i32.const 1056 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4895,11 +4827,6 @@ i32.store local.get $3 i32.const 656 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4922,11 +4849,6 @@ i32.store local.get $3 i32.const 528 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -5041,64 +4963,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $start:std/string-encoding - (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 - call $std/string-encoding/testUTF16Length - memory.size - 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 240 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 272 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 416 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - call $std/string-encoding/testUTF16Encode - call $std/string-encoding/testUTF16Decode - call $std/string-encoding/testUTF16DecodeUnsafe - call $std/string-encoding/testUTF8Length - call $std/string-encoding/testUTF8Encode - call $std/string-encoding/testUTF8EncodeNullTerminated - call $std/string-encoding/testUTF8ErrorMode - call $std/string-encoding/testUTF8Decode - call $std/string-encoding/testUTF8DecodeNullTerminated - call $std/string-encoding/testUTF8DecodeUnsafe - i32.const 1088 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $std/string-encoding/testRoundtrip - i32.const 14208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $std/string-encoding/testRoundtrip - call $~lib/rt/itcms/__collect - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/string/String.UTF16.decodeUnsafe (param $buf i32) (param $len i32) (result i32) (local $str i32) (local $3 i32) diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index 3182351243..ce82f5fe09 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -158,7 +158,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$156 + block $__inlined_func$~lib/rt/itcms/Object#unlink$158 local.get $1 i32.load offset=4 i32.const -4 @@ -182,7 +182,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$156 + br $__inlined_func$~lib/rt/itcms/Object#unlink$158 end local.get $1 i32.load offset=8 @@ -1653,50 +1653,15 @@ end local.get $2 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start + (func $start:std/string-encoding (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 22804 i32.lt_s @@ -1985,7 +1950,182 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF16DecodeUnsafe + 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 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + local.set $2 + local.get $1 + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 8 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 12 + i32.add + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 48 + 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 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2198,7 +2338,7 @@ global.set $~lib/memory/__stack_pointer call $std/string-encoding/testUTF8EncodeNullTerminated 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 @@ -2209,12 +2349,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 i32.const 1904 i32.const 0 i32.const 0 @@ -2227,13 +2361,10 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 local.get $0 i32.const 1904 call $~lib/string/String.__eq @@ -2247,9 +2378,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 i32.const 1904 i32.const 0 i32.const 1 @@ -2262,13 +2390,10 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 local.get $0 i32.const 1936 call $~lib/string/String.__eq @@ -2282,9 +2407,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 i32.const 1968 i32.const 0 i32.const 0 @@ -2297,13 +2419,10 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 local.get $0 i32.const 1968 call $~lib/string/String.__eq @@ -2317,9 +2436,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 i32.const 1968 i32.const 0 i32.const 1 @@ -2332,13 +2448,10 @@ i32.const 0 call $~lib/string/String.UTF8.decode local.tee $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 local.get $0 i32.const 1936 call $~lib/string/String.__eq @@ -2352,7 +2465,7 @@ unreachable end 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 @@ -2589,14 +2702,8 @@ i32.add global.set $~lib/memory/__stack_pointer call $std/string-encoding/testUTF8DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store i32.const 2112 call $std/string-encoding/testRoundtrip - global.get $~lib/memory/__stack_pointer - i32.const 15232 - i32.store i32.const 15232 call $std/string-encoding/testRoundtrip global.get $~lib/rt/itcms/state @@ -2632,10 +2739,6 @@ 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 return end i32.const 55600 @@ -2645,6 +2748,34 @@ call $~lib/builtins/abort unreachable ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~start + call $start:std/string-encoding + ) (func $~lib/string/String.UTF16.encode (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -2841,7 +2972,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$88 + block $__inlined_func$~lib/util/string/compareImpl$94 loop $while-continue|1 local.get $0 local.tee $3 @@ -2861,7 +2992,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 + br_if $__inlined_func$~lib/util/string/compareImpl$94 local.get $2 i32.const 2 i32.add @@ -2890,212 +3021,6 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $std/string-encoding/testUTF16DecodeUnsafe - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - local.set $2 - local.get $0 - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 - local.get $1 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $1 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1584 - i32.store offset=8 - local.get $1 - i32.const 1584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - i32.add - i32.const 2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=8 - local.get $1 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 4 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=8 - local.get $1 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 8 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=8 - local.get $1 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 12 - i32.add - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 - local.get $0 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 48 - 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 - ) (func $~lib/string/String.UTF8.encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -3694,9 +3619,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 local.get $1 i32.const 1552 call $~lib/string/String.__eq @@ -3740,9 +3662,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1584 - i32.store offset=8 local.get $1 i32.const 1584 call $~lib/string/String.__eq @@ -3765,9 +3684,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=8 local.get $1 i32.const 1648 call $~lib/string/String.__eq @@ -3790,9 +3706,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=8 local.get $1 i32.const 1680 call $~lib/string/String.__eq @@ -3815,9 +3728,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 local.get $1 i32.const 1552 call $~lib/string/String.__eq @@ -3840,9 +3750,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2080 - i32.store offset=8 local.get $1 i32.const 2080 call $~lib/string/String.__eq @@ -3865,9 +3772,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=8 local.get $1 i32.const 1680 call $~lib/string/String.__eq @@ -3890,9 +3794,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 local.get $0 i32.const 1552 call $~lib/string/String.__eq @@ -4249,7 +4150,7 @@ end end end - block $__inlined_func$~lib/rt/itcms/__renew$155 + block $__inlined_func$~lib/rt/itcms/__renew$157 local.get $1 local.get $0 i32.sub @@ -4268,7 +4169,7 @@ local.get $3 local.get $2 i32.store offset=16 - br $__inlined_func$~lib/rt/itcms/__renew$155 + br $__inlined_func$~lib/rt/itcms/__renew$157 end local.get $2 local.get $3 diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index f75a97a1ea..733dbecb2d 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -11876,11 +11876,6 @@ i32.store offset=4 local.get $21 i32.const 688 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 call $~lib/array/Array<~lib/string/String>#push drop end @@ -11981,11 +11976,6 @@ i32.store offset=4 local.get $21 i32.const 688 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 call $~lib/array/Array<~lib/string/String>#push drop end @@ -12191,13 +12181,13 @@ (local $51 i32) (local $52 i32) global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 76 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 96 + i32.const 76 memory.fill global.get $std/string/str i32.const 32 @@ -12212,17 +12202,7 @@ unreachable end i32.const 144 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 144 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12234,17 +12214,7 @@ unreachable end i32.const 176 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 176 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12256,17 +12226,7 @@ unreachable end i32.const 208 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 208 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12434,14 +12394,14 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 global.get $std/string/str local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=12 + i32.store offset=8 local.get $52 call $~lib/string/String#get:length i32.sub @@ -12452,11 +12412,6 @@ i32.store local.get $52 i32.const 720 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12468,11 +12423,6 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/String.__not i32.eqz i32.const 0 @@ -12487,11 +12437,6 @@ unreachable end i32.const 752 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/String.__not i32.eqz i32.const 1 @@ -12506,11 +12451,6 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/String.__not i32.eqz i32.const 1 @@ -12535,11 +12475,6 @@ i32.store local.get $52 i32.const 752 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12561,11 +12496,6 @@ i32.store local.get $52 i32.const 816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12587,11 +12517,6 @@ i32.store local.get $52 i32.const 848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12615,11 +12540,6 @@ i32.store local.get $52 i32.const 848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12639,11 +12559,6 @@ i32.store local.get $52 i32.const 880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12662,7 +12577,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 call $~lib/string/String.fromCharCodes local.set $52 @@ -12671,11 +12586,6 @@ i32.store local.get $52 i32.const 944 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12694,7 +12604,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 call $~lib/string/String.fromCharCodes local.set $52 @@ -12703,11 +12613,6 @@ i32.store local.get $52 i32.const 1008 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12726,7 +12631,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 call $~lib/string/String.fromCharCodes local.set $52 @@ -12735,11 +12640,6 @@ i32.store local.get $52 i32.const 1088 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12758,11 +12658,6 @@ i32.store local.get $52 i32.const 752 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12781,11 +12676,6 @@ i32.store local.get $52 i32.const 848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12804,11 +12694,6 @@ i32.store local.get $52 i32.const 1120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12826,11 +12711,6 @@ i32.store local.get $52 i32.const 1152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#startsWith i32.eqz @@ -12849,11 +12729,6 @@ i32.store local.get $52 i32.const 1184 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -12874,11 +12749,6 @@ i32.store local.get $52 i32.const 1216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#includes i32.eqz @@ -12898,11 +12768,6 @@ local.get $52 i32.const 0 i32.const 1248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -12933,11 +12798,6 @@ local.get $52 i32.const 15 i32.const 1248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -12961,18 +12821,8 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 3 i32.const 1248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -12980,11 +12830,6 @@ i32.store local.get $52 i32.const 1280 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -12996,18 +12841,8 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 10 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -13015,11 +12850,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13031,18 +12861,8 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 100 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -13050,11 +12870,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13066,18 +12881,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 5 i32.const 1248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -13085,11 +12890,6 @@ i32.store local.get $52 i32.const 1344 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13101,18 +12901,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 6 i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -13120,11 +12910,6 @@ i32.store local.get $52 i32.const 1408 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13136,18 +12921,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 8 i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -13155,11 +12930,6 @@ i32.store local.get $52 i32.const 1440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13178,11 +12948,6 @@ local.get $52 i32.const 0 i32.const 1248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -13213,11 +12978,6 @@ local.get $52 i32.const 15 i32.const 1248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -13241,30 +13001,15 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 3 i32.const 1248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 - call $~lib/string/String#padEnd + call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 i32.const 1280 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13276,18 +13021,8 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 10 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -13295,11 +13030,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13311,18 +13041,8 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 100 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -13330,11 +13050,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13346,18 +13061,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 5 i32.const 1248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -13365,11 +13070,6 @@ i32.store local.get $52 i32.const 1488 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13381,18 +13081,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 6 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -13400,11 +13090,6 @@ i32.store local.get $52 i32.const 1520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13416,18 +13101,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 8 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#padEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -13435,11 +13110,6 @@ i32.store local.get $52 i32.const 1552 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -13451,17 +13121,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13476,17 +13136,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -13501,17 +13151,7 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13557,11 +13197,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -13582,11 +13217,6 @@ i32.store local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const 2 @@ -13607,11 +13237,6 @@ i32.store local.get $52 i32.const 1632 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#indexOf i32.const -1 @@ -13632,11 +13257,6 @@ i32.store local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 2 call $~lib/string/String#indexOf i32.const 2 @@ -13657,11 +13277,6 @@ i32.store local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 3 call $~lib/string/String#indexOf i32.const -1 @@ -13682,11 +13297,6 @@ i32.store local.get $52 i32.const 1664 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const -1 call $~lib/string/String#indexOf i32.const 2 @@ -13701,17 +13311,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13728,17 +13328,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13761,11 +13351,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13794,11 +13379,6 @@ i32.store local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13821,11 +13401,6 @@ i32.store local.get $52 i32.const 1632 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13848,11 +13423,6 @@ i32.store local.get $52 i32.const 1696 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -13875,11 +13445,6 @@ i32.store local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 2 call $~lib/string/String#lastIndexOf i32.const 2 @@ -13900,11 +13465,6 @@ i32.store local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 3 call $~lib/string/String#lastIndexOf i32.const 2 @@ -13925,11 +13485,6 @@ i32.store local.get $52 i32.const 1664 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const -1 call $~lib/string/String#lastIndexOf i32.const -1 @@ -13950,11 +13505,6 @@ i32.store local.get $52 i32.const 1728 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#lastIndexOf i32.const -1 @@ -13975,11 +13525,6 @@ i32.store local.get $52 i32.const 1152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#lastIndexOf i32.const 0 @@ -13994,17 +13539,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const 0 i32.eq @@ -14018,17 +13553,7 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14042,17 +13567,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14066,17 +13581,7 @@ unreachable end i32.const 1760 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1760 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const 0 i32.eq @@ -14090,17 +13595,7 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1792 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14114,17 +13609,7 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1824 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14138,17 +13623,7 @@ unreachable end i32.const 1792 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14162,17 +13637,7 @@ unreachable end i32.const 1856 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14186,17 +13651,7 @@ unreachable end i32.const 1888 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14210,17 +13665,7 @@ unreachable end i32.const 1856 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1920 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14234,17 +13679,7 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1888 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14258,17 +13693,7 @@ unreachable end i32.const 1920 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1856 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14282,17 +13707,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1280 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const -1 i32.eq @@ -14306,17 +13721,7 @@ unreachable end i32.const 752 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String#localeCompare i32.const 1 i32.eq @@ -14330,11 +13735,6 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trimStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -14342,11 +13742,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14358,11 +13753,6 @@ unreachable end i32.const 1952 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trimStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -14370,11 +13760,6 @@ i32.store local.get $52 i32.const 1952 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14386,11 +13771,6 @@ unreachable end i32.const 1984 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trimStart local.set $52 global.get $~lib/memory/__stack_pointer @@ -14398,11 +13778,6 @@ i32.store local.get $52 i32.const 2032 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14414,11 +13789,6 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trimEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -14426,11 +13796,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14442,11 +13807,6 @@ unreachable end i32.const 1952 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trimEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -14454,11 +13814,6 @@ i32.store local.get $52 i32.const 1952 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14470,11 +13825,6 @@ unreachable end i32.const 1984 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trimEnd local.set $52 global.get $~lib/memory/__stack_pointer @@ -14482,11 +13832,6 @@ i32.store local.get $52 i32.const 2080 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14498,11 +13843,6 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trim local.set $52 global.get $~lib/memory/__stack_pointer @@ -14510,11 +13850,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14526,11 +13861,6 @@ unreachable end i32.const 1952 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trim local.set $52 global.get $~lib/memory/__stack_pointer @@ -14538,11 +13868,6 @@ i32.store local.get $52 i32.const 1952 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14554,11 +13879,6 @@ unreachable end i32.const 1984 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 call $~lib/string/String#trim local.set $52 global.get $~lib/memory/__stack_pointer @@ -14566,11 +13886,6 @@ i32.store local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -14771,11 +14086,6 @@ unreachable end i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14790,11 +14100,6 @@ unreachable end i32.const 2400 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -14809,11 +14114,6 @@ unreachable end i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14828,11 +14128,6 @@ unreachable end i32.const 2464 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14847,11 +14142,6 @@ unreachable end i32.const 2496 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 5 @@ -14866,11 +14156,6 @@ unreachable end i32.const 2528 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 455 @@ -14885,11 +14170,6 @@ unreachable end i32.const 2560 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 3855 @@ -14904,11 +14184,6 @@ unreachable end i32.const 2592 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 3855 @@ -14923,11 +14198,6 @@ unreachable end i32.const 2624 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 11 @@ -14942,11 +14212,6 @@ unreachable end i32.const 2656 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -14961,11 +14226,6 @@ unreachable end i32.const 2688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const -123 @@ -14980,11 +14240,6 @@ unreachable end i32.const 2720 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 123 @@ -14999,11 +14254,6 @@ unreachable end i32.const 2752 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const -12 @@ -15018,11 +14268,6 @@ unreachable end i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15037,11 +14282,6 @@ unreachable end i32.const 2784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15056,11 +14296,6 @@ unreachable end i32.const 2816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 16 call $~lib/string/parseInt f64.const 2833 @@ -15075,11 +14310,6 @@ unreachable end i32.const 2848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15094,11 +14324,6 @@ unreachable end i32.const 2880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15113,11 +14338,6 @@ unreachable end i32.const 2912 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15133,11 +14353,6 @@ end block $~lib/math/NativeMath.signbit|inlined.0 (result i32) i32.const 2944 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt local.set $10 @@ -15161,19 +14376,9 @@ unreachable end i32.const 2976 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt i32.const 3024 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 16 call $~lib/string/parseInt f64.eq @@ -15187,11 +14392,6 @@ unreachable end i32.const 3056 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 36893488147419103232 @@ -15206,11 +14406,6 @@ unreachable end i32.const 3056 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 13 call $~lib/string/parseInt f64.const 5135857308667095285760 @@ -15225,11 +14420,6 @@ unreachable end i32.const 3120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 10 call $~lib/string/parseInt f64.const -1.e+24 @@ -15244,11 +14434,6 @@ unreachable end i32.const 3200 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 16 call $~lib/string/parseInt f64.const 75557863725914323419136 @@ -15263,11 +14448,6 @@ unreachable end i32.const 3264 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15282,11 +14462,6 @@ unreachable end i32.const 3296 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 2 @@ -15301,11 +14476,6 @@ unreachable end i32.const 3344 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15320,11 +14490,6 @@ unreachable end i32.const 3376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 2 @@ -15339,11 +14504,6 @@ unreachable end i32.const 3424 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15358,11 +14518,6 @@ unreachable end i32.const 3456 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 1 @@ -15377,11 +14532,6 @@ unreachable end i32.const 3488 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt f64.const 0 @@ -15396,11 +14546,6 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt local.tee $11 @@ -15416,11 +14561,6 @@ unreachable end i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt local.tee $12 @@ -15436,11 +14576,6 @@ unreachable end i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt local.tee $13 @@ -15456,11 +14591,6 @@ unreachable end i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 37 call $~lib/string/parseInt local.tee $14 @@ -15476,11 +14606,6 @@ unreachable end i32.const 3600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt local.tee $15 @@ -15496,11 +14621,6 @@ unreachable end i32.const 3632 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/string/parseInt local.tee $16 @@ -15516,11 +14636,6 @@ unreachable end i32.const 3632 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/number/F32.parseFloat local.tee $17 local.get $17 @@ -15535,11 +14650,6 @@ unreachable end i32.const 3632 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/number/F64.parseFloat local.tee $18 local.get $18 @@ -15607,11 +14717,6 @@ unreachable end i32.const 3856 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/number/I32.parseInt global.get $~lib/number/I32.MAX_VALUE @@ -15654,11 +14759,6 @@ unreachable end i32.const 3904 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 call $~lib/number/I64.parseInt global.get $~lib/number/I64.MAX_VALUE @@ -15701,11 +14801,6 @@ unreachable end i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -15719,11 +14814,6 @@ unreachable end i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15737,11 +14827,6 @@ unreachable end i32.const 3968 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15755,11 +14840,6 @@ unreachable end i32.const 4000 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -15773,11 +14853,6 @@ unreachable end i32.const 4032 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-05 f64.eq @@ -15791,11 +14866,6 @@ unreachable end i32.const 4064 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -1e-05 f64.eq @@ -15809,11 +14879,6 @@ unreachable end i32.const 4096 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -3e-23 f64.eq @@ -15827,11 +14892,6 @@ unreachable end i32.const 4144 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 3e21 f64.eq @@ -15845,11 +14905,6 @@ unreachable end i32.const 4192 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15863,11 +14918,6 @@ unreachable end i32.const 4224 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15881,11 +14931,6 @@ unreachable end i32.const 4256 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -15899,11 +14944,6 @@ unreachable end i32.const 4288 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.25 f64.eq @@ -15917,11 +14957,6 @@ unreachable end i32.const 4320 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e3 f64.eq @@ -15935,11 +14970,6 @@ unreachable end i32.const 4352 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-10 f64.eq @@ -15953,11 +14983,6 @@ unreachable end i32.const 4400 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-30 f64.eq @@ -15971,11 +14996,6 @@ unreachable end i32.const 4448 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-323 f64.eq @@ -15989,11 +15009,6 @@ unreachable end i32.const 4496 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16007,11 +15022,6 @@ unreachable end i32.const 4544 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1.e+308 f64.eq @@ -16025,11 +15035,6 @@ unreachable end i32.const 4576 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -16043,11 +15048,6 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $27 local.get $27 @@ -16062,11 +15062,6 @@ unreachable end i32.const 4608 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16080,11 +15075,6 @@ unreachable end i32.const 4656 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-10 f64.eq @@ -16098,11 +15088,6 @@ unreachable end i32.const 4704 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16116,11 +15101,6 @@ unreachable end i32.const 4752 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16134,11 +15114,6 @@ unreachable end i32.const 4784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16152,11 +15127,6 @@ unreachable end i32.const 4816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16170,11 +15140,6 @@ unreachable end i32.const 4864 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 123456789 f64.eq @@ -16188,11 +15153,6 @@ unreachable end i32.const 4912 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16206,11 +15166,6 @@ unreachable end i32.const 4960 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-60 f64.eq @@ -16224,11 +15179,6 @@ unreachable end i32.const 4992 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1.e+60 f64.eq @@ -16242,11 +15192,6 @@ unreachable end i32.const 5024 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 123.4 f64.eq @@ -16260,11 +15205,6 @@ unreachable end i32.const 5056 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16278,11 +15218,6 @@ unreachable end i32.const 5088 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16296,11 +15231,6 @@ unreachable end i32.const 5136 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16314,11 +15244,6 @@ unreachable end i32.const 5184 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16332,11 +15257,6 @@ unreachable end i32.const 5232 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.022 f64.eq @@ -16350,11 +15270,6 @@ unreachable end i32.const 5280 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 11 f64.eq @@ -16368,11 +15283,6 @@ unreachable end i32.const 2784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16386,11 +15296,6 @@ unreachable end i32.const 5312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16404,11 +15309,6 @@ unreachable end i32.const 5344 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16422,11 +15322,6 @@ unreachable end i32.const 5376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1.1 f64.eq @@ -16440,11 +15335,6 @@ unreachable end i32.const 5408 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16458,11 +15348,6 @@ unreachable end i32.const 5440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16476,11 +15361,6 @@ unreachable end i32.const 5472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16494,11 +15374,6 @@ unreachable end i32.const 5504 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -1.1 f64.eq @@ -16512,11 +15387,6 @@ unreachable end i32.const 5536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16530,11 +15400,6 @@ unreachable end i32.const 5568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16548,11 +15413,6 @@ unreachable end i32.const 5600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16566,11 +15426,6 @@ unreachable end i32.const 5632 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16584,11 +15439,6 @@ unreachable end i32.const 5664 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16602,11 +15452,6 @@ unreachable end i32.const 5696 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16620,11 +15465,6 @@ unreachable end i32.const 5728 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16638,11 +15478,6 @@ unreachable end i32.const 5776 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16656,11 +15491,6 @@ unreachable end i32.const 5808 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16674,11 +15504,6 @@ unreachable end i32.const 5840 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16692,11 +15517,6 @@ unreachable end i32.const 5872 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16710,11 +15530,6 @@ unreachable end i32.const 5904 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 10 f64.eq @@ -16728,11 +15543,6 @@ unreachable end i32.const 5936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16746,11 +15556,6 @@ unreachable end i32.const 5968 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16764,11 +15569,6 @@ unreachable end i32.const 6000 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.01 f64.eq @@ -16782,11 +15582,6 @@ unreachable end i32.const 6048 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16800,11 +15595,6 @@ unreachable end i32.const 6080 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16818,11 +15608,6 @@ unreachable end i32.const 6112 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16836,11 +15621,6 @@ unreachable end i32.const 6144 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16854,11 +15634,6 @@ unreachable end i32.const 6176 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16872,11 +15647,6 @@ unreachable end i32.const 6208 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16890,11 +15660,6 @@ unreachable end i32.const 6240 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -16908,11 +15673,6 @@ unreachable end i32.const 6272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -16926,11 +15686,6 @@ unreachable end i32.const 6304 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -16944,11 +15699,6 @@ unreachable end i32.const 6336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 call $~lib/object/Object.is @@ -16964,11 +15714,6 @@ unreachable end i32.const 6368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -16984,11 +15729,6 @@ unreachable end i32.const 6400 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 call $~lib/object/Object.is @@ -17004,11 +15744,6 @@ unreachable end i32.const 2944 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -17024,11 +15759,6 @@ unreachable end i32.const 6432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const -0 call $~lib/object/Object.is @@ -17044,11 +15774,6 @@ unreachable end i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $28 local.get $28 @@ -17063,11 +15788,6 @@ unreachable end i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $29 local.get $29 @@ -17082,11 +15802,6 @@ unreachable end i32.const 6480 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $30 local.get $30 @@ -17101,11 +15816,6 @@ unreachable end i32.const 6512 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $31 local.get $31 @@ -17120,11 +15830,6 @@ unreachable end i32.const 6544 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $32 local.get $32 @@ -17139,11 +15844,6 @@ unreachable end i32.const 6576 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $33 local.get $33 @@ -17158,11 +15858,6 @@ unreachable end i32.const 6608 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $34 local.get $34 @@ -17177,11 +15872,6 @@ unreachable end i32.const 6640 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $35 local.get $35 @@ -17196,11 +15886,6 @@ unreachable end i32.const 6672 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $36 local.get $36 @@ -17215,11 +15900,6 @@ unreachable end i32.const 6704 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $37 local.get $37 @@ -17234,11 +15914,6 @@ unreachable end i32.const 6736 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $38 local.get $38 @@ -17253,11 +15928,6 @@ unreachable end i32.const 6768 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $39 local.get $39 @@ -17272,11 +15942,6 @@ unreachable end i32.const 6800 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $40 local.get $40 @@ -17291,11 +15956,6 @@ unreachable end i32.const 6832 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $41 local.get $41 @@ -17310,11 +15970,6 @@ unreachable end i32.const 6864 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $42 local.get $42 @@ -17329,11 +15984,6 @@ unreachable end i32.const 2336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $43 local.get $43 @@ -17348,11 +15998,6 @@ unreachable end i32.const 6896 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e22 f64.eq @@ -17366,11 +16011,6 @@ unreachable end i32.const 6928 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-22 f64.eq @@ -17384,11 +16024,6 @@ unreachable end i32.const 6960 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1.e+23 f64.eq @@ -17402,11 +16037,6 @@ unreachable end i32.const 6992 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-23 f64.eq @@ -17420,11 +16050,6 @@ unreachable end i32.const 7024 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1.e+37 f64.eq @@ -17438,11 +16063,6 @@ unreachable end i32.const 7056 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-37 f64.eq @@ -17456,11 +16076,6 @@ unreachable end i32.const 7088 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1.e+38 f64.eq @@ -17474,11 +16089,6 @@ unreachable end i32.const 7120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1e-38 f64.eq @@ -17492,11 +16102,6 @@ unreachable end i32.const 7152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.EPSILON f64.eq @@ -17510,11 +16115,6 @@ unreachable end i32.const 7216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MAX_VALUE f64.eq @@ -17528,11 +16128,6 @@ unreachable end i32.const 7296 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MIN_VALUE f64.eq @@ -17546,11 +16141,6 @@ unreachable end i32.const 7328 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1.e+308 f64.eq @@ -17564,11 +16154,6 @@ unreachable end i32.const 7376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1 f64.eq @@ -17582,11 +16167,6 @@ unreachable end i32.const 7520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17600,11 +16180,6 @@ unreachable end i32.const 7568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17618,11 +16193,6 @@ unreachable end i32.const 7616 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17636,11 +16206,6 @@ unreachable end i32.const 7664 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.neg @@ -17655,11 +16220,6 @@ unreachable end i32.const 7712 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17673,11 +16233,6 @@ unreachable end i32.const 7760 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17691,11 +16246,6 @@ unreachable end i32.const 7808 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17709,11 +16259,6 @@ unreachable end i32.const 7840 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17727,11 +16272,6 @@ unreachable end i32.const 7888 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17745,11 +16285,6 @@ unreachable end i32.const 7936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.neg @@ -17764,11 +16299,6 @@ unreachable end i32.const 7984 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17782,11 +16312,6 @@ unreachable end i32.const 8032 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const inf f64.eq @@ -17800,11 +16325,6 @@ unreachable end i32.const 8080 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $44 local.get $44 @@ -17819,11 +16339,6 @@ unreachable end i32.const 8112 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $45 local.get $45 @@ -17838,11 +16353,6 @@ unreachable end i32.const 8160 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $46 local.get $46 @@ -17857,11 +16367,6 @@ unreachable end i32.const 8208 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0 f64.eq @@ -17875,11 +16380,6 @@ unreachable end i32.const 8400 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat global.get $std/string/Ox1p_1073 f64.eq @@ -17893,11 +16393,6 @@ unreachable end i32.const 8592 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat global.get $std/string/Ox1_0000000000001p_1022 f64.eq @@ -17911,58 +16406,33 @@ unreachable end i32.const 8784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=72 - local.get $52 i32.const 8944 + call $~lib/string/String.__concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=76 + i32.store offset=12 local.get $52 + i32.const 9104 call $~lib/string/String.__concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=64 + i32.store offset=8 local.get $52 - i32.const 9104 + i32.const 9264 + call $~lib/string/String.__concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=68 + i32.store offset=4 local.get $52 + i32.const 9424 call $~lib/string/String.__concat local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=12 - local.get $52 - i32.const 9264 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 - call $~lib/string/String.__concat - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 - i32.const 9424 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 - call $~lib/string/String.__concat - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store + i32.store local.get $52 call $~lib/string/parseFloat global.get $~lib/builtins/f64.MAX_VALUE @@ -17977,11 +16447,6 @@ unreachable end i32.const 9584 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 9.753531888799502e-104 f64.eq @@ -17995,11 +16460,6 @@ unreachable end i32.const 9696 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.5961860348131807 f64.eq @@ -18013,11 +16473,6 @@ unreachable end i32.const 9808 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.18150131692180388 f64.eq @@ -18031,11 +16486,6 @@ unreachable end i32.const 9920 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.42070823575344535 f64.eq @@ -18049,11 +16499,6 @@ unreachable end i32.const 10032 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.6654686306516261 f64.eq @@ -18067,11 +16512,6 @@ unreachable end i32.const 10144 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.6101852922970868 f64.eq @@ -18085,11 +16525,6 @@ unreachable end i32.const 10256 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.7696695208236968 f64.eq @@ -18103,11 +16538,6 @@ unreachable end i32.const 10368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.25050653222286823 f64.eq @@ -18121,11 +16551,6 @@ unreachable end i32.const 10480 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.2740037230228005 f64.eq @@ -18139,11 +16564,6 @@ unreachable end i32.const 10592 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.20723093500497428 f64.eq @@ -18157,11 +16577,6 @@ unreachable end i32.const 10704 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 7.900280238081605 f64.eq @@ -18175,11 +16590,6 @@ unreachable end i32.const 10816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 98.22860653737297 f64.eq @@ -18193,11 +16603,6 @@ unreachable end i32.const 10928 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 746.894972319037 f64.eq @@ -18211,11 +16616,6 @@ unreachable end i32.const 11040 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 1630.2683202827284 f64.eq @@ -18229,11 +16629,6 @@ unreachable end i32.const 11152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 46371.68629719171 f64.eq @@ -18247,11 +16642,6 @@ unreachable end i32.const 11264 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 653780.5944497711 f64.eq @@ -18265,11 +16655,6 @@ unreachable end i32.const 11376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 234632.43565024371 f64.eq @@ -18283,11 +16668,6 @@ unreachable end i32.const 11488 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 97094817.16420048 f64.eq @@ -18301,11 +16681,6 @@ unreachable end i32.const 11600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 499690852.20518744 f64.eq @@ -18319,11 +16694,6 @@ unreachable end i32.const 11712 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 7925201200557245595648 f64.eq @@ -18337,11 +16707,6 @@ unreachable end i32.const 11824 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 6096564585983177528398588e5 f64.eq @@ -18355,11 +16720,6 @@ unreachable end i32.const 11936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 4800416117477028695992383e42 f64.eq @@ -18373,11 +16733,6 @@ unreachable end i32.const 12048 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 8524829079817968137287277e80 f64.eq @@ -18391,11 +16746,6 @@ unreachable end i32.const 12160 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 3271239291709782092398754e243 f64.eq @@ -18409,11 +16759,6 @@ unreachable end i32.const 12272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat local.tee $47 local.get $47 @@ -18428,11 +16773,6 @@ unreachable end i32.const 12304 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/parseFloat f64.const 0.1 f64.eq @@ -18447,20 +16787,10 @@ end global.get $~lib/memory/__stack_pointer i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__concat local.tee $48 - i32.store offset=80 + i32.store offset=60 local.get $48 local.set $52 global.get $~lib/memory/__stack_pointer @@ -18468,11 +16798,6 @@ i32.store local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18490,11 +16815,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18506,17 +16826,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18545,16 +16855,11 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 global.get $std/string/nullStr local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=4 + i32.store local.get $52 call $~lib/string/String.__ne i32.eqz @@ -18573,11 +16878,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18589,17 +16889,7 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18611,17 +16901,7 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18633,17 +16913,7 @@ unreachable end i32.const 12400 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18655,17 +16925,7 @@ unreachable end i32.const 12400 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12400 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18677,17 +16937,7 @@ unreachable end i32.const 12464 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12496 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18699,17 +16949,7 @@ unreachable end i32.const 12528 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12560 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18721,17 +16961,7 @@ unreachable end i32.const 12592 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12592 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -18743,17 +16973,7 @@ unreachable end i32.const 12592 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12640 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18765,17 +16985,7 @@ unreachable end i32.const 12688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12736 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -18787,17 +16997,7 @@ unreachable end i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -18809,17 +17009,7 @@ unreachable end i32.const 12784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -18831,17 +17021,7 @@ unreachable end i32.const 12784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -18853,17 +17033,7 @@ unreachable end i32.const 12784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -18875,17 +17045,7 @@ unreachable end i32.const 12784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -18898,17 +17058,7 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -18920,17 +17070,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lt i32.eqz if @@ -18942,17 +17082,7 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -18964,17 +17094,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lte i32.eqz if @@ -18986,17 +17106,7 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19009,17 +17119,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19032,17 +17132,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19055,17 +17145,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19078,17 +17158,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -19100,17 +17170,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lte i32.eqz if @@ -19122,17 +17182,7 @@ unreachable end i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lt i32.eqz if @@ -19144,17 +17194,7 @@ unreachable end i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -19166,17 +17206,7 @@ unreachable end i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19189,17 +17219,7 @@ unreachable end i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19212,17 +17232,7 @@ unreachable end i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz if @@ -19234,17 +17244,7 @@ unreachable end i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lt i32.eqz if @@ -19256,17 +17256,7 @@ unreachable end i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -19279,17 +17269,7 @@ unreachable end i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gt i32.eqz i32.eqz @@ -19302,17 +17282,7 @@ unreachable end i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lte i32.eqz if @@ -19324,17 +17294,7 @@ unreachable end i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -19346,17 +17306,7 @@ unreachable end i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12912 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gte i32.eqz i32.eqz @@ -19369,17 +17319,7 @@ unreachable end i32.const 12912 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__gte i32.eqz if @@ -19391,17 +17331,7 @@ unreachable end i32.const 12848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12912 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__lte i32.eqz if @@ -19413,17 +17343,7 @@ unreachable end i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19435,17 +17355,7 @@ unreachable end i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19457,17 +17367,7 @@ unreachable end i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19479,17 +17379,7 @@ unreachable end i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12944 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -19501,17 +17391,7 @@ unreachable end i32.const 12976 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12976 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19523,17 +17403,7 @@ unreachable end i32.const 13008 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 12976 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__ne i32.eqz if @@ -19548,7 +17418,7 @@ i32.const 65377 call $~lib/string/String.fromCodePoint local.tee $49 - i32.store offset=84 + i32.store offset=64 global.get $~lib/memory/__stack_pointer i32.const 55296 call $~lib/string/String.fromCodePoint @@ -19566,7 +17436,7 @@ local.get $52 call $~lib/string/String.__concat local.tee $50 - i32.store offset=88 + i32.store offset=68 local.get $49 local.set $52 global.get $~lib/memory/__stack_pointer @@ -19590,11 +17460,6 @@ unreachable end i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 call $~lib/string/String#get:length i32.const 3 i32.eq @@ -19608,11 +17473,6 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 100 call $~lib/string/String#repeat local.set $52 @@ -19621,11 +17481,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19637,11 +17492,6 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 0 call $~lib/string/String#repeat local.set $52 @@ -19650,11 +17500,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19666,11 +17511,6 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 1 call $~lib/string/String#repeat local.set $52 @@ -19679,11 +17519,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19695,11 +17530,6 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 2 call $~lib/string/String#repeat local.set $52 @@ -19708,11 +17538,6 @@ i32.store local.get $52 i32.const 12816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19724,11 +17549,6 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 3 call $~lib/string/String#repeat local.set $52 @@ -19737,11 +17557,6 @@ i32.store local.get $52 i32.const 13088 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19753,11 +17568,6 @@ unreachable end i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 4 call $~lib/string/String#repeat local.set $52 @@ -19766,11 +17576,6 @@ i32.store local.get $52 i32.const 13120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19782,11 +17587,6 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 5 call $~lib/string/String#repeat local.set $52 @@ -19795,11 +17595,6 @@ i32.store local.get $52 i32.const 13168 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19811,11 +17606,6 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 6 call $~lib/string/String#repeat local.set $52 @@ -19824,11 +17614,6 @@ i32.store local.get $52 i32.const 13200 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19840,11 +17625,6 @@ unreachable end i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 7 call $~lib/string/String#repeat local.set $52 @@ -19853,11 +17633,6 @@ i32.store local.get $52 i32.const 13232 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19869,23 +17644,8 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -19893,11 +17653,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19909,23 +17664,8 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -19933,11 +17673,6 @@ i32.store local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19949,35 +17684,15 @@ unreachable end i32.const 3568 + i32.const 3568 + i32.const 688 + call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 - local.get $52 - i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 + i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 - call $~lib/string/String#replace - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 - i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -19989,23 +17704,8 @@ unreachable end i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20013,11 +17713,6 @@ i32.store local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20029,23 +17724,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20053,11 +17733,6 @@ i32.store local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20069,23 +17744,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20093,11 +17753,6 @@ i32.store local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20109,23 +17764,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 1888 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20133,11 +17773,6 @@ i32.store local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20149,23 +17784,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20173,11 +17793,6 @@ i32.store local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20189,23 +17804,8 @@ unreachable end i32.const 13280 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20213,11 +17813,6 @@ i32.store local.get $52 i32.const 13312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20229,23 +17824,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20253,11 +17833,6 @@ i32.store local.get $52 i32.const 13344 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20269,23 +17844,8 @@ unreachable end i32.const 13376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 13408 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20293,11 +17853,6 @@ i32.store local.get $52 i32.const 13344 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20309,23 +17864,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 13472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20333,11 +17873,6 @@ i32.store local.get $52 i32.const 13504 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20349,23 +17884,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replace local.set $52 global.get $~lib/memory/__stack_pointer @@ -20373,11 +17893,6 @@ i32.store local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20389,23 +17904,8 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20413,11 +17913,6 @@ i32.store local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20429,23 +17924,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20453,11 +17933,6 @@ i32.store local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20469,23 +17944,8 @@ unreachable end i32.const 1520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20493,11 +17953,6 @@ i32.store local.get $52 i32.const 13472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20509,23 +17964,8 @@ unreachable end i32.const 13536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20533,11 +17973,6 @@ i32.store local.get $52 i32.const 13584 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20549,23 +17984,8 @@ unreachable end i32.const 1520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20573,11 +17993,6 @@ i32.store local.get $52 i32.const 1520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20589,23 +18004,8 @@ unreachable end i32.const 13616 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 13584 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20613,11 +18013,6 @@ i32.store local.get $52 i32.const 13664 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20629,23 +18024,8 @@ unreachable end i32.const 1520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 13472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20653,11 +18033,6 @@ i32.store local.get $52 i32.const 13712 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20669,75 +18044,35 @@ unreachable end i32.const 13744 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 - i32.const 13776 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 - i32.const 13472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 - call $~lib/string/String#replaceAll - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 - i32.const 13808 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 469 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 - i32.const 1888 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 - i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 + i32.const 13776 + i32.const 13472 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 i32.store local.get $52 + i32.const 13808 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 469 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 1312 + i32.const 1888 + i32.const 3568 + call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=4 + i32.store local.get $52 + i32.const 1312 call $~lib/string/String.__eq i32.eqz if @@ -20749,23 +18084,8 @@ unreachable end i32.const 1888 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 13840 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 13472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20773,11 +18093,6 @@ i32.store local.get $52 i32.const 1888 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20789,23 +18104,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 13872 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20813,11 +18113,6 @@ i32.store local.get $52 i32.const 13904 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20829,23 +18124,8 @@ unreachable end i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20853,11 +18133,6 @@ i32.store local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20869,23 +18144,8 @@ unreachable end i32.const 13280 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20893,11 +18153,6 @@ i32.store local.get $52 i32.const 13936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20909,23 +18164,8 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20933,11 +18173,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20949,23 +18184,8 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -20973,11 +18193,6 @@ i32.store local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -20989,23 +18204,8 @@ unreachable end i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21013,11 +18213,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21029,23 +18224,8 @@ unreachable end i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21053,11 +18233,6 @@ i32.store local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21069,23 +18244,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21093,11 +18253,6 @@ i32.store local.get $52 i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21109,23 +18264,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 1792 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21133,11 +18273,6 @@ i32.store local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21149,23 +18284,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 3568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21173,11 +18293,6 @@ i32.store local.get $52 i32.const 13968 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21189,23 +18304,8 @@ unreachable end i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 - i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 - i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 + i32.const 688 + i32.const 688 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21213,11 +18313,6 @@ i32.store local.get $52 i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21229,23 +18324,8 @@ unreachable end i32.const 14016 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 14048 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21253,11 +18333,6 @@ i32.store local.get $52 i32.const 14080 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21269,23 +18344,8 @@ unreachable end i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 12368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 14128 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21293,11 +18353,6 @@ i32.store local.get $52 i32.const 14128 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21309,23 +18364,8 @@ unreachable end i32.const 13088 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 14160 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21333,11 +18373,6 @@ i32.store local.get $52 i32.const 14192 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21349,23 +18384,8 @@ unreachable end i32.const 13088 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 12816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 i32.const 14048 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=60 - local.get $52 call $~lib/string/String#replaceAll local.set $52 global.get $~lib/memory/__stack_pointer @@ -21373,11 +18393,6 @@ i32.store local.get $52 i32.const 14240 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21394,7 +18409,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 i32.const 1 @@ -21407,11 +18422,6 @@ i32.store local.get $52 i32.const 14272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21426,7 +18436,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -1 i32.const 1 @@ -21439,11 +18449,6 @@ i32.store local.get $52 i32.const 14320 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21458,7 +18463,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -5 i32.const 1 @@ -21471,11 +18476,6 @@ i32.store local.get $52 i32.const 14352 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21490,7 +18490,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 i32.const 7 @@ -21501,11 +18501,6 @@ i32.store local.get $52 i32.const 14384 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21520,7 +18515,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -11 i32.const -6 @@ -21531,11 +18526,6 @@ i32.store local.get $52 i32.const 14416 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21550,7 +18540,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 4 i32.const 3 @@ -21561,11 +18551,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21580,7 +18565,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 i32.const -1 @@ -21591,11 +18576,6 @@ i32.store local.get $52 i32.const 14448 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21610,7 +18590,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 i32.const 1 @@ -21623,11 +18603,6 @@ i32.store local.get $52 i32.const 14272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21642,7 +18617,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -1 i32.const 1 @@ -21655,11 +18630,6 @@ i32.store local.get $52 i32.const 14320 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21674,7 +18644,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -5 i32.const 1 @@ -21687,11 +18657,6 @@ i32.store local.get $52 i32.const 14352 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21706,7 +18671,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 i32.const 7 @@ -21717,11 +18682,6 @@ i32.store local.get $52 i32.const 14496 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21736,7 +18696,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -11 i32.const -6 @@ -21747,11 +18707,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21766,7 +18721,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 4 i32.const 3 @@ -21777,11 +18732,6 @@ i32.store local.get $52 i32.const 14544 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21796,7 +18746,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 i32.const -1 @@ -21807,11 +18757,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21826,7 +18771,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 i32.const 100 @@ -21837,11 +18782,6 @@ i32.store local.get $52 i32.const 14272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21856,7 +18796,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 4 i32.const 4 @@ -21867,11 +18807,6 @@ i32.store local.get $52 i32.const 14576 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21886,7 +18821,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 4 i32.const -3 @@ -21897,11 +18832,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21916,7 +18846,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 i32.const 1 @@ -21929,11 +18859,6 @@ i32.store local.get $52 i32.const 14272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21948,7 +18873,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -1 i32.const 1 @@ -21961,11 +18886,6 @@ i32.store local.get $52 i32.const 14272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -21980,7 +18900,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -5 i32.const 1 @@ -21993,11 +18913,6 @@ i32.store local.get $52 i32.const 14272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22012,7 +18927,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 i32.const 7 @@ -22023,11 +18938,6 @@ i32.store local.get $52 i32.const 14384 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22042,7 +18952,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const -11 i32.const -6 @@ -22053,11 +18963,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22072,7 +18977,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 4 i32.const 3 @@ -22083,11 +18988,6 @@ i32.store local.get $52 i32.const 14608 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22102,7 +19002,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 i32.const -1 @@ -22113,11 +19013,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22132,7 +19027,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 i32.const 100 @@ -22143,11 +19038,6 @@ i32.store local.get $52 i32.const 14272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22162,7 +19052,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 4 i32.const 4 @@ -22173,11 +19063,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22192,7 +19077,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 4 i32.const -3 @@ -22203,11 +19088,6 @@ i32.store local.get $52 i32.const 1888 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -22220,18 +19100,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 0 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22246,7 +19121,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -22256,11 +19131,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22276,23 +19146,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22313,23 +19173,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22344,7 +19194,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -22354,11 +19204,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22374,23 +19219,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 6608 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22405,7 +19240,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -22415,11 +19250,6 @@ i32.store local.get $52 i32.const 14816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22435,23 +19265,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22466,7 +19286,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -22476,11 +19296,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22490,7 +19305,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -22500,11 +19315,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22514,7 +19324,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -22524,11 +19334,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22544,23 +19349,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 14848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 14896 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22575,7 +19370,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -22585,11 +19380,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22599,7 +19389,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -22609,11 +19399,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22623,7 +19408,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -22633,11 +19418,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22653,23 +19433,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 14928 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22684,7 +19454,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -22694,11 +19464,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22708,7 +19473,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -22718,11 +19483,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22732,7 +19492,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -22742,11 +19502,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22756,7 +19511,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get @@ -22766,11 +19521,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22786,23 +19536,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 14960 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22817,7 +19557,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -22827,11 +19567,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22841,7 +19576,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -22851,11 +19586,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22865,7 +19595,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -22875,11 +19605,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22889,7 +19614,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get @@ -22899,11 +19624,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22919,23 +19639,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 14992 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -22950,7 +19660,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -22960,11 +19670,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22974,7 +19679,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -22984,11 +19689,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -22998,21 +19698,16 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 - i32.const 13440 + call $~lib/array/Array<~lib/string/String>#__get local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=4 + i32.store local.get $52 + i32.const 13440 call $~lib/string/String.__eq else i32.const 0 @@ -23022,7 +19717,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get @@ -23032,11 +19727,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23052,23 +19742,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -23083,7 +19763,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -23093,11 +19773,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23107,7 +19782,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -23117,11 +19792,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23131,7 +19801,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -23141,11 +19811,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23161,21 +19826,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 0 call $~lib/string/String#split local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -23196,21 +19851,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 call $~lib/string/String#split local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -23225,7 +19870,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -23235,11 +19880,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23255,21 +19895,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 1 call $~lib/string/String#split local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -23284,7 +19914,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -23294,11 +19924,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23314,21 +19939,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const 4 call $~lib/string/String#split local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -23343,7 +19958,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -23353,11 +19968,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23367,7 +19977,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -23377,11 +19987,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23391,7 +19996,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -23401,11 +20006,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23421,21 +20021,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 1312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const -1 call $~lib/string/String#split local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -23450,7 +20040,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -23460,11 +20050,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23474,7 +20059,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -23484,11 +20069,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23498,7 +20078,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -23508,11 +20088,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23528,21 +20103,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 14816 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 1600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 i32.const -1 call $~lib/string/String#split local.tee $51 - i32.store offset=92 + i32.store offset=72 local.get $51 local.set $52 global.get $~lib/memory/__stack_pointer @@ -23557,7 +20122,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -23567,11 +20132,6 @@ i32.store local.get $52 i32.const 784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23581,7 +20141,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -23591,11 +20151,6 @@ i32.store local.get $52 i32.const 12336 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23605,7 +20160,7 @@ local.set $52 global.get $~lib/memory/__stack_pointer local.get $52 - i32.store offset=8 + i32.store offset=4 local.get $52 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -23615,11 +20170,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq else i32.const 0 @@ -23642,11 +20192,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23666,11 +20211,6 @@ i32.store local.get $52 i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23690,11 +20230,6 @@ i32.store local.get $52 i32.const 16768 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23714,11 +20249,6 @@ i32.store local.get $52 i32.const 16800 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23738,11 +20268,6 @@ i32.store local.get $52 i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23762,11 +20287,6 @@ i32.store local.get $52 i32.const 16832 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23786,11 +20306,6 @@ i32.store local.get $52 i32.const 12976 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23810,11 +20325,6 @@ i32.store local.get $52 i32.const 16864 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23834,11 +20344,6 @@ i32.store local.get $52 i32.const 16896 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23858,11 +20363,6 @@ i32.store local.get $52 i32.const 16928 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23882,11 +20382,6 @@ i32.store local.get $52 i32.const 16976 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23906,11 +20401,6 @@ i32.store local.get $52 i32.const 17024 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23930,11 +20420,6 @@ i32.store local.get $52 i32.const 17072 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23954,11 +20439,6 @@ i32.store local.get $52 i32.const 17120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -23978,11 +20458,6 @@ i32.store local.get $52 i32.const 17168 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24002,11 +20477,6 @@ i32.store local.get $52 i32.const 17216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24026,11 +20496,6 @@ i32.store local.get $52 i32.const 17264 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24050,11 +20515,6 @@ i32.store local.get $52 i32.const 17296 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24074,11 +20534,6 @@ i32.store local.get $52 i32.const 17328 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24098,11 +20553,6 @@ i32.store local.get $52 i32.const 17216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24122,11 +20572,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24146,11 +20591,6 @@ i32.store local.get $52 i32.const 17360 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24170,11 +20610,6 @@ i32.store local.get $52 i32.const 17168 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24194,11 +20629,6 @@ i32.store local.get $52 i32.const 17392 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24218,11 +20648,6 @@ i32.store local.get $52 i32.const 17440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24242,11 +20667,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24266,11 +20686,6 @@ i32.store local.get $52 i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24290,11 +20705,6 @@ i32.store local.get $52 i32.const 16768 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24314,11 +20724,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24338,11 +20743,6 @@ i32.store local.get $52 i32.const 17488 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24362,11 +20762,6 @@ i32.store local.get $52 i32.const 17520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24386,11 +20781,6 @@ i32.store local.get $52 i32.const 17552 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24410,11 +20800,6 @@ i32.store local.get $52 i32.const 17584 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24434,11 +20819,6 @@ i32.store local.get $52 i32.const 17616 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24458,11 +20838,6 @@ i32.store local.get $52 i32.const 17648 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24482,11 +20857,6 @@ i32.store local.get $52 i32.const 17680 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24506,11 +20876,6 @@ i32.store local.get $52 i32.const 17712 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24530,11 +20895,6 @@ i32.store local.get $52 i32.const 17760 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24554,11 +20914,6 @@ i32.store local.get $52 i32.const 17808 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24578,11 +20933,6 @@ i32.store local.get $52 i32.const 17856 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24602,11 +20952,6 @@ i32.store local.get $52 i32.const 17904 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24626,11 +20971,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24650,11 +20990,6 @@ i32.store local.get $52 i32.const 16832 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24674,11 +21009,6 @@ i32.store local.get $52 i32.const 17808 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24698,11 +21028,6 @@ i32.store local.get $52 i32.const 17952 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24722,11 +21047,6 @@ i32.store local.get $52 i32.const 18000 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24746,11 +21066,6 @@ i32.store local.get $52 i32.const 18048 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24770,11 +21085,6 @@ i32.store local.get $52 i32.const 18048 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24794,11 +21104,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24818,11 +21123,6 @@ i32.store local.get $52 i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24842,11 +21142,6 @@ i32.store local.get $52 i32.const 12880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24866,11 +21161,6 @@ i32.store local.get $52 i32.const 18096 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24890,11 +21180,6 @@ i32.store local.get $52 i32.const 18128 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24914,11 +21199,6 @@ i32.store local.get $52 i32.const 18160 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24938,11 +21218,6 @@ i32.store local.get $52 i32.const 18192 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24962,11 +21237,6 @@ i32.store local.get $52 i32.const 18224 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -24986,11 +21256,6 @@ i32.store local.get $52 i32.const 18272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25010,11 +21275,6 @@ i32.store local.get $52 i32.const 18352 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25034,11 +21294,6 @@ i32.store local.get $52 i32.const 18448 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25058,11 +21313,6 @@ i32.store local.get $52 i32.const 18544 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25082,11 +21332,6 @@ i32.store local.get $52 i32.const 18640 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25106,11 +21351,6 @@ i32.store local.get $52 i32.const 18736 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25130,11 +21370,6 @@ i32.store local.get $52 i32.const 18784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25154,11 +21389,6 @@ i32.store local.get $52 i32.const 18848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25177,12 +21407,7 @@ local.get $52 i32.store local.get $52 - i32.const 18912 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 + i32.const 18912 call $~lib/string/String.__eq i32.eqz if @@ -25202,11 +21427,6 @@ i32.store local.get $52 i32.const 18960 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25226,11 +21446,6 @@ i32.store local.get $52 i32.const 19008 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25250,11 +21465,6 @@ i32.store local.get $52 i32.const 19056 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25274,11 +21484,6 @@ i32.store local.get $52 i32.const 19104 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25298,11 +21503,6 @@ i32.store local.get $52 i32.const 19152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25322,11 +21522,6 @@ i32.store local.get $52 i32.const 19200 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25346,11 +21541,6 @@ i32.store local.get $52 i32.const 19248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25370,11 +21560,6 @@ i32.store local.get $52 i32.const 19296 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25394,11 +21579,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25418,11 +21598,6 @@ i32.store local.get $52 i32.const 16800 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25442,11 +21617,6 @@ i32.store local.get $52 i32.const 1376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25466,11 +21636,6 @@ i32.store local.get $52 i32.const 12976 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25490,11 +21655,6 @@ i32.store local.get $52 i32.const 16864 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25514,11 +21674,6 @@ i32.store local.get $52 i32.const 16896 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25538,11 +21693,6 @@ i32.store local.get $52 i32.const 16976 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25562,11 +21712,6 @@ i32.store local.get $52 i32.const 19344 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25586,11 +21731,6 @@ i32.store local.get $52 i32.const 19392 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25610,11 +21750,6 @@ i32.store local.get $52 i32.const 17440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25634,11 +21769,6 @@ i32.store local.get $52 i32.const 19440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25658,11 +21788,6 @@ i32.store local.get $52 i32.const 19488 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25682,11 +21807,6 @@ i32.store local.get $52 i32.const 19536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25706,11 +21826,6 @@ i32.store local.get $52 i32.const 19584 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25730,11 +21845,6 @@ i32.store local.get $52 i32.const 19632 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25754,11 +21864,6 @@ i32.store local.get $52 i32.const 19680 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25778,11 +21883,6 @@ i32.store local.get $52 i32.const 19744 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25802,11 +21902,6 @@ i32.store local.get $52 i32.const 19808 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25826,11 +21921,6 @@ i32.store local.get $52 i32.const 19872 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25850,11 +21940,6 @@ i32.store local.get $52 i32.const 19936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25874,11 +21959,6 @@ i32.store local.get $52 i32.const 20000 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25898,11 +21978,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25922,11 +21997,6 @@ i32.store local.get $52 i32.const 20064 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25946,11 +22016,6 @@ i32.store local.get $52 i32.const 17440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25970,11 +22035,6 @@ i32.store local.get $52 i32.const 19440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -25994,11 +22054,6 @@ i32.store local.get $52 i32.const 20096 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26018,11 +22073,6 @@ i32.store local.get $52 i32.const 19488 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26042,11 +22092,6 @@ i32.store local.get $52 i32.const 20144 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26066,11 +22111,6 @@ i32.store local.get $52 i32.const 20192 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26090,11 +22130,6 @@ i32.store local.get $52 i32.const 20240 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26114,11 +22149,6 @@ i32.store local.get $52 i32.const 20304 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26138,11 +22168,6 @@ i32.store local.get $52 i32.const 20368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26162,11 +22187,6 @@ i32.store local.get $52 i32.const 20432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26186,11 +22206,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26210,11 +22225,6 @@ i32.store local.get $52 i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26234,11 +22244,6 @@ i32.store local.get $52 i32.const 13440 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26258,11 +22263,6 @@ i32.store local.get $52 i32.const 17520 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26282,11 +22282,6 @@ i32.store local.get $52 i32.const 17616 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26306,11 +22301,6 @@ i32.store local.get $52 i32.const 20496 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26330,11 +22320,6 @@ i32.store local.get $52 i32.const 20544 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26354,11 +22339,6 @@ i32.store local.get $52 i32.const 20592 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26378,11 +22358,6 @@ i32.store local.get $52 i32.const 20640 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26402,11 +22377,6 @@ i32.store local.get $52 i32.const 20688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26426,11 +22396,6 @@ i32.store local.get $52 i32.const 20736 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26450,11 +22415,6 @@ i32.store local.get $52 i32.const 20800 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26474,11 +22434,6 @@ i32.store local.get $52 i32.const 20864 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26498,11 +22453,6 @@ i32.store local.get $52 i32.const 20928 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26522,11 +22472,6 @@ i32.store local.get $52 i32.const 20992 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26546,11 +22491,6 @@ i32.store local.get $52 i32.const 21056 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26570,11 +22510,6 @@ i32.store local.get $52 i32.const 21056 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26594,11 +22529,6 @@ i32.store local.get $52 i32.const 2368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26618,11 +22548,6 @@ i32.store local.get $52 i32.const 2432 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26642,11 +22567,6 @@ i32.store local.get $52 i32.const 18096 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26666,11 +22586,6 @@ i32.store local.get $52 i32.const 18128 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26690,11 +22605,6 @@ i32.store local.get $52 i32.const 18192 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26714,11 +22624,6 @@ i32.store local.get $52 i32.const 18224 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26738,11 +22643,6 @@ i32.store local.get $52 i32.const 18640 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26762,11 +22662,6 @@ i32.store local.get $52 i32.const 21120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26786,11 +22681,6 @@ i32.store local.get $52 i32.const 21248 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26810,11 +22700,6 @@ i32.store local.get $52 i32.const 21408 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26834,11 +22719,6 @@ i32.store local.get $52 i32.const 21504 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26858,11 +22738,6 @@ i32.store local.get $52 i32.const 21616 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26882,11 +22757,6 @@ i32.store local.get $52 i32.const 21712 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26906,11 +22776,6 @@ i32.store local.get $52 i32.const 21792 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26930,11 +22795,6 @@ i32.store local.get $52 i32.const 21856 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26954,11 +22814,6 @@ i32.store local.get $52 i32.const 21920 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -26978,11 +22833,6 @@ i32.store local.get $52 i32.const 21984 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27002,11 +22852,6 @@ i32.store local.get $52 i32.const 22048 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27026,11 +22871,6 @@ i32.store local.get $52 i32.const 22112 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27050,11 +22890,6 @@ i32.store local.get $52 i32.const 22160 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27074,11 +22909,6 @@ i32.store local.get $52 i32.const 22208 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27097,11 +22927,6 @@ i32.store local.get $52 i32.const 22256 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27120,11 +22945,6 @@ i32.store local.get $52 i32.const 22256 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27143,11 +22963,6 @@ i32.store local.get $52 i32.const 6672 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27166,11 +22981,6 @@ i32.store local.get $52 i32.const 22288 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27190,11 +23000,6 @@ i32.store local.get $52 i32.const 7936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27213,11 +23018,6 @@ i32.store local.get $52 i32.const 7152 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27237,11 +23037,6 @@ i32.store local.get $52 i32.const 23312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27260,11 +23055,6 @@ i32.store local.get $52 i32.const 7216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27284,11 +23074,6 @@ i32.store local.get $52 i32.const 23376 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27307,11 +23092,6 @@ i32.store local.get $52 i32.const 23456 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27331,11 +23111,6 @@ i32.store local.get $52 i32.const 23504 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27354,11 +23129,6 @@ i32.store local.get $52 i32.const 23552 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27378,11 +23148,6 @@ i32.store local.get $52 i32.const 23600 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27401,11 +23166,6 @@ i32.store local.get $52 i32.const 23648 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27424,11 +23184,6 @@ i32.store local.get $52 i32.const 23712 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27447,11 +23202,6 @@ i32.store local.get $52 i32.const 23792 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27470,11 +23220,6 @@ i32.store local.get $52 i32.const 23840 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27493,11 +23238,6 @@ i32.store local.get $52 i32.const 23904 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27516,11 +23256,6 @@ i32.store local.get $52 i32.const 23968 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27539,11 +23274,6 @@ i32.store local.get $52 i32.const 7296 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27562,11 +23292,6 @@ i32.store local.get $52 i32.const 24032 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27585,11 +23310,6 @@ i32.store local.get $52 i32.const 4256 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27607,12 +23327,7 @@ local.get $52 i32.store local.get $52 - i32.const 24064 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 + i32.const 24064 call $~lib/string/String.__eq i32.eqz if @@ -27631,11 +23346,6 @@ i32.store local.get $52 i32.const 24096 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27654,11 +23364,6 @@ i32.store local.get $52 i32.const 24128 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27677,11 +23382,6 @@ i32.store local.get $52 i32.const 24176 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27700,11 +23400,6 @@ i32.store local.get $52 i32.const 24224 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27723,11 +23418,6 @@ i32.store local.get $52 i32.const 24272 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27746,11 +23436,6 @@ i32.store local.get $52 i32.const 24320 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27769,11 +23454,6 @@ i32.store local.get $52 i32.const 24368 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27792,11 +23472,6 @@ i32.store local.get $52 i32.const 4544 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27815,11 +23490,6 @@ i32.store local.get $52 i32.const 24400 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27838,11 +23508,6 @@ i32.store local.get $52 i32.const 22288 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27861,11 +23526,6 @@ i32.store local.get $52 i32.const 7936 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27884,11 +23544,6 @@ i32.store local.get $52 i32.const 24448 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27907,11 +23562,6 @@ i32.store local.get $52 i32.const 24480 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27930,11 +23580,6 @@ i32.store local.get $52 i32.const 24528 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27953,11 +23598,6 @@ i32.store local.get $52 i32.const 24560 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27976,11 +23616,6 @@ i32.store local.get $52 i32.const 22256 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -27999,11 +23634,6 @@ i32.store local.get $52 i32.const 24608 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28022,11 +23652,6 @@ i32.store local.get $52 i32.const 24656 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28045,11 +23670,6 @@ i32.store local.get $52 i32.const 24720 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28068,11 +23688,6 @@ i32.store local.get $52 i32.const 24784 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28091,11 +23706,6 @@ i32.store local.get $52 i32.const 24032 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28114,11 +23724,6 @@ i32.store local.get $52 i32.const 24848 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28139,11 +23744,6 @@ i32.store local.get $52 i32.const 24880 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28162,11 +23762,6 @@ i32.store local.get $52 i32.const 24944 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28185,11 +23780,6 @@ i32.store local.get $52 i32.const 25024 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28208,11 +23798,6 @@ i32.store local.get $52 i32.const 25072 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28231,11 +23816,6 @@ i32.store local.get $52 i32.const 25120 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28254,11 +23834,6 @@ i32.store local.get $52 i32.const 25168 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28277,11 +23852,6 @@ i32.store local.get $52 i32.const 25216 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28300,11 +23870,6 @@ i32.store local.get $52 i32.const 25264 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28323,11 +23888,6 @@ i32.store local.get $52 i32.const 25312 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28339,17 +23899,7 @@ unreachable end i32.const 25360 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 25392 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#concat local.set $52 global.get $~lib/memory/__stack_pointer @@ -28357,11 +23907,6 @@ i32.store local.get $52 i32.const 25424 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28373,17 +23918,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 25472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#concat local.set $52 global.get $~lib/memory/__stack_pointer @@ -28391,11 +23926,6 @@ i32.store local.get $52 i32.const 25472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28407,17 +23937,7 @@ unreachable end i32.const 25472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#concat local.set $52 global.get $~lib/memory/__stack_pointer @@ -28425,11 +23945,6 @@ i32.store local.get $52 i32.const 25472 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28441,17 +23956,7 @@ unreachable end i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=8 - local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=12 - local.get $52 call $~lib/string/String#concat local.set $52 global.get $~lib/memory/__stack_pointer @@ -28459,11 +23964,6 @@ i32.store local.get $52 i32.const 688 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28475,17 +23975,7 @@ unreachable end i32.const 25504 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 25504 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28497,17 +23987,7 @@ unreachable end i32.const 25504 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 25504 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28519,17 +23999,7 @@ unreachable end i32.const 25536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 25536 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28541,17 +24011,7 @@ unreachable end i32.const 25568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store - local.get $52 i32.const 25568 - local.set $52 - global.get $~lib/memory/__stack_pointer - local.get $52 - i32.store offset=4 - local.get $52 call $~lib/string/String.__eq i32.eqz if @@ -28568,7 +24028,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 76 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index 11588257fe..e573886983 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -9918,9 +9918,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=24 local.get $2 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push @@ -9990,9 +9987,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=24 local.get $2 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push @@ -10148,7 +10142,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 76 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -10158,7 +10152,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 96 + i32.const 76 memory.fill global.get $std/string/str i32.const 1056 @@ -10171,12 +10165,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -10189,12 +10177,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1200 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1200 - i32.store offset=4 i32.const 1200 i32.const 1200 call $~lib/string/String.__eq @@ -10207,12 +10189,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1232 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1232 - i32.store offset=4 i32.const 1232 i32.const 1232 call $~lib/string/String.__eq @@ -10506,11 +10482,11 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $4 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 0 local.get $4 @@ -10525,9 +10501,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=4 local.get $0 i32.const 1744 call $~lib/string/String.__eq @@ -10540,9 +10513,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store i32.const 1712 call $~lib/string/String.__not i32.eqz @@ -10554,9 +10524,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store i32.const 1776 call $~lib/string/String.__not if @@ -10567,9 +10534,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store i32.const 1808 call $~lib/string/String.__not if @@ -10588,9 +10552,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store offset=4 local.get $0 i32.const 1776 call $~lib/string/String.__eq @@ -10611,9 +10572,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1840 - i32.store offset=4 local.get $0 i32.const 1840 call $~lib/string/String.__eq @@ -10634,9 +10592,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1872 - i32.store offset=4 local.get $0 i32.const 1872 call $~lib/string/String.__eq @@ -10657,9 +10612,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1872 - i32.store offset=4 local.get $0 i32.const 1872 call $~lib/string/String.__eq @@ -10679,9 +10631,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 local.get $0 i32.const 1904 call $~lib/string/String.__eq @@ -10701,16 +10650,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String.fromCharCodes local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 local.get $0 i32.const 1968 call $~lib/string/String.__eq @@ -10730,16 +10676,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String.fromCharCodes local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store offset=4 local.get $0 i32.const 2032 call $~lib/string/String.__eq @@ -10759,16 +10702,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 call $~lib/string/String.fromCharCodes local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store offset=4 local.get $0 i32.const 2112 call $~lib/string/String.__eq @@ -10787,9 +10727,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store offset=4 local.get $0 i32.const 1776 call $~lib/string/String.__eq @@ -10808,9 +10745,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1872 - i32.store offset=4 local.get $0 i32.const 1872 call $~lib/string/String.__eq @@ -10829,9 +10763,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2144 - i32.store offset=4 local.get $0 i32.const 2144 call $~lib/string/String.__eq @@ -10849,9 +10780,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10924,9 +10852,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2208 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -11032,9 +10957,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11074,9 +10996,6 @@ global.get $std/string/str local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=12 local.get $0 i32.const 0 i32.const 2272 @@ -11105,9 +11024,6 @@ global.get $std/string/str local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=12 local.get $0 i32.const 15 i32.const 2272 @@ -11132,12 +11048,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=12 i32.const 1712 i32.const 3 i32.const 2272 @@ -11146,9 +11056,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2304 - i32.store offset=4 local.get $0 i32.const 2304 call $~lib/string/String.__eq @@ -11161,12 +11068,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 i32.const 1712 i32.const 10 i32.const 1712 @@ -11175,9 +11076,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -11190,12 +11088,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 i32.const 1808 i32.const 100 i32.const 1712 @@ -11204,9 +11096,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $0 i32.const 1808 call $~lib/string/String.__eq @@ -11219,12 +11108,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=12 i32.const 2336 i32.const 5 i32.const 2272 @@ -11233,9 +11116,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2368 - i32.store offset=4 local.get $0 i32.const 2368 call $~lib/string/String.__eq @@ -11248,12 +11128,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store offset=12 i32.const 2336 i32.const 6 i32.const 2400 @@ -11262,9 +11136,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2432 - i32.store offset=4 local.get $0 i32.const 2432 call $~lib/string/String.__eq @@ -11277,12 +11148,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store offset=12 i32.const 2336 i32.const 8 i32.const 2400 @@ -11291,9 +11156,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2464 - i32.store offset=4 local.get $0 i32.const 2464 call $~lib/string/String.__eq @@ -11310,9 +11172,6 @@ global.get $std/string/str local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=12 local.get $0 i32.const 0 i32.const 2272 @@ -11341,9 +11200,6 @@ global.get $std/string/str local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=12 local.get $0 i32.const 15 i32.const 2272 @@ -11368,12 +11224,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=12 i32.const 1712 i32.const 3 i32.const 2272 @@ -11382,9 +11232,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2304 - i32.store offset=4 local.get $0 i32.const 2304 call $~lib/string/String.__eq @@ -11397,12 +11244,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 i32.const 1712 i32.const 10 i32.const 1712 @@ -11411,9 +11252,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -11426,12 +11264,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 i32.const 1808 i32.const 100 i32.const 1712 @@ -11440,9 +11272,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $0 i32.const 1808 call $~lib/string/String.__eq @@ -11455,12 +11284,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=12 i32.const 2336 i32.const 5 i32.const 2272 @@ -11469,9 +11292,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2512 - i32.store offset=4 local.get $0 i32.const 2512 call $~lib/string/String.__eq @@ -11484,12 +11304,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=12 i32.const 2336 i32.const 6 i32.const 2336 @@ -11498,9 +11312,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=4 local.get $0 i32.const 2544 call $~lib/string/String.__eq @@ -11513,12 +11324,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=12 i32.const 2336 i32.const 8 i32.const 2336 @@ -11527,9 +11332,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2576 - i32.store offset=4 local.get $0 i32.const 2576 call $~lib/string/String.__eq @@ -11542,12 +11344,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 i32.const 0 @@ -11560,12 +11356,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=4 i32.const 1712 i32.const 2176 i32.const 0 @@ -11580,12 +11370,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 i32.const 1808 i32.const 1808 i32.const 0 @@ -11622,9 +11406,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 i32.const 0 @@ -11641,9 +11422,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 local.get $0 i32.const 2624 i32.const 0 @@ -11662,9 +11440,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2656 - i32.store offset=4 local.get $0 i32.const 2656 i32.const 0 @@ -11683,9 +11458,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 local.get $0 i32.const 2624 i32.const 2 @@ -11704,9 +11476,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 local.get $0 i32.const 2624 i32.const 3 @@ -11725,9 +11494,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2688 - i32.store offset=4 local.get $0 i32.const 2688 i32.const -1 @@ -11742,12 +11508,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1 global.set $~argumentsLength i32.const 1712 @@ -11761,12 +11521,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=4 i32.const 1 global.set $~argumentsLength i32.const 1712 @@ -11786,9 +11540,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -11817,9 +11568,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -11839,9 +11587,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2656 - i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -11861,9 +11606,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2720 - i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -11883,9 +11625,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 local.get $0 i32.const 2624 i32.const 2 @@ -11904,9 +11643,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 local.get $0 i32.const 2624 i32.const 3 @@ -11925,9 +11661,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2688 - i32.store offset=4 local.get $0 i32.const 2688 i32.const -1 @@ -11946,9 +11679,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2752 - i32.store offset=4 local.get $0 i32.const 2752 i32.const 0 @@ -11967,9 +11697,6 @@ global.get $std/string/str local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=4 local.get $0 i32.const 2176 i32.const 0 @@ -11982,12 +11709,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 call $~lib/string/String#localeCompare @@ -11999,12 +11720,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1808 i32.const 1712 call $~lib/string/String#localeCompare @@ -12018,12 +11733,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 i32.const 1712 i32.const 1808 call $~lib/string/String#localeCompare @@ -12037,12 +11746,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2784 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2784 - i32.store offset=4 i32.const 2784 i32.const 2784 call $~lib/string/String#localeCompare @@ -12054,12 +11757,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2816 - i32.store offset=4 i32.const 2336 i32.const 2816 call $~lib/string/String#localeCompare @@ -12073,12 +11770,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2848 - i32.store offset=4 i32.const 2336 i32.const 2848 call $~lib/string/String#localeCompare @@ -12092,12 +11783,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2816 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 i32.const 2816 i32.const 2336 call $~lib/string/String#localeCompare @@ -12111,12 +11796,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2880 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 i32.const 2880 i32.const 2336 call $~lib/string/String#localeCompare @@ -12130,12 +11809,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 i32.const 2912 i32.const 2336 call $~lib/string/String#localeCompare @@ -12149,12 +11822,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2880 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2944 - i32.store offset=4 i32.const 2880 i32.const 2944 call $~lib/string/String#localeCompare @@ -12168,12 +11835,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store offset=4 i32.const 2336 i32.const 2912 call $~lib/string/String#localeCompare @@ -12187,12 +11848,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2944 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2880 - i32.store offset=4 i32.const 2944 i32.const 2880 call $~lib/string/String#localeCompare @@ -12206,12 +11861,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2304 - i32.store offset=4 i32.const 1712 i32.const 2304 call $~lib/string/String#localeCompare @@ -12225,12 +11874,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1776 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1776 i32.const 1712 call $~lib/string/String#localeCompare @@ -12244,18 +11887,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 i32.const 1712 call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -12268,18 +11905,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=8 i32.const 2976 call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=4 local.get $0 i32.const 2976 call $~lib/string/String.__eq @@ -12292,18 +11923,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.store offset=8 i32.const 3008 call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3056 - i32.store offset=4 local.get $0 i32.const 3056 call $~lib/string/String.__eq @@ -12316,18 +11941,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 i32.const 1712 call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -12340,18 +11959,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=8 i32.const 2976 call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=4 local.get $0 i32.const 2976 call $~lib/string/String.__eq @@ -12364,18 +11977,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.store offset=8 i32.const 3008 call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3104 - i32.store offset=4 local.get $0 i32.const 3104 call $~lib/string/String.__eq @@ -12388,18 +11995,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 i32.const 1712 call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -12412,18 +12013,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=8 i32.const 2976 call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2976 - i32.store offset=4 local.get $0 i32.const 2976 call $~lib/string/String.__eq @@ -12436,18 +12031,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3008 - i32.store offset=8 i32.const 3008 call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -12574,9 +12163,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store i32.const 3392 i32.const 0 call $~lib/string/parseInt @@ -12590,9 +12176,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3424 - i32.store i32.const 3424 i32.const 0 call $~lib/string/parseInt @@ -12606,9 +12189,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store i32.const 3456 i32.const 0 call $~lib/string/parseInt @@ -12622,9 +12202,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3488 - i32.store i32.const 3488 i32.const 0 call $~lib/string/parseInt @@ -12638,9 +12215,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3520 - i32.store i32.const 3520 i32.const 0 call $~lib/string/parseInt @@ -12654,9 +12228,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3552 - i32.store i32.const 3552 i32.const 0 call $~lib/string/parseInt @@ -12670,9 +12241,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3584 - i32.store i32.const 3584 i32.const 0 call $~lib/string/parseInt @@ -12686,9 +12254,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store i32.const 3616 i32.const 0 call $~lib/string/parseInt @@ -12702,9 +12267,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store i32.const 3648 i32.const 0 call $~lib/string/parseInt @@ -12718,9 +12280,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store i32.const 3680 i32.const 0 call $~lib/string/parseInt @@ -12734,9 +12293,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3712 - i32.store i32.const 3712 i32.const 0 call $~lib/string/parseInt @@ -12750,9 +12306,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store i32.const 3744 i32.const 0 call $~lib/string/parseInt @@ -12766,9 +12319,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store i32.const 3776 i32.const 0 call $~lib/string/parseInt @@ -12782,9 +12332,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store i32.const 3392 i32.const 0 call $~lib/string/parseInt @@ -12798,9 +12345,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store i32.const 3808 i32.const 0 call $~lib/string/parseInt @@ -12814,9 +12358,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3840 - i32.store i32.const 3840 i32.const 16 call $~lib/string/parseInt @@ -12830,9 +12371,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.store i32.const 3872 i32.const 0 call $~lib/string/parseInt @@ -12846,9 +12384,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3904 - i32.store i32.const 3904 i32.const 0 call $~lib/string/parseInt @@ -12862,9 +12397,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3936 - i32.store i32.const 3936 i32.const 0 call $~lib/string/parseInt @@ -12878,9 +12410,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3968 - i32.store i32.const 3968 i32.const 0 call $~lib/string/parseInt @@ -12896,20 +12425,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4000 - i32.store i32.const 4000 i32.const 0 call $~lib/string/parseInt - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4048 - i32.store i32.const 4048 i32.const 16 call $~lib/string/parseInt - local.get $1 f64.ne if i32.const 0 @@ -12919,9 +12440,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4080 - i32.store i32.const 4080 i32.const 0 call $~lib/string/parseInt @@ -12935,9 +12453,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4080 - i32.store i32.const 4080 i32.const 13 call $~lib/string/parseInt @@ -12951,9 +12466,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4144 - i32.store i32.const 4144 i32.const 10 call $~lib/string/parseInt @@ -12967,9 +12479,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4224 - i32.store i32.const 4224 i32.const 16 call $~lib/string/parseInt @@ -12983,9 +12492,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4288 - i32.store i32.const 4288 i32.const 0 call $~lib/string/parseInt @@ -12999,9 +12505,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4320 - i32.store i32.const 4320 i32.const 0 call $~lib/string/parseInt @@ -13015,9 +12518,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4368 - i32.store i32.const 4368 i32.const 0 call $~lib/string/parseInt @@ -13031,9 +12531,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4400 - i32.store i32.const 4400 i32.const 0 call $~lib/string/parseInt @@ -13047,9 +12544,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4448 - i32.store i32.const 4448 i32.const 0 call $~lib/string/parseInt @@ -13063,9 +12557,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4480 - i32.store i32.const 4480 i32.const 0 call $~lib/string/parseInt @@ -13079,9 +12570,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4512 - i32.store i32.const 4512 i32.const 0 call $~lib/string/parseInt @@ -13095,9 +12583,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store i32.const 1712 i32.const 0 call $~lib/string/parseInt @@ -13112,9 +12597,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store i32.const 4560 i32.const 0 call $~lib/string/parseInt @@ -13129,9 +12611,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store i32.const 4592 i32.const 0 call $~lib/string/parseInt @@ -13146,9 +12625,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store i32.const 2400 i32.const 37 call $~lib/string/parseInt @@ -13163,9 +12639,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4624 - i32.store i32.const 4624 i32.const 0 call $~lib/string/parseInt @@ -13180,9 +12653,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store i32.const 4656 i32.const 0 call $~lib/string/parseInt @@ -13198,9 +12668,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13233,9 +12700,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store i32.const 4656 call $~lib/number/F64.parseFloat local.tee $1 @@ -13289,9 +12753,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13338,9 +12799,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4928 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13386,9 +12844,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store i32.const 3392 call $~lib/number/F64.parseFloat f64.const 0 @@ -13401,9 +12856,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store i32.const 3456 call $~lib/number/F64.parseFloat f64.const 1 @@ -13416,9 +12868,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4992 - i32.store i32.const 4992 call $~lib/number/F64.parseFloat f64.const 1 @@ -13431,9 +12880,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5024 - i32.store i32.const 5024 call $~lib/number/F64.parseFloat f64.const 1 @@ -13446,9 +12892,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5056 - i32.store i32.const 5056 call $~lib/number/F64.parseFloat f64.const 1e-05 @@ -13461,9 +12904,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5088 - i32.store i32.const 5088 call $~lib/number/F64.parseFloat f64.const -1e-05 @@ -13476,9 +12916,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5120 - i32.store i32.const 5120 call $~lib/number/F64.parseFloat f64.const -3e-23 @@ -13491,9 +12928,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store i32.const 5168 call $~lib/number/F64.parseFloat f64.const 3e21 @@ -13506,9 +12940,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5216 - i32.store i32.const 5216 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -13521,9 +12952,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5248 - i32.store i32.const 5248 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -13536,9 +12964,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5280 - i32.store i32.const 5280 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -13551,9 +12976,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5312 - i32.store i32.const 5312 call $~lib/number/F64.parseFloat f64.const 0.25 @@ -13566,9 +12988,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5344 - i32.store i32.const 5344 call $~lib/number/F64.parseFloat f64.const 1e3 @@ -13581,9 +13000,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5376 - i32.store i32.const 5376 call $~lib/number/F64.parseFloat f64.const 1e-10 @@ -13596,9 +13012,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5424 - i32.store i32.const 5424 call $~lib/number/F64.parseFloat f64.const 1e-30 @@ -13611,9 +13024,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5472 - i32.store i32.const 5472 call $~lib/number/F64.parseFloat f64.const 1e-323 @@ -13626,9 +13036,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5520 - i32.store i32.const 5520 call $~lib/number/F64.parseFloat f64.const 0 @@ -13641,9 +13048,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5568 - i32.store i32.const 5568 call $~lib/number/F64.parseFloat f64.const 1.e+308 @@ -13656,9 +13060,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5600 - i32.store i32.const 5600 call $~lib/number/F64.parseFloat f64.const inf @@ -13671,9 +13072,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store i32.const 1712 call $~lib/number/F64.parseFloat local.tee $1 @@ -13687,9 +13085,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5632 - i32.store i32.const 5632 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -13702,9 +13097,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5680 - i32.store i32.const 5680 call $~lib/number/F64.parseFloat f64.const 1e-10 @@ -13717,9 +13109,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5728 - i32.store i32.const 5728 call $~lib/number/F64.parseFloat f64.const 10 @@ -13732,9 +13121,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5776 - i32.store i32.const 5776 call $~lib/number/F64.parseFloat f64.const 1 @@ -13747,9 +13133,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5808 - i32.store i32.const 5808 call $~lib/number/F64.parseFloat f64.const 1 @@ -13762,9 +13145,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5840 - i32.store i32.const 5840 call $~lib/number/F64.parseFloat f64.const 10 @@ -13777,9 +13157,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5888 - i32.store i32.const 5888 call $~lib/number/F64.parseFloat f64.const 123456789 @@ -13792,9 +13169,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5936 - i32.store i32.const 5936 call $~lib/number/F64.parseFloat f64.const 1 @@ -13807,9 +13181,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 5984 - i32.store i32.const 5984 call $~lib/number/F64.parseFloat f64.const 1e-60 @@ -13822,9 +13193,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6016 - i32.store i32.const 6016 call $~lib/number/F64.parseFloat f64.const 1.e+60 @@ -13837,9 +13205,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6048 - i32.store i32.const 6048 call $~lib/number/F64.parseFloat f64.const 123.4 @@ -13852,9 +13217,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6080 - i32.store i32.const 6080 call $~lib/number/F64.parseFloat f64.const 1 @@ -13867,9 +13229,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6112 - i32.store i32.const 6112 call $~lib/number/F64.parseFloat f64.const -1.1 @@ -13882,9 +13241,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6160 - i32.store i32.const 6160 call $~lib/number/F64.parseFloat f64.const 10 @@ -13897,9 +13253,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6208 - i32.store i32.const 6208 call $~lib/number/F64.parseFloat f64.const 10 @@ -13912,9 +13265,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6256 - i32.store i32.const 6256 call $~lib/number/F64.parseFloat f64.const 0.022 @@ -13927,9 +13277,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6304 - i32.store i32.const 6304 call $~lib/number/F64.parseFloat f64.const 11 @@ -13942,9 +13289,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store i32.const 3808 call $~lib/number/F64.parseFloat f64.const 0 @@ -13957,9 +13301,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6336 - i32.store i32.const 6336 call $~lib/number/F64.parseFloat f64.const 0 @@ -13972,9 +13313,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store i32.const 6368 call $~lib/number/F64.parseFloat f64.const 0 @@ -13987,9 +13325,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6400 - i32.store i32.const 6400 call $~lib/number/F64.parseFloat f64.const 1.1 @@ -14002,9 +13337,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6432 - i32.store i32.const 6432 call $~lib/number/F64.parseFloat f64.const -1.1 @@ -14017,9 +13349,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6464 - i32.store i32.const 6464 call $~lib/number/F64.parseFloat f64.const -1.1 @@ -14032,9 +13361,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6496 - i32.store i32.const 6496 call $~lib/number/F64.parseFloat f64.const -1.1 @@ -14047,9 +13373,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6528 - i32.store i32.const 6528 call $~lib/number/F64.parseFloat f64.const -1.1 @@ -14062,9 +13385,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6560 - i32.store i32.const 6560 call $~lib/number/F64.parseFloat f64.const 0 @@ -14077,9 +13397,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6592 - i32.store i32.const 6592 call $~lib/number/F64.parseFloat f64.const 0 @@ -14092,9 +13409,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6624 - i32.store i32.const 6624 call $~lib/number/F64.parseFloat f64.const 1 @@ -14107,9 +13421,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6656 - i32.store i32.const 6656 call $~lib/number/F64.parseFloat f64.const 0 @@ -14122,9 +13433,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6688 - i32.store i32.const 6688 call $~lib/number/F64.parseFloat f64.const 0 @@ -14137,9 +13445,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6720 - i32.store i32.const 6720 call $~lib/number/F64.parseFloat f64.const 10 @@ -14152,9 +13457,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6752 - i32.store i32.const 6752 call $~lib/number/F64.parseFloat f64.const 10 @@ -14167,9 +13469,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6800 - i32.store i32.const 6800 call $~lib/number/F64.parseFloat f64.const 0 @@ -14182,9 +13481,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6832 - i32.store i32.const 6832 call $~lib/number/F64.parseFloat f64.const 1 @@ -14197,9 +13493,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6864 - i32.store i32.const 6864 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -14212,9 +13505,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6896 - i32.store i32.const 6896 call $~lib/number/F64.parseFloat f64.const 1 @@ -14227,9 +13517,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6928 - i32.store i32.const 6928 call $~lib/number/F64.parseFloat f64.const 10 @@ -14242,9 +13529,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6960 - i32.store i32.const 6960 call $~lib/number/F64.parseFloat f64.const 1 @@ -14257,9 +13541,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 6992 - i32.store i32.const 6992 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -14272,9 +13553,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store i32.const 7024 call $~lib/number/F64.parseFloat f64.const 0.01 @@ -14287,9 +13565,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7072 - i32.store i32.const 7072 call $~lib/number/F64.parseFloat f64.const 0 @@ -14302,9 +13577,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7104 - i32.store i32.const 7104 call $~lib/number/F64.parseFloat f64.const 0 @@ -14317,9 +13589,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7136 - i32.store i32.const 7136 call $~lib/number/F64.parseFloat f64.const 0 @@ -14332,9 +13601,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7168 - i32.store i32.const 7168 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -14347,9 +13613,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7200 - i32.store i32.const 7200 call $~lib/number/F64.parseFloat f64.const 0 @@ -14362,9 +13625,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7232 - i32.store i32.const 7232 call $~lib/number/F64.parseFloat f64.const 0 @@ -14377,9 +13637,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7264 - i32.store i32.const 7264 call $~lib/number/F64.parseFloat f64.const 1 @@ -14392,9 +13649,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7296 - i32.store i32.const 7296 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -14407,9 +13661,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store i32.const 7328 call $~lib/number/F64.parseFloat f64.const 0 @@ -14422,9 +13673,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7360 - i32.store i32.const 7360 call $~lib/number/F64.parseFloat i64.reinterpret_f64 @@ -14438,9 +13686,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7392 - i32.store i32.const 7392 call $~lib/number/F64.parseFloat i64.reinterpret_f64 @@ -14454,9 +13699,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store i32.const 7424 call $~lib/number/F64.parseFloat i64.reinterpret_f64 @@ -14470,9 +13712,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3968 - i32.store i32.const 3968 call $~lib/number/F64.parseFloat i64.reinterpret_f64 @@ -14486,9 +13725,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store i32.const 7456 call $~lib/number/F64.parseFloat i64.reinterpret_f64 @@ -14502,9 +13738,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store i32.const 4592 call $~lib/number/F64.parseFloat local.tee $1 @@ -14518,9 +13751,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store i32.const 4560 call $~lib/number/F64.parseFloat local.tee $1 @@ -14534,9 +13764,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7504 - i32.store i32.const 7504 call $~lib/number/F64.parseFloat local.tee $1 @@ -14550,9 +13777,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7536 - i32.store i32.const 7536 call $~lib/number/F64.parseFloat local.tee $1 @@ -14566,9 +13790,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7568 - i32.store i32.const 7568 call $~lib/number/F64.parseFloat local.tee $1 @@ -14582,9 +13803,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7600 - i32.store i32.const 7600 call $~lib/number/F64.parseFloat local.tee $1 @@ -14598,9 +13816,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7632 - i32.store i32.const 7632 call $~lib/number/F64.parseFloat local.tee $1 @@ -14614,9 +13829,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7664 - i32.store i32.const 7664 call $~lib/number/F64.parseFloat local.tee $1 @@ -14630,9 +13842,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7696 - i32.store i32.const 7696 call $~lib/number/F64.parseFloat local.tee $1 @@ -14646,9 +13855,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store i32.const 7728 call $~lib/number/F64.parseFloat local.tee $1 @@ -14662,9 +13868,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7760 - i32.store i32.const 7760 call $~lib/number/F64.parseFloat local.tee $1 @@ -14678,9 +13881,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7792 - i32.store i32.const 7792 call $~lib/number/F64.parseFloat local.tee $1 @@ -14694,9 +13894,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7824 - i32.store i32.const 7824 call $~lib/number/F64.parseFloat local.tee $1 @@ -14710,9 +13907,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7856 - i32.store i32.const 7856 call $~lib/number/F64.parseFloat local.tee $1 @@ -14726,9 +13920,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7888 - i32.store i32.const 7888 call $~lib/number/F64.parseFloat local.tee $1 @@ -14742,9 +13933,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store i32.const 3360 call $~lib/number/F64.parseFloat local.tee $1 @@ -14758,9 +13946,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7920 - i32.store i32.const 7920 call $~lib/number/F64.parseFloat f64.const 1e22 @@ -14773,9 +13958,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7952 - i32.store i32.const 7952 call $~lib/number/F64.parseFloat f64.const 1e-22 @@ -14788,9 +13970,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 7984 - i32.store i32.const 7984 call $~lib/number/F64.parseFloat f64.const 1.e+23 @@ -14803,9 +13982,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8016 - i32.store i32.const 8016 call $~lib/number/F64.parseFloat f64.const 1e-23 @@ -14818,9 +13994,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8048 - i32.store i32.const 8048 call $~lib/number/F64.parseFloat f64.const 1.e+37 @@ -14833,9 +14006,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8080 - i32.store i32.const 8080 call $~lib/number/F64.parseFloat f64.const 1e-37 @@ -14848,9 +14018,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8112 - i32.store i32.const 8112 call $~lib/number/F64.parseFloat f64.const 1.e+38 @@ -14863,9 +14030,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8144 - i32.store i32.const 8144 call $~lib/number/F64.parseFloat f64.const 1e-38 @@ -14878,9 +14042,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8176 - i32.store i32.const 8176 call $~lib/number/F64.parseFloat f64.const 2.220446049250313e-16 @@ -14893,9 +14054,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8240 - i32.store i32.const 8240 call $~lib/number/F64.parseFloat f64.const 1797693134862315708145274e284 @@ -14908,9 +14066,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8320 - i32.store i32.const 8320 call $~lib/number/F64.parseFloat f64.const 5e-324 @@ -14923,9 +14078,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8352 - i32.store i32.const 8352 call $~lib/number/F64.parseFloat f64.const 1.e+308 @@ -14938,9 +14090,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8400 - i32.store i32.const 8400 call $~lib/number/F64.parseFloat f64.const 1 @@ -14953,9 +14102,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8544 - i32.store i32.const 8544 call $~lib/number/F64.parseFloat f64.const 0 @@ -14968,9 +14114,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8592 - i32.store i32.const 8592 call $~lib/number/F64.parseFloat f64.const inf @@ -14983,9 +14126,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8640 - i32.store i32.const 8640 call $~lib/number/F64.parseFloat f64.const 0 @@ -14998,9 +14138,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8688 - i32.store i32.const 8688 call $~lib/number/F64.parseFloat f64.const -inf @@ -15013,9 +14150,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8736 - i32.store i32.const 8736 call $~lib/number/F64.parseFloat f64.const 0 @@ -15028,9 +14162,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8784 - i32.store i32.const 8784 call $~lib/number/F64.parseFloat f64.const inf @@ -15043,9 +14174,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8832 - i32.store i32.const 8832 call $~lib/number/F64.parseFloat f64.const inf @@ -15058,9 +14186,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8864 - i32.store i32.const 8864 call $~lib/number/F64.parseFloat f64.const inf @@ -15073,9 +14198,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8912 - i32.store i32.const 8912 call $~lib/number/F64.parseFloat f64.const inf @@ -15088,9 +14210,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8960 - i32.store i32.const 8960 call $~lib/number/F64.parseFloat f64.const -inf @@ -15103,9 +14222,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9008 - i32.store i32.const 9008 call $~lib/number/F64.parseFloat f64.const inf @@ -15118,9 +14234,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9056 - i32.store i32.const 9056 call $~lib/number/F64.parseFloat f64.const inf @@ -15133,9 +14246,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9104 - i32.store i32.const 9104 call $~lib/number/F64.parseFloat local.tee $1 @@ -15149,9 +14259,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9136 - i32.store i32.const 9136 call $~lib/number/F64.parseFloat local.tee $1 @@ -15165,9 +14272,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9184 - i32.store i32.const 9184 call $~lib/number/F64.parseFloat local.tee $1 @@ -15181,9 +14285,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9232 - i32.store i32.const 9232 call $~lib/number/F64.parseFloat f64.const 0 @@ -15196,9 +14297,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9424 - i32.store i32.const 9424 call $~lib/number/F64.parseFloat f64.const 1e-323 @@ -15211,9 +14309,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store i32.const 9616 call $~lib/number/F64.parseFloat f64.const 2.225073858507202e-308 @@ -15226,32 +14321,20 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 9808 - i32.store offset=72 - global.get $~lib/memory/__stack_pointer - i32.const 9968 - i32.store offset=76 i32.const 9808 i32.const 9968 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer - i32.const 10128 - i32.store offset=68 + i32.store offset=12 local.get $0 i32.const 10128 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 10288 - i32.store offset=60 + i32.store offset=8 local.get $0 i32.const 10288 call $~lib/string/String.__concat @@ -15259,9 +14342,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10448 - i32.store offset=8 local.get $0 i32.const 10448 call $~lib/string/String.__concat @@ -15281,9 +14361,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 10608 - i32.store i32.const 10608 call $~lib/number/F64.parseFloat f64.const 9.753531888799502e-104 @@ -15296,9 +14373,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 10720 - i32.store i32.const 10720 call $~lib/number/F64.parseFloat f64.const 0.5961860348131807 @@ -15311,9 +14385,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 10832 - i32.store i32.const 10832 call $~lib/number/F64.parseFloat f64.const 0.18150131692180388 @@ -15326,9 +14397,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 10944 - i32.store i32.const 10944 call $~lib/number/F64.parseFloat f64.const 0.42070823575344535 @@ -15341,9 +14409,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11056 - i32.store i32.const 11056 call $~lib/number/F64.parseFloat f64.const 0.6654686306516261 @@ -15356,9 +14421,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11168 - i32.store i32.const 11168 call $~lib/number/F64.parseFloat f64.const 0.6101852922970868 @@ -15371,9 +14433,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11280 - i32.store i32.const 11280 call $~lib/number/F64.parseFloat f64.const 0.7696695208236968 @@ -15386,9 +14445,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11392 - i32.store i32.const 11392 call $~lib/number/F64.parseFloat f64.const 0.25050653222286823 @@ -15401,9 +14457,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11504 - i32.store i32.const 11504 call $~lib/number/F64.parseFloat f64.const 0.2740037230228005 @@ -15416,9 +14469,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11616 - i32.store i32.const 11616 call $~lib/number/F64.parseFloat f64.const 0.20723093500497428 @@ -15431,9 +14481,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11728 - i32.store i32.const 11728 call $~lib/number/F64.parseFloat f64.const 7.900280238081605 @@ -15446,9 +14493,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11840 - i32.store i32.const 11840 call $~lib/number/F64.parseFloat f64.const 98.22860653737297 @@ -15461,9 +14505,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 11952 - i32.store i32.const 11952 call $~lib/number/F64.parseFloat f64.const 746.894972319037 @@ -15476,9 +14517,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12064 - i32.store i32.const 12064 call $~lib/number/F64.parseFloat f64.const 1630.2683202827284 @@ -15491,9 +14529,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12176 - i32.store i32.const 12176 call $~lib/number/F64.parseFloat f64.const 46371.68629719171 @@ -15506,9 +14541,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store i32.const 12288 call $~lib/number/F64.parseFloat f64.const 653780.5944497711 @@ -15521,9 +14553,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12400 - i32.store i32.const 12400 call $~lib/number/F64.parseFloat f64.const 234632.43565024371 @@ -15536,9 +14565,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12512 - i32.store i32.const 12512 call $~lib/number/F64.parseFloat f64.const 97094817.16420048 @@ -15551,9 +14577,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12624 - i32.store i32.const 12624 call $~lib/number/F64.parseFloat f64.const 499690852.20518744 @@ -15566,9 +14589,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12736 - i32.store i32.const 12736 call $~lib/number/F64.parseFloat f64.const 7925201200557245595648 @@ -15581,9 +14601,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12848 - i32.store i32.const 12848 call $~lib/number/F64.parseFloat f64.const 6096564585983177528398588e5 @@ -15596,9 +14613,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12960 - i32.store i32.const 12960 call $~lib/number/F64.parseFloat f64.const 4800416117477028695992383e42 @@ -15611,9 +14625,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13072 - i32.store i32.const 13072 call $~lib/number/F64.parseFloat f64.const 8524829079817968137287277e80 @@ -15626,9 +14637,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13184 - i32.store i32.const 13184 call $~lib/number/F64.parseFloat f64.const 3271239291709782092398754e243 @@ -15641,9 +14649,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13296 - i32.store i32.const 13296 call $~lib/number/F64.parseFloat local.tee $1 @@ -15657,9 +14662,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13328 - i32.store i32.const 13328 call $~lib/number/F64.parseFloat f64.const 0.1 @@ -15674,22 +14676,13 @@ end global.get $~lib/memory/__stack_pointer i32.const 1808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1808 i32.const 13360 call $~lib/string/String.__concat local.tee $0 - i32.store offset=80 + i32.store offset=60 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=4 local.get $0 i32.const 13392 call $~lib/string/String.__eq @@ -15705,9 +14698,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $0 i32.const 1808 call $~lib/string/String.__ne @@ -15720,12 +14710,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 call $~lib/string/String.__eq @@ -15754,11 +14738,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 + i32.store i32.const 1712 i32.const 0 call $~lib/string/String.__ne @@ -15774,9 +14755,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 0 i32.const 1712 call $~lib/string/String.__ne @@ -15789,12 +14767,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 i32.const 1808 i32.const 13360 call $~lib/string/String.__ne @@ -15807,12 +14779,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 i32.const 1808 i32.const 1808 call $~lib/string/String.__eq @@ -15825,12 +14791,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13424 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13456 - i32.store offset=4 i32.const 13424 i32.const 13456 call $~lib/string/String.__ne @@ -15843,12 +14803,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13424 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13424 - i32.store offset=4 i32.const 13424 i32.const 13424 call $~lib/string/String.__eq @@ -15861,12 +14815,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13488 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13520 - i32.store offset=4 i32.const 13488 i32.const 13520 call $~lib/string/String.__ne @@ -15879,12 +14827,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13552 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13584 - i32.store offset=4 i32.const 13552 i32.const 13584 call $~lib/string/String.__ne @@ -15897,12 +14839,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13616 - i32.store offset=4 i32.const 13616 i32.const 13616 call $~lib/string/String.__eq @@ -15915,12 +14851,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13664 - i32.store offset=4 i32.const 13616 i32.const 13664 call $~lib/string/String.__ne @@ -15933,12 +14863,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13760 - i32.store offset=4 i32.const 13712 i32.const 13760 call $~lib/string/String.__ne @@ -15951,12 +14875,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 i32.const 13360 i32.const 1808 call $~lib/string/String.__gt @@ -15969,12 +14887,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 i32.const 13808 i32.const 1808 call $~lib/string/String.__gt @@ -15987,12 +14899,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13840 - i32.store offset=4 i32.const 13808 i32.const 13840 call $~lib/string/String.__gte @@ -16005,12 +14911,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=4 i32.const 13808 i32.const 13392 call $~lib/string/String.__gt @@ -16023,12 +14923,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13808 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=4 i32.const 13808 i32.const 13392 call $~lib/string/String.__lt @@ -16040,12 +14934,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 2336 i32.const 1712 call $~lib/string/String.__gt @@ -16058,12 +14946,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 i32.const 1712 i32.const 2336 call $~lib/string/String.__lt @@ -16076,12 +14958,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 2336 i32.const 1712 call $~lib/string/String.__gte @@ -16094,12 +14970,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 i32.const 1712 i32.const 2336 call $~lib/string/String.__lte @@ -16112,12 +14982,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 2336 i32.const 1712 call $~lib/string/String.__lt @@ -16129,12 +14993,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 i32.const 1712 i32.const 2336 call $~lib/string/String.__gt @@ -16146,12 +15004,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 call $~lib/string/String.__lt @@ -16163,12 +15015,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 call $~lib/string/String.__gt @@ -16180,12 +15026,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 call $~lib/string/String.__gte @@ -16198,12 +15038,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1712 i32.const 1712 call $~lib/string/String.__lte @@ -16216,12 +15050,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store offset=4 i32.const 3456 i32.const 13872 call $~lib/string/String.__lt @@ -16234,12 +15062,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 i32.const 13872 i32.const 3456 call $~lib/string/String.__gt @@ -16252,12 +15074,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store offset=4 i32.const 13904 i32.const 13872 call $~lib/string/String.__lt @@ -16269,12 +15085,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store offset=4 i32.const 13872 i32.const 13904 call $~lib/string/String.__gt @@ -16286,12 +15096,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store offset=4 i32.const 13904 i32.const 13872 call $~lib/string/String.__gt @@ -16304,12 +15108,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store offset=4 i32.const 13872 i32.const 13904 call $~lib/string/String.__lt @@ -16322,12 +15120,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store offset=4 i32.const 13904 i32.const 13904 call $~lib/string/String.__lt @@ -16339,12 +15131,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store offset=4 i32.const 13904 i32.const 13904 call $~lib/string/String.__gt @@ -16356,12 +15142,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store offset=4 i32.const 13904 i32.const 13904 call $~lib/string/String.__lte @@ -16374,12 +15154,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store offset=4 i32.const 13904 i32.const 13904 call $~lib/string/String.__gte @@ -16392,12 +15166,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13936 - i32.store offset=4 i32.const 13872 i32.const 13936 call $~lib/string/String.__gte @@ -16409,12 +15177,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13936 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store offset=4 i32.const 13936 i32.const 13872 call $~lib/string/String.__gte @@ -16427,12 +15189,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13872 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13936 - i32.store offset=4 i32.const 13872 i32.const 13936 call $~lib/string/String.__lte @@ -16445,12 +15201,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 i32.const 3456 i32.const 3456 call $~lib/string/String.__eq @@ -16463,12 +15213,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store offset=4 i32.const 13904 i32.const 13904 call $~lib/string/String.__eq @@ -16481,12 +15225,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store offset=4 i32.const 2400 i32.const 2400 call $~lib/string/String.__eq @@ -16499,12 +15237,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13968 - i32.store offset=4 i32.const 2400 i32.const 13968 call $~lib/string/String.__ne @@ -16517,12 +15249,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14000 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14000 - i32.store offset=4 i32.const 14000 i32.const 14000 call $~lib/string/String.__eq @@ -16535,12 +15261,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14032 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14000 - i32.store offset=4 i32.const 14032 i32.const 14000 call $~lib/string/String.__ne @@ -16557,7 +15277,7 @@ i32.const 65377 call $~lib/string/String.fromCodePoint local.tee $4 - i32.store offset=84 + i32.store offset=64 global.get $~lib/memory/__stack_pointer i32.const 55296 call $~lib/string/String.fromCodePoint @@ -16575,7 +15295,7 @@ local.get $0 call $~lib/string/String.__concat local.tee $0 - i32.store offset=88 + i32.store offset=68 global.get $~lib/memory/__stack_pointer local.get $4 i32.store @@ -16594,9 +15314,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store i32.const 2396 i32.load i32.const 1 @@ -16611,9 +15328,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 i32.const 1712 i32.const 100 call $~lib/string/String#repeat @@ -16621,9 +15335,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -16636,9 +15347,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 i32.const 1808 i32.const 0 call $~lib/string/String#repeat @@ -16646,9 +15354,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -16661,9 +15366,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 i32.const 1808 i32.const 1 call $~lib/string/String#repeat @@ -16671,9 +15373,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $0 i32.const 1808 call $~lib/string/String.__eq @@ -16686,9 +15385,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 i32.const 1808 i32.const 2 call $~lib/string/String#repeat @@ -16696,9 +15392,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13840 - i32.store offset=4 local.get $0 i32.const 13840 call $~lib/string/String.__eq @@ -16711,9 +15404,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 i32.const 1808 i32.const 3 call $~lib/string/String#repeat @@ -16721,9 +15411,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14112 - i32.store offset=4 local.get $0 i32.const 14112 call $~lib/string/String.__eq @@ -16736,9 +15423,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=8 i32.const 13392 i32.const 4 call $~lib/string/String#repeat @@ -16746,9 +15430,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14144 - i32.store offset=4 local.get $0 i32.const 14144 call $~lib/string/String.__eq @@ -16761,9 +15442,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 i32.const 1808 i32.const 5 call $~lib/string/String#repeat @@ -16771,9 +15449,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14192 - i32.store offset=4 local.get $0 i32.const 14192 call $~lib/string/String.__eq @@ -16786,9 +15461,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 i32.const 1808 i32.const 6 call $~lib/string/String#repeat @@ -16796,9 +15468,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14224 - i32.store offset=4 local.get $0 i32.const 14224 call $~lib/string/String.__eq @@ -16811,9 +15480,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=8 i32.const 1808 i32.const 7 call $~lib/string/String#repeat @@ -16821,9 +15487,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14256 - i32.store offset=4 local.get $0 i32.const 14256 call $~lib/string/String.__eq @@ -16836,15 +15499,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=60 i32.const 1712 i32.const 1712 i32.const 1712 @@ -16853,9 +15507,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -16868,15 +15519,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 1712 i32.const 1712 i32.const 4592 @@ -16885,9 +15527,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 local.get $0 i32.const 4592 call $~lib/string/String.__eq @@ -16900,15 +15539,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=60 i32.const 4592 i32.const 4592 i32.const 1712 @@ -16917,9 +15547,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -16932,15 +15559,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=60 i32.const 4592 i32.const 1712 i32.const 1712 @@ -16949,9 +15567,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 local.get $0 i32.const 4592 call $~lib/string/String.__eq @@ -16964,15 +15579,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2336 i32.const 4560 i32.const 4592 @@ -16981,9 +15587,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -16996,15 +15599,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2336 i32.const 2336 i32.const 4592 @@ -17013,9 +15607,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 local.get $0 i32.const 4592 call $~lib/string/String.__eq @@ -17028,15 +15619,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2336 i32.const 2912 i32.const 4592 @@ -17045,9 +15627,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -17060,15 +15639,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=60 i32.const 2336 i32.const 13392 i32.const 13392 @@ -17077,9 +15647,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -17092,15 +15659,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14304 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 14304 i32.const 4560 i32.const 4592 @@ -17109,9 +15667,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14336 - i32.store offset=4 local.get $0 i32.const 14336 call $~lib/string/String.__eq @@ -17124,15 +15679,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2336 i32.const 1712 i32.const 4592 @@ -17141,9 +15687,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14368 - i32.store offset=4 local.get $0 i32.const 14368 call $~lib/string/String.__eq @@ -17156,15 +15699,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14400 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 14432 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 14400 i32.const 14432 i32.const 4592 @@ -17173,9 +15707,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14368 - i32.store offset=4 local.get $0 i32.const 14368 call $~lib/string/String.__eq @@ -17188,15 +15719,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 14496 - i32.store offset=60 i32.const 2336 i32.const 14464 i32.const 14496 @@ -17205,9 +15727,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14528 - i32.store offset=4 local.get $0 i32.const 14528 call $~lib/string/String.__eq @@ -17220,15 +15739,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=60 i32.const 2336 i32.const 14464 i32.const 1712 @@ -17237,9 +15747,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=4 local.get $0 i32.const 13392 call $~lib/string/String.__eq @@ -17252,15 +15759,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=60 i32.const 1712 i32.const 1712 i32.const 2336 @@ -17269,9 +15767,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -17284,15 +15779,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2336 i32.const 4560 i32.const 4592 @@ -17301,9 +15787,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -17316,15 +15799,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2544 i32.const 2336 i32.const 4592 @@ -17333,9 +15807,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14496 - i32.store offset=4 local.get $0 i32.const 14496 call $~lib/string/String.__eq @@ -17348,15 +15819,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14560 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 14560 i32.const 2336 i32.const 4592 @@ -17365,9 +15827,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14608 - i32.store offset=4 local.get $0 i32.const 14608 call $~lib/string/String.__eq @@ -17380,15 +15839,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=60 i32.const 2544 i32.const 13392 i32.const 13392 @@ -17397,9 +15847,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=4 local.get $0 i32.const 2544 call $~lib/string/String.__eq @@ -17412,15 +15859,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14640 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 14608 - i32.store offset=60 i32.const 14640 i32.const 1808 i32.const 14608 @@ -17429,9 +15867,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14688 - i32.store offset=4 local.get $0 i32.const 14688 call $~lib/string/String.__eq @@ -17444,15 +15879,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 14496 - i32.store offset=60 i32.const 2544 i32.const 13392 i32.const 14496 @@ -17461,9 +15887,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14736 - i32.store offset=4 local.get $0 i32.const 14736 call $~lib/string/String.__eq @@ -17476,15 +15899,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14768 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 14800 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 14496 - i32.store offset=60 i32.const 14768 i32.const 14800 i32.const 14496 @@ -17492,10 +15906,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14832 - i32.store offset=4 + i32.store local.get $0 i32.const 14832 call $~lib/string/String.__eq @@ -17508,15 +15919,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2336 i32.const 2912 i32.const 4592 @@ -17525,9 +15927,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -17540,15 +15939,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 14864 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 14496 - i32.store offset=60 i32.const 2912 i32.const 14864 i32.const 14496 @@ -17557,9 +15947,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store offset=4 local.get $0 i32.const 2912 call $~lib/string/String.__eq @@ -17572,15 +15959,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 14896 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2336 i32.const 14896 i32.const 4592 @@ -17589,9 +15967,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14928 - i32.store offset=4 local.get $0 i32.const 14928 call $~lib/string/String.__eq @@ -17604,15 +15979,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 13392 i32.const 13392 i32.const 4592 @@ -17621,9 +15987,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 local.get $0 i32.const 4592 call $~lib/string/String.__eq @@ -17636,15 +15999,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14304 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 14304 i32.const 4560 i32.const 4592 @@ -17653,9 +16007,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14960 - i32.store offset=4 local.get $0 i32.const 14960 call $~lib/string/String.__eq @@ -17668,15 +16019,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=60 i32.const 1712 i32.const 1712 i32.const 1712 @@ -17685,9 +16027,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -17700,15 +16039,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 1712 i32.const 1712 i32.const 4592 @@ -17717,9 +16047,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 local.get $0 i32.const 4592 call $~lib/string/String.__eq @@ -17732,15 +16059,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=60 i32.const 4592 i32.const 4592 i32.const 1712 @@ -17749,9 +16067,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -17764,15 +16079,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=60 i32.const 4592 i32.const 1712 i32.const 1712 @@ -17781,9 +16087,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 local.get $0 i32.const 4592 call $~lib/string/String.__eq @@ -17796,15 +16099,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=60 i32.const 2336 i32.const 2336 i32.const 4560 @@ -17813,9 +16107,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=4 local.get $0 i32.const 4560 call $~lib/string/String.__eq @@ -17828,15 +16119,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 2816 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=60 i32.const 2336 i32.const 2816 i32.const 4560 @@ -17845,9 +16127,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -17860,15 +16139,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=60 i32.const 2336 i32.const 1712 i32.const 4592 @@ -17877,9 +16147,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14992 - i32.store offset=4 local.get $0 i32.const 14992 call $~lib/string/String.__eq @@ -17892,15 +16159,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=60 i32.const 2336 i32.const 1712 i32.const 1712 @@ -17909,9 +16167,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -17924,15 +16179,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15040 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 15072 - i32.store offset=60 i32.const 15040 i32.const 1808 i32.const 15072 @@ -17941,9 +16187,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15104 - i32.store offset=4 local.get $0 i32.const 15104 call $~lib/string/String.__eq @@ -17956,15 +16199,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 13392 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 15152 - i32.store offset=60 i32.const 13392 i32.const 13392 i32.const 15152 @@ -17973,9 +16207,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15152 - i32.store offset=4 local.get $0 i32.const 15152 call $~lib/string/String.__eq @@ -17988,15 +16219,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14112 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 15184 - i32.store offset=60 i32.const 14112 i32.const 1808 i32.const 15184 @@ -18005,9 +16227,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15216 - i32.store offset=4 local.get $0 i32.const 15216 call $~lib/string/String.__eq @@ -18020,15 +16239,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 14112 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 13840 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 15072 - i32.store offset=60 i32.const 14112 i32.const 13840 i32.const 15072 @@ -18037,9 +16247,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15264 - i32.store offset=4 local.get $0 i32.const 15264 call $~lib/string/String.__eq @@ -18056,7 +16263,7 @@ global.set $std/string/str global.get $~lib/memory/__stack_pointer i32.const 15296 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength i32.const 15296 @@ -18066,9 +16273,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 i32.const 15296 call $~lib/string/String.__eq @@ -18084,7 +16288,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -18094,9 +16298,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15344 - i32.store offset=4 local.get $0 i32.const 15344 call $~lib/string/String.__eq @@ -18112,7 +16313,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -18122,9 +16323,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15376 - i32.store offset=4 local.get $0 i32.const 15376 call $~lib/string/String.__eq @@ -18140,7 +16338,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 i32.const 7 @@ -18149,9 +16347,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store offset=4 local.get $0 i32.const 15408 call $~lib/string/String.__eq @@ -18167,7 +16362,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const -11 i32.const -6 @@ -18176,9 +16371,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15440 - i32.store offset=4 local.get $0 i32.const 15440 call $~lib/string/String.__eq @@ -18194,7 +16386,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 4 i32.const 3 @@ -18203,9 +16395,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18221,7 +16410,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 i32.const -1 @@ -18230,9 +16419,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15472 - i32.store offset=4 local.get $0 i32.const 15472 call $~lib/string/String.__eq @@ -18248,7 +16434,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -18258,9 +16444,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 i32.const 15296 call $~lib/string/String.__eq @@ -18276,7 +16459,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -18286,9 +16469,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15344 - i32.store offset=4 local.get $0 i32.const 15344 call $~lib/string/String.__eq @@ -18304,7 +16484,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -18314,9 +16494,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15376 - i32.store offset=4 local.get $0 i32.const 15376 call $~lib/string/String.__eq @@ -18332,7 +16509,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 i32.const 7 @@ -18341,9 +16518,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15520 - i32.store offset=4 local.get $0 i32.const 15520 call $~lib/string/String.__eq @@ -18359,7 +16533,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const -11 i32.const -6 @@ -18368,9 +16542,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18386,7 +16557,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 4 i32.const 3 @@ -18395,9 +16566,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15568 - i32.store offset=4 local.get $0 i32.const 15568 call $~lib/string/String.__eq @@ -18413,7 +16581,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 i32.const -1 @@ -18422,9 +16590,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18440,7 +16605,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 i32.const 100 @@ -18449,9 +16614,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 i32.const 15296 call $~lib/string/String.__eq @@ -18467,7 +16629,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 4 i32.const 4 @@ -18476,9 +16638,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15600 - i32.store offset=4 local.get $0 i32.const 15600 call $~lib/string/String.__eq @@ -18494,7 +16653,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 4 i32.const -3 @@ -18503,9 +16662,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18521,7 +16677,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -18531,9 +16687,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 i32.const 15296 call $~lib/string/String.__eq @@ -18549,7 +16702,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -18559,9 +16712,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 i32.const 15296 call $~lib/string/String.__eq @@ -18577,7 +16727,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 i32.const 1 global.set $~argumentsLength local.get $0 @@ -18587,9 +16737,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 i32.const 15296 call $~lib/string/String.__eq @@ -18605,7 +16752,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 i32.const 7 @@ -18614,9 +16761,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store offset=4 local.get $0 i32.const 15408 call $~lib/string/String.__eq @@ -18632,7 +16776,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const -11 i32.const -6 @@ -18641,9 +16785,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18659,7 +16800,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 4 i32.const 3 @@ -18668,9 +16809,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15632 - i32.store offset=4 local.get $0 i32.const 15632 call $~lib/string/String.__eq @@ -18686,7 +16824,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 i32.const -1 @@ -18695,9 +16833,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18713,7 +16848,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 i32.const 100 @@ -18722,9 +16857,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 local.get $0 i32.const 15296 call $~lib/string/String.__eq @@ -18740,7 +16872,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 4 i32.const 4 @@ -18749,9 +16881,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18767,7 +16896,7 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 4 i32.const -3 @@ -18776,9 +16905,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2912 - i32.store offset=4 local.get $0 i32.const 2912 call $~lib/string/String.__eq @@ -18791,9 +16917,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -18801,7 +16924,7 @@ i32.const 0 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18812,7 +16935,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -18820,9 +16943,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18838,12 +16958,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -18851,7 +16965,7 @@ i32.const 1712 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18865,12 +16979,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -18878,7 +16986,7 @@ i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18889,7 +16997,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -18897,9 +17005,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -18915,12 +17020,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7632 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -18928,7 +17027,7 @@ i32.const 7632 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18939,7 +17038,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -18947,9 +17046,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.store offset=4 local.get $0 i32.const 15840 call $~lib/string/String.__eq @@ -18965,12 +17061,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -18978,7 +17068,7 @@ i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18989,7 +17079,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -18997,9 +17087,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19009,7 +17096,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19017,9 +17104,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19029,7 +17113,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19037,9 +17121,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -19055,12 +17136,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15872 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 15920 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -19068,7 +17143,7 @@ i32.const 15920 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19079,7 +17154,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19087,9 +17162,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19099,7 +17171,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19107,9 +17179,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19119,7 +17188,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19127,9 +17196,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -19145,12 +17211,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15952 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -19158,7 +17218,7 @@ i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19169,7 +17229,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19177,9 +17237,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19189,7 +17246,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19197,9 +17254,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19209,7 +17263,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19217,9 +17271,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $4 i32.const 1712 call $~lib/string/String.__eq @@ -19229,7 +17280,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get @@ -19237,9 +17288,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -19255,12 +17303,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 15984 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -19268,7 +17310,7 @@ i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19279,7 +17321,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19287,9 +17329,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $4 i32.const 1712 call $~lib/string/String.__eq @@ -19299,7 +17338,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19307,9 +17346,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19319,7 +17355,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19327,9 +17363,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19339,7 +17372,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get @@ -19347,9 +17380,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -19365,12 +17395,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16016 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -19378,7 +17402,7 @@ i32.const 2624 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19389,7 +17413,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19397,9 +17421,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19409,7 +17430,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19417,9 +17438,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19429,7 +17447,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19437,9 +17455,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $4 i32.const 14464 call $~lib/string/String.__eq @@ -19449,7 +17464,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 3 call $~lib/array/Array<~lib/string/String>#__get @@ -19457,9 +17472,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -19475,12 +17487,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer @@ -19488,7 +17494,7 @@ i32.const 1712 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19499,7 +17505,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19507,9 +17513,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19519,7 +17522,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19527,9 +17530,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19539,7 +17539,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19547,9 +17547,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -19567,17 +17564,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2336 i32.const 1712 i32.const 0 call $~lib/string/String#split local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19593,17 +17584,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2336 i32.const 1712 i32.const 1 call $~lib/string/String#split local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19614,7 +17599,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19622,9 +17607,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $0 i32.const 1808 call $~lib/string/String.__eq @@ -19642,17 +17624,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 15840 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15840 i32.const 2624 i32.const 1 call $~lib/string/String#split local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19663,7 +17639,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19671,9 +17647,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $0 i32.const 1808 call $~lib/string/String.__eq @@ -19691,17 +17664,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2336 i32.const 1712 i32.const 4 call $~lib/string/String#split local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19712,7 +17679,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19720,9 +17687,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19732,7 +17696,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19740,9 +17704,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19752,7 +17713,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19760,9 +17721,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -19780,17 +17738,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 2336 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2336 i32.const 1712 i32.const -1 call $~lib/string/String#split local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19801,7 +17753,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19809,9 +17761,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19821,7 +17770,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19829,9 +17778,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19841,7 +17787,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19849,9 +17795,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -19869,17 +17812,11 @@ end global.get $~lib/memory/__stack_pointer i32.const 15840 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2624 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15840 i32.const 2624 i32.const -1 call $~lib/string/String#split local.tee $0 - i32.store offset=92 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19890,7 +17827,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get @@ -19898,9 +17835,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.store offset=4 local.get $4 i32.const 1808 call $~lib/string/String.__eq @@ -19910,7 +17844,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get @@ -19918,9 +17852,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13360 - i32.store offset=4 local.get $4 i32.const 13360 call $~lib/string/String.__eq @@ -19930,7 +17861,7 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get @@ -19938,9 +17869,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -19963,9 +17891,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -19985,9 +17910,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 local.get $0 i32.const 3456 call $~lib/string/String.__eq @@ -20007,9 +17929,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17792 - i32.store offset=4 local.get $0 i32.const 17792 call $~lib/string/String.__eq @@ -20029,9 +17948,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17824 - i32.store offset=4 local.get $0 i32.const 17824 call $~lib/string/String.__eq @@ -20051,9 +17967,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store offset=4 local.get $0 i32.const 2400 call $~lib/string/String.__eq @@ -20073,9 +17986,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17856 - i32.store offset=4 local.get $0 i32.const 17856 call $~lib/string/String.__eq @@ -20095,9 +18005,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14000 - i32.store offset=4 local.get $0 i32.const 14000 call $~lib/string/String.__eq @@ -20117,9 +18024,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17888 - i32.store offset=4 local.get $0 i32.const 17888 call $~lib/string/String.__eq @@ -20139,9 +18043,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17920 - i32.store offset=4 local.get $0 i32.const 17920 call $~lib/string/String.__eq @@ -20161,9 +18062,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17952 - i32.store offset=4 local.get $0 i32.const 17952 call $~lib/string/String.__eq @@ -20183,9 +18081,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18000 - i32.store offset=4 local.get $0 i32.const 18000 call $~lib/string/String.__eq @@ -20205,9 +18100,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18048 - i32.store offset=4 local.get $0 i32.const 18048 call $~lib/string/String.__eq @@ -20227,9 +18119,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18096 - i32.store offset=4 local.get $0 i32.const 18096 call $~lib/string/String.__eq @@ -20249,9 +18138,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18144 - i32.store offset=4 local.get $0 i32.const 18144 call $~lib/string/String.__eq @@ -20271,9 +18157,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18192 - i32.store offset=4 local.get $0 i32.const 18192 call $~lib/string/String.__eq @@ -20293,9 +18176,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18240 - i32.store offset=4 local.get $0 i32.const 18240 call $~lib/string/String.__eq @@ -20315,9 +18195,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18288 - i32.store offset=4 local.get $0 i32.const 18288 call $~lib/string/String.__eq @@ -20337,9 +18214,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18320 - i32.store offset=4 local.get $0 i32.const 18320 call $~lib/string/String.__eq @@ -20359,9 +18233,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18352 - i32.store offset=4 local.get $0 i32.const 18352 call $~lib/string/String.__eq @@ -20381,9 +18252,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18240 - i32.store offset=4 local.get $0 i32.const 18240 call $~lib/string/String.__eq @@ -20403,9 +18271,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -20425,9 +18290,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18384 - i32.store offset=4 local.get $0 i32.const 18384 call $~lib/string/String.__eq @@ -20447,9 +18309,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18192 - i32.store offset=4 local.get $0 i32.const 18192 call $~lib/string/String.__eq @@ -20469,9 +18328,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18416 - i32.store offset=4 local.get $0 i32.const 18416 call $~lib/string/String.__eq @@ -20491,9 +18347,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18464 - i32.store offset=4 local.get $0 i32.const 18464 call $~lib/string/String.__eq @@ -20513,9 +18366,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -20535,9 +18385,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 local.get $0 i32.const 3456 call $~lib/string/String.__eq @@ -20557,9 +18404,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17792 - i32.store offset=4 local.get $0 i32.const 17792 call $~lib/string/String.__eq @@ -20579,9 +18423,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -20601,9 +18442,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18512 - i32.store offset=4 local.get $0 i32.const 18512 call $~lib/string/String.__eq @@ -20623,9 +18461,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18544 - i32.store offset=4 local.get $0 i32.const 18544 call $~lib/string/String.__eq @@ -20645,9 +18480,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18576 - i32.store offset=4 local.get $0 i32.const 18576 call $~lib/string/String.__eq @@ -20667,9 +18499,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18608 - i32.store offset=4 local.get $0 i32.const 18608 call $~lib/string/String.__eq @@ -20689,9 +18518,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18640 - i32.store offset=4 local.get $0 i32.const 18640 call $~lib/string/String.__eq @@ -20711,9 +18537,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18672 - i32.store offset=4 local.get $0 i32.const 18672 call $~lib/string/String.__eq @@ -20733,9 +18556,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18704 - i32.store offset=4 local.get $0 i32.const 18704 call $~lib/string/String.__eq @@ -20755,9 +18575,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18736 - i32.store offset=4 local.get $0 i32.const 18736 call $~lib/string/String.__eq @@ -20777,9 +18594,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18784 - i32.store offset=4 local.get $0 i32.const 18784 call $~lib/string/String.__eq @@ -20799,9 +18613,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18832 - i32.store offset=4 local.get $0 i32.const 18832 call $~lib/string/String.__eq @@ -20821,9 +18632,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18880 - i32.store offset=4 local.get $0 i32.const 18880 call $~lib/string/String.__eq @@ -20843,9 +18651,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18928 - i32.store offset=4 local.get $0 i32.const 18928 call $~lib/string/String.__eq @@ -20865,9 +18670,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -20887,9 +18689,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17856 - i32.store offset=4 local.get $0 i32.const 17856 call $~lib/string/String.__eq @@ -20909,9 +18708,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18832 - i32.store offset=4 local.get $0 i32.const 18832 call $~lib/string/String.__eq @@ -20931,9 +18727,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18976 - i32.store offset=4 local.get $0 i32.const 18976 call $~lib/string/String.__eq @@ -20953,9 +18746,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19024 - i32.store offset=4 local.get $0 i32.const 19024 call $~lib/string/String.__eq @@ -20975,9 +18765,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19072 - i32.store offset=4 local.get $0 i32.const 19072 call $~lib/string/String.__eq @@ -20997,9 +18784,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19072 - i32.store offset=4 local.get $0 i32.const 19072 call $~lib/string/String.__eq @@ -21019,9 +18803,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -21041,9 +18822,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 local.get $0 i32.const 3456 call $~lib/string/String.__eq @@ -21063,9 +18841,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13904 - i32.store offset=4 local.get $0 i32.const 13904 call $~lib/string/String.__eq @@ -21085,9 +18860,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19120 - i32.store offset=4 local.get $0 i32.const 19120 call $~lib/string/String.__eq @@ -21107,9 +18879,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19152 - i32.store offset=4 local.get $0 i32.const 19152 call $~lib/string/String.__eq @@ -21129,9 +18898,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19184 - i32.store offset=4 local.get $0 i32.const 19184 call $~lib/string/String.__eq @@ -21151,9 +18917,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19216 - i32.store offset=4 local.get $0 i32.const 19216 call $~lib/string/String.__eq @@ -21173,9 +18936,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19248 - i32.store offset=4 local.get $0 i32.const 19248 call $~lib/string/String.__eq @@ -21195,9 +18955,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19296 - i32.store offset=4 local.get $0 i32.const 19296 call $~lib/string/String.__eq @@ -21217,9 +18974,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19376 - i32.store offset=4 local.get $0 i32.const 19376 call $~lib/string/String.__eq @@ -21239,9 +18993,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19472 - i32.store offset=4 local.get $0 i32.const 19472 call $~lib/string/String.__eq @@ -21261,9 +19012,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19568 - i32.store offset=4 local.get $0 i32.const 19568 call $~lib/string/String.__eq @@ -21283,9 +19031,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19664 - i32.store offset=4 local.get $0 i32.const 19664 call $~lib/string/String.__eq @@ -21305,9 +19050,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19760 - i32.store offset=4 local.get $0 i32.const 19760 call $~lib/string/String.__eq @@ -21327,9 +19069,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19808 - i32.store offset=4 local.get $0 i32.const 19808 call $~lib/string/String.__eq @@ -21349,9 +19088,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19872 - i32.store offset=4 local.get $0 i32.const 19872 call $~lib/string/String.__eq @@ -21371,9 +19107,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19936 - i32.store offset=4 local.get $0 i32.const 19936 call $~lib/string/String.__eq @@ -21393,9 +19126,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19984 - i32.store offset=4 local.get $0 i32.const 19984 call $~lib/string/String.__eq @@ -21415,9 +19145,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20032 - i32.store offset=4 local.get $0 i32.const 20032 call $~lib/string/String.__eq @@ -21437,9 +19164,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20080 - i32.store offset=4 local.get $0 i32.const 20080 call $~lib/string/String.__eq @@ -21459,9 +19183,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20128 - i32.store offset=4 local.get $0 i32.const 20128 call $~lib/string/String.__eq @@ -21481,9 +19202,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20176 - i32.store offset=4 local.get $0 i32.const 20176 call $~lib/string/String.__eq @@ -21503,9 +19221,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20224 - i32.store offset=4 local.get $0 i32.const 20224 call $~lib/string/String.__eq @@ -21525,9 +19240,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20272 - i32.store offset=4 local.get $0 i32.const 20272 call $~lib/string/String.__eq @@ -21547,9 +19259,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20320 - i32.store offset=4 local.get $0 i32.const 20320 call $~lib/string/String.__eq @@ -21569,9 +19278,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -21591,9 +19297,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17824 - i32.store offset=4 local.get $0 i32.const 17824 call $~lib/string/String.__eq @@ -21613,9 +19316,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2400 - i32.store offset=4 local.get $0 i32.const 2400 call $~lib/string/String.__eq @@ -21635,9 +19335,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14000 - i32.store offset=4 local.get $0 i32.const 14000 call $~lib/string/String.__eq @@ -21657,9 +19354,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17888 - i32.store offset=4 local.get $0 i32.const 17888 call $~lib/string/String.__eq @@ -21679,9 +19373,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 17920 - i32.store offset=4 local.get $0 i32.const 17920 call $~lib/string/String.__eq @@ -21701,9 +19392,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18000 - i32.store offset=4 local.get $0 i32.const 18000 call $~lib/string/String.__eq @@ -21723,9 +19411,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20368 - i32.store offset=4 local.get $0 i32.const 20368 call $~lib/string/String.__eq @@ -21745,9 +19430,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20416 - i32.store offset=4 local.get $0 i32.const 20416 call $~lib/string/String.__eq @@ -21767,9 +19449,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18464 - i32.store offset=4 local.get $0 i32.const 18464 call $~lib/string/String.__eq @@ -21789,9 +19468,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20464 - i32.store offset=4 local.get $0 i32.const 20464 call $~lib/string/String.__eq @@ -21811,9 +19487,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20512 - i32.store offset=4 local.get $0 i32.const 20512 call $~lib/string/String.__eq @@ -21833,9 +19506,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20560 - i32.store offset=4 local.get $0 i32.const 20560 call $~lib/string/String.__eq @@ -21855,9 +19525,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20608 - i32.store offset=4 local.get $0 i32.const 20608 call $~lib/string/String.__eq @@ -21877,9 +19544,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20656 - i32.store offset=4 local.get $0 i32.const 20656 call $~lib/string/String.__eq @@ -21899,9 +19563,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20704 - i32.store offset=4 local.get $0 i32.const 20704 call $~lib/string/String.__eq @@ -21921,9 +19582,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20768 - i32.store offset=4 local.get $0 i32.const 20768 call $~lib/string/String.__eq @@ -21943,9 +19601,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20832 - i32.store offset=4 local.get $0 i32.const 20832 call $~lib/string/String.__eq @@ -21965,9 +19620,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20896 - i32.store offset=4 local.get $0 i32.const 20896 call $~lib/string/String.__eq @@ -21987,9 +19639,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20960 - i32.store offset=4 local.get $0 i32.const 20960 call $~lib/string/String.__eq @@ -22009,9 +19658,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21024 - i32.store offset=4 local.get $0 i32.const 21024 call $~lib/string/String.__eq @@ -22031,9 +19677,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -22053,9 +19696,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21088 - i32.store offset=4 local.get $0 i32.const 21088 call $~lib/string/String.__eq @@ -22075,9 +19715,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18464 - i32.store offset=4 local.get $0 i32.const 18464 call $~lib/string/String.__eq @@ -22097,9 +19734,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20464 - i32.store offset=4 local.get $0 i32.const 20464 call $~lib/string/String.__eq @@ -22119,9 +19753,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21120 - i32.store offset=4 local.get $0 i32.const 21120 call $~lib/string/String.__eq @@ -22141,9 +19772,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 20512 - i32.store offset=4 local.get $0 i32.const 20512 call $~lib/string/String.__eq @@ -22163,9 +19791,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21168 - i32.store offset=4 local.get $0 i32.const 21168 call $~lib/string/String.__eq @@ -22185,9 +19810,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21216 - i32.store offset=4 local.get $0 i32.const 21216 call $~lib/string/String.__eq @@ -22207,9 +19829,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21264 - i32.store offset=4 local.get $0 i32.const 21264 call $~lib/string/String.__eq @@ -22229,9 +19848,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21328 - i32.store offset=4 local.get $0 i32.const 21328 call $~lib/string/String.__eq @@ -22251,9 +19867,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21392 - i32.store offset=4 local.get $0 i32.const 21392 call $~lib/string/String.__eq @@ -22273,9 +19886,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21456 - i32.store offset=4 local.get $0 i32.const 21456 call $~lib/string/String.__eq @@ -22295,9 +19905,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -22317,9 +19924,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 local.get $0 i32.const 3456 call $~lib/string/String.__eq @@ -22339,9 +19943,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14464 - i32.store offset=4 local.get $0 i32.const 14464 call $~lib/string/String.__eq @@ -22361,9 +19962,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18544 - i32.store offset=4 local.get $0 i32.const 18544 call $~lib/string/String.__eq @@ -22383,9 +19981,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 18640 - i32.store offset=4 local.get $0 i32.const 18640 call $~lib/string/String.__eq @@ -22405,9 +20000,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21520 - i32.store offset=4 local.get $0 i32.const 21520 call $~lib/string/String.__eq @@ -22427,9 +20019,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21568 - i32.store offset=4 local.get $0 i32.const 21568 call $~lib/string/String.__eq @@ -22449,9 +20038,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21616 - i32.store offset=4 local.get $0 i32.const 21616 call $~lib/string/String.__eq @@ -22471,9 +20057,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21664 - i32.store offset=4 local.get $0 i32.const 21664 call $~lib/string/String.__eq @@ -22493,9 +20076,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21712 - i32.store offset=4 local.get $0 i32.const 21712 call $~lib/string/String.__eq @@ -22515,9 +20095,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21760 - i32.store offset=4 local.get $0 i32.const 21760 call $~lib/string/String.__eq @@ -22537,9 +20114,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21824 - i32.store offset=4 local.get $0 i32.const 21824 call $~lib/string/String.__eq @@ -22559,9 +20133,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21888 - i32.store offset=4 local.get $0 i32.const 21888 call $~lib/string/String.__eq @@ -22581,9 +20152,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 21952 - i32.store offset=4 local.get $0 i32.const 21952 call $~lib/string/String.__eq @@ -22603,9 +20171,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22016 - i32.store offset=4 local.get $0 i32.const 22016 call $~lib/string/String.__eq @@ -22625,9 +20190,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22080 - i32.store offset=4 local.get $0 i32.const 22080 call $~lib/string/String.__eq @@ -22647,9 +20209,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22080 - i32.store offset=4 local.get $0 i32.const 22080 call $~lib/string/String.__eq @@ -22669,9 +20228,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3392 - i32.store offset=4 local.get $0 i32.const 3392 call $~lib/string/String.__eq @@ -22691,9 +20247,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=4 local.get $0 i32.const 3456 call $~lib/string/String.__eq @@ -22713,9 +20266,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19120 - i32.store offset=4 local.get $0 i32.const 19120 call $~lib/string/String.__eq @@ -22735,9 +20285,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19152 - i32.store offset=4 local.get $0 i32.const 19152 call $~lib/string/String.__eq @@ -22757,9 +20304,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19216 - i32.store offset=4 local.get $0 i32.const 19216 call $~lib/string/String.__eq @@ -22779,9 +20323,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19248 - i32.store offset=4 local.get $0 i32.const 19248 call $~lib/string/String.__eq @@ -22801,9 +20342,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 19664 - i32.store offset=4 local.get $0 i32.const 19664 call $~lib/string/String.__eq @@ -22823,9 +20361,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22144 - i32.store offset=4 local.get $0 i32.const 22144 call $~lib/string/String.__eq @@ -22845,9 +20380,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22272 - i32.store offset=4 local.get $0 i32.const 22272 call $~lib/string/String.__eq @@ -22866,10 +20398,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22432 - i32.store offset=4 + i32.store local.get $0 i32.const 22432 call $~lib/string/String.__eq @@ -22889,9 +20418,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22528 - i32.store offset=4 local.get $0 i32.const 22528 call $~lib/string/String.__eq @@ -22911,9 +20437,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22640 - i32.store offset=4 local.get $0 i32.const 22640 call $~lib/string/String.__eq @@ -22933,9 +20456,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22736 - i32.store offset=4 local.get $0 i32.const 22736 call $~lib/string/String.__eq @@ -22955,9 +20475,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22816 - i32.store offset=4 local.get $0 i32.const 22816 call $~lib/string/String.__eq @@ -22977,9 +20494,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22880 - i32.store offset=4 local.get $0 i32.const 22880 call $~lib/string/String.__eq @@ -22999,9 +20513,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 22944 - i32.store offset=4 local.get $0 i32.const 22944 call $~lib/string/String.__eq @@ -23021,9 +20532,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23008 - i32.store offset=4 local.get $0 i32.const 23008 call $~lib/string/String.__eq @@ -23043,9 +20551,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23072 - i32.store offset=4 local.get $0 i32.const 23072 call $~lib/string/String.__eq @@ -23065,9 +20570,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23136 - i32.store offset=4 local.get $0 i32.const 23136 call $~lib/string/String.__eq @@ -23087,9 +20589,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23184 - i32.store offset=4 local.get $0 i32.const 23184 call $~lib/string/String.__eq @@ -23109,9 +20608,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23232 - i32.store offset=4 local.get $0 i32.const 23232 call $~lib/string/String.__eq @@ -23130,9 +20626,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23280 - i32.store offset=4 local.get $0 i32.const 23280 call $~lib/string/String.__eq @@ -23151,9 +20644,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23280 - i32.store offset=4 local.get $0 i32.const 23280 call $~lib/string/String.__eq @@ -23172,9 +20662,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7696 - i32.store offset=4 local.get $0 i32.const 7696 call $~lib/string/String.__eq @@ -23193,9 +20680,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23312 - i32.store offset=4 local.get $0 i32.const 23312 call $~lib/string/String.__eq @@ -23214,9 +20698,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8960 - i32.store offset=4 local.get $0 i32.const 8960 call $~lib/string/String.__eq @@ -23235,9 +20716,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8176 - i32.store offset=4 local.get $0 i32.const 8176 call $~lib/string/String.__eq @@ -23256,9 +20734,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24336 - i32.store offset=4 local.get $0 i32.const 24336 call $~lib/string/String.__eq @@ -23277,9 +20752,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8240 - i32.store offset=4 local.get $0 i32.const 8240 call $~lib/string/String.__eq @@ -23298,9 +20770,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24400 - i32.store offset=4 local.get $0 i32.const 24400 call $~lib/string/String.__eq @@ -23319,9 +20788,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24480 - i32.store offset=4 local.get $0 i32.const 24480 call $~lib/string/String.__eq @@ -23340,9 +20806,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24528 - i32.store offset=4 local.get $0 i32.const 24528 call $~lib/string/String.__eq @@ -23361,9 +20824,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24576 - i32.store offset=4 local.get $0 i32.const 24576 call $~lib/string/String.__eq @@ -23382,9 +20842,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24624 - i32.store offset=4 local.get $0 i32.const 24624 call $~lib/string/String.__eq @@ -23403,9 +20860,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24672 - i32.store offset=4 local.get $0 i32.const 24672 call $~lib/string/String.__eq @@ -23424,9 +20878,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24736 - i32.store offset=4 local.get $0 i32.const 24736 call $~lib/string/String.__eq @@ -23445,9 +20896,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24816 - i32.store offset=4 local.get $0 i32.const 24816 call $~lib/string/String.__eq @@ -23466,9 +20914,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24864 - i32.store offset=4 local.get $0 i32.const 24864 call $~lib/string/String.__eq @@ -23487,9 +20932,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24928 - i32.store offset=4 local.get $0 i32.const 24928 call $~lib/string/String.__eq @@ -23508,9 +20950,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 24992 - i32.store offset=4 local.get $0 i32.const 24992 call $~lib/string/String.__eq @@ -23529,9 +20968,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8320 - i32.store offset=4 local.get $0 i32.const 8320 call $~lib/string/String.__eq @@ -23550,9 +20986,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25056 - i32.store offset=4 local.get $0 i32.const 25056 call $~lib/string/String.__eq @@ -23571,9 +21004,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5280 - i32.store offset=4 local.get $0 i32.const 5280 call $~lib/string/String.__eq @@ -23592,9 +21022,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25088 - i32.store offset=4 local.get $0 i32.const 25088 call $~lib/string/String.__eq @@ -23613,9 +21040,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25120 - i32.store offset=4 local.get $0 i32.const 25120 call $~lib/string/String.__eq @@ -23634,9 +21058,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25152 - i32.store offset=4 local.get $0 i32.const 25152 call $~lib/string/String.__eq @@ -23655,9 +21076,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25200 - i32.store offset=4 local.get $0 i32.const 25200 call $~lib/string/String.__eq @@ -23676,9 +21094,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25248 - i32.store offset=4 local.get $0 i32.const 25248 call $~lib/string/String.__eq @@ -23697,9 +21112,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25296 - i32.store offset=4 local.get $0 i32.const 25296 call $~lib/string/String.__eq @@ -23718,9 +21130,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25344 - i32.store offset=4 local.get $0 i32.const 25344 call $~lib/string/String.__eq @@ -23739,9 +21148,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25392 - i32.store offset=4 local.get $0 i32.const 25392 call $~lib/string/String.__eq @@ -23760,9 +21166,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5568 - i32.store offset=4 local.get $0 i32.const 5568 call $~lib/string/String.__eq @@ -23781,9 +21184,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25424 - i32.store offset=4 local.get $0 i32.const 25424 call $~lib/string/String.__eq @@ -23802,9 +21202,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23312 - i32.store offset=4 local.get $0 i32.const 23312 call $~lib/string/String.__eq @@ -23823,9 +21220,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8960 - i32.store offset=4 local.get $0 i32.const 8960 call $~lib/string/String.__eq @@ -23844,9 +21238,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25472 - i32.store offset=4 local.get $0 i32.const 25472 call $~lib/string/String.__eq @@ -23865,9 +21256,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25504 - i32.store offset=4 local.get $0 i32.const 25504 call $~lib/string/String.__eq @@ -23886,9 +21274,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25552 - i32.store offset=4 local.get $0 i32.const 25552 call $~lib/string/String.__eq @@ -23907,9 +21292,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25584 - i32.store offset=4 local.get $0 i32.const 25584 call $~lib/string/String.__eq @@ -23928,9 +21310,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 23280 - i32.store offset=4 local.get $0 i32.const 23280 call $~lib/string/String.__eq @@ -23977,9 +21356,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25632 - i32.store offset=4 local.get $4 i32.const 25632 call $~lib/string/String.__eq @@ -23998,9 +21374,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25680 - i32.store offset=4 local.get $0 i32.const 25680 call $~lib/string/String.__eq @@ -24019,9 +21392,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25744 - i32.store offset=4 local.get $0 i32.const 25744 call $~lib/string/String.__eq @@ -24040,9 +21410,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25808 - i32.store offset=4 local.get $0 i32.const 25808 call $~lib/string/String.__eq @@ -24061,9 +21428,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25056 - i32.store offset=4 local.get $0 i32.const 25056 call $~lib/string/String.__eq @@ -24082,9 +21446,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25872 - i32.store offset=4 local.get $0 i32.const 25872 call $~lib/string/String.__eq @@ -24103,9 +21464,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25904 - i32.store offset=4 local.get $0 i32.const 25904 call $~lib/string/String.__eq @@ -24124,9 +21482,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 25968 - i32.store offset=4 local.get $0 i32.const 25968 call $~lib/string/String.__eq @@ -24145,9 +21500,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26048 - i32.store offset=4 local.get $0 i32.const 26048 call $~lib/string/String.__eq @@ -24166,9 +21518,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26096 - i32.store offset=4 local.get $0 i32.const 26096 call $~lib/string/String.__eq @@ -24187,9 +21536,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26144 - i32.store offset=4 local.get $0 i32.const 26144 call $~lib/string/String.__eq @@ -24208,9 +21554,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26192 - i32.store offset=4 local.get $0 i32.const 26192 call $~lib/string/String.__eq @@ -24229,9 +21572,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26240 - i32.store offset=4 local.get $0 i32.const 26240 call $~lib/string/String.__eq @@ -24250,9 +21590,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26288 - i32.store offset=4 local.get $0 i32.const 26288 call $~lib/string/String.__eq @@ -24271,9 +21608,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26336 - i32.store offset=4 local.get $0 i32.const 26336 call $~lib/string/String.__eq @@ -24286,12 +21620,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 26384 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 26416 - i32.store offset=12 i32.const 26384 i32.const 26416 call $~lib/string/String#concat @@ -24299,9 +21627,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26448 - i32.store offset=4 local.get $0 i32.const 26448 call $~lib/string/String.__eq @@ -24314,12 +21639,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 26496 - i32.store offset=12 i32.const 1712 i32.const 26496 call $~lib/string/String#concat @@ -24327,9 +21646,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26496 - i32.store offset=4 local.get $0 i32.const 26496 call $~lib/string/String.__eq @@ -24342,12 +21658,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 26496 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 i32.const 26496 i32.const 1712 call $~lib/string/String#concat @@ -24355,9 +21665,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26496 - i32.store offset=4 local.get $0 i32.const 26496 call $~lib/string/String.__eq @@ -24370,12 +21677,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=12 i32.const 1712 i32.const 1712 call $~lib/string/String#concat @@ -24383,9 +21684,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 local.get $0 i32.const 1712 call $~lib/string/String.__eq @@ -24398,12 +21696,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 26528 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26528 - i32.store offset=4 i32.const 26528 i32.const 26528 call $~lib/string/String.__eq @@ -24416,12 +21708,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 26528 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26528 - i32.store offset=4 i32.const 26528 i32.const 26528 call $~lib/string/String.__eq @@ -24434,12 +21720,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 26560 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26560 - i32.store offset=4 i32.const 26560 i32.const 26560 call $~lib/string/String.__eq @@ -24452,12 +21732,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 26592 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 26592 - i32.store offset=4 i32.const 26592 i32.const 26592 call $~lib/string/String.__eq @@ -24508,7 +21782,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 96 + i32.const 76 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index a6cb7d2d76..9baedf249c 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -4913,14 +4913,16 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 local.get $this local.set $id global.get $~lib/memory/__stack_pointer @@ -5085,16 +5087,11 @@ br $break|0 end i32.const 1392 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 local.get $str local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=8 local.get $4 call $~lib/string/String.__concat local.set $4 @@ -5103,15 +5100,10 @@ i32.store offset=4 local.get $4 i32.const 1440 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 call $~lib/string/String.__concat local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -5133,19 +5125,9 @@ i64.const 0 i64.store offset=8 i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/symbol/Symbol global.set $std/symbol/sym1 i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/symbol/Symbol global.set $std/symbol/sym2 global.get $std/symbol/sym1 @@ -5184,19 +5166,9 @@ call $"~lib/map/Map#constructor" global.set $~lib/symbol/idToString i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/symbol/_Symbol.for global.set $std/symbol/sym3 i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 call $~lib/symbol/_Symbol.for global.set $std/symbol/sym4 global.get $std/symbol/sym3 @@ -5292,11 +5264,6 @@ i32.store local.get $2 i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5338,11 +5305,6 @@ i32.store local.get $2 i32.const 1472 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5361,11 +5323,6 @@ i32.store local.get $2 i32.const 1520 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5388,11 +5345,6 @@ i32.store local.get $2 i32.const 1568 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5411,11 +5363,6 @@ i32.store local.get $2 i32.const 1632 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 call $~lib/string/String.__eq i32.eqz if diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index 51197770e1..39b4ead273 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -3571,7 +3571,7 @@ (local $1 i32) (local $2 i32) 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 @@ -3586,9 +3586,11 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 i32.const 1888 local.set $1 global.get $~lib/memory/__stack_pointer @@ -3715,11 +3717,8 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 2416 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=16 + i32.store offset=8 i32.const 2416 local.get $1 call $~lib/string/String.__concat @@ -3727,14 +3726,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2464 - i32.store offset=8 local.get $0 i32.const 2464 call $~lib/string/String.__concat global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -3756,9 +3752,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store global.get $~lib/symbol/nextId local.tee $0 i32.const 1 @@ -3771,9 +3764,6 @@ end local.get $0 global.set $std/symbol/sym1 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store global.get $~lib/symbol/nextId local.tee $0 i32.const 1 @@ -3993,14 +3983,8 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $~lib/symbol/idToString - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store call $~lib/symbol/_Symbol.for global.set $std/symbol/sym3 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store call $~lib/symbol/_Symbol.for global.set $std/symbol/sym4 global.get $std/symbol/sym3 @@ -4090,9 +4074,6 @@ global.get $std/symbol/key3 local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -4141,9 +4122,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2496 - i32.store offset=12 local.get $0 i32.const 2496 call $~lib/string/String.__eq @@ -4162,9 +4140,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=12 local.get $0 i32.const 2544 call $~lib/string/String.__eq @@ -4185,9 +4160,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2592 - i32.store offset=12 local.get $0 i32.const 2592 call $~lib/string/String.__eq @@ -4206,9 +4178,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2656 - i32.store offset=12 local.get $0 i32.const 2656 call $~lib/string/String.__eq diff --git a/tests/compiler/std/trace.debug.wat b/tests/compiler/std/trace.debug.wat index ae9613a4d7..61282af2bd 100644 --- a/tests/compiler/std/trace.debug.wat +++ b/tests/compiler/std/trace.debug.wat @@ -1,9 +1,7 @@ (module (type $0 (func)) (type $1 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $2 (func (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__data_end i32 (i32.const 396)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33164)) (global $~lib/memory/__heap_base i32 (i32.const 33164)) @@ -21,44 +19,8 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/trace - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 33184 - i32.const 33232 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) (func $start:std/trace - (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 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 0 f64.const 0 f64.const 0 @@ -67,11 +29,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 80 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 0 f64.const 0 f64.const 0 @@ -80,11 +37,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 1 f64.const 1 f64.const 0 @@ -93,11 +45,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 176 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 2 f64.const 1 f64.const 2 @@ -106,11 +53,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 224 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 3 f64.const 1 f64.const 2 @@ -119,11 +61,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 272 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 4 f64.const 1 f64.const 2 @@ -132,11 +69,6 @@ f64.const 0 call $~lib/builtins/trace i32.const 320 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 5 f64.const 1 f64.const 2 @@ -145,11 +77,6 @@ f64.const 5 call $~lib/builtins/trace i32.const 368 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 5 f64.const 1.1 f64.const 2.2 @@ -157,9 +84,14 @@ f64.const 4.4 f64.const 5.5 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/trace ) ) diff --git a/tests/compiler/std/trace.release.wat b/tests/compiler/std/trace.release.wat index b78ea677ee..bf6eec49ce 100644 --- a/tests/compiler/std/trace.release.wat +++ b/tests/compiler/std/trace.release.wat @@ -1,10 +1,7 @@ (module (type $0 (func (param i32 i32 f64 f64 f64 f64 f64))) (type $1 (func)) - (type $2 (func (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34188)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data $0 (i32.const 1036) ",") @@ -32,27 +29,6 @@ end i32.const 1 global.set $~started - 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 1420 - i32.lt_s - if - i32.const 34208 - i32.const 34256 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store i32.const 1056 i32.const 0 f64.const 0 @@ -61,9 +37,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1104 - i32.store i32.const 1104 i32.const 0 f64.const 0 @@ -72,9 +45,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1152 - i32.store i32.const 1152 i32.const 1 f64.const 1 @@ -83,9 +53,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1200 - i32.store i32.const 1200 i32.const 2 f64.const 1 @@ -94,9 +61,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store i32.const 1248 i32.const 3 f64.const 1 @@ -105,9 +69,6 @@ f64.const 0 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store i32.const 1296 i32.const 4 f64.const 1 @@ -116,9 +77,6 @@ f64.const 4 f64.const 0 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1344 - i32.store i32.const 1344 i32.const 5 f64.const 1 @@ -127,9 +85,6 @@ f64.const 4 f64.const 5 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 1392 - i32.store i32.const 1392 i32.const 5 f64.const 1.1 @@ -138,9 +93,5 @@ f64.const 4.4 f64.const 5.5 call $~lib/builtins/trace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index ecf75231bf..9b7671a355 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -57229,13 +57229,13 @@ (func $~lib/typedarray/Int8Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -57243,15 +57243,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Int8Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -57261,14 +57256,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -57326,14 +57323,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Int8Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57341,11 +57333,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57360,7 +57347,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Int8Array#toString local.set $1 @@ -57369,11 +57356,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57385,7 +57367,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -57610,13 +57592,13 @@ (func $~lib/typedarray/Uint8Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -57624,15 +57606,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint8Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -57642,14 +57619,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -57707,14 +57686,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint8Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57722,11 +57696,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57741,7 +57710,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint8Array#toString local.set $1 @@ -57750,11 +57719,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57766,7 +57730,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -57812,13 +57776,13 @@ (func $~lib/typedarray/Uint8ClampedArray#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -57826,15 +57790,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint8ClampedArray#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -57844,14 +57803,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -57909,14 +57870,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint8ClampedArray#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -57924,11 +57880,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57943,7 +57894,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint8ClampedArray#toString local.set $1 @@ -57952,11 +57903,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -57968,7 +57914,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -58193,13 +58139,13 @@ (func $~lib/typedarray/Int16Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -58207,15 +58153,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Int16Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -58225,14 +58166,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -58290,14 +58233,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Int16Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -58305,11 +58243,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58324,7 +58257,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Int16Array#toString local.set $1 @@ -58333,11 +58266,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58349,7 +58277,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -58574,13 +58502,13 @@ (func $~lib/typedarray/Uint16Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -58588,15 +58516,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint16Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -58606,14 +58529,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -58671,14 +58596,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint16Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -58686,11 +58606,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58705,7 +58620,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint16Array#toString local.set $1 @@ -58714,11 +58629,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -58730,7 +58640,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -58955,13 +58865,13 @@ (func $~lib/typedarray/Int32Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -58969,15 +58879,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Int32Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -58987,14 +58892,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -59052,14 +58959,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Int32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -59067,11 +58969,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59086,7 +58983,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Int32Array#toString local.set $1 @@ -59095,11 +58992,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59111,7 +59003,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -59336,29 +59228,24 @@ (func $~lib/typedarray/Uint32Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $this - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store - local.get $1 - i32.const 8560 + local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 + i32.const 8560 call $~lib/typedarray/Uint32Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -59368,14 +59255,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -59433,14 +59322,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -59448,11 +59332,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59467,7 +59346,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint32Array#toString local.set $1 @@ -59476,11 +59355,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59492,7 +59366,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -59719,13 +59593,13 @@ (func $~lib/typedarray/Int64Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -59733,15 +59607,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Int64Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -59751,14 +59620,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -59816,14 +59687,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Int64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -59831,11 +59697,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59850,7 +59711,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Int64Array#toString local.set $1 @@ -59859,11 +59720,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -59875,7 +59731,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -60100,13 +59956,13 @@ (func $~lib/typedarray/Uint64Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -60114,15 +59970,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Uint64Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -60132,14 +59983,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -60197,14 +60050,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Uint64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60212,11 +60060,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60231,7 +60074,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Uint64Array#toString local.set $1 @@ -60240,11 +60083,6 @@ i32.store offset=4 local.get $1 i32.const 8592 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60256,7 +60094,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -60471,13 +60309,13 @@ (func $~lib/typedarray/Float32Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -60485,15 +60323,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Float32Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -60503,14 +60336,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -60568,14 +60403,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Float32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60583,11 +60413,6 @@ i32.store offset=4 local.get $1 i32.const 9776 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60602,7 +60427,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Float32Array#toString local.set $1 @@ -60611,11 +60436,6 @@ i32.store offset=4 local.get $1 i32.const 9776 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60627,7 +60447,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -60842,13 +60662,13 @@ (func $~lib/typedarray/Float64Array#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $this local.set $1 global.get $~lib/memory/__stack_pointer @@ -60856,15 +60676,10 @@ i32.store local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 call $~lib/typedarray/Float64Array#join local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -60874,14 +60689,16 @@ (local $array i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 5 @@ -60939,14 +60756,9 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 i32.const 8560 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 call $~lib/typedarray/Float64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60954,11 +60766,6 @@ i32.store offset=4 local.get $1 i32.const 9776 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60973,7 +60780,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $1 call $~lib/typedarray/Float64Array#toString local.set $1 @@ -60982,11 +60789,6 @@ i32.store offset=4 local.get $1 i32.const 9776 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -60998,7 +60800,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -65247,11 +65049,6 @@ i32.ne if i32.const 10320 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -66690,11 +66487,6 @@ i32.ne if i32.const 10528 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -68047,11 +67839,6 @@ i32.ne if i32.const 10736 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -69539,11 +69326,6 @@ i32.ne if i32.const 10976 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -70966,11 +70748,6 @@ i32.ne if i32.const 11264 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -72336,11 +72113,6 @@ i32.ne if i32.const 11568 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -73763,11 +73535,6 @@ i32.ne if i32.const 11936 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -75225,11 +74992,6 @@ i64.ne if i32.const 12352 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -76657,11 +76419,6 @@ i64.ne if i32.const 12960 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -78064,11 +77821,6 @@ f32.ne if i32.const 13520 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s @@ -79287,11 +79039,6 @@ f64.ne if i32.const 13872 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 i32.const 3 local.get $i f64.convert_i32_s diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 9270604b3c..8dd3afe263 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -35797,7 +35797,7 @@ ) (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -35812,18 +35812,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Uint8Array#join global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -40491,9 +40488,6 @@ local.get $5 i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 11344 - i32.store i32.const 11344 i32.const 3 local.get $2 @@ -41397,9 +41391,6 @@ local.get $4 i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 11552 - i32.store i32.const 11552 i32.const 3 local.get $2 @@ -41933,9 +41924,6 @@ local.get $4 i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 11760 - i32.store i32.const 11760 i32.const 3 local.get $2 @@ -43022,9 +43010,6 @@ local.get $4 i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 12000 - i32.store i32.const 12000 i32.const 3 local.get $2 @@ -43956,9 +43941,6 @@ local.get $4 i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store i32.const 12288 i32.const 3 local.get $2 @@ -44612,9 +44594,6 @@ local.get $4 i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 12592 - i32.store i32.const 12592 i32.const 3 local.get $2 @@ -45574,9 +45553,6 @@ local.get $4 i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 12960 - i32.store i32.const 12960 i32.const 3 local.get $2 @@ -46247,9 +46223,6 @@ local.get $4 i64.ne if - global.get $~lib/memory/__stack_pointer - i32.const 13376 - i32.store i32.const 13376 i32.const 3 local.get $2 @@ -47182,9 +47155,6 @@ local.get $4 i64.ne if - global.get $~lib/memory/__stack_pointer - i32.const 13984 - i32.store i32.const 13984 i32.const 3 local.get $2 @@ -47757,9 +47727,6 @@ local.get $4 f32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 14544 - i32.store i32.const 14544 i32.const 3 local.get $2 @@ -48515,9 +48482,6 @@ local.get $4 f64.ne if - global.get $~lib/memory/__stack_pointer - i32.const 14896 - i32.store i32.const 14896 i32.const 3 local.get $2 @@ -53542,15 +53506,15 @@ i32.const 124 i32.sub global.set $~lib/memory/__stack_pointer - 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-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-inner13 block $folding-inner12 block $folding-inner11 @@ -53565,7 +53529,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 124 @@ -55831,7 +55795,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -55877,7 +55841,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -55941,7 +55905,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55953,7 +55917,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -55999,7 +55963,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56011,7 +55975,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56057,7 +56021,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56071,7 +56035,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56117,7 +56081,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56185,7 +56149,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56199,7 +56163,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56245,7 +56209,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56313,7 +56277,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56327,7 +56291,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56373,7 +56337,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56439,7 +56403,7 @@ local.get $1 i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56453,7 +56417,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56499,7 +56463,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56565,7 +56529,7 @@ local.get $1 i32.const 6 i32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56579,7 +56543,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56625,7 +56589,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56689,7 +56653,7 @@ local.get $3 i64.const 6 i64.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56705,7 +56669,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56751,7 +56715,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56815,7 +56779,7 @@ local.get $3 i64.const 6 i64.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56829,7 +56793,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56875,7 +56839,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56939,7 +56903,7 @@ local.get $4 f32.const 6 f32.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56953,7 +56917,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -56999,7 +56963,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57063,7 +57027,7 @@ local.get $5 f64.const 6 f64.ne - br_if $folding-inner18 + br_if $folding-inner20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -57075,7 +57039,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57143,7 +57107,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57211,7 +57175,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57279,7 +57243,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57347,7 +57311,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57415,7 +57379,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57483,7 +57447,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57551,7 +57515,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57619,7 +57583,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57687,7 +57651,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57755,7 +57719,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57823,7 +57787,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57869,7 +57833,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57937,7 +57901,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -57949,7 +57913,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -57995,7 +57959,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58007,7 +57971,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58053,7 +58017,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58065,7 +58029,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58111,7 +58075,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58181,7 +58145,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58193,7 +58157,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58239,7 +58203,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58309,7 +58273,7 @@ i32.and i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58321,7 +58285,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58367,7 +58331,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58435,7 +58399,7 @@ local.get $1 i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58447,7 +58411,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58493,7 +58457,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58561,7 +58525,7 @@ local.get $1 i32.const 6 i32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58575,7 +58539,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58621,7 +58585,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58687,7 +58651,7 @@ local.get $3 i64.const 6 i64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58701,7 +58665,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58747,7 +58711,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58813,7 +58777,7 @@ local.get $3 i64.const 6 i64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58827,7 +58791,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58873,7 +58837,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58939,7 +58903,7 @@ local.get $4 f32.const 6 f32.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58953,7 +58917,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -58999,7 +58963,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59065,7 +59029,7 @@ local.get $5 f64.const 6 f64.ne - br_if $folding-inner20 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -59099,7 +59063,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59164,7 +59128,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59229,7 +59193,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59294,7 +59258,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59359,7 +59323,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59424,7 +59388,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59489,7 +59453,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59554,7 +59518,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59619,7 +59583,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59684,7 +59648,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59749,7 +59713,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59814,7 +59778,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59882,7 +59846,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -59950,7 +59914,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60018,7 +59982,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60086,7 +60050,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60154,7 +60118,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60222,7 +60186,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60290,7 +60254,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60358,7 +60322,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60426,7 +60390,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60494,7 +60458,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60562,7 +60526,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60630,7 +60594,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60698,7 +60662,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60766,7 +60730,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60834,7 +60798,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60902,7 +60866,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -60970,7 +60934,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61038,7 +61002,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61106,7 +61070,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61174,7 +61138,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61242,7 +61206,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61310,7 +61274,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61375,7 +61339,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61440,7 +61404,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61505,7 +61469,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61570,7 +61534,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61635,7 +61599,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61700,7 +61664,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61765,7 +61729,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61830,7 +61794,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61895,7 +61859,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -61960,7 +61924,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62027,7 +61991,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62095,7 +62059,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62153,7 +62117,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62165,7 +62129,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62235,7 +62199,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62247,7 +62211,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62317,7 +62281,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62331,7 +62295,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62399,7 +62363,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62459,7 +62423,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62473,7 +62437,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62544,7 +62508,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62604,7 +62568,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62618,7 +62582,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62683,7 +62647,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62743,7 +62707,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62757,7 +62721,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62822,7 +62786,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62882,7 +62846,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62896,7 +62860,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62964,7 +62928,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63024,7 +62988,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63038,7 +63002,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63106,7 +63070,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63166,7 +63130,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63180,7 +63144,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63248,7 +63212,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63308,7 +63272,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63322,7 +63286,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63390,7 +63354,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63450,7 +63414,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner21 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63518,7 +63482,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63626,7 +63590,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -63694,17 +63658,19 @@ unreachable end 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int8Array#constructor @@ -63747,78 +63713,68 @@ call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Int8Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Int8Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint8Array#constructor @@ -63861,57 +63817,50 @@ call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Uint8Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 call $~lib/typedarray/Uint8Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint8ClampedArray#constructor @@ -63954,57 +63903,50 @@ call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Uint8Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 call $~lib/typedarray/Uint8Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int16Array#constructor @@ -64047,78 +63989,68 @@ call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Int16Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Int16Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint16Array#constructor @@ -64161,78 +64093,68 @@ call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Uint16Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Uint16Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor @@ -64275,78 +64197,68 @@ call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint32Array#constructor @@ -64389,78 +64301,68 @@ call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Uint32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Uint32Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int64Array#constructor @@ -64503,78 +64405,68 @@ call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Int64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Uint64Array#constructor @@ -64617,78 +64509,68 @@ call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Uint64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner22 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Uint64Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner16 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Float32Array#constructor @@ -64731,78 +64613,68 @@ call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Float32Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Float32Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner25 + br_if $folding-inner18 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 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Float64Array#constructor @@ -64845,64 +64717,52 @@ call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 + i32.store offset=8 local.get $0 call $~lib/typedarray/Float64Array#join local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 local.get $0 call $~lib/typedarray/Float64Array#join local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner25 + br_if $folding-inner18 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 @@ -64971,7 +64831,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 24 @@ -64990,7 +64850,7 @@ call $~lib/typedarray/Uint8Array#constructor local.tee $1 i32.store offset=8 - loop $for-loop|062 + loop $for-loop|053 local.get $0 local.get $2 i32.gt_s @@ -65013,7 +64873,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|062 + br $for-loop|053 end end global.get $~lib/memory/__stack_pointer @@ -65217,7 +65077,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -65245,7 +65105,7 @@ i32.const 1 i32.add i32.lt_s - br_if $folding-inner17 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -65262,7 +65122,7 @@ local.set $0 i32.const 0 local.set $2 - loop $for-loop|0663 + loop $for-loop|0654 local.get $2 local.get $8 i32.lt_s @@ -65296,7 +65156,7 @@ i32.const 1 i32.add local.set $2 - br $for-loop|0663 + br $for-loop|0654 end end global.get $~lib/memory/__stack_pointer @@ -65326,7 +65186,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -65354,7 +65214,7 @@ i32.const 8 i32.add i32.lt_s - br_if $folding-inner17 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -65504,7 +65364,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -65530,7 +65390,7 @@ call $~lib/typedarray/Int8Array#get:length local.get $6 i32.lt_s - br_if $folding-inner17 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -65545,7 +65405,7 @@ local.set $8 i32.const 0 local.set $0 - loop $for-loop|0864 + loop $for-loop|0855 local.get $0 local.get $6 i32.lt_s @@ -65570,7 +65430,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0864 + br $for-loop|0855 end end global.get $~lib/memory/__stack_pointer @@ -67609,7 +67469,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67880,66 +67740,66 @@ call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 + i32.const 0 + i32.const 1568 + i32.const 675 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 323 - i32.const 3 + i32.const 676 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 672 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 367 - i32.const 3 + i32.const 673 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 541 - 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 675 - i32.const 5 + i32.const 323 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 676 - i32.const 5 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 - i32.const 5 + i32.const 367 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 673 - i32.const 5 + i32.const 541 + i32.const 3 call $~lib/builtins/abort unreachable ) diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index 5a8c5dce8f..ef9b074578 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -3679,16 +3679,13 @@ (func $start:std/uri (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.store memory.size i32.const 16 i32.shl @@ -3707,11 +3704,6 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3719,11 +3711,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3735,11 +3722,6 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3747,11 +3729,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3763,11 +3740,6 @@ unreachable end i32.const 768 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3775,11 +3747,6 @@ i32.store local.get $0 i32.const 768 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3791,11 +3758,6 @@ unreachable end i32.const 800 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3803,11 +3765,6 @@ i32.store local.get $0 i32.const 800 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3819,11 +3776,6 @@ unreachable end i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3831,11 +3783,6 @@ i32.store local.get $0 i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3847,11 +3794,6 @@ unreachable end i32.const 928 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3859,11 +3801,6 @@ i32.store local.get $0 i32.const 960 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3875,11 +3812,6 @@ unreachable end i32.const 992 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3887,11 +3819,6 @@ i32.store local.get $0 i32.const 1024 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3903,11 +3830,6 @@ unreachable end i32.const 1056 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3915,11 +3837,6 @@ i32.store local.get $0 i32.const 1088 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3931,11 +3848,6 @@ unreachable end i32.const 1136 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3943,11 +3855,6 @@ i32.store local.get $0 i32.const 1168 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3959,11 +3866,6 @@ unreachable end i32.const 1216 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3971,11 +3873,6 @@ i32.store local.get $0 i32.const 1248 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3987,11 +3884,6 @@ unreachable end i32.const 1280 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -3999,11 +3891,6 @@ i32.store local.get $0 i32.const 1312 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4015,11 +3902,6 @@ unreachable end i32.const 1360 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4027,11 +3909,6 @@ i32.store local.get $0 i32.const 1392 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4043,11 +3920,6 @@ unreachable end i32.const 1488 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4055,11 +3927,6 @@ i32.store local.get $0 i32.const 1520 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4071,11 +3938,6 @@ unreachable end i32.const 1632 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4083,11 +3945,6 @@ i32.store local.get $0 i32.const 1664 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4099,11 +3956,6 @@ unreachable end i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4111,11 +3963,6 @@ i32.store local.get $0 i32.const 1744 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4127,11 +3974,6 @@ unreachable end i32.const 1792 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4139,11 +3981,6 @@ i32.store local.get $0 i32.const 1824 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4155,11 +3992,6 @@ unreachable end i32.const 1904 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4167,11 +3999,6 @@ i32.store local.get $0 i32.const 1936 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4183,11 +4010,6 @@ unreachable end i32.const 2000 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4195,11 +4017,6 @@ i32.store local.get $0 i32.const 2048 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4211,11 +4028,6 @@ unreachable end i32.const 2128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4223,11 +4035,6 @@ i32.store local.get $0 i32.const 2240 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4239,11 +4046,6 @@ unreachable end i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4251,11 +4053,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4267,11 +4064,6 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4279,11 +4071,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4295,11 +4082,6 @@ unreachable end i32.const 2480 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4307,11 +4089,6 @@ i32.store local.get $0 i32.const 2480 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4323,11 +4100,6 @@ unreachable end i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4335,11 +4107,6 @@ i32.store local.get $0 i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4351,11 +4118,6 @@ unreachable end i32.const 2528 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4363,11 +4125,6 @@ i32.store local.get $0 i32.const 2560 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4379,11 +4136,6 @@ unreachable end i32.const 1632 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4391,11 +4143,6 @@ i32.store local.get $0 i32.const 1664 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4407,11 +4154,6 @@ unreachable end i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4419,11 +4161,6 @@ i32.store local.get $0 i32.const 1744 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4435,11 +4172,6 @@ unreachable end i32.const 1904 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4447,11 +4179,6 @@ i32.store local.get $0 i32.const 1936 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4463,11 +4190,6 @@ unreachable end i32.const 2128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4475,11 +4197,6 @@ i32.store local.get $0 i32.const 2128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4491,11 +4208,6 @@ unreachable end i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4503,11 +4215,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4519,11 +4226,6 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4531,11 +4233,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4547,11 +4244,6 @@ unreachable end i32.const 2624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4559,11 +4251,6 @@ i32.store local.get $0 i32.const 2656 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4575,11 +4262,6 @@ unreachable end i32.const 2688 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4587,11 +4269,6 @@ i32.store local.get $0 i32.const 2720 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4603,11 +4280,6 @@ unreachable end i32.const 2752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4615,11 +4287,6 @@ i32.store local.get $0 i32.const 2752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4631,11 +4298,6 @@ unreachable end i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4643,11 +4305,6 @@ i32.store local.get $0 i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4659,11 +4316,6 @@ unreachable end i32.const 2784 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4671,11 +4323,6 @@ i32.store local.get $0 i32.const 2864 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4687,11 +4334,6 @@ unreachable end i32.const 2912 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4699,11 +4341,6 @@ i32.store local.get $0 i32.const 2864 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4715,11 +4352,6 @@ unreachable end i32.const 2992 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4727,11 +4359,6 @@ i32.store local.get $0 i32.const 2128 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4743,11 +4370,6 @@ unreachable end i32.const 1392 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer @@ -4755,11 +4377,6 @@ i32.store local.get $0 i32.const 1360 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4771,11 +4388,6 @@ unreachable end i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4783,11 +4395,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4799,11 +4406,6 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4811,11 +4413,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4827,11 +4424,6 @@ unreachable end i32.const 2624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4839,11 +4431,6 @@ i32.store local.get $0 i32.const 2624 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4855,11 +4442,6 @@ unreachable end i32.const 3120 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4867,11 +4449,6 @@ i32.store local.get $0 i32.const 3152 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4883,11 +4460,6 @@ unreachable end i32.const 3184 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4895,11 +4467,6 @@ i32.store local.get $0 i32.const 3216 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4911,11 +4478,6 @@ unreachable end i32.const 2752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4923,11 +4485,6 @@ i32.store local.get $0 i32.const 2752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4939,11 +4496,6 @@ unreachable end i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4951,11 +4503,6 @@ i32.store local.get $0 i32.const 1712 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4967,11 +4514,6 @@ unreachable end i32.const 2784 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -4979,11 +4521,6 @@ i32.store local.get $0 i32.const 2784 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4995,11 +4532,6 @@ unreachable end i32.const 1392 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -5007,11 +4539,6 @@ i32.store local.get $0 i32.const 1360 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5023,11 +4550,6 @@ unreachable end i32.const 3248 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -5035,11 +4557,6 @@ i32.store local.get $0 i32.const 3248 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5051,11 +4568,6 @@ unreachable end i32.const 3296 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -5063,11 +4575,6 @@ i32.store local.get $0 i32.const 3296 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5079,11 +4586,6 @@ unreachable end i32.const 2992 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer @@ -5091,11 +4593,6 @@ i32.store local.get $0 i32.const 2992 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5110,7 +4607,7 @@ global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index f3835303da..60fea95101 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -2946,7 +2946,7 @@ (func $start:std/uri (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2961,11 +2961,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.store memory.size i32.const 16 i32.shl @@ -2998,18 +2995,12 @@ i32.store i32.const 1472 global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -3022,18 +3013,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=8 i32.const 1760 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 local.get $0 i32.const 1760 call $~lib/string/String.__eq @@ -3046,18 +3031,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=8 i32.const 1792 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=4 local.get $0 i32.const 1792 call $~lib/string/String.__eq @@ -3070,18 +3049,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1824 - i32.store offset=8 i32.const 1824 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1824 - i32.store offset=4 local.get $0 i32.const 1824 call $~lib/string/String.__eq @@ -3094,18 +3067,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=8 i32.const 1856 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=4 local.get $0 i32.const 1856 call $~lib/string/String.__eq @@ -3118,18 +3085,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1952 - i32.store offset=8 i32.const 1952 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1984 - i32.store offset=4 local.get $0 i32.const 1984 call $~lib/string/String.__eq @@ -3142,18 +3103,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2016 - i32.store offset=8 i32.const 2016 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=4 local.get $0 i32.const 2048 call $~lib/string/String.__eq @@ -3166,18 +3121,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2080 - i32.store offset=8 i32.const 2080 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store offset=4 local.get $0 i32.const 2112 call $~lib/string/String.__eq @@ -3190,18 +3139,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2160 - i32.store offset=8 i32.const 2160 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2192 - i32.store offset=4 local.get $0 i32.const 2192 call $~lib/string/String.__eq @@ -3214,18 +3157,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store offset=8 i32.const 2240 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store offset=4 local.get $0 i32.const 2272 call $~lib/string/String.__eq @@ -3238,18 +3175,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2304 - i32.store offset=8 i32.const 2304 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.store offset=4 local.get $0 i32.const 2336 call $~lib/string/String.__eq @@ -3262,18 +3193,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2384 - i32.store offset=8 i32.const 2384 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2416 - i32.store offset=4 local.get $0 i32.const 2416 call $~lib/string/String.__eq @@ -3286,18 +3211,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2512 - i32.store offset=8 i32.const 2512 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2544 - i32.store offset=4 local.get $0 i32.const 2544 call $~lib/string/String.__eq @@ -3310,18 +3229,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2656 - i32.store offset=8 i32.const 2656 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2688 - i32.store offset=4 local.get $0 i32.const 2688 call $~lib/string/String.__eq @@ -3334,18 +3247,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=8 i32.const 2736 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2768 - i32.store offset=4 local.get $0 i32.const 2768 call $~lib/string/String.__eq @@ -3358,18 +3265,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2816 - i32.store offset=8 i32.const 2816 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2848 - i32.store offset=4 local.get $0 i32.const 2848 call $~lib/string/String.__eq @@ -3382,18 +3283,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2928 - i32.store offset=8 i32.const 2928 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=4 local.get $0 i32.const 2960 call $~lib/string/String.__eq @@ -3406,18 +3301,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3024 - i32.store offset=8 i32.const 3024 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3072 - i32.store offset=4 local.get $0 i32.const 3072 call $~lib/string/String.__eq @@ -3430,18 +3319,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=8 i32.const 3152 call $~lib/uri/encodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3264 - i32.store offset=4 local.get $0 i32.const 3264 call $~lib/string/String.__eq @@ -3454,18 +3337,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -3478,18 +3355,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=8 i32.const 1760 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 local.get $0 i32.const 1760 call $~lib/string/String.__eq @@ -3502,18 +3373,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=8 i32.const 3504 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=4 local.get $0 i32.const 3504 call $~lib/string/String.__eq @@ -3526,18 +3391,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=8 i32.const 1856 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=4 local.get $0 i32.const 1856 call $~lib/string/String.__eq @@ -3550,18 +3409,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3552 - i32.store offset=8 i32.const 3552 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3584 - i32.store offset=4 local.get $0 i32.const 3584 call $~lib/string/String.__eq @@ -3574,18 +3427,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2656 - i32.store offset=8 i32.const 2656 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2688 - i32.store offset=4 local.get $0 i32.const 2688 call $~lib/string/String.__eq @@ -3598,18 +3445,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=8 i32.const 2736 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2768 - i32.store offset=4 local.get $0 i32.const 2768 call $~lib/string/String.__eq @@ -3622,18 +3463,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2928 - i32.store offset=8 i32.const 2928 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=4 local.get $0 i32.const 2960 call $~lib/string/String.__eq @@ -3646,18 +3481,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=8 i32.const 3152 call $~lib/uri/encodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=4 local.get $0 i32.const 3152 call $~lib/string/String.__eq @@ -3670,18 +3499,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -3694,18 +3517,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=8 i32.const 1760 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 local.get $0 i32.const 1760 call $~lib/string/String.__eq @@ -3718,18 +3535,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=8 i32.const 3648 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=4 local.get $0 i32.const 3680 call $~lib/string/String.__eq @@ -3742,18 +3553,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3712 - i32.store offset=8 i32.const 3712 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3744 - i32.store offset=4 local.get $0 i32.const 3744 call $~lib/string/String.__eq @@ -3766,18 +3571,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=8 i32.const 3776 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=4 local.get $0 i32.const 3776 call $~lib/string/String.__eq @@ -3790,18 +3589,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=8 i32.const 2736 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=4 local.get $0 i32.const 2736 call $~lib/string/String.__eq @@ -3814,18 +3607,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store offset=8 i32.const 3808 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3888 - i32.store offset=4 local.get $0 i32.const 3888 call $~lib/string/String.__eq @@ -3838,18 +3625,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3936 - i32.store offset=8 i32.const 3936 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3888 - i32.store offset=4 local.get $0 i32.const 3888 call $~lib/string/String.__eq @@ -3862,18 +3643,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=8 i32.const 4016 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=4 local.get $0 i32.const 3152 call $~lib/string/String.__eq @@ -3886,18 +3661,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2416 - i32.store offset=8 i32.const 2416 call $~lib/uri/decodeURIComponent local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2384 - i32.store offset=4 local.get $0 i32.const 2384 call $~lib/string/String.__eq @@ -3910,18 +3679,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 i32.const 1056 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 local.get $0 i32.const 1056 call $~lib/string/String.__eq @@ -3934,18 +3697,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=8 i32.const 1760 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 local.get $0 i32.const 1760 call $~lib/string/String.__eq @@ -3958,18 +3715,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=8 i32.const 3648 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=4 local.get $0 i32.const 3648 call $~lib/string/String.__eq @@ -3982,18 +3733,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4144 - i32.store offset=8 i32.const 4144 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=4 local.get $0 i32.const 4176 call $~lib/string/String.__eq @@ -4006,18 +3751,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4208 - i32.store offset=8 i32.const 4208 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4240 - i32.store offset=4 local.get $0 i32.const 4240 call $~lib/string/String.__eq @@ -4030,18 +3769,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=8 i32.const 3776 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3776 - i32.store offset=4 local.get $0 i32.const 3776 call $~lib/string/String.__eq @@ -4054,18 +3787,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=8 i32.const 2736 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2736 - i32.store offset=4 local.get $0 i32.const 2736 call $~lib/string/String.__eq @@ -4078,18 +3805,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store offset=8 i32.const 3808 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3808 - i32.store offset=4 local.get $0 i32.const 3808 call $~lib/string/String.__eq @@ -4102,18 +3823,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 2416 - i32.store offset=8 i32.const 2416 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2384 - i32.store offset=4 local.get $0 i32.const 2384 call $~lib/string/String.__eq @@ -4126,18 +3841,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.store offset=8 i32.const 4272 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.store offset=4 local.get $0 i32.const 4272 call $~lib/string/String.__eq @@ -4150,18 +3859,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4320 - i32.store offset=8 i32.const 4320 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4320 - i32.store offset=4 local.get $0 i32.const 4320 call $~lib/string/String.__eq @@ -4174,18 +3877,12 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=8 i32.const 4016 call $~lib/uri/decodeURI local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=4 local.get $0 i32.const 4016 call $~lib/string/String.__eq @@ -4234,7 +3931,7 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index 0c85ee2625..29504e6521 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -2985,16 +2985,13 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 block $case3|0 block $case2|0 block $case1|0 @@ -3010,11 +3007,6 @@ i32.store offset=4 local.get $2 i32.const 80 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq br_if $case0|0 local.get $1 @@ -3024,11 +3016,6 @@ i32.store offset=4 local.get $2 i32.const 112 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq br_if $case1|0 local.get $1 @@ -3038,11 +3025,6 @@ i32.store offset=4 local.get $2 i32.const 144 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq br_if $case2|0 br $case3|0 @@ -3050,7 +3032,7 @@ i32.const 1 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3059,7 +3041,7 @@ i32.const 2 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3068,7 +3050,7 @@ i32.const 3 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3077,7 +3059,7 @@ i32.const 4 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3194,16 +3176,13 @@ (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 block $case4|0 block $case3|0 block $case2|0 @@ -3229,11 +3208,6 @@ i32.store offset=4 local.get $2 i32.const 80 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq br_if $case1|0 local.get $1 @@ -3243,11 +3217,6 @@ i32.store offset=4 local.get $2 i32.const 112 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq br_if $case2|0 local.get $1 @@ -3257,11 +3226,6 @@ i32.store offset=4 local.get $2 i32.const 144 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq br_if $case3|0 br $case4|0 @@ -3269,7 +3233,7 @@ i32.const 0 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3278,7 +3242,7 @@ i32.const 1 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3287,7 +3251,7 @@ i32.const 2 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3296,7 +3260,7 @@ i32.const 3 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3305,7 +3269,7 @@ i32.const 4 local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3626,14 +3590,16 @@ (func $start:switch (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 36 - memory.fill + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 i32.const 0 call $switch/doSwitch i32.const 0 @@ -4025,11 +3991,6 @@ unreachable end i32.const 80 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 call $switch/doSwitchString i32.const 1 i32.eq @@ -4043,11 +4004,6 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 call $switch/doSwitchString i32.const 2 i32.eq @@ -4061,11 +4017,6 @@ unreachable end i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 call $switch/doSwitchString i32.const 3 i32.eq @@ -4079,11 +4030,6 @@ unreachable end i32.const 176 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 call $switch/doSwitchString i32.const 4 i32.eq @@ -4114,17 +4060,7 @@ call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 i32.const 240 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4132,11 +4068,6 @@ i32.store offset=4 local.get $0 i32.const 704 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4156,17 +4087,7 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 i32.const 768 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4174,11 +4095,6 @@ i32.store offset=4 local.get $0 i32.const 208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4198,41 +4114,21 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=28 - local.get $0 i32.const 800 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=32 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 + i32.store offset=12 local.get $0 i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 704 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4240,11 +4136,6 @@ i32.store offset=4 local.get $0 i32.const 704 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4264,29 +4155,14 @@ unreachable end i32.const 864 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $0 i32.const 208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 896 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4294,11 +4170,6 @@ i32.store offset=4 local.get $0 i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4331,11 +4202,6 @@ unreachable end i32.const 80 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 call $switch/doSwitchNullableString i32.const 1 i32.eq @@ -4349,11 +4215,6 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 call $switch/doSwitchNullableString i32.const 2 i32.eq @@ -4367,11 +4228,6 @@ unreachable end i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 call $switch/doSwitchNullableString i32.const 3 i32.eq @@ -4385,11 +4241,6 @@ unreachable end i32.const 176 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 call $switch/doSwitchNullableString i32.const 4 i32.eq @@ -4403,17 +4254,7 @@ unreachable end i32.const 208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 i32.const 240 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4421,11 +4262,6 @@ i32.store offset=4 local.get $0 i32.const 704 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4445,17 +4281,7 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 i32.const 768 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4463,11 +4289,6 @@ i32.store offset=4 local.get $0 i32.const 208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4487,41 +4308,21 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=28 - local.get $0 i32.const 800 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=32 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 + i32.store offset=12 local.get $0 i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 704 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4529,11 +4330,6 @@ i32.store offset=4 local.get $0 i32.const 704 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4553,29 +4349,14 @@ unreachable end i32.const 864 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $0 i32.const 208 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 i32.const 896 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -4583,11 +4364,6 @@ i32.store offset=4 local.get $0 i32.const 832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer @@ -5129,7 +4905,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/switch.release.wat b/tests/compiler/switch.release.wat index b53df8bee3..95b2826eb3 100644 --- a/tests/compiler/switch.release.wat +++ b/tests/compiler/switch.release.wat @@ -1763,7 +1763,7 @@ ) (func $switch/doSwitchString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1781,17 +1781,11 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1104 - i32.store offset=8 block $case3|0 block $case2|0 block $case1|0 @@ -1803,9 +1797,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=8 local.get $0 i32.const 1136 call $~lib/string/String.__eq @@ -1813,9 +1804,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store offset=8 local.get $0 i32.const 1168 call $~lib/string/String.__eq @@ -1823,28 +1811,28 @@ br $case3|0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 return end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 2 return end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 3 return end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 4 @@ -1954,7 +1942,7 @@ ) (func $switch/doSwitchNullableString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1972,9 +1960,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1992,9 +1977,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1104 - i32.store offset=8 local.get $0 i32.const 1104 call $~lib/string/String.__eq @@ -2002,9 +1984,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=8 local.get $0 i32.const 1136 call $~lib/string/String.__eq @@ -2012,9 +1991,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store offset=8 local.get $0 i32.const 1168 call $~lib/string/String.__eq @@ -2022,35 +1998,35 @@ br $case4|0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 return end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 return end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 2 return end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 3 return end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 4 @@ -2353,7 +2329,7 @@ (func $start:switch (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2368,12 +2344,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 36 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 1104 - i32.store + i64.const 0 + i64.store offset=8 i32.const 1104 call $switch/doSwitchString i32.const 1 @@ -2386,9 +2361,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store i32.const 1136 call $switch/doSwitchString i32.const 2 @@ -2401,9 +2373,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store i32.const 1168 call $switch/doSwitchString i32.const 3 @@ -2416,9 +2385,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1200 - i32.store i32.const 1200 call $switch/doSwitchString i32.const 4 @@ -2463,12 +2429,6 @@ i32.store i32.const 1616 global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 1232 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1264 - i32.store offset=16 i32.const 1232 i32.const 1264 call $~lib/string/String.__concat @@ -2476,9 +2436,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1728 - i32.store offset=8 local.get $0 i32.const 1728 call $~lib/string/String.__concat @@ -2498,12 +2455,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=16 i32.const 1760 i32.const 1792 call $~lib/string/String.__concat @@ -2511,9 +2462,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1232 - i32.store offset=8 local.get $0 i32.const 1232 call $~lib/string/String.__concat @@ -2533,32 +2481,20 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - i32.const 1824 - i32.store offset=32 i32.const 1760 i32.const 1824 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=24 + i32.store offset=12 local.get $0 i32.const 1856 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1728 - i32.store offset=16 + i32.store offset=8 local.get $0 i32.const 1728 call $~lib/string/String.__concat @@ -2566,9 +2502,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1728 - i32.store offset=8 local.get $0 i32.const 1728 call $~lib/string/String.__concat @@ -2588,22 +2521,13 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1888 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 1232 - i32.store offset=24 i32.const 1888 i32.const 1232 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1920 - i32.store offset=16 + i32.store offset=8 local.get $0 i32.const 1920 call $~lib/string/String.__concat @@ -2611,9 +2535,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=8 local.get $0 i32.const 1856 call $~lib/string/String.__concat @@ -2643,9 +2564,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1104 - i32.store i32.const 1104 call $switch/doSwitchNullableString i32.const 1 @@ -2658,9 +2576,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store i32.const 1136 call $switch/doSwitchNullableString i32.const 2 @@ -2673,9 +2588,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store i32.const 1168 call $switch/doSwitchNullableString i32.const 3 @@ -2688,9 +2600,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1200 - i32.store i32.const 1200 call $switch/doSwitchNullableString i32.const 4 @@ -2703,12 +2612,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1232 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1264 - i32.store offset=16 i32.const 1232 i32.const 1264 call $~lib/string/String.__concat @@ -2716,9 +2619,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1728 - i32.store offset=8 local.get $0 i32.const 1728 call $~lib/string/String.__concat @@ -2738,12 +2638,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=16 i32.const 1760 i32.const 1792 call $~lib/string/String.__concat @@ -2751,9 +2645,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1232 - i32.store offset=8 local.get $0 i32.const 1232 call $~lib/string/String.__concat @@ -2773,32 +2664,20 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - i32.const 1824 - i32.store offset=32 i32.const 1760 i32.const 1824 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=24 + i32.store offset=12 local.get $0 i32.const 1856 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1728 - i32.store offset=16 + i32.store offset=8 local.get $0 i32.const 1728 call $~lib/string/String.__concat @@ -2806,9 +2685,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1728 - i32.store offset=8 local.get $0 i32.const 1728 call $~lib/string/String.__concat @@ -2828,22 +2704,13 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1888 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 1232 - i32.store offset=24 i32.const 1888 i32.const 1232 call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1920 - i32.store offset=16 + i32.store offset=8 local.get $0 i32.const 1920 call $~lib/string/String.__concat @@ -2851,9 +2718,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=8 local.get $0 i32.const 1856 call $~lib/string/String.__concat @@ -3048,7 +2912,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 204db8df29..18a9c000d4 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -4975,13 +4975,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 32 + 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 32 + i32.const 28 memory.fill global.get $~lib/memory/__stack_pointer i32.const 32 @@ -4998,11 +4998,6 @@ i32.store offset=8 local.get $4 i32.const 32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5017,13 +5012,13 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 local.get $b local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/string/String#concat local.set $4 @@ -5032,11 +5027,6 @@ i32.store offset=8 local.get $4 i32.const 592 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5050,51 +5040,46 @@ global.get $~lib/memory/__stack_pointer local.get $a local.tee $2 - i32.store offset=24 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $b local.tee $3 - i32.store offset=28 + i32.store offset=24 i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 1 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 3 local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 720 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -5102,11 +5087,6 @@ i32.store offset=8 local.get $4 i32.const 768 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5118,7 +5098,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5129,13 +5109,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill i32.const 1 local.set $a @@ -5150,11 +5130,6 @@ i32.store local.get $4 i32.const 2592 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5171,7 +5146,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 local.get $b i32.const 10 @@ -5179,7 +5154,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/string/String#concat local.set $4 @@ -5188,11 +5163,6 @@ i32.store local.get $4 i32.const 2624 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5208,53 +5178,48 @@ i32.const 10 call $~lib/number/I32#toString local.tee $2 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $b i32.const 10 call $~lib/number/I32#toString local.tee $3 - i32.store offset=20 + i32.store offset=16 i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 1 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 3 local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 2656 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -5262,11 +5227,6 @@ i32.store local.get $4 i32.const 2704 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5278,7 +5238,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5289,13 +5249,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill f64.const 1 local.set $a @@ -5310,11 +5270,6 @@ i32.store local.get $4 i32.const 3888 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5331,7 +5286,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 local.get $b i32.const 0 @@ -5339,7 +5294,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/string/String#concat local.set $4 @@ -5348,11 +5303,6 @@ i32.store local.get $4 i32.const 3920 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5368,53 +5318,48 @@ i32.const 0 call $~lib/number/F64#toString local.tee $2 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $b i32.const 0 call $~lib/number/F64#toString local.tee $3 - i32.store offset=20 + i32.store offset=16 i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 1 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 3 local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=12 + i32.store offset=8 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 3952 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=8 + i32.store offset=4 local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -5422,11 +5367,6 @@ i32.store local.get $4 i32.const 4000 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5438,7 +5378,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5447,14 +5387,16 @@ (local $b i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 i32.const 2 local.set $a global.get $~lib/memory/__stack_pointer @@ -5470,11 +5412,6 @@ i32.store offset=4 local.get $2 i32.const 4048 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5492,11 +5429,6 @@ i32.store offset=4 local.get $2 i32.const 64 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5508,18 +5440,13 @@ unreachable end i32.const 4080 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 local.get $a i32.const 10 call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=8 local.get $2 call $~lib/string/String#concat local.set $2 @@ -5528,11 +5455,6 @@ i32.store offset=4 local.get $2 i32.const 4112 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5544,16 +5466,11 @@ unreachable end i32.const 4080 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 local.get $b local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=8 local.get $2 call $~lib/string/String#concat local.set $2 @@ -5562,11 +5479,6 @@ i32.store offset=4 local.get $2 i32.const 4144 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5583,14 +5495,9 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 + i32.store offset=8 local.get $2 i32.const 4176 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $2 call $~lib/string/String#concat local.set $2 global.get $~lib/memory/__stack_pointer @@ -5598,11 +5505,6 @@ i32.store offset=4 local.get $2 i32.const 4208 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5617,14 +5519,9 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 + i32.store offset=8 local.get $2 i32.const 4176 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $2 call $~lib/string/String#concat local.set $2 global.get $~lib/memory/__stack_pointer @@ -5632,11 +5529,6 @@ i32.store offset=4 local.get $2 i32.const 4240 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5653,13 +5545,13 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 + i32.store offset=8 local.get $2 local.get $b local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=12 local.get $2 call $~lib/string/String#concat local.set $2 @@ -5668,11 +5560,6 @@ i32.store offset=4 local.get $2 i32.const 4272 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -5684,7 +5571,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5758,27 +5645,19 @@ (func $templateliteral/Ref#toString (param $this i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 i32.const 4304 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 local.get $this local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 call $templateliteral/Ref#get:value i32.const 10 @@ -5786,12 +5665,12 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store local.get $1 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -5804,13 +5683,13 @@ (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 36 + i32.const 32 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 @@ -5828,7 +5707,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 call $templateliteral/Ref#toString local.set $4 @@ -5837,11 +5716,6 @@ i32.store offset=8 local.get $4 i32.const 4336 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5856,25 +5730,25 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=24 + i32.store offset=20 local.get $4 call $templateliteral/Ref#toString local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 local.get $b local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=24 + i32.store offset=20 local.get $4 call $templateliteral/Ref#toString local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/string/String#concat local.set $4 @@ -5883,11 +5757,6 @@ i32.store offset=8 local.get $4 i32.const 4368 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5903,61 +5772,56 @@ local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 call $templateliteral/Ref#toString local.tee $2 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $b local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 call $templateliteral/Ref#toString local.tee $3 - i32.store offset=32 + i32.store offset=28 i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 1 local.get $2 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 3 local.get $3 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=20 + i32.store offset=16 local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 4416 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 - i32.store offset=16 + i32.store offset=12 local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -5965,11 +5829,6 @@ i32.store offset=8 local.get $4 i32.const 4464 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $4 call $~lib/string/String.__eq i32.eqz if @@ -5981,7 +5840,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 32 i32.add global.set $~lib/memory/__stack_pointer ) @@ -5993,13 +5852,13 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 32 + 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 32 + i32.const 28 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 @@ -6014,70 +5873,65 @@ local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 + i32.store offset=8 local.get $5 call $templateliteral/Ref#toString local.tee $2 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $d local.tee $4 - i32.store offset=20 + i32.store offset=16 local.get $4 if (result i32) local.get $4 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 + i32.store offset=8 local.get $5 call $templateliteral/Ref#toString else i32.const 4640 end local.tee $3 - i32.store offset=24 + i32.store offset=20 i32.const 4592 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 + i32.store offset=8 local.get $5 i32.const 1 local.get $2 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=28 + i32.store offset=24 local.get $5 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 4592 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 + i32.store offset=8 local.get $5 i32.const 3 local.get $3 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=28 + i32.store offset=24 local.get $5 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset i32.const 4592 local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=12 + i32.store offset=8 local.get $5 i32.const 160 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=28 - local.get $5 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $5 global.get $~lib/memory/__stack_pointer @@ -6085,11 +5939,6 @@ i32.store offset=4 local.get $5 i32.const 4672 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 call $~lib/string/String.__eq i32.eqz if @@ -6101,7 +5950,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6259,11 +6108,6 @@ i32.store local.get $4 i32.const 160 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $4 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $4 global.get $~lib/memory/__stack_pointer @@ -6279,78 +6123,58 @@ (local $a i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4736 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 i32.const 0 call $templateliteral/RecursiveObject#constructor local.tee $c - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 64 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $c local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=8 + i32.store offset=4 local.get $3 call $templateliteral/RecursiveObject#constructor local.tee $b - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 local.get $b local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=8 + i32.store offset=4 local.get $3 call $templateliteral/RecursiveObject#constructor local.tee $a - i32.store offset=16 + i32.store offset=12 local.get $a local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=20 + i32.store offset=16 local.get $3 call $templateliteral/RecursiveObject#toString local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store + i32.store offset=4 local.get $3 i32.const 4832 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -6362,7 +6186,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 24e06cf256..bb5e8a5e46 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32) (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32))) @@ -212,7 +212,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$164 + block $__inlined_func$~lib/rt/itcms/Object#unlink$165 local.get $0 i32.load offset=4 i32.const -4 @@ -236,7 +236,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$164 + br $__inlined_func$~lib/rt/itcms/Object#unlink$165 end local.get $0 i32.load offset=8 @@ -3057,7 +3057,7 @@ i32.const 1504 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -3067,7 +3067,7 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 32 + i32.const 28 memory.fill global.get $~lib/memory/__stack_pointer i32.const 1056 @@ -3078,9 +3078,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -3095,10 +3092,10 @@ end global.get $~lib/memory/__stack_pointer i32.const 1056 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 1088 - i32.store offset=20 + i32.store offset=16 i32.const 1056 i32.const 1088 call $~lib/string/String#concat @@ -3106,9 +3103,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=12 local.get $0 i32.const 1616 call $~lib/string/String.__eq @@ -3123,16 +3117,16 @@ end global.get $~lib/memory/__stack_pointer i32.const 1056 - i32.store offset=24 + i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 1088 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 1744 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 1056 - i32.store offset=20 + i32.store offset=16 i32.const 1748 i32.const 1056 i32.store @@ -3142,10 +3136,10 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 1744 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 1088 - i32.store offset=20 + i32.store offset=16 i32.const 1756 i32.const 1088 i32.store @@ -3155,19 +3149,13 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 1744 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=20 + i32.store offset=12 i32.const 1744 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=12 local.get $0 i32.const 1792 call $~lib/string/String.__eq @@ -3181,11 +3169,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3194,7 +3182,7 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill i32.const 1 call $~lib/number/I32#toString @@ -3202,9 +3190,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store offset=4 local.get $0 i32.const 3616 call $~lib/string/String.__eq @@ -3222,13 +3207,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 i32.const 2 call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $0 local.get $1 call $~lib/string/String#concat @@ -3236,9 +3221,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=4 local.get $0 i32.const 3648 call $~lib/string/String.__eq @@ -3255,18 +3237,18 @@ i32.const 1 call $~lib/number/I32#toString local.tee $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/number/I32#toString local.tee $1 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 3680 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 i32.const 3684 local.get $0 i32.store @@ -3276,10 +3258,10 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 3680 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 i32.const 3692 local.get $1 i32.store @@ -3289,19 +3271,13 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 3680 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=12 + i32.store offset=4 i32.const 3680 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3728 - i32.store offset=4 local.get $0 i32.const 3728 call $~lib/string/String.__eq @@ -3315,11 +3291,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3328,7 +3304,7 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill f64.const 1 call $~lib/number/F64#toString @@ -3336,9 +3312,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=4 local.get $0 i32.const 4912 call $~lib/string/String.__eq @@ -3356,13 +3329,13 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 f64.const 2 call $~lib/number/F64#toString local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 local.get $0 local.get $1 call $~lib/string/String#concat @@ -3370,9 +3343,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 local.get $0 i32.const 4944 call $~lib/string/String.__eq @@ -3389,18 +3359,18 @@ f64.const 1 call $~lib/number/F64#toString local.tee $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer f64.const 2 call $~lib/number/F64#toString local.tee $1 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 4976 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 i32.const 4980 local.get $0 i32.store @@ -3410,10 +3380,10 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4976 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 i32.const 4988 local.get $1 i32.store @@ -3423,19 +3393,13 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4976 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=12 + i32.store offset=4 i32.const 4976 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5024 - i32.store offset=4 local.get $0 i32.const 5024 call $~lib/string/String.__eq @@ -3449,12 +3413,187 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 + 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 5904 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5072 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=4 + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 5104 + local.get $0 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=8 + i32.const 5104 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=8 + i32.const 1088 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=12 + local.get $0 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - call $templateliteral/test_fast_paths_string global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3463,7 +3602,7 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 36 + i32.const 32 memory.fill global.get $~lib/memory/__stack_pointer i32.const 1 @@ -3477,16 +3616,13 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=12 local.get $2 call $templateliteral/Ref#toString local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5360 - i32.store offset=12 local.get $1 i32.const 5360 call $~lib/string/String.__eq @@ -3501,22 +3637,22 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=24 + i32.store offset=20 local.get $2 call $templateliteral/Ref#toString local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=24 + i32.store offset=20 local.get $0 call $templateliteral/Ref#toString local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=20 + i32.store offset=16 local.get $1 local.get $3 call $~lib/string/String#concat @@ -3524,9 +3660,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=12 local.get $1 i32.const 5392 call $~lib/string/String.__eq @@ -3541,26 +3674,26 @@ end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $2 call $templateliteral/Ref#toString local.tee $1 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 call $templateliteral/Ref#toString local.tee $0 - i32.store offset=32 + i32.store offset=28 global.get $~lib/memory/__stack_pointer i32.const 5440 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=20 + i32.store offset=16 i32.const 5444 local.get $1 i32.store @@ -3570,10 +3703,10 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 5440 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 + i32.store offset=16 i32.const 5452 local.get $0 i32.store @@ -3583,19 +3716,13 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=20 + i32.store offset=12 i32.const 5440 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5488 - i32.store offset=12 local.get $0 i32.const 5488 call $~lib/string/String.__eq @@ -3609,11 +3736,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 32 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3622,7 +3749,7 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 32 + i32.const 28 memory.fill global.get $~lib/memory/__stack_pointer i32.const 3 @@ -3631,24 +3758,24 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 call $templateliteral/Ref#toString local.tee $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 5664 - i32.store offset=24 + i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 5616 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=28 + i32.store offset=24 i32.const 5620 local.get $0 i32.store @@ -3658,10 +3785,10 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 5616 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 5664 - i32.store offset=28 + i32.store offset=24 i32.const 5628 i32.const 5664 i32.store @@ -3671,19 +3798,13 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 5616 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=28 + i32.store offset=8 i32.const 5616 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.store offset=8 local.get $0 i32.const 5696 call $~lib/string/String.__eq @@ -3697,11 +3818,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3710,53 +3831,41 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 + i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer i32.const 5760 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5760 i32.const 0 call $templateliteral/RecursiveObject#constructor local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1088 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1088 local.get $0 call $templateliteral/RecursiveObject#constructor local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1056 local.get $0 call $templateliteral/RecursiveObject#constructor local.tee $0 - i32.store offset=16 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=20 + i32.store offset=16 local.get $0 call $templateliteral/RecursiveObject#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5856 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 5856 call $~lib/string/String.__eq @@ -3770,7 +3879,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer return @@ -3972,7 +4081,7 @@ end end end - block $__inlined_func$~lib/util/string/compareImpl$90 + block $__inlined_func$~lib/util/string/compareImpl$91 loop $while-continue|1 local.get $0 local.tee $3 @@ -3992,7 +4101,7 @@ local.get $4 local.get $5 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$90 + br_if $__inlined_func$~lib/util/string/compareImpl$91 local.get $2 i32.const 2 i32.add @@ -4354,223 +4463,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $templateliteral/test_fast_paths_string - (local $0 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 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5072 - i32.store offset=8 - local.get $0 - i32.const 5072 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 31 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=8 - i32.const 1088 - i32.const 1088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - i32.const 5104 - local.get $0 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5136 - i32.store offset=8 - local.get $0 - i32.const 5136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=16 - i32.const 5104 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - local.get $0 - i32.const 5168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=16 - local.get $0 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5232 - i32.store offset=8 - local.get $0 - i32.const 5232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=16 - i32.const 1088 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5264 - i32.store offset=8 - local.get $0 - i32.const 5264 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=16 - local.get $0 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5296 - i32.store offset=8 - local.get $0 - i32.const 5296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 37 - 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 $templateliteral/Ref#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -4611,7 +4503,7 @@ ) (func $templateliteral/Ref#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -4623,21 +4515,15 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5328 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.load call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4663,7 +4549,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return @@ -4824,9 +4710,6 @@ global.get $~lib/memory/__stack_pointer i32.const 5824 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=16 i32.const 5824 call $~lib/staticarray/StaticArray<~lib/string/String>#join global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 9c6d493f68..a32c177783 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -140,6 +140,64 @@ i32.const 0 return ) + (func $typealias/outer_function~inner_function + (local $alias f64) + f64.const 1 + local.set $alias + i32.const 112 + i32.const 112 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) + (func $typealias/outer_function + (local $alias i64) + (local $inner_function 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 + i64.const 1 + local.set $alias + i32.const 32 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 144 + local.tee $inner_function + i32.store + local.get $inner_function + drop + i32.const 0 + global.set $~argumentsLength + local.get $inner_function + i32.load + call_indirect (type $0) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $typealias/generic_type_alias i32.const 5 i32.const 5 @@ -273,99 +331,4 @@ local.get $3 return ) - (func $typealias/outer_function~inner_function - (local $alias f64) - (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 - f64.const 1 - local.set $alias - i32.const 112 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 112 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 64 - i32.const 17 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $typealias/outer_function - (local $alias i64) - (local $inner_function i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i64.const 1 - local.set $alias - i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 32 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 64 - i32.const 13 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 144 - local.tee $inner_function - i32.store offset=8 - local.get $inner_function - drop - i32.const 0 - global.set $~argumentsLength - local.get $inner_function - i32.load - call_indirect (type $0) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/typealias.release.wat b/tests/compiler/typealias.release.wat index de77169cc1..997ab9cfcc 100644 --- a/tests/compiler/typealias.release.wat +++ b/tests/compiler/typealias.release.wat @@ -19,12 +19,26 @@ (export "alias" (func $typealias/alias)) (export "memory" (memory $0)) (start $~start) + (func $typealias/outer_function~inner_function + i32.const 1136 + i32.const 1136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) (func $typealias/alias (param $0 i32) (result i32) local.get $0 ) (func $~start global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -39,17 +53,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -64,12 +69,12 @@ end global.get $~lib/memory/__stack_pointer i32.const 1168 - i32.store offset=8 + i32.store i32.const 1168 i32.load call_indirect (type $0) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -235,46 +240,4 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $typealias/outer_function~inner_function - 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 1180 - i32.lt_s - if - i32.const 33968 - i32.const 34016 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=4 - i32.const 1136 - i32.const 1136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 17 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index 2510d717ba..7b04cbca73 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -2621,27 +2621,17 @@ (func $start:typeof (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store i32.const 1 drop i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2653,17 +2643,7 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2675,17 +2655,7 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2697,17 +2667,7 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2719,17 +2679,7 @@ unreachable end i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2741,17 +2691,7 @@ unreachable end i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2765,17 +2705,7 @@ i32.const 1 drop i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2787,17 +2717,7 @@ unreachable end i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2811,17 +2731,7 @@ i32.const 1 drop i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2835,17 +2745,7 @@ f64.const 1 drop i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2859,17 +2759,7 @@ i64.const 1 drop i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2883,17 +2773,7 @@ i32.const 240 drop i32.const 272 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 272 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2913,11 +2793,6 @@ i32.store local.get $0 i32.const 192 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2937,11 +2812,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2961,11 +2831,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -2985,11 +2850,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3009,11 +2869,6 @@ i32.store local.get $0 i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3033,11 +2888,6 @@ i32.store local.get $0 i32.const 272 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3057,11 +2907,6 @@ i32.store local.get $0 i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3101,11 +2946,6 @@ i32.store local.get $0 i32.const 112 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3117,17 +2957,7 @@ unreachable end i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 144 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3139,17 +2969,7 @@ unreachable end i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3169,11 +2989,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3193,11 +3008,6 @@ i32.store local.get $0 i32.const 736 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -3209,7 +3019,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 698d29d147..a1cf98f400 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1629,7 +1629,7 @@ (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1638,14 +1638,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1658,12 +1652,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -1676,12 +1664,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -1694,12 +1676,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -1712,12 +1688,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -1730,12 +1700,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -1748,12 +1712,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store offset=4 i32.const 1216 i32.const 1216 call $~lib/string/String.__eq @@ -1766,12 +1724,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -1784,12 +1736,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1802,12 +1748,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1820,12 +1760,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1838,12 +1772,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store offset=4 i32.const 1296 i32.const 1296 call $~lib/string/String.__eq @@ -1859,9 +1787,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1216 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store offset=4 i32.const 1216 i32.const 1216 call $~lib/string/String.__eq @@ -1877,9 +1802,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1895,9 +1817,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1913,9 +1832,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1931,9 +1847,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 i32.const 1056 i32.const 1056 call $~lib/string/String.__eq @@ -1949,9 +1862,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store offset=4 i32.const 1296 i32.const 1296 call $~lib/string/String.__eq @@ -1967,9 +1877,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -2069,9 +1976,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1136 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1136 - i32.store offset=4 i32.const 1136 i32.const 1136 call $~lib/string/String.__eq @@ -2084,12 +1988,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store offset=4 i32.const 1168 i32.const 1168 call $~lib/string/String.__eq @@ -2102,12 +2000,6 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 i32.const 1760 i32.const 1760 call $~lib/string/String.__eq @@ -2123,9 +2015,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1760 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 i32.const 1760 i32.const 1760 call $~lib/string/String.__eq @@ -2141,9 +2030,6 @@ global.get $~lib/memory/__stack_pointer i32.const 1760 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1760 - i32.store offset=4 i32.const 1760 i32.const 1760 call $~lib/string/String.__eq @@ -2157,7 +2043,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return From 9b5b78d5ce09103ae2f1d3b56571cca142f439a4 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Sun, 7 Sep 2025 20:24:46 -0700 Subject: [PATCH 53/86] fix: simplify && and || when the LHS is constant (#2947) --- src/compiler.ts | 44 +++-- tests/compiler/logical.debug.wat | 229 +++--------------------- tests/compiler/logical.release.wat | 16 +- tests/compiler/logical.ts | 8 + tests/compiler/resolve-binary.debug.wat | 24 +-- 5 files changed, 82 insertions(+), 239 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index d3a5525164..7e87baf7fd 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -4574,19 +4574,31 @@ export class Compiler extends DiagnosticEmitter { } leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); leftType = commonType; + + // This is sometimes needed to make the left trivial + let leftPrecompExpr = module.runExpression(leftExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (leftPrecompExpr) leftExpr = leftPrecompExpr; + rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); rightType = commonType; - // simplify if copying left is trivial - if (expr = module.tryCopyTrivialExpression(leftExpr)) { + let condExpr = this.makeIsTrueish(leftExpr, this.currentType, left); + let condKind = this.evaluateCondition(condExpr); + + if (condKind != ConditionKind.Unknown) { + // simplify if left is a constant + expr = condKind == ConditionKind.True + ? rightExpr + : leftExpr; + } else if (expr = module.tryCopyTrivialExpression(leftExpr)) { + // simplify if copying left is trivial expr = module.if( - this.makeIsTrueish(leftExpr, this.currentType, left), + condExpr, rightExpr, expr ); - - // if not possible, tee left to a temp } else { + // if not possible, tee left to a temp let tempLocal = flow.getTempLocal(leftType); if (!flow.canOverflow(leftExpr, leftType)) flow.setLocalFlag(tempLocal.index, LocalFlags.Wrapped); if (flow.isNonnull(leftExpr, leftType)) flow.setLocalFlag(tempLocal.index, LocalFlags.NonNull); @@ -4654,19 +4666,31 @@ export class Compiler extends DiagnosticEmitter { let possiblyNull = leftType.is(TypeFlags.Nullable) && rightType.is(TypeFlags.Nullable); leftExpr = this.convertExpression(leftExpr, leftType, commonType, false, left); leftType = commonType; + + // This is sometimes needed to make the left trivial + let leftPrecompExpr = module.runExpression(leftExpr, ExpressionRunnerFlags.PreserveSideeffects); + if (leftPrecompExpr) leftExpr = leftPrecompExpr; + rightExpr = this.convertExpression(rightExpr, rightType, commonType, false, right); rightType = commonType; - // simplify if copying left is trivial - if (expr = module.tryCopyTrivialExpression(leftExpr)) { + let condExpr = this.makeIsTrueish(leftExpr, this.currentType, left); + let condKind = this.evaluateCondition(condExpr); + + if (condKind != ConditionKind.Unknown) { + // simplify if left is a constant + expr = condKind == ConditionKind.True + ? leftExpr + : rightExpr; + } else if (expr = module.tryCopyTrivialExpression(leftExpr)) { + // otherwise, simplify if copying left is trivial expr = module.if( - this.makeIsTrueish(leftExpr, leftType, left), + condExpr, expr, rightExpr ); - - // if not possible, tee left to a temp. local } else { + // if not possible, tee left to a temp. local let temp = flow.getTempLocal(leftType); let tempIndex = temp.index; if (!flow.canOverflow(leftExpr, leftType)) flow.setLocalFlag(tempIndex, LocalFlags.Wrapped); diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index 78f3bc8b0e..d5fc0a82e6 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -28,6 +28,10 @@ (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) + (global $logical/foo (mut i32) (i32.const 456)) + (global $logical/bar (mut f64) (f64.const -0)) + (global $logical/baz (mut i32) (i32.const 321)) + (global $logical/qux (mut f64) (f64.const 2.718)) (global $logical/b (mut i32) (i32.const 0)) (global $logical/c (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 464)) @@ -47,6 +51,10 @@ (data $9 (i32.const 464) "\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\00") (table $0 1 1 funcref) (elem $0 (i32.const 1)) + (export "foo" (global $logical/foo)) + (export "bar" (global $logical/bar)) + (export "baz" (global $logical/baz)) + (export "qux" (global $logical/qux)) (export "memory" (memory $0)) (start $~start) (func $logical/testShortcutAnd (param $a i64) (param $b i32) (result i32) @@ -2583,26 +2591,9 @@ i64.const -9007199254740994 i64.le_u drop - i32.const 1 - if (result i32) - i32.const 2 - else - i32.const 1 - end + i32.const 2 drop - f64.const 1 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 2 - else - f64.const 1 - end + f64.const 2 i64.reinterpret_f64 i64.const 1 i64.shl @@ -2611,12 +2602,7 @@ i64.const -9007199254740994 i64.le_u drop - i32.const 1 - if (result i32) - i32.const 2 - else - i32.const 1 - end + i32.const 2 global.set $logical/i global.get $logical/i i32.const 2 @@ -2630,12 +2616,7 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 1 - end + i32.const 1 global.set $logical/i global.get $logical/i i32.const 1 @@ -2649,14 +2630,7 @@ call $~lib/builtins/abort unreachable end - i64.const 1 - i64.const 0 - i64.ne - if (result i64) - i64.const 2 - else - i64.const 1 - end + i64.const 2 global.set $logical/I global.get $logical/I i64.const 2 @@ -2670,14 +2644,7 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - i64.const 0 - i64.ne - if (result i64) - i64.const 0 - else - i64.const 1 - end + i64.const 1 global.set $logical/I global.get $logical/I i64.const 1 @@ -2691,19 +2658,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const 2 - else - f32.const 1 - end + f32.const 2 global.set $logical/f global.get $logical/f f32.const 2 @@ -2717,19 +2672,7 @@ call $~lib/builtins/abort unreachable end - f32.const 0 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const 0 - else - f32.const 1 - end + f32.const 1 global.set $logical/f global.get $logical/f f32.const 1 @@ -2743,19 +2686,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 2 - else - f64.const 1 - end + f64.const 2 global.set $logical/F global.get $logical/F f64.const 2 @@ -2769,19 +2700,7 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 0 - else - f64.const 1 - end + f64.const 1 global.set $logical/F global.get $logical/F f64.const 1 @@ -2795,19 +2714,7 @@ call $~lib/builtins/abort unreachable end - f32.const nan:0x400000 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const nan:0x400000 - else - f32.const 1 - end + f32.const 1 global.set $logical/f global.get $logical/f f32.const 1 @@ -2822,18 +2729,6 @@ unreachable end f32.const 1 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const 1 - else - f32.const nan:0x400000 - end global.set $logical/f global.get $logical/f f32.const 1 @@ -2847,19 +2742,7 @@ call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const nan:0x8000000000000 - else - f64.const 1 - end + f64.const 1 global.set $logical/F global.get $logical/F f64.const 1 @@ -2874,18 +2757,6 @@ unreachable end f64.const 1 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 1 - else - f64.const nan:0x8000000000000 - end global.set $logical/F global.get $logical/F f64.const 1 @@ -2899,19 +2770,7 @@ call $~lib/builtins/abort unreachable end - f32.const 1 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const nan:0x400000 - else - f32.const 1 - end + f32.const nan:0x400000 global.set $logical/f global.get $logical/f local.tee $0 @@ -2927,18 +2786,6 @@ unreachable end f32.const nan:0x400000 - i32.reinterpret_f32 - i32.const 1 - i32.shl - i32.const 2 - i32.sub - i32.const -16777218 - i32.le_u - if (result f32) - f32.const 1 - else - f32.const nan:0x400000 - end global.set $logical/f global.get $logical/f local.tee $1 @@ -2953,19 +2800,7 @@ call $~lib/builtins/abort unreachable end - f64.const 1 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const nan:0x8000000000000 - else - f64.const 1 - end + f64.const nan:0x8000000000000 global.set $logical/F global.get $logical/F local.tee $2 @@ -2981,18 +2816,6 @@ unreachable end f64.const nan:0x8000000000000 - i64.reinterpret_f64 - i64.const 1 - i64.shl - i64.const 2 - i64.sub - i64.const -9007199254740994 - i64.le_u - if (result f64) - f64.const 1 - else - f64.const nan:0x8000000000000 - end global.set $logical/F global.get $logical/F local.tee $3 @@ -3111,7 +2934,7 @@ if i32.const 0 i32.const 32 - i32.const 106 + i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable @@ -3124,7 +2947,7 @@ if i32.const 0 i32.const 32 - i32.const 107 + i32.const 115 i32.const 1 call $~lib/builtins/abort unreachable @@ -3142,7 +2965,7 @@ if i32.const 0 i32.const 32 - i32.const 112 + i32.const 120 i32.const 1 call $~lib/builtins/abort unreachable @@ -3155,7 +2978,7 @@ if i32.const 0 i32.const 32 - i32.const 113 + i32.const 121 i32.const 1 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 185b69545e..a244889d24 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -17,6 +17,10 @@ (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 $logical/foo (mut i32) (i32.const 456)) + (global $logical/bar (mut f64) (f64.const -0)) + (global $logical/baz (mut i32) (i32.const 321)) + (global $logical/qux (mut f64) (f64.const 2.718)) (global $logical/b (mut i32) (i32.const 0)) (global $logical/c (mut i32) (i32.const 0)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34292)) @@ -34,6 +38,10 @@ (data $8 (i32.const 1420) "<") (data $8.1 (i32.const 1432) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") (data $9 (i32.const 1488) "\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 ") + (export "foo" (global $logical/foo)) + (export "bar" (global $logical/bar)) + (export "baz" (global $logical/baz)) + (export "qux" (global $logical/qux)) (export "memory" (memory $0)) (start $~start) (func $~lib/rt/itcms/visitRoots @@ -1420,7 +1428,7 @@ ) (func $~start (local $0 i32) - block $__inlined_func$start:logical + block $__inlined_func$start:logical$1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1568,7 +1576,7 @@ if i32.const 0 i32.const 1056 - i32.const 106 + i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable @@ -1586,7 +1594,7 @@ if i32.const 0 i32.const 1056 - i32.const 112 + i32.const 120 i32.const 1 call $~lib/builtins/abort unreachable @@ -1595,7 +1603,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:logical + br $__inlined_func$start:logical$1 end i32.const 34320 i32.const 34368 diff --git a/tests/compiler/logical.ts b/tests/compiler/logical.ts index 62a26f9d66..a5943a4f3f 100644 --- a/tests/compiler/logical.ts +++ b/tests/compiler/logical.ts @@ -91,6 +91,14 @@ function testContextualBoolOr(someObj: Obj, someInt: i32): bool { } assert(testContextualBoolOr(new Obj(), 0)); +// Test simplification with precomputable LHS operands +// see: https://github.com/AssemblyScript/assemblyscript/issues/2946 + +export let foo = 123 && 456; +export let bar = -0.0 && 1.23; +export let baz = 321 || 654; +export let qux = NaN || 2.718; + // Common type class A {} diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 86ec23b334..4b6d25a00f 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -6623,12 +6623,7 @@ call $~lib/builtins/abort unreachable end - i32.const 1 - if (result i32) - i32.const 2 - else - i32.const 1 - end + i32.const 2 i32.const 10 call $~lib/number/I32#toString local.set $0 @@ -6648,11 +6643,6 @@ unreachable end i32.const 0 - if (result i32) - i32.const 2 - else - i32.const 0 - end i32.const 10 call $~lib/number/I32#toString local.set $0 @@ -6672,11 +6662,6 @@ unreachable end i32.const 1 - if (result i32) - i32.const 1 - else - i32.const 2 - end i32.const 10 call $~lib/number/I32#toString local.set $0 @@ -6695,12 +6680,7 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - if (result i32) - i32.const 0 - else - i32.const 2 - end + i32.const 2 i32.const 10 call $~lib/number/I32#toString local.set $0 From 50bf2b7e1a110fc9eae95fe2f7e533b82f2d6162 Mon Sep 17 00:00:00 2001 From: Klein Date: Fri, 12 Sep 2025 09:19:49 +0700 Subject: [PATCH 54/86] feat: add [key: i32]: string to String type definition (#2939) --- std/assembly/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 9d629ccd10..a604397320 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2129,6 +2129,7 @@ declare class StaticArray { /** Class representing a sequence of characters. */ declare class String { + [key: i32]: string; static fromCharCode(ls: i32, hs?: i32): string; static fromCharCodes(arr: i32[]): string; static fromCodePoint(code: i32): string; From ade022ea8b464c5e4e7d661beb7c431f7c2d5296 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Sat, 20 Sep 2025 00:25:22 +0800 Subject: [PATCH 55/86] chore: refactor unary postfix code emitter to reduce nested tostack (#2949) --- src/compiler.ts | 16 ++++++++-------- .../compiler/std/operator-overloading.debug.wat | 5 ----- .../std/operator-overloading.release.wat | 3 --- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index 7e87baf7fd..04306fba01 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -48,7 +48,6 @@ import { getBlockChildCount, getBlockChildAt, getBlockName, - getLocalSetValue, getGlobalGetName, isGlobalMutable, getSideEffects, @@ -9231,11 +9230,12 @@ export class Compiler extends DiagnosticEmitter { let flow = this.currentFlow; // make a getter for the expression (also obtains the type) - let getValue = this.compileExpression( // reports + const getValueOriginal = this.compileExpression( // reports expression.operand, contextualType.exceptVoid, Constraints.None ); + let getValue: ExpressionRef; // if the value isn't dropped, a temp. local is required to remember the original value, // except if a static overload is found, which reverses the use of a temp. (see below) @@ -9244,16 +9244,17 @@ export class Compiler extends DiagnosticEmitter { tempLocal = flow.getTempLocal(this.currentType); getValue = module.local_tee( tempLocal.index, - getValue, + getValueOriginal, this.currentType.isManaged ); + } else { + getValue = getValueOriginal; } let expr: ExpressionRef; switch (expression.operator) { case Token.Plus_Plus: { - // check operator overload let classReference = this.currentType.getClassOrWrapper(this.program); if (classReference) { @@ -9261,7 +9262,7 @@ export class Compiler extends DiagnosticEmitter { if (overload) { let isInstance = overload.is(CommonFlags.Instance); if (tempLocal && !isInstance) { // revert: static overload simply returns - getValue = getLocalSetValue(getValue); + getValue = getValueOriginal; tempLocal = null; } expr = this.compileUnaryOverload(overload, expression.operand, getValue, expression); @@ -9337,7 +9338,6 @@ export class Compiler extends DiagnosticEmitter { break; } case Token.Minus_Minus: { - // check operator overload let classReference = this.currentType.getClassOrWrapper(this.program); if (classReference) { @@ -9345,11 +9345,11 @@ export class Compiler extends DiagnosticEmitter { if (overload) { let isInstance = overload.is(CommonFlags.Instance); if (tempLocal && !isInstance) { // revert: static overload simply returns - getValue = getLocalSetValue(getValue); + getValue = getValueOriginal; tempLocal = null; } expr = this.compileUnaryOverload(overload, expression.operand, getValue, expression); - if (overload.is(CommonFlags.Instance)) break; + if (isInstance) break; return expr; // here } } diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index 51dd5033e7..87fbfced19 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -6190,11 +6190,6 @@ block $std/operator-overloading/TesterInlineStatic.postInc|inlined.0 (result i32) global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais1 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store - local.get $9 local.tee $3 i32.store offset=16 i32.const 0 diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 8621df2251..32bafe546c 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -4550,9 +4550,6 @@ global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais1 local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 From 7322bfcbda8da8366984149e685b0b16a28baa7a Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Sat, 27 Sep 2025 19:03:46 +0800 Subject: [PATCH 56/86] chore: refactor builtin type resolving to `builtins.ts` (#2951) --- src/builtins.ts | 161 +++++++++++++++++++++++++++++++++++++++++++++++- src/resolver.ts | 148 +++----------------------------------------- 2 files changed, 167 insertions(+), 142 deletions(-) diff --git a/src/builtins.ts b/src/builtins.ts index 94596b4849..f876049603 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -43,7 +43,8 @@ import { NodeKind, LiteralExpression, ArrayLiteralExpression, - IdentifierExpression + IdentifierExpression, + NamedTypeNode } from "./ast"; import { @@ -85,7 +86,9 @@ import { DecoratorFlags, Class, PropertyPrototype, - VariableLikeElement + VariableLikeElement, + Element, + OperatorKind } from "./program"; import { @@ -94,11 +97,13 @@ import { } from "./flow"; import { - ReportMode + ReportMode, + Resolver } from "./resolver"; import { CommonFlags, + CommonNames, Feature, featureToString, TypeinfoFlags @@ -768,6 +773,17 @@ export namespace BuiltinNames { export const Object = "~lib/object/Object"; } +/** Builtin types context. */ +export class BuiltinTypesContext { + constructor( + public resolver: Resolver, + public node: NamedTypeNode, + public ctxElement: Element, + public ctxTypes: Map | null, + public reportMode: ReportMode + ) {} +} + /** Builtin variable compilation context. */ export class BuiltinVariableContext { constructor( @@ -804,6 +820,9 @@ export class BuiltinFunctionContext { ) {} } +/** Builtin types map. */ +export const builtinTypes = new Map Type | null>(); + /** Builtin functions map. */ export const builtinFunctions = new Map ExpressionRef>(); @@ -811,6 +830,142 @@ export const builtinFunctions = new Map export const builtinVariables_onCompile = new Map void>(); export const builtinVariables_onAccess = new Map ExpressionRef>(); +// === Builtin Types ========================================================================== +function builtin_resolveNativeType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + switch (typeArgument.kind) { + case TypeKind.I8: + case TypeKind.I16: + case TypeKind.I32: return Type.i32; + case TypeKind.Isize: if (!resolver.program.options.isWasm64) return Type.i32; + case TypeKind.I64: return Type.i64; + case TypeKind.U8: + case TypeKind.U16: + case TypeKind.U32: + case TypeKind.Bool: return Type.u32; + case TypeKind.Usize: if (!resolver.program.options.isWasm64) return Type.u32; + case TypeKind.U64: return Type.u64; + case TypeKind.F32: return Type.f32; + case TypeKind.F64: return Type.f64; + case TypeKind.V128: return Type.v128; + case TypeKind.Void: return Type.void; + default: assert(false); + } + return null; +} +builtinTypes.set(CommonNames.native, builtin_resolveNativeType); + +function builtin_resolveIndexOfType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + let classReference = typeArgument.classReference; + if (!classReference) { + if (reportMode == ReportMode.Report) { + resolver.error( + DiagnosticCode.Index_signature_is_missing_in_type_0, + typeArgumentNode.range, typeArgument.toString() + ); + } + return null; + } + let overload = classReference.lookupOverload(OperatorKind.IndexedGet); + if (overload) { + let parameterTypes = overload.signature.parameterTypes; + if (overload.is(CommonFlags.Static)) { + assert(parameterTypes.length == 2); + return parameterTypes[1]; + } else { + assert(parameterTypes.length == 1); + return parameterTypes[0]; + } + } + if (reportMode == ReportMode.Report) { + resolver.error( + DiagnosticCode.Index_signature_is_missing_in_type_0, + typeArgumentNode.range, typeArgument.toString() + ); + } + return null; +} +builtinTypes.set(CommonNames.indexof, builtin_resolveIndexOfType); + +function builtin_resolveValueOfType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + let classReference = typeArgument.getClassOrWrapper(resolver.program); + if (classReference) { + let overload = classReference.lookupOverload(OperatorKind.IndexedGet); + if (overload) return overload.signature.returnType; + } + if (reportMode == ReportMode.Report) { + resolver.error( + DiagnosticCode.Index_signature_is_missing_in_type_0, + typeArgumentNode.range, typeArgument.toString() + ); + } + return null; +} +builtinTypes.set(CommonNames.valueof, builtin_resolveValueOfType); + +function builtin_resolveReturnOfType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + let signatureReference = typeArgument.getSignature(); + if (signatureReference) return signatureReference.returnType; + if (reportMode == ReportMode.Report) { + resolver.error( + DiagnosticCode.Type_0_has_no_call_signatures, + typeArgumentNode.range, typeArgument.toString() + ); + } + return null; +} +builtinTypes.set(CommonNames.returnof, builtin_resolveReturnOfType); + +function builtin_resolveNonnullableType(ctx: BuiltinTypesContext): Type | null { + let resolver = ctx.resolver; + let node = ctx.node; + let ctxElement = ctx.ctxElement; + let ctxTypes = ctx.ctxTypes; + let reportMode = ctx.reportMode; + const typeArgumentNode = resolver.ensureOneTypeArgument(node, reportMode); + if (!typeArgumentNode) return null; + let typeArgument = resolver.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); + if (!typeArgument) return null; + if (!typeArgument.isNullableReference) return typeArgument; + return typeArgument.nonNullableType; +} +builtinTypes.set(CommonNames.nonnull, builtin_resolveNonnullableType); + // === Static type evaluation ================================================================= // helper global used by checkConstantType diff --git a/src/resolver.ts b/src/resolver.ts index 4718529d5d..0823838fa2 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -103,7 +103,9 @@ import { } from "./tokenizer"; import { - BuiltinNames + BuiltinNames, + builtinTypes, + BuiltinTypesContext } from "./builtins"; /** Indicates whether errors are reported or not. */ @@ -299,11 +301,11 @@ export class Resolver extends DiagnosticEmitter { // Handle special built-in types if (isSimpleType) { let text = nameNode.identifier.text; - if (text == CommonNames.native) return this.resolveBuiltinNativeType(node, ctxElement, ctxTypes, reportMode); - if (text == CommonNames.indexof) return this.resolveBuiltinIndexofType(node, ctxElement, ctxTypes, reportMode); - if (text == CommonNames.valueof) return this.resolveBuiltinValueofType(node, ctxElement, ctxTypes, reportMode); - if (text == CommonNames.returnof) return this.resolveBuiltinReturnTypeType(node, ctxElement, ctxTypes, reportMode); - if (text == CommonNames.nonnull) return this.resolveBuiltinNotNullableType(node, ctxElement, ctxTypes, reportMode); + if (builtinTypes.has(text)) { + let fn = assert(builtinTypes.get(text)); + let ctx = new BuiltinTypesContext(this, node, ctxElement, ctxTypes, reportMode); + return fn(ctx); + } } // Resolve normally @@ -441,138 +443,6 @@ export class Resolver extends DiagnosticEmitter { return node.isNullable ? signature.type.asNullable() : signature.type; } - private resolveBuiltinNativeType( - /** The type to resolve. */ - node: NamedTypeNode, - /** Contextual element. */ - ctxElement: Element, - /** Contextual types, i.e. `T`. */ - ctxTypes: Map | null = null, - /** How to proceed with eventual diagnostics. */ - reportMode: ReportMode = ReportMode.Report - ): Type | null { - const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); - if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); - if (!typeArgument) return null; - switch (typeArgument.kind) { - case TypeKind.I8: - case TypeKind.I16: - case TypeKind.I32: return Type.i32; - case TypeKind.Isize: if (!this.program.options.isWasm64) return Type.i32; - case TypeKind.I64: return Type.i64; - case TypeKind.U8: - case TypeKind.U16: - case TypeKind.U32: - case TypeKind.Bool: return Type.u32; - case TypeKind.Usize: if (!this.program.options.isWasm64) return Type.u32; - case TypeKind.U64: return Type.u64; - case TypeKind.F32: return Type.f32; - case TypeKind.F64: return Type.f64; - case TypeKind.V128: return Type.v128; - case TypeKind.Void: return Type.void; - default: assert(false); - } - return null; - } - - private resolveBuiltinIndexofType( - /** The type to resolve. */ - node: NamedTypeNode, - /** Contextual element. */ - ctxElement: Element, - /** Contextual types, i.e. `T`. */ - ctxTypes: Map | null = null, - /** How to proceed with eventual diagnostics. */ - reportMode: ReportMode = ReportMode.Report - ): Type | null { - const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); - if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); - if (!typeArgument) return null; - let classReference = typeArgument.classReference; - if (!classReference) { - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Index_signature_is_missing_in_type_0, - typeArgumentNode.range, typeArgument.toString() - ); - } - return null; - } - let overload = classReference.lookupOverload(OperatorKind.IndexedGet); - if (overload) { - let parameterTypes = overload.signature.parameterTypes; - if (overload.is(CommonFlags.Static)) { - assert(parameterTypes.length == 2); - return parameterTypes[1]; - } else { - assert(parameterTypes.length == 1); - return parameterTypes[0]; - } - } - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Index_signature_is_missing_in_type_0, - typeArgumentNode.range, typeArgument.toString() - ); - } - return null; - } - - private resolveBuiltinValueofType( - /** The type to resolve. */ - node: NamedTypeNode, - /** Contextual element. */ - ctxElement: Element, - /** Contextual types, i.e. `T`. */ - ctxTypes: Map | null = null, - /** How to proceed with eventual diagnostics. */ - reportMode: ReportMode = ReportMode.Report - ): Type | null { - const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); - if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); - if (!typeArgument) return null; - let classReference = typeArgument.getClassOrWrapper(this.program); - if (classReference) { - let overload = classReference.lookupOverload(OperatorKind.IndexedGet); - if (overload) return overload.signature.returnType; - } - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Index_signature_is_missing_in_type_0, - typeArgumentNode.range, typeArgument.toString() - ); - } - return null; - } - - private resolveBuiltinReturnTypeType( - /** The type to resolve. */ - node: NamedTypeNode, - /** Contextual element. */ - ctxElement: Element, - /** Contextual types, i.e. `T`. */ - ctxTypes: Map | null = null, - /** How to proceed with eventualy diagnostics. */ - reportMode: ReportMode = ReportMode.Report - ): Type | null { - const typeArgumentNode = this.ensureOneTypeArgument(node, reportMode); - if (!typeArgumentNode) return null; - let typeArgument = this.resolveType(typeArgumentNode, null, ctxElement, ctxTypes, reportMode); - if (!typeArgument) return null; - let signatureReference = typeArgument.getSignature(); - if (signatureReference) return signatureReference.returnType; - if (reportMode == ReportMode.Report) { - this.error( - DiagnosticCode.Type_0_has_no_call_signatures, - typeArgumentNode.range, typeArgument.toString() - ); - } - return null; - } - private resolveBuiltinNotNullableType( /** The type to resolve. */ node: NamedTypeNode, @@ -3814,7 +3684,7 @@ export class Resolver extends DiagnosticEmitter { return instance; } - private ensureOneTypeArgument( + ensureOneTypeArgument( /** The type to resolve. */ node: NamedTypeNode, /** How to proceed with eventual diagnostics. */ From 6087191ea566f2a719dfc3c656989e15d79bad6d Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Fri, 17 Oct 2025 10:48:02 +0800 Subject: [PATCH 57/86] chore: fix wrong float test (#2952) --- tests/compiler/number-warn.json | 18 + tests/compiler/number-warn.ts | 20 + tests/compiler/number.debug.wat | 3325 ++++++++++++++++------------- tests/compiler/number.json | 14 - tests/compiler/number.release.wat | 1526 ++++++------- tests/compiler/number.ts | 4 +- 6 files changed, 2611 insertions(+), 2296 deletions(-) create mode 100644 tests/compiler/number-warn.json create mode 100644 tests/compiler/number-warn.ts diff --git a/tests/compiler/number-warn.json b/tests/compiler/number-warn.json new file mode 100644 index 0000000000..d823d836bf --- /dev/null +++ b/tests/compiler/number-warn.json @@ -0,0 +1,18 @@ +{ + "asc_flags": [ + ], + "stderr": [ + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", + "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters." + ] +} diff --git a/tests/compiler/number-warn.ts b/tests/compiler/number-warn.ts new file mode 100644 index 0000000000..4de4bc8205 --- /dev/null +++ b/tests/compiler/number-warn.ts @@ -0,0 +1,20 @@ + +// Should produce warnings + +// always false +(!(1.0 == NaN)); +(!(NaN == F32.NaN)); +(!(F64.NaN == 1.0)); + +// always true +(1.0 != NaN); +(NaN != F32.NaN); +(f64.NaN != 1.0); + +// always true +(+.0 == -.0); +(-.0 != -.0); +(-.0 == +.0); +(f32(+.0) == f32(-.0)); +(f32(-.0) != f32(-.0)); +(f32(-.0) == f32(+.0)); diff --git a/tests/compiler/number.debug.wat b/tests/compiler/number.debug.wat index c2bf156863..4c4c4c7a86 100644 --- a/tests/compiler/number.debug.wat +++ b/tests/compiler/number.debug.wat @@ -1,22 +1,23 @@ (module - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $f64_=>_i32 (func (param f64) (result i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $f32_=>_i32 (func (param f32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) - (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) - (type $f64_i32_=>_i32 (func (param f64 i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func)) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param f64) (result i32))) + (type $7 (func (param f32) (result i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 i64) (result i32))) + (type $10 (func (result i32))) + (type $11 (func (param i32 i64 i32))) + (type $12 (func (param i64 i32) (result i32))) + (type $13 (func (param i32 i64 i32 i32))) + (type $14 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $15 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $16 (func (param i32 i32 i32) (result i32))) + (type $17 (func (param i32 f64 i32) (result i32))) + (type $18 (func (param f64 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $number/a (mut i32) (i32.const 1)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -51,42 +52,42 @@ (global $~lib/builtins/f64.MAX_SAFE_INTEGER f64 (f64.const 9007199254740991)) (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) (global $~lib/rt/__rtti_base i32 (i32.const 3632)) - (global $~lib/memory/__data_end i32 (i32.const 3660)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 20044)) - (global $~lib/memory/__heap_base i32 (i32.const 20044)) + (global $~lib/memory/__data_end i32 (i32.const 3652)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 36420)) + (global $~lib/memory/__heap_base i32 (i32.const 36420)) (memory $0 1) - (data (i32.const 12) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\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 300) "<\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 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 428) "<\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 492) ",\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 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\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 636) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 1036) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2092) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2432) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\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 2488) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8|inlined.0 (result i32) + local.get $base + local.set $value + local.get $value + i32.popcnt + i32.const 1 + i32.eq + br $~lib/util/number/isPowerOf2|inlined.0 + end if i32.const 63 local.get $num @@ -2445,8 +2574,6 @@ local.get $num local.get $b i64.ge_u - local.set $var$2 - local.get $var$2 if local.get $num local.get $b @@ -2467,8 +2594,6 @@ local.get $num i64.const 1 i64.ge_u - local.set $var$2 - local.get $var$2 if local.get $num local.get $b64 @@ -2484,10 +2609,12 @@ local.get $e i32.const 1 i32.sub + return ) (func $~lib/util/number/utoa64_any_core (param $buffer i32) (param $num i64) (param $offset i32) (param $radix i32) (local $base i64) - (local $var$5 i64) + (local $shift i64) + (local $mask i64) (local $q i64) local.get $radix i64.extend_i32_s @@ -2505,11 +2632,11 @@ i32.const 7 i32.and i64.extend_i32_s - local.set $var$5 + local.set $shift local.get $base i64.const 1 i64.sub - local.set $q + local.set $mask loop $do-loop|0 local.get $offset i32.const 1 @@ -2522,16 +2649,16 @@ i32.add i32.const 2112 local.get $num - local.get $q + local.get $mask i64.and i32.wrap_i64 i32.const 1 i32.shl i32.add - i32.load16_u $0 - i32.store16 $0 + i32.load16_u + i32.store16 local.get $num - local.get $var$5 + local.get $shift i64.shr_u local.set $num local.get $num @@ -2564,8 +2691,8 @@ i32.const 1 i32.shl i32.add - i32.load16_u $0 - i32.store16 $0 + i32.load16_u + i32.store16 local.get $q local.set $num local.get $num @@ -2579,19 +2706,25 @@ local.get $this local.get $radix call $~lib/util/number/itoa32 + return + ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 ) (func $~lib/string/String#get:length (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 + return ) (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) (local $ptr1 i32) (local $ptr2 i32) - (local $var$7 i32) + (local $7 i32) (local $a i32) (local $b i32) local.get $str1 @@ -2629,9 +2762,9 @@ block $do-break|0 loop $do-loop|0 local.get $ptr1 - i64.load $0 + i64.load local.get $ptr2 - i64.load $0 + i64.load i64.ne if br $do-break|0 @@ -2657,19 +2790,17 @@ end loop $while-continue|1 local.get $len - local.tee $var$7 + local.tee $7 i32.const 1 i32.sub local.set $len - local.get $var$7 - local.set $var$7 - local.get $var$7 + local.get $7 if local.get $ptr1 - i32.load16_u $0 + i32.load16_u local.set $a local.get $ptr2 - i32.load16_u $0 + i32.load16_u local.set $b local.get $a local.get $b @@ -2692,48 +2823,7 @@ end end i32.const 0 - ) - (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) - (local $leftLength i32) - local.get $left - local.get $right - i32.eq - if - i32.const 1 - return - end - local.get $left - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $right - i32.const 0 - i32.eq - end - if - i32.const 0 - return - end - local.get $left - call $~lib/string/String#get:length - local.set $leftLength - local.get $leftLength - local.get $right - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - return - end - local.get $left - i32.const 0 - local.get $right - i32.const 0 - local.get $leftLength - call $~lib/util/string/compareImpl - i32.eqz + return ) (func $~lib/util/number/genDigits (param $buffer i32) (param $w_frc i64) (param $w_exp i32) (param $mp_frc i64) (param $mp_exp i32) (param $delta i64) (param $sign i32) (result i32) (local $one_exp i32) @@ -2744,19 +2834,28 @@ (local $p2 i64) (local $kappa i32) (local $len i32) - (local $var$15 i32) (local $d i32) - (local $var$17 i32) + (local $16 i32) + (local $17 i32) (local $tmp i64) - (local $var$19 i64) - (local $var$20 i64) - (local $var$21 i64) - (local $d_0 i64) - (local $var$23 i32) - (local $var$24 i32) - (local $var$25 i32) - (local $var$26 i32) - (local $var$27 i64) + (local $buffer|19 i32) + (local $len|20 i32) + (local $delta|21 i64) + (local $rest i64) + (local $ten_kappa i64) + (local $wp_w i64) + (local $lastp i32) + (local $digit i32) + (local $d|27 i64) + (local $28 i32) + (local $buffer|29 i32) + (local $len|30 i32) + (local $delta|31 i64) + (local $rest|32 i64) + (local $ten_kappa|33 i64) + (local $wp_w|34 i64) + (local $lastp|35 i32) + (local $digit|36 i32) i32.const 0 local.get $mp_exp i32.sub @@ -2793,8 +2892,6 @@ local.get $kappa i32.const 0 i32.gt_s - local.set $var$15 - local.get $var$15 if block $break|1 block $case10|1 @@ -2809,44 +2906,44 @@ block $case1|1 block $case0|1 local.get $kappa - local.set $var$17 - local.get $var$17 + local.set $16 + local.get $16 i32.const 10 i32.eq br_if $case0|1 - local.get $var$17 + local.get $16 i32.const 9 i32.eq br_if $case1|1 - local.get $var$17 + local.get $16 i32.const 8 i32.eq br_if $case2|1 - local.get $var$17 + local.get $16 i32.const 7 i32.eq br_if $case3|1 - local.get $var$17 + local.get $16 i32.const 6 i32.eq br_if $case4|1 - local.get $var$17 + local.get $16 i32.const 5 i32.eq br_if $case5|1 - local.get $var$17 + local.get $16 i32.const 4 i32.eq br_if $case6|1 - local.get $var$17 + local.get $16 i32.const 3 i32.eq br_if $case7|1 - local.get $var$17 + local.get $16 i32.const 2 i32.eq br_if $case8|1 - local.get $var$17 + local.get $16 i32.const 1 i32.eq br_if $case9|1 @@ -2958,11 +3055,11 @@ if local.get $buffer local.get $len - local.tee $var$17 + local.tee $17 i32.const 1 i32.add local.set $len - local.get $var$17 + local.get $17 i32.const 1 i32.shl i32.add @@ -2971,7 +3068,7 @@ i32.const 65535 i32.and i32.add - i32.store16 $0 + i32.store16 end local.get $kappa i32.const 1 @@ -2994,88 +3091,86 @@ i32.add global.set $~lib/util/number/_K local.get $buffer - local.set $var$23 + local.set $buffer|19 local.get $len - local.set $var$17 + local.set $len|20 local.get $delta - local.set $d_0 + local.set $delta|21 local.get $tmp - local.set $var$21 + local.set $rest i32.const 3360 local.get $kappa i32.const 2 i32.shl i32.add - i64.load32_u $0 + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $var$20 + local.set $ten_kappa local.get $wp_w_frc - local.set $var$19 - local.get $var$23 - local.get $var$17 + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $var$24 - local.get $var$24 - i32.load16_u $0 - local.set $var$25 + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit loop $while-continue|3 - local.get $var$21 - local.get $var$19 + local.get $rest + local.get $wp_w i64.lt_u if (result i32) - local.get $d_0 - local.get $var$21 + local.get $delta|21 + local.get $rest i64.sub - local.get $var$20 + local.get $ten_kappa i64.ge_u else i32.const 0 end if (result i32) - local.get $var$21 - local.get $var$20 + local.get $rest + local.get $ten_kappa i64.add - local.get $var$19 + local.get $wp_w i64.lt_u if (result i32) i32.const 1 else - local.get $var$19 - local.get $var$21 + local.get $wp_w + local.get $rest i64.sub - local.get $var$21 - local.get $var$20 + local.get $rest + local.get $ten_kappa i64.add - local.get $var$19 + local.get $wp_w i64.sub i64.gt_u end else i32.const 0 end - local.set $var$26 - local.get $var$26 if - local.get $var$25 + local.get $digit i32.const 1 i32.sub - local.set $var$25 - local.get $var$21 - local.get $var$20 + local.set $digit + local.get $rest + local.get $ten_kappa i64.add - local.set $var$21 + local.set $rest br $while-continue|3 end end - local.get $var$24 - local.get $var$25 - i32.store16 $0 + local.get $lastp + local.get $digit + i32.store16 local.get $len return end @@ -3084,8 +3179,6 @@ end loop $while-continue|4 i32.const 1 - local.set $var$15 - local.get $var$15 if local.get $p2 i64.const 10 @@ -3099,8 +3192,8 @@ local.get $one_exp i64.extend_i32_s i64.shr_u - local.set $d_0 - local.get $d_0 + local.set $d|27 + local.get $d|27 local.get $len i64.extend_i32_s i64.or @@ -3109,21 +3202,21 @@ if local.get $buffer local.get $len - local.tee $var$25 + local.tee $28 i32.const 1 i32.add local.set $len - local.get $var$25 + local.get $28 i32.const 1 i32.shl i32.add i32.const 48 - local.get $d_0 + local.get $d|27 i32.wrap_i64 i32.const 65535 i32.and i32.add - i32.store16 $0 + i32.store16 end local.get $p2 local.get $mask @@ -3149,84 +3242,82 @@ i32.const 2 i32.shl i32.add - i64.load32_u $0 + i64.load32_u i64.mul local.set $wp_w_frc local.get $buffer - local.set $var$17 + local.set $buffer|29 local.get $len - local.set $var$26 + local.set $len|30 local.get $delta - local.set $var$27 + local.set $delta|31 local.get $p2 - local.set $var$21 + local.set $rest|32 local.get $one_frc - local.set $var$20 + local.set $ten_kappa|33 local.get $wp_w_frc - local.set $var$19 - local.get $var$17 - local.get $var$26 + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub i32.const 1 i32.shl i32.add - local.set $var$25 - local.get $var$25 - i32.load16_u $0 - local.set $var$24 + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 loop $while-continue|6 - local.get $var$21 - local.get $var$19 + local.get $rest|32 + local.get $wp_w|34 i64.lt_u if (result i32) - local.get $var$27 - local.get $var$21 + local.get $delta|31 + local.get $rest|32 i64.sub - local.get $var$20 + local.get $ten_kappa|33 i64.ge_u else i32.const 0 end if (result i32) - local.get $var$21 - local.get $var$20 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $var$19 + local.get $wp_w|34 i64.lt_u if (result i32) i32.const 1 else - local.get $var$19 - local.get $var$21 + local.get $wp_w|34 + local.get $rest|32 i64.sub - local.get $var$21 - local.get $var$20 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.get $var$19 + local.get $wp_w|34 i64.sub i64.gt_u end else i32.const 0 end - local.set $var$23 - local.get $var$23 if - local.get $var$24 + local.get $digit|36 i32.const 1 i32.sub - local.set $var$24 - local.get $var$21 - local.get $var$20 + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 i64.add - local.set $var$21 + local.set $rest|32 br $while-continue|6 end end - local.get $var$25 - local.get $var$24 - i32.store16 $0 + local.get $lastp|35 + local.get $digit|36 + i32.store16 local.get $len return end @@ -3237,14 +3328,25 @@ ) (func $~lib/util/number/prettify (param $buffer i32) (param $length i32) (param $k i32) (result i32) (local $kk i32) - (local $var$4 i32) - (local $var$5 i32) - (local $var$6 i32) - (local $var$7 i32) - (local $var$8 i32) - (local $var$9 i32) - (local $var$10 i32) - (local $var$11 i32) + (local $i i32) + (local $ptr i32) + (local $offset i32) + (local $i|7 i32) + (local $buffer|8 i32) + (local $k|9 i32) + (local $sign i32) + (local $decimals i32) + (local $buffer|12 i32) + (local $num i32) + (local $offset|14 i32) + (local $len i32) + (local $buffer|16 i32) + (local $k|17 i32) + (local $sign|18 i32) + (local $decimals|19 i32) + (local $buffer|20 i32) + (local $num|21 i32) + (local $offset|22 i32) local.get $k i32.eqz if @@ -3258,7 +3360,7 @@ i32.const 16 i32.shl i32.or - i32.store $0 + i32.store local.get $length i32.const 2 i32.add @@ -3280,25 +3382,23 @@ end if local.get $length - local.set $var$4 + local.set $i loop $for-loop|0 - local.get $var$4 + local.get $i local.get $kk i32.lt_s - local.set $var$5 - local.get $var$5 if local.get $buffer - local.get $var$4 + local.get $i i32.const 1 i32.shl i32.add i32.const 48 - i32.store16 $0 - local.get $var$4 + i32.store16 + local.get $i i32.const 1 i32.add - local.set $var$4 + local.set $i br $for-loop|0 end end @@ -3312,7 +3412,7 @@ i32.const 16 i32.shl i32.or - i32.store $0 + i32.store local.get $kk i32.const 2 i32.add @@ -3334,24 +3434,24 @@ i32.const 1 i32.shl i32.add - local.set $var$4 - local.get $var$4 + local.set $ptr + local.get $ptr i32.const 2 i32.add - local.get $var$4 + local.get $ptr i32.const 0 local.get $k i32.sub i32.const 1 i32.shl - memory.copy $0 $0 + memory.copy local.get $buffer local.get $kk i32.const 1 i32.shl i32.add i32.const 46 - i32.store16 $0 + i32.store16 local.get $length i32.const 1 i32.add @@ -3371,9 +3471,9 @@ i32.const 2 local.get $kk i32.sub - local.set $var$4 + local.set $offset local.get $buffer - local.get $var$4 + local.get $offset i32.const 1 i32.shl i32.add @@ -3381,39 +3481,37 @@ local.get $length i32.const 1 i32.shl - memory.copy $0 $0 + memory.copy local.get $buffer i32.const 48 i32.const 46 i32.const 16 i32.shl i32.or - i32.store $0 + i32.store i32.const 2 - local.set $var$5 + local.set $i|7 loop $for-loop|1 - local.get $var$5 - local.get $var$4 + local.get $i|7 + local.get $offset i32.lt_s - local.set $var$6 - local.get $var$6 if local.get $buffer - local.get $var$5 + local.get $i|7 i32.const 1 i32.shl i32.add i32.const 48 - i32.store16 $0 - local.get $var$5 + i32.store16 + local.get $i|7 i32.const 1 i32.add - local.set $var$5 + local.set $i|7 br $for-loop|1 end end local.get $length - local.get $var$4 + local.get $offset i32.add return else @@ -3423,52 +3521,55 @@ if local.get $buffer i32.const 101 - i32.store16 $0 offset=2 - local.get $buffer - i32.const 4 - i32.add - local.set $var$5 - local.get $kk - i32.const 1 - i32.sub - local.set $var$6 - local.get $var$6 - i32.const 0 - i32.lt_s - local.set $var$4 - local.get $var$4 - if - i32.const 0 - local.get $var$6 + i32.store16 offset=2 + block $~lib/util/number/genExponent|inlined.0 (result i32) + local.get $buffer + i32.const 4 + i32.add + local.set $buffer|8 + local.get $kk + i32.const 1 i32.sub - local.set $var$6 + local.set $k|9 + local.get $k|9 + i32.const 0 + i32.lt_s + local.set $sign + local.get $sign + if + i32.const 0 + local.get $k|9 + i32.sub + local.set $k|9 + end + local.get $k|9 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|8 + i32.const 45 + i32.const 43 + local.get $sign + select + i32.store16 + local.get $decimals + br $~lib/util/number/genExponent|inlined.0 end - local.get $var$6 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $var$7 - local.get $var$5 - local.set $var$10 - local.get $var$6 - local.set $var$9 - local.get $var$7 - local.set $var$8 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $var$10 - local.get $var$9 - local.get $var$8 - call $~lib/util/number/utoa32_dec_lut - local.get $var$5 - i32.const 45 - i32.const 43 - local.get $var$4 - select - i32.store16 $0 - local.get $var$7 local.set $length local.get $length i32.const 2 @@ -3478,73 +3579,76 @@ local.get $length i32.const 1 i32.shl - local.set $var$7 + local.set $len local.get $buffer i32.const 4 i32.add local.get $buffer i32.const 2 i32.add - local.get $var$7 + local.get $len i32.const 2 i32.sub - memory.copy $0 $0 + memory.copy local.get $buffer i32.const 46 - i32.store16 $0 offset=2 + i32.store16 offset=2 local.get $buffer - local.get $var$7 + local.get $len i32.add i32.const 101 - i32.store16 $0 offset=2 + i32.store16 offset=2 local.get $length - local.get $buffer - local.get $var$7 - i32.add - i32.const 4 - i32.add - local.set $var$9 - local.get $kk - i32.const 1 - i32.sub - local.set $var$8 - local.get $var$8 - i32.const 0 - i32.lt_s - local.set $var$4 - local.get $var$4 - if - i32.const 0 - local.get $var$8 + block $~lib/util/number/genExponent|inlined.1 (result i32) + local.get $buffer + local.get $len + i32.add + i32.const 4 + i32.add + local.set $buffer|16 + local.get $kk + i32.const 1 i32.sub - local.set $var$8 + local.set $k|17 + local.get $k|17 + i32.const 0 + i32.lt_s + local.set $sign|18 + local.get $sign|18 + if + i32.const 0 + local.get $k|17 + i32.sub + local.set $k|17 + end + local.get $k|17 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.set $decimals|19 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + local.get $buffer|16 + i32.const 45 + i32.const 43 + local.get $sign|18 + select + i32.store16 + local.get $decimals|19 + br $~lib/util/number/genExponent|inlined.1 end - local.get $var$8 - call $~lib/util/number/decimalCount32 - i32.const 1 - i32.add - local.set $var$5 - local.get $var$9 - local.set $var$11 - local.get $var$8 - local.set $var$6 - local.get $var$5 - local.set $var$10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $var$11 - local.get $var$6 - local.get $var$10 - call $~lib/util/number/utoa32_dec_lut - local.get $var$9 - i32.const 45 - i32.const 43 - local.get $var$4 - select - i32.store16 $0 - local.get $var$5 i32.add local.set $length local.get $length @@ -3560,33 +3664,69 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (result i32) + (func $~lib/util/number/dtoa_core (param $buffer i32) (param $value f64) (param $isSingle i32) (result i32) (local $sign i32) - (local $var$3 i32) - (local $var$4 i32) - (local $var$5 f64) - (local $var$6 i64) - (local $var$7 i32) - (local $var$8 i64) - (local $var$9 i64) - (local $var$10 i32) - (local $var$11 i64) - (local $var$12 i64) - (local $var$13 i32) - (local $var$14 i32) - (local $var$15 i32) - (local $var$16 f64) - (local $var$17 i64) - (local $var$18 i64) - (local $var$19 i64) - (local $var$20 i64) - (local $var$21 i64) - (local $var$22 i64) - (local $var$23 i64) - (local $var$24 i64) - (local $var$25 i64) - (local $var$26 i32) - (local $var$27 i64) + (local $value|4 f64) + (local $buffer|5 i32) + (local $sign|6 i32) + (local $isSingle|7 i32) + (local $frc i64) + (local $exp i32) + (local $uv i32) + (local $sid i32) + (local $uv|12 i64) + (local $sid|13 i64) + (local $f i64) + (local $e i32) + (local $isSingle|16 i32) + (local $frc|17 i64) + (local $exp|18 i32) + (local $off i32) + (local $m i32) + (local $minExp i32) + (local $dk f64) + (local $k i32) + (local $index i32) + (local $off|25 i32) + (local $frc_pow i64) + (local $exp_pow i32) + (local $u i64) + (local $v i64) + (local $u0 i64) + (local $v0 i64) + (local $u1 i64) + (local $v1 i64) + (local $l i64) + (local $t i64) + (local $w i64) + (local $w_frc i64) + (local $e1 i32) + (local $e2 i32) + (local $w_exp i32) + (local $u|41 i64) + (local $v|42 i64) + (local $u0|43 i64) + (local $v0|44 i64) + (local $u1|45 i64) + (local $v1|46 i64) + (local $l|47 i64) + (local $t|48 i64) + (local $w|49 i64) + (local $wp_frc i64) + (local $e1|51 i32) + (local $e2|52 i32) + (local $wp_exp i32) + (local $u|54 i64) + (local $v|55 i64) + (local $u0|56 i64) + (local $v0|57 i64) + (local $u1|58 i64) + (local $v1|59 i64) + (local $l|60 i64) + (local $t|61 i64) + (local $w|62 i64) + (local $wm_frc i64) + (local $delta i64) (local $len i32) local.get $value f64.const 0 @@ -3599,377 +3739,445 @@ local.set $value local.get $buffer i32.const 45 - i32.store16 $0 + i32.store16 + end + block $~lib/util/number/grisu2|inlined.0 (result i32) + local.get $value + local.set $value|4 + local.get $buffer + local.set $buffer|5 + local.get $sign + local.set $sign|6 + local.get $isSingle + local.set $isSingle|7 + local.get $isSingle|7 + if + local.get $value|4 + f32.demote_f64 + i32.reinterpret_f32 + local.set $uv + local.get $uv + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $exp + local.get $uv + i32.const 8388607 + i32.and + local.set $sid + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + local.get $sid + i64.extend_i32_u + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 127 + i32.const 23 + i32.add + i32.sub + local.set $exp + else + local.get $value|4 + i64.reinterpret_f64 + local.set $uv|12 + local.get $uv|12 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $exp + local.get $uv|12 + i64.const 4503599627370495 + i64.and + local.set $sid|13 + local.get $exp + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $sid|13 + i64.add + local.set $frc + local.get $exp + if (result i32) + local.get $exp + else + i32.const 1 + end + i32.const 1023 + i32.const 52 + i32.add + i32.sub + local.set $exp + end + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2488 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 3184 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $frc + i64.clz + i32.wrap_i64 + local.set $off|25 + local.get $frc + local.get $off|25 + i64.extend_i32_s + i64.shl + local.set $frc + local.get $exp + local.get $off|25 + i32.sub + local.set $exp + global.get $~lib/util/number/_frc_pow + local.set $frc_pow + global.get $~lib/util/number/_exp_pow + local.set $exp_pow + block $~lib/util/number/umul64f|inlined.0 (result i64) + local.get $frc + local.set $u + local.get $frc_pow + local.set $v + local.get $u + i64.const 4294967295 + i64.and + local.set $u0 + local.get $v + i64.const 4294967295 + i64.and + local.set $v0 + local.get $u + i64.const 32 + i64.shr_u + local.set $u1 + local.get $v + i64.const 32 + i64.shr_u + local.set $v1 + local.get $u0 + local.get $v0 + i64.mul + local.set $l + local.get $u1 + local.get $v0 + i64.mul + local.get $l + i64.const 32 + i64.shr_u + i64.add + local.set $t + local.get $u0 + local.get $v1 + i64.mul + local.get $t + i64.const 4294967295 + i64.and + i64.add + local.set $w + local.get $w + i64.const 2147483647 + i64.add + local.set $w + local.get $t + i64.const 32 + i64.shr_u + local.set $t + local.get $w + i64.const 32 + i64.shr_u + local.set $w + local.get $u1 + local.get $v1 + i64.mul + local.get $t + i64.add + local.get $w + i64.add + br $~lib/util/number/umul64f|inlined.0 + end + local.set $w_frc + block $~lib/util/number/umul64e|inlined.0 (result i32) + local.get $exp + local.set $e1 + local.get $exp_pow + local.set $e2 + local.get $e1 + local.get $e2 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.0 + end + local.set $w_exp + block $~lib/util/number/umul64f|inlined.1 (result i64) + global.get $~lib/util/number/_frc_plus + local.set $u|41 + local.get $frc_pow + local.set $v|42 + local.get $u|41 + i64.const 4294967295 + i64.and + local.set $u0|43 + local.get $v|42 + i64.const 4294967295 + i64.and + local.set $v0|44 + local.get $u|41 + i64.const 32 + i64.shr_u + local.set $u1|45 + local.get $v|42 + i64.const 32 + i64.shr_u + local.set $v1|46 + local.get $u0|43 + local.get $v0|44 + i64.mul + local.set $l|47 + local.get $u1|45 + local.get $v0|44 + i64.mul + local.get $l|47 + i64.const 32 + i64.shr_u + i64.add + local.set $t|48 + local.get $u0|43 + local.get $v1|46 + i64.mul + local.get $t|48 + i64.const 4294967295 + i64.and + i64.add + local.set $w|49 + local.get $w|49 + i64.const 2147483647 + i64.add + local.set $w|49 + local.get $t|48 + i64.const 32 + i64.shr_u + local.set $t|48 + local.get $w|49 + i64.const 32 + i64.shr_u + local.set $w|49 + local.get $u1|45 + local.get $v1|46 + i64.mul + local.get $t|48 + i64.add + local.get $w|49 + i64.add + br $~lib/util/number/umul64f|inlined.1 + end + i64.const 1 + i64.sub + local.set $wp_frc + block $~lib/util/number/umul64e|inlined.1 (result i32) + global.get $~lib/util/number/_exp + local.set $e1|51 + local.get $exp_pow + local.set $e2|52 + local.get $e1|51 + local.get $e2|52 + i32.add + i32.const 64 + i32.add + br $~lib/util/number/umul64e|inlined.1 + end + local.set $wp_exp + block $~lib/util/number/umul64f|inlined.2 (result i64) + global.get $~lib/util/number/_frc_minus + local.set $u|54 + local.get $frc_pow + local.set $v|55 + local.get $u|54 + i64.const 4294967295 + i64.and + local.set $u0|56 + local.get $v|55 + i64.const 4294967295 + i64.and + local.set $v0|57 + local.get $u|54 + i64.const 32 + i64.shr_u + local.set $u1|58 + local.get $v|55 + i64.const 32 + i64.shr_u + local.set $v1|59 + local.get $u0|56 + local.get $v0|57 + i64.mul + local.set $l|60 + local.get $u1|58 + local.get $v0|57 + i64.mul + local.get $l|60 + i64.const 32 + i64.shr_u + i64.add + local.set $t|61 + local.get $u0|56 + local.get $v1|59 + i64.mul + local.get $t|61 + i64.const 4294967295 + i64.and + i64.add + local.set $w|62 + local.get $w|62 + i64.const 2147483647 + i64.add + local.set $w|62 + local.get $t|61 + i64.const 32 + i64.shr_u + local.set $t|61 + local.get $w|62 + i64.const 32 + i64.shr_u + local.set $w|62 + local.get $u1|58 + local.get $v1|59 + i64.mul + local.get $t|61 + i64.add + local.get $w|62 + i64.add + br $~lib/util/number/umul64f|inlined.2 + end + i64.const 1 + i64.add + local.set $wm_frc + local.get $wp_frc + local.get $wm_frc + i64.sub + local.set $delta + local.get $buffer|5 + local.get $w_frc + local.get $w_exp + local.get $wp_frc + local.get $wp_exp + local.get $delta + local.get $sign|6 + call $~lib/util/number/genDigits + br $~lib/util/number/grisu2|inlined.0 end - local.get $value - local.set $var$5 - local.get $buffer - local.set $var$4 - local.get $sign - local.set $var$3 - local.get $var$5 - i64.reinterpret_f64 - local.set $var$6 - local.get $var$6 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $var$7 - local.get $var$6 - i64.const 4503599627370495 - i64.and - local.set $var$8 - local.get $var$7 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $var$8 - i64.add - local.set $var$9 - local.get $var$7 - i32.const 1 - local.get $var$7 - select - i32.const 1023 - i32.const 52 - i32.add - i32.sub - local.set $var$7 - local.get $var$9 - local.set $var$11 - local.get $var$7 - local.set $var$10 - local.get $var$11 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $var$12 - local.get $var$10 - i32.const 1 - i32.sub - local.set $var$13 - local.get $var$12 - i64.clz - i32.wrap_i64 - local.set $var$14 - local.get $var$12 - local.get $var$14 - i64.extend_i32_s - i64.shl - local.set $var$12 - local.get $var$13 - local.get $var$14 - i32.sub - local.set $var$13 - i32.const 1 - local.get $var$11 - i64.const 4503599627370496 - i64.eq - i32.add - local.set $var$15 - local.get $var$12 - global.set $~lib/util/number/_frc_plus - local.get $var$11 - local.get $var$15 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $var$10 - local.get $var$15 - i32.sub - local.get $var$13 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $var$13 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $var$10 - i32.const -61 - local.get $var$10 - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $var$16 - local.get $var$16 - i32.trunc_sat_f64_s - local.set $var$15 - local.get $var$15 - local.get $var$15 - f64.convert_i32_s - local.get $var$16 - f64.ne - i32.add - local.set $var$15 - local.get $var$15 - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $var$14 - i32.const 348 - local.get $var$14 - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2488 - local.get $var$14 - i32.const 3 - i32.shl - i32.add - i64.load $0 - global.set $~lib/util/number/_frc_pow - i32.const 3184 - local.get $var$14 - i32.const 1 - i32.shl - i32.add - i32.load16_s $0 - global.set $~lib/util/number/_exp_pow - local.get $var$9 - i64.clz - i32.wrap_i64 - local.set $var$14 - local.get $var$9 - local.get $var$14 - i64.extend_i32_s - i64.shl - local.set $var$9 - local.get $var$7 - local.get $var$14 - i32.sub - local.set $var$7 - global.get $~lib/util/number/_frc_pow - local.set $var$12 - global.get $~lib/util/number/_exp_pow - local.set $var$15 - local.get $var$9 - local.set $var$17 - local.get $var$12 - local.set $var$11 - local.get $var$17 - i64.const 4294967295 - i64.and - local.set $var$18 - local.get $var$11 - i64.const 4294967295 - i64.and - local.set $var$19 - local.get $var$17 - i64.const 32 - i64.shr_u - local.set $var$20 - local.get $var$11 - i64.const 32 - i64.shr_u - local.set $var$21 - local.get $var$18 - local.get $var$19 - i64.mul - local.set $var$22 - local.get $var$20 - local.get $var$19 - i64.mul - local.get $var$22 - i64.const 32 - i64.shr_u - i64.add - local.set $var$23 - local.get $var$18 - local.get $var$21 - i64.mul - local.get $var$23 - i64.const 4294967295 - i64.and - i64.add - local.set $var$24 - local.get $var$24 - i64.const 2147483647 - i64.add - local.set $var$24 - local.get $var$23 - i64.const 32 - i64.shr_u - local.set $var$23 - local.get $var$24 - i64.const 32 - i64.shr_u - local.set $var$24 - local.get $var$20 - local.get $var$21 - i64.mul - local.get $var$23 - i64.add - local.get $var$24 - i64.add - local.set $var$24 - local.get $var$7 - local.set $var$10 - local.get $var$15 - local.set $var$13 - local.get $var$10 - local.get $var$13 - i32.add - i32.const 64 - i32.add - local.set $var$10 - global.get $~lib/util/number/_frc_plus - local.set $var$17 - local.get $var$12 - local.set $var$11 - local.get $var$17 - i64.const 4294967295 - i64.and - local.set $var$23 - local.get $var$11 - i64.const 4294967295 - i64.and - local.set $var$22 - local.get $var$17 - i64.const 32 - i64.shr_u - local.set $var$21 - local.get $var$11 - i64.const 32 - i64.shr_u - local.set $var$20 - local.get $var$23 - local.get $var$22 - i64.mul - local.set $var$19 - local.get $var$21 - local.get $var$22 - i64.mul - local.get $var$19 - i64.const 32 - i64.shr_u - i64.add - local.set $var$18 - local.get $var$23 - local.get $var$20 - i64.mul - local.get $var$18 - i64.const 4294967295 - i64.and - i64.add - local.set $var$25 - local.get $var$25 - i64.const 2147483647 - i64.add - local.set $var$25 - local.get $var$18 - i64.const 32 - i64.shr_u - local.set $var$18 - local.get $var$25 - i64.const 32 - i64.shr_u - local.set $var$25 - local.get $var$21 - local.get $var$20 - i64.mul - local.get $var$18 - i64.add - local.get $var$25 - i64.add - i64.const 1 - i64.sub - local.set $var$25 - global.get $~lib/util/number/_exp - local.set $var$26 - local.get $var$15 - local.set $var$13 - local.get $var$26 - local.get $var$13 - i32.add - i32.const 64 - i32.add - local.set $var$26 - global.get $~lib/util/number/_frc_minus - local.set $var$17 - local.get $var$12 - local.set $var$11 - local.get $var$17 - i64.const 4294967295 - i64.and - local.set $var$18 - local.get $var$11 - i64.const 4294967295 - i64.and - local.set $var$19 - local.get $var$17 - i64.const 32 - i64.shr_u - local.set $var$20 - local.get $var$11 - i64.const 32 - i64.shr_u - local.set $var$21 - local.get $var$18 - local.get $var$19 - i64.mul - local.set $var$22 - local.get $var$20 - local.get $var$19 - i64.mul - local.get $var$22 - i64.const 32 - i64.shr_u - i64.add - local.set $var$23 - local.get $var$18 - local.get $var$21 - i64.mul - local.get $var$23 - i64.const 4294967295 - i64.and - i64.add - local.set $var$27 - local.get $var$27 - i64.const 2147483647 - i64.add - local.set $var$27 - local.get $var$23 - i64.const 32 - i64.shr_u - local.set $var$23 - local.get $var$27 - i64.const 32 - i64.shr_u - local.set $var$27 - local.get $var$20 - local.get $var$21 - i64.mul - local.get $var$23 - i64.add - local.get $var$27 - i64.add - i64.const 1 - i64.add - local.set $var$27 - local.get $var$25 - local.get $var$27 - i64.sub - local.set $var$23 - local.get $var$4 - local.get $var$24 - local.get $var$10 - local.get $var$25 - local.get $var$26 - local.get $var$23 - local.get $var$3 - call $~lib/util/number/genDigits local.set $len local.get $buffer local.get $sign @@ -3985,10 +4193,12 @@ local.get $len local.get $sign i32.add + return ) (func $~lib/number/F64#toString (param $this f64) (param $radix i32) (result i32) local.get $this - call $~lib/util/number/dtoa + call $~lib/util/number/dtoa + return ) (func $~lib/number/Bool#toString (param $this i32) (param $radix i32) (result i32) local.get $this @@ -3997,6 +4207,7 @@ else i32.const 3616 end + return ) (func $~lib/number/F32.isSafeInteger (param $value f32) (result i32) local.get $value @@ -4011,6 +4222,7 @@ else i32.const 0 end + return ) (func $~lib/number/F32.isInteger (param $value f32) (result i32) local.get $value @@ -4026,6 +4238,7 @@ else i32.const 0 end + return ) (func $~lib/number/F64.isSafeInteger (param $value f64) (result i32) local.get $value @@ -4040,6 +4253,7 @@ else i32.const 0 end + return ) (func $~lib/number/F64.isInteger (param $value f64) (result i32) local.get $value @@ -4055,6 +4269,7 @@ else i32.const 0 end + return ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -4074,24 +4289,28 @@ (func $~lib/arraybuffer/ArrayBufferView~visit (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 + local.get $1 + call $~lib/object/Object~visit + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 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 + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return end return end @@ -4112,28 +4331,125 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 20064 - i32.const 20112 + i32.const 36448 + i32.const 36496 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 + local.get $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) (func $start:number (local $0 i32) - (local $1 f32) - (local $2 f64) - (local $3 i32) + (local $1 i32) + (local $2 f32) + (local $3 f64) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store $0 - memory.size $0 + i32.const 0 + i32.store + memory.size i32.const 16 i32.shl global.get $~lib/memory/__heap_base @@ -4153,17 +4469,12 @@ global.get $number/a i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 2208 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4177,17 +4488,12 @@ f64.const 2 i32.const 0 call $~lib/number/F64#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3424 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4201,17 +4507,12 @@ i32.const 3 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3456 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4225,17 +4526,12 @@ i32.const -5 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3488 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4249,17 +4545,12 @@ i32.const 4 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3520 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4277,17 +4568,12 @@ global.get $number/a i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3552 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4305,17 +4591,12 @@ global.get $number/a i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 2208 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4330,17 +4611,12 @@ i32.eqz i32.const 0 call $~lib/number/Bool#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3584 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4355,17 +4631,12 @@ i32.eqz i32.const 0 call $~lib/number/Bool#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3616 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4384,17 +4655,12 @@ local.get $0 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 2208 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4406,24 +4672,19 @@ unreachable end global.get $number/a - local.tee $0 + local.tee $1 i32.const 1 i32.sub global.set $number/a - local.get $0 + local.get $1 i32.const 10 call $~lib/number/I32#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 - local.get $3 + local.get $4 + i32.store + local.get $4 i32.const 3552 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store $0 offset=4 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4435,8 +4696,8 @@ unreachable end global.get $~lib/number/F32.NaN - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 f32.ne drop global.get $~lib/builtins/f32.MIN_SAFE_INTEGER @@ -4704,8 +4965,8 @@ unreachable end global.get $~lib/number/F64.NaN - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.ne drop global.get $~lib/builtins/f64.MIN_SAFE_INTEGER @@ -4973,47 +5234,77 @@ unreachable end f64.const 1 - global.get $~lib/builtins/f32.NaN - f64.promote_f32 + f64.const nan:0x8000000000000 f64.eq i32.eqz drop + f64.const nan:0x8000000000000 global.get $~lib/number/F32.NaN - f32.const nan:0x400000 - f32.eq + f64.promote_f32 + f64.eq i32.eqz drop - f64.const nan:0x8000000000000 + global.get $~lib/number/F64.NaN f64.const 1 f64.eq i32.eqz drop f64.const 1 - global.get $~lib/builtins/f32.NaN - f64.promote_f32 + f64.const nan:0x8000000000000 f64.ne drop + f64.const nan:0x8000000000000 global.get $~lib/number/F32.NaN - f32.const nan:0x400000 - f32.ne + f64.promote_f32 + f64.ne drop - f64.const nan:0x8000000000000 + global.get $~lib/builtins/f64.NaN f64.const 1 f64.ne drop + f64.const 0 + f64.const -0 + f64.eq + drop + f64.const -0 + f64.const -0 + f64.eq + drop + f64.const -0 + f64.const 0 + f64.eq + drop + f32.const 0 + f32.const -0 + f32.eq + drop + f32.const -0 + f32.const -0 + f32.eq + drop + f32.const -0 + f32.const 0 + f32.eq + drop global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $~lib/util/number/itoa32 (param $value i32) (param $radix i32) (result i32) + (local $sign i32) + (local $out i32) + (local $decimals i32) + (local $buffer i32) + (local $num i32) + (local $offset i32) + (local $decimals|8 i32) + (local $buffer|9 i32) + (local $num|10 i32) + (local $offset|11 i32) + (local $val32 i32) + (local $decimals|13 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5021,14 +5312,14 @@ call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store $0 - local.get $1 + i32.store + local.get $radix i32.const 2 i32.lt_s if (result i32) i32.const 1 else - local.get $1 + local.get $radix i32.const 36 i32.gt_s end @@ -5040,151 +5331,154 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $value i32.eqz if i32.const 224 - local.set $8 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $14 return end - local.get $0 + local.get $value i32.const 31 i32.shr_u i32.const 1 i32.shl - local.set $2 - local.get $2 + local.set $sign + local.get $sign if i32.const 0 - local.get $0 + local.get $value i32.sub - local.set $0 + local.set $value end - local.get $1 + local.get $radix i32.const 10 i32.eq if - local.get $0 + local.get $value call $~lib/util/number/decimalCount32 - local.set $4 + local.set $decimals global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $decimals i32.const 1 i32.shl - local.get $2 + local.get $sign i32.add - i32.const 1 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 - i32.store $0 - local.get $3 - local.get $2 + local.tee $out + i32.store + local.get $out + local.get $sign i32.add - local.set $7 - local.get $0 - local.set $6 - local.get $4 - local.set $5 + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset i32.const 0 i32.const 1 i32.ge_s drop - local.get $7 - local.get $6 - local.get $5 + local.get $buffer + local.get $num + local.get $offset call $~lib/util/number/utoa32_dec_lut else - local.get $1 + local.get $radix i32.const 16 i32.eq if i32.const 31 - local.get $0 + local.get $value i32.clz i32.sub i32.const 2 i32.shr_s i32.const 1 i32.add - local.set $4 + local.set $decimals|8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $decimals|8 i32.const 1 i32.shl - local.get $2 + local.get $sign i32.add - i32.const 1 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 - i32.store $0 - local.get $3 - local.get $2 + local.tee $out + i32.store + local.get $out + local.get $sign i32.add - local.set $7 - local.get $0 - local.set $6 - local.get $4 - local.set $5 + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 i32.const 0 i32.const 1 i32.ge_s drop - local.get $7 - local.get $6 + local.get $buffer|9 + local.get $num|10 i64.extend_i32_u - local.get $5 + local.get $offset|11 call $~lib/util/number/utoa_hex_lut else - local.get $0 - local.set $4 - local.get $4 + local.get $value + local.set $val32 + local.get $val32 i64.extend_i32_u - local.get $1 + local.get $radix call $~lib/util/number/ulog_base - local.set $7 + local.set $decimals|13 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $decimals|13 i32.const 1 i32.shl - local.get $2 + local.get $sign i32.add - i32.const 1 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 - i32.store $0 - local.get $3 - local.get $2 + local.tee $out + i32.store + local.get $out + local.get $sign i32.add - local.get $4 + local.get $val32 i64.extend_i32_u - local.get $7 - local.get $1 + local.get $decimals|13 + local.get $radix call $~lib/util/number/utoa64_any_core end end - local.get $2 + local.get $sign if - local.get $3 + local.get $out i32.const 45 - i32.store16 $0 + i32.store16 end - local.get $3 - local.set $8 + local.get $out + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $14 + return ) - (func $~lib/util/number/dtoa (param $0 f64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/number/dtoa (param $value f64) (result i32) + (local $value|1 f64) + (local $isSingle i32) + (local $size i32) + (local $result i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5192,76 +5486,67 @@ call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store $0 - local.get $0 - f64.const 0 - f64.eq - if - i32.const 2288 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.eq - i32.eqz - if - local.get $0 - local.get $0 - f64.ne + i32.store + block $~lib/util/number/dtoa_impl|inlined.0 (result i32) + local.get $value + local.set $value|1 + i32.const 0 + local.set $isSingle + local.get $value|1 + f64.const 0 + f64.eq if - i32.const 2320 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + i32.const 2288 + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2352 - i32.const 2400 - local.get $0 + local.get $value|1 + local.get $value|1 + f64.sub f64.const 0 - f64.lt - select - local.set $3 + f64.eq + i32.eqz + if + local.get $value|1 + local.get $value|1 + f64.ne + if + i32.const 2320 + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2352 + i32.const 2400 + local.get $value|1 + f64.const 0 + f64.lt + select + br $~lib/util/number/dtoa_impl|inlined.0 + end + i32.const 2432 + local.get $value|1 + local.get $isSingle + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $size global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + local.get $size + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $result + i32.store + local.get $result + i32.const 2432 + local.get $size + memory.copy + local.get $result + br $~lib/util/number/dtoa_impl|inlined.0 end - i32.const 2432 - local.get $0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store $0 - local.get $2 - i32.const 2432 - local.get $1 - memory.copy $0 $0 - local.get $2 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 + return ) ) diff --git a/tests/compiler/number.json b/tests/compiler/number.json index d823d836bf..1bdd02b1be 100644 --- a/tests/compiler/number.json +++ b/tests/compiler/number.json @@ -1,18 +1,4 @@ { "asc_flags": [ - ], - "stderr": [ - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS907: 'NaN' does not compare equal to any other value including itself. Use isNaN(x) instead.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters.", - "AS908: Comparison with -0.0 is sign insensitive. Use Object.is(x, -0.0) if the sign matters." ] } diff --git a/tests/compiler/number.release.wat b/tests/compiler/number.release.wat index e609564afd..200a4f5ee8 100644 --- a/tests/compiler/number.release.wat +++ b/tests/compiler/number.release.wat @@ -1,13 +1,14 @@ (module - (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i64_i64_i32_i64_=>_i32 (func (param i64 i64 i32 i64) (result i32))) + (type $0 (func)) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32) (result i32))) + (type $5 (func (param i32 i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (param i64 i64 i32 i64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $number/a (mut i32) (i32.const 1)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -23,75 +24,75 @@ (global $~lib/util/number/_K (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 21068)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 37444)) (memory $0 1) - (data (i32.const 1036) "|") - (data (i32.const 1048) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 1164) "<") - (data (i32.const 1176) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 1228) "\1c") - (data (i32.const 1240) "\01\00\00\00\02\00\00\000") - (data (i32.const 1260) "<") - (data (i32.const 1272) "\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 1324) "<") - (data (i32.const 1336) "\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 1452) "<") - (data (i32.const 1464) "\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 1516) ",") - (data (i32.const 1528) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 1596) "<") - (data (i32.const 1608) "\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 1660) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 2060) "\1c\04") - (data (i32.const 2072) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 3116) "\\") - (data (i32.const 3128) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 3212) "\1c") - (data (i32.const 3224) "\01\00\00\00\02\00\00\001") - (data (i32.const 3244) ",") - (data (i32.const 3256) "\01\00\00\00\12\00\00\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 3292) "\1c") - (data (i32.const 3304) "\01\00\00\00\06\00\00\000\00.\000") - (data (i32.const 3324) "\1c") - (data (i32.const 3336) "\01\00\00\00\06\00\00\00N\00a\00N") - (data (i32.const 3356) ",") - (data (i32.const 3368) "\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 3404) ",") - (data (i32.const 3416) "\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 3512) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\rXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8 Date: Fri, 17 Oct 2025 13:29:06 +0800 Subject: [PATCH 58/86] feat: support element access of enum (#2950) --- src/common.ts | 2 + src/compiler.ts | 55 +- src/diagnosticMessages.json | 1 + src/program.ts | 2 +- tests/compiler/enum-to-string-error.json | 7 + tests/compiler/enum-to-string-error.ts | 9 + tests/compiler/enum-to-string.debug.wat | 613 ++++++++++++++++++++++ tests/compiler/enum-to-string.json | 3 + tests/compiler/enum-to-string.release.wat | 408 ++++++++++++++ tests/compiler/enum-to-string.ts | 43 ++ 10 files changed, 1141 insertions(+), 2 deletions(-) create mode 100644 tests/compiler/enum-to-string-error.json create mode 100644 tests/compiler/enum-to-string-error.ts create mode 100644 tests/compiler/enum-to-string.debug.wat create mode 100644 tests/compiler/enum-to-string.json create mode 100644 tests/compiler/enum-to-string.release.wat create mode 100644 tests/compiler/enum-to-string.ts diff --git a/src/common.ts b/src/common.ts index f5d6675edd..3cc25a0845 100644 --- a/src/common.ts +++ b/src/common.ts @@ -194,6 +194,8 @@ export namespace CommonNames { export const ASC_VERSION_MAJOR = "ASC_VERSION_MAJOR"; export const ASC_VERSION_MINOR = "ASC_VERSION_MINOR"; export const ASC_VERSION_PATCH = "ASC_VERSION_PATCH"; + // enums + export const EnumToString = "__enum_to_string"; // classes export const I8 = "I8"; export const I16 = "I16"; diff --git a/src/compiler.ts b/src/compiler.ts index 04306fba01..36f09ab8aa 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -1522,6 +1522,49 @@ export class Compiler extends DiagnosticEmitter { return true; } + private ensureEnumToString(enumElement: Enum, reportNode: Node): string | null { + if (enumElement.toStringFunctionName) return enumElement.toStringFunctionName; + + if (!this.compileEnum(enumElement)) return null; + if (enumElement.is(CommonFlags.Const)) { + this.errorRelated( + DiagnosticCode.A_const_enum_member_can_only_be_accessed_using_a_string_literal, + reportNode.range, enumElement.identifierNode.range + ); + return null; + } + + let members = enumElement.members; + if (!members) return null; + + let module = this.module; + const isInline = enumElement.hasDecorator(DecoratorFlags.Inline); + + const functionName = `${enumElement.internalName}#${CommonNames.EnumToString}`; + enumElement.toStringFunctionName = functionName; + + let exprs = new Array(); + // when the values are the same, TS returns the last enum value name that appears + for (let _keys = Map_keys(members), _values = Map_values(members), i = 1, k = _keys.length; i <= k; ++i) { + let enumValueName = unchecked(_keys[k - i]); + let member = unchecked(_values[k - i]); + if (member.kind != ElementKind.EnumValue) continue; + let enumValue = member; + const enumValueExpr = isInline + ? module.i32(i64_low(enumValue.constantIntegerValue)) + : module.global_get(enumValue.internalName, TypeRef.I32); + let expr = module.if( + module.binary(BinaryOp.EqI32, enumValueExpr, module.local_get(0, TypeRef.I32)), + module.return(this.ensureStaticString(enumValueName)) + ); + exprs.push(expr); + } + exprs.push(module.unreachable()); + module.addFunction(functionName, TypeRef.I32, TypeRef.I32, null, module.block(null, exprs, TypeRef.I32)); + + return functionName; + } + // === Functions ================================================================================ /** Compiles a priorly resolved function. */ @@ -7092,7 +7135,17 @@ export class Compiler extends DiagnosticEmitter { ): ExpressionRef { let module = this.module; let targetExpression = expression.expression; - let targetType = this.resolver.resolveExpression(targetExpression, this.currentFlow); // reports + let resolver = this.resolver; + let targetElement = resolver.lookupExpression(targetExpression, this.currentFlow, Type.auto, ReportMode.Swallow); + if (targetElement && targetElement.kind == ElementKind.Enum) { + const elementExpr = this.compileExpression(expression.elementExpression, Type.i32, Constraints.ConvImplicit); + const toStringFunctionName = this.ensureEnumToString(targetElement, expression); + this.currentType = this.program.stringInstance.type; + if (toStringFunctionName == null) return module.unreachable(); + return module.call(toStringFunctionName, [ elementExpr ], TypeRef.I32); + } + + let targetType = resolver.resolveExpression(targetExpression, this.currentFlow); if (targetType) { let classReference = targetType.getClassOrWrapper(this.program); if (classReference) { diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index 5b0249f9b2..bd12f1f7e3 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -174,6 +174,7 @@ "Type '{0}' has no property '{1}'.": 2460, "The '{0}' operator cannot be applied to type '{1}'.": 2469, "In 'const' enum declarations member initializer must be constant expression.": 2474, + "A const enum member can only be accessed using a string literal.": 2476, "Export declaration conflicts with exported declaration of '{0}'.": 2484, "'{0}' is referenced directly or indirectly in its own base expression.": 2506, "Cannot create an instance of an abstract class.": 2511, diff --git a/src/program.ts b/src/program.ts index bf8dcc433c..8bcf1bfa19 100644 --- a/src/program.ts +++ b/src/program.ts @@ -3449,7 +3449,7 @@ export class Namespace extends DeclaredElement { /** An enum. */ export class Enum extends TypedElement { - + toStringFunctionName: string | null = null; /** Constructs a new enum. */ constructor( /** Simple name. */ diff --git a/tests/compiler/enum-to-string-error.json b/tests/compiler/enum-to-string-error.json new file mode 100644 index 0000000000..1165029fc1 --- /dev/null +++ b/tests/compiler/enum-to-string-error.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [], + "stderr": [ + "TS2476: A const enum member can only be accessed using a string literal.", + "EOF" + ] +} diff --git a/tests/compiler/enum-to-string-error.ts b/tests/compiler/enum-to-string-error.ts new file mode 100644 index 0000000000..cbb58deb38 --- /dev/null +++ b/tests/compiler/enum-to-string-error.ts @@ -0,0 +1,9 @@ +const enum CE { + CE0, + CE1, + CE2, +} + +assert(CE[CE.CE0] === "CE0"); + +ERROR("EOF"); \ No newline at end of file diff --git a/tests/compiler/enum-to-string.debug.wat b/tests/compiler/enum-to-string.debug.wat new file mode 100644 index 0000000000..0f60906aa8 --- /dev/null +++ b/tests/compiler/enum-to-string.debug.wat @@ -0,0 +1,613 @@ +(module + (type $0 (func (param i32) (result i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32 i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (type $4 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $enum-to-string/Enum.E0 i32 (i32.const 0)) + (global $enum-to-string/Enum.E1 i32 (i32.const 1)) + (global $enum-to-string/Enum.E2 i32 (i32.const 2)) + (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/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $enum-to-string/v (mut i32) (i32.const 0)) + (global $enum-to-string/EnumWithInit.E0 i32 (i32.const 1)) + (global $enum-to-string/EnumWithInit.E1 i32 (i32.const 2)) + (global $enum-to-string/EnumWithInit.E2 i32 (i32.const 4)) + (global $enum-to-string/EnumWithDup.E0 i32 (i32.const 1)) + (global $enum-to-string/EnumWithDup.E1 i32 (i32.const 2)) + (global $enum-to-string/EnumWithDup.E2 i32 (i32.const 1)) + (global $~lib/memory/__data_end i32 (i32.const 268)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33036)) + (global $~lib/memory/__heap_base i32 (i32.const 33036)) + (memory $0 1) + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\002\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\001\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 76) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\04\00\00\00E\000\00\00\00\00\00\00\00\00\00") + (data $3 (i32.const 108) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\"\00\00\00e\00n\00u\00m\00-\00t\00o\00-\00s\00t\00r\00i\00n\00g\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00") + (data $4 (i32.const 172) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\002\00\00\00\00\00\00\00") + (data $5 (i32.const 204) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\001\00\00\00\00\00\00\00") + (data $6 (i32.const 236) "\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00C\00E\000\00\00\00\00\00\00\00") + (table $0 1 1 funcref) + (elem $0 (i32.const 1)) + (export "memory" (memory $0)) + (start $~start) + (func $enum-to-string/Enum#__enum_to_string (param $0 i32) (result i32) + global.get $enum-to-string/Enum.E2 + local.get $0 + i32.eq + if + i32.const 32 + return + end + global.get $enum-to-string/Enum.E1 + local.get $0 + i32.eq + if + i32.const 64 + return + end + global.get $enum-to-string/Enum.E0 + local.get $0 + i32.eq + if + i32.const 96 + return + end + unreachable + ) + (func $~lib/rt/common/OBJECT#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/string/String#get:length (param $this i32) (result i32) + local.get $this + i32.const 20 + i32.sub + call $~lib/rt/common/OBJECT#get:rtSize + i32.const 1 + i32.shr_u + return + ) + (func $~lib/util/string/compareImpl (param $str1 i32) (param $index1 i32) (param $str2 i32) (param $index2 i32) (param $len i32) (result i32) + (local $ptr1 i32) + (local $ptr2 i32) + (local $7 i32) + (local $a i32) + (local $b i32) + local.get $str1 + local.get $index1 + i32.const 1 + i32.shl + i32.add + local.set $ptr1 + local.get $str2 + local.get $index2 + i32.const 1 + i32.shl + i32.add + local.set $ptr2 + i32.const 0 + i32.const 2 + i32.lt_s + drop + local.get $len + i32.const 4 + i32.ge_u + if (result i32) + local.get $ptr1 + i32.const 7 + i32.and + local.get $ptr2 + i32.const 7 + i32.and + i32.or + i32.eqz + else + i32.const 0 + end + if + block $do-break|0 + loop $do-loop|0 + local.get $ptr1 + i64.load + local.get $ptr2 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $ptr1 + i32.const 8 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 8 + i32.add + local.set $ptr2 + local.get $len + i32.const 4 + i32.sub + local.set $len + local.get $len + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 + end + end + i32.const 0 + return + ) + (func $enum-to-string/InlineEnum#__enum_to_string (param $0 i32) (result i32) + i32.const 2 + local.get $0 + i32.eq + if + i32.const 192 + return + end + i32.const 1 + local.get $0 + i32.eq + if + i32.const 224 + return + end + i32.const 0 + local.get $0 + i32.eq + if + i32.const 256 + return + end + unreachable + ) + (func $enum-to-string/EnumWithInit#__enum_to_string (param $0 i32) (result i32) + global.get $enum-to-string/EnumWithInit.E2 + local.get $0 + i32.eq + if + i32.const 32 + return + end + global.get $enum-to-string/EnumWithInit.E1 + local.get $0 + i32.eq + if + i32.const 64 + return + end + global.get $enum-to-string/EnumWithInit.E0 + local.get $0 + i32.eq + if + i32.const 96 + return + end + unreachable + ) + (func $enum-to-string/EnumWithDup#__enum_to_string (param $0 i32) (result i32) + global.get $enum-to-string/EnumWithDup.E2 + local.get $0 + i32.eq + if + i32.const 32 + return + end + global.get $enum-to-string/EnumWithDup.E1 + local.get $0 + i32.eq + if + i32.const 64 + return + end + global.get $enum-to-string/EnumWithDup.E0 + local.get $0 + i32.eq + if + i32.const 96 + return + end + unreachable + ) + (func $~start + call $start:enum-to-string + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 33056 + i32.const 33104 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/string/String.__eq (param $left i32) (param $right i32) (result i32) + (local $leftLength 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 + local.get $left + local.get $right + i32.eq + if + i32.const 1 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $right + i32.const 0 + i32.eq + end + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + local.set $leftLength + local.get $leftLength + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + end + local.get $left + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 0 + local.get $right + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $leftLength + call $~lib/util/string/compareImpl + i32.eqz + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) + (func $start:enum-to-string + (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 + global.get $enum-to-string/Enum.E0 + call $enum-to-string/Enum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 96 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/Enum.E1 + call $enum-to-string/Enum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/Enum.E2 + call $enum-to-string/Enum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/Enum.E2 + global.set $enum-to-string/v + global.get $enum-to-string/v + call $enum-to-string/Enum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $enum-to-string/InlineEnum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $enum-to-string/InlineEnum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 224 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $enum-to-string/InlineEnum#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithInit.E0 + call $enum-to-string/EnumWithInit#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 96 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithInit.E1 + call $enum-to-string/EnumWithInit#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithInit.E2 + call $enum-to-string/EnumWithInit#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithDup.E0 + call $enum-to-string/EnumWithDup#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithDup.E1 + call $enum-to-string/EnumWithDup#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 64 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $enum-to-string/EnumWithDup.E2 + call $enum-to-string/EnumWithDup#__enum_to_string + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 32 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 43 + 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 + ) +) diff --git a/tests/compiler/enum-to-string.json b/tests/compiler/enum-to-string.json new file mode 100644 index 0000000000..ea57a955e1 --- /dev/null +++ b/tests/compiler/enum-to-string.json @@ -0,0 +1,3 @@ +{ + "asc_flags": [] +} diff --git a/tests/compiler/enum-to-string.release.wat b/tests/compiler/enum-to-string.release.wat new file mode 100644 index 0000000000..91a870b03a --- /dev/null +++ b/tests/compiler/enum-to-string.release.wat @@ -0,0 +1,408 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34060)) + (memory $0 1) + (data $0 (i32.const 1036) "\1c") + (data $0.1 (i32.const 1048) "\02\00\00\00\04\00\00\00E\002") + (data $1 (i32.const 1068) "\1c") + (data $1.1 (i32.const 1080) "\02\00\00\00\04\00\00\00E\001") + (data $2 (i32.const 1100) "\1c") + (data $2.1 (i32.const 1112) "\02\00\00\00\04\00\00\00E\000") + (data $3 (i32.const 1132) "<") + (data $3.1 (i32.const 1144) "\02\00\00\00\"\00\00\00e\00n\00u\00m\00-\00t\00o\00-\00s\00t\00r\00i\00n\00g\00.\00t\00s") + (data $4 (i32.const 1196) "\1c") + (data $4.1 (i32.const 1208) "\02\00\00\00\06\00\00\00C\00E\002") + (data $5 (i32.const 1228) "\1c") + (data $5.1 (i32.const 1240) "\02\00\00\00\06\00\00\00C\00E\001") + (data $6 (i32.const 1260) "\1c") + (data $6.1 (i32.const 1272) "\02\00\00\00\06\00\00\00C\00E\000") + (export "memory" (memory $0)) + (start $~start) + (func $~start + call $start:enum-to-string + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1292 + i32.lt_s + if + i32.const 34080 + i32.const 34128 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$2 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$2 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $start:enum-to-string + 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 1292 + i32.lt_s + if + i32.const 34080 + i32.const 34128 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.store + i32.const 1120 + i32.const 1120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1280 + i32.const 1280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + i32.const 1248 + i32.const 1248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1216 + i32.store + i32.const 1216 + i32.const 1216 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.store + i32.const 1120 + i32.const 1120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 31 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 43 + 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 + ) +) diff --git a/tests/compiler/enum-to-string.ts b/tests/compiler/enum-to-string.ts new file mode 100644 index 0000000000..2fc056323d --- /dev/null +++ b/tests/compiler/enum-to-string.ts @@ -0,0 +1,43 @@ +enum Enum { + E0, + E1, + E2, +} + +assert(Enum[Enum.E0] === "E0"); +assert(Enum[Enum.E1] === "E1"); +assert(Enum[Enum.E2] === "E2"); + +let v = Enum.E2; +assert(Enum[v] === "E2"); + +@inline +enum InlineEnum { + CE0, + CE1, + CE2, +} + +assert(InlineEnum[InlineEnum.CE0] === "CE0"); +assert(InlineEnum[InlineEnum.CE1] === "CE1"); +assert(InlineEnum[InlineEnum.CE2] === "CE2"); + +enum EnumWithInit { + E0 = 1, + E1 = 2, + E2 = 4, +} + +assert(EnumWithInit[EnumWithInit.E0] === "E0"); +assert(EnumWithInit[EnumWithInit.E1] === "E1"); +assert(EnumWithInit[EnumWithInit.E2] === "E2"); + +enum EnumWithDup { + E0 = 1, + E1 = 2, + E2 = 1, +} + +assert(EnumWithDup[EnumWithDup.E0] === "E2"); +assert(EnumWithDup[EnumWithDup.E1] === "E1"); +assert(EnumWithDup[EnumWithDup.E2] === "E2"); From 282b7e8cdbbf9483cfd44a6aaf15fe748f55b4aa Mon Sep 17 00:00:00 2001 From: Lev <79159094+Mopsgamer@users.noreply.github.com> Date: Tue, 28 Oct 2025 03:47:03 +0100 Subject: [PATCH 59/86] chore: friendly initial test in asinit (#2955) --- NOTICE | 1 + bin/asinit.js | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/NOTICE b/NOTICE index e7a2601827..6dc4400b82 100644 --- a/NOTICE +++ b/NOTICE @@ -60,6 +60,7 @@ under the licensing terms detailed in LICENSE: * Fabián Heredia Montiel * Jonas Minnberg * Kam Chehresa +* Mopsgamer <79159094+Mopsgamer@users.noreply.github.com> Portions of this software are derived from third-party works licensed under the following terms: diff --git a/bin/asinit.js b/bin/asinit.js index 6950a2341a..cb52aad48c 100755 --- a/bin/asinit.js +++ b/bin/asinit.js @@ -100,7 +100,7 @@ if (/^(\.\.[/\\])*node_modules[/\\]assemblyscript[/\\]/.test(tsconfigBase)) { } const entryFile = path.join(assemblyDir, "index.ts"); const buildDir = path.join(projectDir, "build"); -const testsDir = path.join(projectDir, "tests"); +const testsDir = path.join(projectDir, "test"); const gitignoreFile = path.join(buildDir, ".gitignore"); const packageFile = path.join(projectDir, "package.json"); @@ -358,7 +358,7 @@ function ensurePackageJson() { "asbuild:debug": buildDebug, "asbuild:release": buildRelease, "asbuild": buildAll, - "test": "node tests", + "test": "node --test", "start": "npx serve ." }, "devDependencies": { @@ -390,7 +390,7 @@ function ensurePackageJson() { updated = true; } if (!scripts["test"] || scripts["test"] == npmDefaultTest) { - scripts["test"] = "node tests"; + scripts["test"] = "node --test"; pkg["scripts"] = scripts; updated = true; } @@ -416,7 +416,7 @@ function ensurePackageJson() { } function ensureTestsDirectory() { - console.log("- Making sure that the 'tests' directory exists..."); + console.log("- Making sure that the 'test' directory exists..."); if (!fs.existsSync(testsDir)) { fs.mkdirSync(testsDir); console.log(stdoutColors.green(" Created: ") + testsDir); @@ -427,13 +427,16 @@ function ensureTestsDirectory() { } function ensureTestsIndexJs() { - console.log("- Making sure that 'tests/index.js' exists..."); + console.log("- Making sure that 'test/index.js' exists..."); if (!fs.existsSync(testsIndexFile)) { fs.writeFileSync(testsIndexFile, [ - "import assert from \"assert\";", + "import assert from \"node:assert/strict\";", + "import { it } from \"node:test\";", "import { add } from \"../build/debug.js\";", - "assert.strictEqual(add(1, 2), 3);", - "console.log(\"ok\");" + "", + "it(\"add\", () => {", + " assert.equal(add(1, 2), 3);", + "});" ].join("\n") + "\n"); console.log(stdoutColors.green(" Created: ") + testsIndexFile); } else { From 550190ca4d0cb24c637b05dfc1bcfcd7fdfcf596 Mon Sep 17 00:00:00 2001 From: EDM115 Date: Wed, 19 Nov 2025 02:32:57 +0100 Subject: [PATCH 60/86] chore: remove baseUrl from std/assembly.json (#2958) Fixes a crash of tsgolint when used in a project where AssemblyScript is present. --- NOTICE | 1 + std/assembly.json | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/NOTICE b/NOTICE index 6dc4400b82..14d821345c 100644 --- a/NOTICE +++ b/NOTICE @@ -61,6 +61,7 @@ under the licensing terms detailed in LICENSE: * Jonas Minnberg * Kam Chehresa * Mopsgamer <79159094+Mopsgamer@users.noreply.github.com> +* EDM115 Portions of this software are derived from third-party works licensed under the following terms: diff --git a/std/assembly.json b/std/assembly.json index 10a3e067dc..189ed19dc7 100644 --- a/std/assembly.json +++ b/std/assembly.json @@ -7,7 +7,6 @@ "allowJs": false, "typeRoots": [ "types" ], "types": [ "assembly" ], - "baseUrl": ".", "paths": { "*": [ "./assembly/*" From 14d7e5a69fd9755c382d85aaeed89cf0d1408975 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:33:32 +0800 Subject: [PATCH 61/86] chore: bump js-yaml from 4.1.0 to 4.1.1 (#2960) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1460aaad37..d531026abc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -719,6 +719,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -880,6 +881,7 @@ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1202,6 +1204,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -1752,9 +1755,9 @@ } }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -2420,6 +2423,7 @@ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2936,6 +2940,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, + "peer": true, "requires": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -3022,7 +3027,8 @@ "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true + "dev": true, + "peer": true }, "acorn-jsx": { "version": "5.3.2", @@ -3249,6 +3255,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "dev": true, + "peer": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3659,9 +3666,9 @@ } }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "requires": { "argparse": "^2.0.1" @@ -4115,7 +4122,8 @@ "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true + "dev": true, + "peer": true }, "undici-types": { "version": "5.26.5", From df14d43b44344006b30763c90100652e6a5f7d6c Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Wed, 19 Nov 2025 09:39:49 +0800 Subject: [PATCH 62/86] chore: remove 21-v8-canary requirement for feature test (#2962) --- .github/workflows/test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 18abf60299..1229bde9b6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -72,8 +72,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 - with: - node-version: 21-v8-canary - name: Install dependencies run: npm ci --no-audit - name: Build From 3daa41b04e362992b9ce1fad2db2db1c574af07b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:54:47 +0800 Subject: [PATCH 63/86] chore: bump glob from 10.4.5 to 10.5.0 (#2963) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index d531026abc..e77bb1e080 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1523,9 +1523,9 @@ "dev": true }, "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, "license": "ISC", "dependencies": { @@ -3501,9 +3501,9 @@ "dev": true }, "glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, "requires": { "foreground-child": "^3.1.0", From 5a125c75a6edf34dee77609b6654c17fd61c8ada Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Sat, 27 Dec 2025 10:15:19 +0800 Subject: [PATCH 64/86] fix: check native source correctly (#2967) --- src/ast.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ast.ts b/src/ast.ts index da2271ef3d..01d8e9a421 100644 --- a/src/ast.ts +++ b/src/ast.ts @@ -18,7 +18,6 @@ import { CommonFlags, PATH_DELIMITER, LIBRARY_PREFIX, - LIBRARY_SUBST } from "./common"; import { @@ -1668,7 +1667,7 @@ export class Source extends Node { /** Checks if this source represents native code. */ get isNative(): bool { - return this.internalPath == LIBRARY_SUBST; + return this == Source._native; } /** Checks if this source is part of the (standard) library. */ From 7dcf1cbd05d8ea26aafba48ec7b2fb65927ca0f4 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Thu, 5 Mar 2026 23:05:42 +0800 Subject: [PATCH 65/86] chore: use node v24 for c8 coverage test (#2985) --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1229bde9b6..550ee0d7ab 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -132,7 +132,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version: current + node-version: 24 - name: Install dependencies run: npm ci --no-audit - name: Build From 459b23954687800ea7bc30f5906e32d6e1311024 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 23:13:27 +0800 Subject: [PATCH 66/86] chore: bump minimatch from 3.1.2 to 3.1.5 (#2986) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 53 ++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index e77bb1e080..a988bec980 100644 --- a/package-lock.json +++ b/package-lock.json @@ -719,7 +719,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -881,7 +880,6 @@ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1204,7 +1202,6 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -1556,9 +1553,9 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1566,13 +1563,13 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -1866,10 +1863,11 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2423,7 +2421,6 @@ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2940,7 +2937,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, - "peer": true, "requires": { "@typescript-eslint/scope-manager": "5.62.0", "@typescript-eslint/types": "5.62.0", @@ -3027,8 +3023,7 @@ "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, - "peer": true + "dev": true }, "acorn-jsx": { "version": "5.3.2", @@ -3255,7 +3250,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "dev": true, - "peer": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3515,21 +3509,21 @@ }, "dependencies": { "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "requires": { "balanced-match": "^1.0.0" } }, "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "requires": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" } } } @@ -3754,9 +3748,9 @@ } }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -4122,8 +4116,7 @@ "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true, - "peer": true + "dev": true }, "undici-types": { "version": "5.26.5", From 7e237cccfd0dcf7901a656fef83b86c0b980f844 Mon Sep 17 00:00:00 2001 From: Congcong Cai Date: Thu, 5 Mar 2026 23:14:39 +0800 Subject: [PATCH 67/86] fix: optimize instruction sequence of interrupt (#2984) --- std/assembly/rt/itcms.ts | 7 ++++++- tests/compiler/assignment-chain.debug.wat | 15 +++++++++------ tests/compiler/assignment-chain.release.wat | 8 ++------ tests/compiler/bindings/esm.debug.wat | 15 +++++++++------ tests/compiler/bindings/esm.release.wat | 8 ++------ tests/compiler/bindings/noExportRuntime.debug.wat | 15 +++++++++------ .../compiler/bindings/noExportRuntime.release.wat | 8 ++------ tests/compiler/bindings/raw.debug.wat | 15 +++++++++------ tests/compiler/bindings/raw.release.wat | 8 ++------ tests/compiler/call-inferred.debug.wat | 15 +++++++++------ tests/compiler/call-inferred.release.wat | 8 ++------ tests/compiler/call-rest.debug.wat | 15 +++++++++------ tests/compiler/call-rest.release.wat | 8 ++------ tests/compiler/call-super.debug.wat | 15 +++++++++------ tests/compiler/call-super.release.wat | 8 ++------ tests/compiler/class-implements.debug.wat | 15 +++++++++------ tests/compiler/class-implements.release.wat | 8 ++------ tests/compiler/class-overloading-cast.debug.wat | 15 +++++++++------ tests/compiler/class-overloading-cast.release.wat | 8 ++------ tests/compiler/class-overloading.debug.wat | 15 +++++++++------ tests/compiler/class-overloading.release.wat | 8 ++------ tests/compiler/class-override.debug.wat | 15 +++++++++------ tests/compiler/class-override.release.wat | 8 ++------ tests/compiler/class.debug.wat | 15 +++++++++------ tests/compiler/class.release.wat | 8 ++------ tests/compiler/constructor.debug.wat | 15 +++++++++------ tests/compiler/constructor.release.wat | 8 ++------ tests/compiler/do.debug.wat | 15 +++++++++------ tests/compiler/do.release.wat | 8 ++------ tests/compiler/duplicate-fields.debug.wat | 15 +++++++++------ tests/compiler/duplicate-fields.release.wat | 8 ++------ tests/compiler/empty-exportruntime.debug.wat | 15 +++++++++------ tests/compiler/empty-exportruntime.release.wat | 8 ++------ tests/compiler/empty-new.debug.wat | 15 +++++++++------ tests/compiler/empty-new.release.wat | 8 ++------ tests/compiler/exportstar-rereexport.debug.wat | 15 +++++++++------ tests/compiler/exportstar-rereexport.release.wat | 8 ++------ tests/compiler/extends-baseaggregate.debug.wat | 15 +++++++++------ tests/compiler/extends-baseaggregate.release.wat | 8 ++------ tests/compiler/extends-recursive.debug.wat | 15 +++++++++------ tests/compiler/extends-recursive.release.wat | 8 ++------ tests/compiler/field-initialization.debug.wat | 15 +++++++++------ tests/compiler/field-initialization.release.wat | 8 ++------ tests/compiler/field.debug.wat | 15 +++++++++------ tests/compiler/field.release.wat | 8 ++------ tests/compiler/for.debug.wat | 15 +++++++++------ tests/compiler/for.release.wat | 8 ++------ tests/compiler/function-call.debug.wat | 15 +++++++++------ tests/compiler/function-call.release.wat | 8 ++------ tests/compiler/function-expression.debug.wat | 15 +++++++++------ tests/compiler/function-expression.release.wat | 8 ++------ tests/compiler/getter-call.debug.wat | 15 +++++++++------ tests/compiler/getter-call.release.wat | 8 ++------ .../incremental-gc/call-indirect.debug.wat | 15 +++++++++------ .../incremental-gc/call-indirect.release.wat | 8 ++------ tests/compiler/infer-array.debug.wat | 15 +++++++++------ tests/compiler/infer-array.release.wat | 8 ++------ tests/compiler/infer-generic.debug.wat | 15 +++++++++------ tests/compiler/infer-generic.release.wat | 8 ++------ tests/compiler/inlining.debug.wat | 15 +++++++++------ tests/compiler/inlining.release.wat | 8 ++------ tests/compiler/instanceof.debug.wat | 15 +++++++++------ tests/compiler/instanceof.release.wat | 8 ++------ tests/compiler/issues/1095.debug.wat | 15 +++++++++------ tests/compiler/issues/1095.release.wat | 8 ++------ tests/compiler/issues/1225.debug.wat | 15 +++++++++------ tests/compiler/issues/1225.release.wat | 8 ++------ tests/compiler/issues/1699.debug.wat | 15 +++++++++------ tests/compiler/issues/1699.release.wat | 8 ++------ tests/compiler/issues/2166.debug.wat | 15 +++++++++------ tests/compiler/issues/2166.release.wat | 8 ++------ tests/compiler/issues/2322/index.debug.wat | 15 +++++++++------ tests/compiler/issues/2322/index.release.wat | 8 ++------ tests/compiler/issues/2622.debug.wat | 15 +++++++++------ tests/compiler/issues/2622.release.wat | 8 ++------ tests/compiler/issues/2707.debug.wat | 15 +++++++++------ tests/compiler/issues/2707.release.wat | 8 ++------ tests/compiler/issues/2873.debug.wat | 15 +++++++++------ tests/compiler/issues/2873.release.wat | 8 ++------ tests/compiler/logical.debug.wat | 15 +++++++++------ tests/compiler/logical.release.wat | 8 ++------ tests/compiler/managed-cast.debug.wat | 15 +++++++++------ tests/compiler/managed-cast.release.wat | 8 ++------ tests/compiler/new.debug.wat | 15 +++++++++------ tests/compiler/new.release.wat | 8 ++------ tests/compiler/number.debug.wat | 15 +++++++++------ tests/compiler/number.release.wat | 8 ++------ tests/compiler/object-literal.debug.wat | 15 +++++++++------ tests/compiler/object-literal.release.wat | 8 ++------ .../operator-overload-non-ambiguity.debug.wat | 15 +++++++++------ .../operator-overload-non-ambiguity.release.wat | 8 ++------ tests/compiler/optional-typeparameters.debug.wat | 15 +++++++++------ .../compiler/optional-typeparameters.release.wat | 8 ++------ tests/compiler/reexport.debug.wat | 15 +++++++++------ tests/compiler/reexport.release.wat | 8 ++------ tests/compiler/rereexport.debug.wat | 15 +++++++++------ tests/compiler/rereexport.release.wat | 8 ++------ tests/compiler/resolve-access.debug.wat | 15 +++++++++------ tests/compiler/resolve-access.release.wat | 8 ++------ tests/compiler/resolve-binary.debug.wat | 15 +++++++++------ tests/compiler/resolve-binary.release.wat | 8 ++------ tests/compiler/resolve-elementaccess.debug.wat | 15 +++++++++------ tests/compiler/resolve-elementaccess.release.wat | 8 ++------ .../resolve-function-expression.debug.wat | 15 +++++++++------ .../resolve-function-expression.release.wat | 8 ++------ tests/compiler/resolve-new.debug.wat | 15 +++++++++------ tests/compiler/resolve-new.release.wat | 8 ++------ tests/compiler/resolve-propertyaccess.debug.wat | 15 +++++++++------ tests/compiler/resolve-propertyaccess.release.wat | 8 ++------ tests/compiler/resolve-ternary.debug.wat | 15 +++++++++------ tests/compiler/resolve-ternary.release.wat | 8 ++------ tests/compiler/resolve-unary.debug.wat | 15 +++++++++------ tests/compiler/resolve-unary.release.wat | 8 ++------ tests/compiler/return-unreachable.debug.wat | 15 +++++++++------ tests/compiler/return-unreachable.release.wat | 8 ++------ tests/compiler/rt/finalize.debug.wat | 15 +++++++++------ tests/compiler/rt/finalize.release.wat | 8 ++------ tests/compiler/rt/issue-2719.debug.wat | 15 +++++++++------ tests/compiler/rt/issue-2719.release.wat | 8 ++------ .../rt/runtime-incremental-export.debug.wat | 15 +++++++++------ .../rt/runtime-incremental-export.release.wat | 8 ++------ tests/compiler/simd.debug.wat | 15 +++++++++------ tests/compiler/simd.release.wat | 8 ++------ tests/compiler/std/array-literal.debug.wat | 15 +++++++++------ tests/compiler/std/array-literal.release.wat | 8 ++------ tests/compiler/std/array.debug.wat | 15 +++++++++------ tests/compiler/std/array.release.wat | 8 ++------ tests/compiler/std/arraybuffer.debug.wat | 15 +++++++++------ tests/compiler/std/arraybuffer.release.wat | 8 ++------ tests/compiler/std/dataview.debug.wat | 15 +++++++++------ tests/compiler/std/dataview.release.wat | 8 ++------ tests/compiler/std/date.debug.wat | 15 +++++++++------ tests/compiler/std/date.release.wat | 8 ++------ tests/compiler/std/map.debug.wat | 15 +++++++++------ tests/compiler/std/map.release.wat | 8 ++------ tests/compiler/std/new.debug.wat | 15 +++++++++------ tests/compiler/std/new.release.wat | 8 ++------ tests/compiler/std/operator-overloading.debug.wat | 15 +++++++++------ .../compiler/std/operator-overloading.release.wat | 8 ++------ tests/compiler/std/set.debug.wat | 15 +++++++++------ tests/compiler/std/set.release.wat | 8 ++------ tests/compiler/std/static-array.debug.wat | 15 +++++++++------ tests/compiler/std/static-array.release.wat | 8 ++------ tests/compiler/std/staticarray.debug.wat | 15 +++++++++------ tests/compiler/std/staticarray.release.wat | 8 ++------ tests/compiler/std/string-casemapping.debug.wat | 15 +++++++++------ tests/compiler/std/string-casemapping.release.wat | 8 ++------ tests/compiler/std/string-encoding.debug.wat | 15 +++++++++------ tests/compiler/std/string-encoding.release.wat | 8 ++------ tests/compiler/std/string.debug.wat | 15 +++++++++------ tests/compiler/std/string.release.wat | 8 ++------ tests/compiler/std/symbol.debug.wat | 15 +++++++++------ tests/compiler/std/symbol.release.wat | 8 ++------ tests/compiler/std/typedarray.debug.wat | 15 +++++++++------ tests/compiler/std/typedarray.release.wat | 8 ++------ tests/compiler/std/uri.debug.wat | 15 +++++++++------ tests/compiler/std/uri.release.wat | 8 ++------ tests/compiler/super-inline.debug.wat | 15 +++++++++------ tests/compiler/super-inline.release.wat | 8 ++------ tests/compiler/switch.debug.wat | 15 +++++++++------ tests/compiler/switch.release.wat | 8 ++------ tests/compiler/templateliteral.debug.wat | 15 +++++++++------ tests/compiler/templateliteral.release.wat | 8 ++------ tests/compiler/typeof.debug.wat | 15 +++++++++------ tests/compiler/typeof.release.wat | 8 ++------ tests/compiler/while.debug.wat | 15 +++++++++------ tests/compiler/while.release.wat | 8 ++------ 167 files changed, 919 insertions(+), 997 deletions(-) diff --git a/std/assembly/rt/itcms.ts b/std/assembly/rt/itcms.ts index b44b69af25..ba2e09eb00 100644 --- a/std/assembly/rt/itcms.ts +++ b/std/assembly/rt/itcms.ts @@ -403,7 +403,12 @@ function interrupt(): void { budget -= step(); if (state == STATE_IDLE) { if (TRACE) trace("└ GC (auto) done at cur/max", 2, total, memory.size() << 16); - threshold = (total * IDLEFACTOR / 100) + GRANULARITY; + if (IDLEFACTOR % 100 == 0) { + // optimization for the default GC parameters which idle factor is 200% + threshold = total * (IDLEFACTOR / 100) + GRANULARITY; + } else { + threshold = ((total * IDLEFACTOR) / 100) + GRANULARITY; + } if (PROFILE) onyield(total); return; } diff --git a/tests/compiler/assignment-chain.debug.wat b/tests/compiler/assignment-chain.debug.wat index dc86b62eb1..340796c987 100644 --- a/tests/compiler/assignment-chain.debug.wat +++ b/tests/compiler/assignment-chain.debug.wat @@ -1629,14 +1629,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index 2d02b94594..0200dad357 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -1243,12 +1243,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index c5ae968aba..a6850592f3 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -1755,14 +1755,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index 9367b73e53..09936b2aba 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -1363,12 +1363,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index a75c227578..ba2e2f6010 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -1650,14 +1650,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index dd2b17bc43..9a784f3d63 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1296,12 +1296,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 1a05e8c669..c54a11e383 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -1758,14 +1758,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index e2ed7cd278..dcd117d596 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -1363,12 +1363,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index 3fd88cbe2d..1d07f41be0 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -1655,14 +1655,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/call-inferred.release.wat b/tests/compiler/call-inferred.release.wat index 2ef72953b6..bbbd16397b 100644 --- a/tests/compiler/call-inferred.release.wat +++ b/tests/compiler/call-inferred.release.wat @@ -1239,12 +1239,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat index af743cb0b0..6ff41f9bea 100644 --- a/tests/compiler/call-rest.debug.wat +++ b/tests/compiler/call-rest.debug.wat @@ -1652,14 +1652,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index 24506bdd09..d1710e2690 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -1287,12 +1287,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index 6ff707d75c..9e413d5a8e 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -1625,14 +1625,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index efaaeb7079..0c67fa96d2 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1239,12 +1239,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index bf0b70087e..a7eac9aaaf 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -1628,14 +1628,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index 5d0ad2a21e..405b45c818 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -1288,12 +1288,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index d3b2c941ba..c108e6d09e 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -1634,14 +1634,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index 855f1b9054..d40d976f0e 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1193,12 +1193,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index e922ed5a1d..7cdea8bbb4 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -1638,14 +1638,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index 540c8b0e03..02caf42072 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1215,12 +1215,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-override.debug.wat b/tests/compiler/class-override.debug.wat index c354bbb2c2..7ec0ffa3a3 100644 --- a/tests/compiler/class-override.debug.wat +++ b/tests/compiler/class-override.debug.wat @@ -1623,14 +1623,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class-override.release.wat b/tests/compiler/class-override.release.wat index 6dc55da64d..b1418a45d3 100644 --- a/tests/compiler/class-override.release.wat +++ b/tests/compiler/class-override.release.wat @@ -1164,12 +1164,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index 7e5b928f9c..c69e4d351d 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -1706,14 +1706,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index d0d28890f0..992b686367 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -1249,12 +1249,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index b607b591d6..9e1fc9db1d 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -1634,14 +1634,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index 339b5624fc..bf036d6c77 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1302,12 +1302,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index 21952a0df2..cb3313e590 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -2028,14 +2028,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 780e6e3cf4..1b1313c49a 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1155,12 +1155,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index d8ebed0ef6..752c8deba5 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -1628,14 +1628,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index 5bd2b707b9..100107f6b6 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -1256,12 +1256,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index 7dfec531fb..e95efa75fe 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -1627,14 +1627,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index 5d32a49a36..605d4f43c8 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -1257,12 +1257,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index 7d7b9b7c2f..424bdfc617 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -1620,14 +1620,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index ec0402c94c..21625b2ae4 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -1152,12 +1152,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 47375975e0..26289418ed 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -1660,14 +1660,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index 4a5b09f453..fbd6f1e267 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1186,12 +1186,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index ae6d22ffe4..9842604142 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -1630,14 +1630,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index 997ed95a65..280a9a62c3 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1260,12 +1260,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index e0d1b59343..a4d78b0d14 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -1620,14 +1620,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index 5ccacc74bf..b00fbf4cd8 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -1236,12 +1236,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index acb835fa02..e5375a2469 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -1631,14 +1631,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index c5911e7208..6f87390f7f 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1260,12 +1260,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index 6623182b6f..e2ca4b3acc 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -1623,14 +1623,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index c267b61219..415b3934d5 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -1243,12 +1243,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index 6e699486f2..fd03f109f2 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -2009,14 +2009,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index 6c772a187c..4f07612e6c 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1155,12 +1155,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index 85c7ac0268..d533f74061 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -1657,14 +1657,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index ab9646583b..fa80a471b8 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -1193,12 +1193,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index 4564289ea6..15aa15e36f 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -1815,14 +1815,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index b3f4027a8c..9272f39796 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -1223,12 +1223,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index 7ac0d77688..9b5cc21b43 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -1623,14 +1623,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 907d6feeec..b31fd6bd03 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -1158,12 +1158,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/incremental-gc/call-indirect.debug.wat b/tests/compiler/incremental-gc/call-indirect.debug.wat index 15fb51f132..f41def2823 100644 --- a/tests/compiler/incremental-gc/call-indirect.debug.wat +++ b/tests/compiler/incremental-gc/call-indirect.debug.wat @@ -1669,14 +1669,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/incremental-gc/call-indirect.release.wat b/tests/compiler/incremental-gc/call-indirect.release.wat index 142078dea4..709def24e2 100644 --- a/tests/compiler/incremental-gc/call-indirect.release.wat +++ b/tests/compiler/incremental-gc/call-indirect.release.wat @@ -1244,12 +1244,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index b864b32944..9a5dcdf64f 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -1642,14 +1642,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 4e368e641f..07fd25eb5e 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -1282,12 +1282,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index e5325dead1..4eba1f7c8d 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -1669,14 +1669,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index c09c4b901d..bfd2ec7d06 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1265,12 +1265,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 1478d40aca..c4f5314669 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -1892,14 +1892,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index bb306de122..d8a449feae 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1255,12 +1255,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index 43f6efa61f..6cf9d166a7 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -1644,14 +1644,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index 3ee62101c1..bdbf1e3b54 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -1260,12 +1260,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 9acf0935c0..4a22d3612d 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -1623,14 +1623,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 14500886a4..b5ae2294e0 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1246,12 +1246,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index b87f40c3c9..2abb8194d5 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -1638,14 +1638,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index be387fc91c..10fcd3691c 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1164,12 +1164,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index 168e3faaaf..b7c5009d63 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -1625,14 +1625,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 80c73bc8a5..0ba5679b98 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -1253,12 +1253,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 48b86fe01b..0d98c3c656 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -1627,14 +1627,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 959b426ae6..d445b2d6cd 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -1164,12 +1164,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index febbe4e10f..3799f01a97 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -1621,14 +1621,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index 9349beea7c..026f2c493b 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1237,12 +1237,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2622.debug.wat b/tests/compiler/issues/2622.debug.wat index 07020ccd43..6514ce97bf 100644 --- a/tests/compiler/issues/2622.debug.wat +++ b/tests/compiler/issues/2622.debug.wat @@ -1624,14 +1624,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index 835db6b8c6..885743588e 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -1193,12 +1193,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat index bf7710636a..58a64cf649 100644 --- a/tests/compiler/issues/2707.debug.wat +++ b/tests/compiler/issues/2707.debug.wat @@ -1630,14 +1630,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat index bdafcad22f..980e20a05d 100644 --- a/tests/compiler/issues/2707.release.wat +++ b/tests/compiler/issues/2707.release.wat @@ -1166,12 +1166,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat index 6e59a0ad5a..15c9c5ddef 100644 --- a/tests/compiler/issues/2873.debug.wat +++ b/tests/compiler/issues/2873.debug.wat @@ -3222,14 +3222,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat index 72b243e83c..7cc4d874f8 100644 --- a/tests/compiler/issues/2873.release.wat +++ b/tests/compiler/issues/2873.release.wat @@ -2456,12 +2456,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index d5fc0a82e6..bf7e9e66c3 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -1658,14 +1658,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index a244889d24..5147bdfca1 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1177,12 +1177,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index 9aa6652349..1582c65137 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -1623,14 +1623,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 48251000ec..62f92354e5 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1159,12 +1159,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index f0dc63a471..f26b604fbe 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -1626,14 +1626,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index 72a7a42fe2..af7e02c097 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -1195,12 +1195,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/number.debug.wat b/tests/compiler/number.debug.wat index 4c4c4c7a86..a6dc854df5 100644 --- a/tests/compiler/number.debug.wat +++ b/tests/compiler/number.debug.wat @@ -1726,14 +1726,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/number.release.wat b/tests/compiler/number.release.wat index 200a4f5ee8..5fbdeb3b8b 100644 --- a/tests/compiler/number.release.wat +++ b/tests/compiler/number.release.wat @@ -1287,12 +1287,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index f5a5c6902a..49aa74b6e3 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -1718,14 +1718,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index 9070d20967..e1bb4a66e6 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -1518,12 +1518,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/operator-overload-non-ambiguity.debug.wat b/tests/compiler/operator-overload-non-ambiguity.debug.wat index 243a2fc1ae..af1c4b6144 100644 --- a/tests/compiler/operator-overload-non-ambiguity.debug.wat +++ b/tests/compiler/operator-overload-non-ambiguity.debug.wat @@ -1621,14 +1621,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/operator-overload-non-ambiguity.release.wat b/tests/compiler/operator-overload-non-ambiguity.release.wat index f80cb51cd9..177a9d0d5c 100644 --- a/tests/compiler/operator-overload-non-ambiguity.release.wat +++ b/tests/compiler/operator-overload-non-ambiguity.release.wat @@ -1155,12 +1155,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index 181ae2e1ec..f0ccf39b01 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -1634,14 +1634,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index da3cdefbb6..86224fcc4c 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1181,12 +1181,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 6343f7999e..9e784a9395 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -1667,14 +1667,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index 336ee88140..a96b58bb2b 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1188,12 +1188,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index 8d023dca80..069f46a726 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -1660,14 +1660,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index ebef106da3..f61fba72ac 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1186,12 +1186,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 6dc9f58eb4..a2176400d2 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -1642,14 +1642,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 7e043af3e4..bc5cd261d7 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -1264,12 +1264,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 4b6d25a00f..d10576390f 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -1862,14 +1862,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index 072017c8a7..d7685c983c 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -1469,12 +1469,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index 77ff64f407..f6a7e9d7e2 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -1665,14 +1665,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index 5e4a644023..bc80e8c9b3 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -1316,12 +1316,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index 41b9a28c81..c1640f112a 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -1708,14 +1708,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index ad27a4cfac..82fe5bde30 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1376,12 +1376,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 0a56bb3df4..a1724b824f 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -1621,14 +1621,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index 96c78f0c84..2a19017969 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1160,12 +1160,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 88a40fd4ff..06b17954f1 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -1708,14 +1708,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index 9340b8dc98..9ac4eb9778 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -1278,12 +1278,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 20c870d9c4..ff33c0b57a 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -1716,14 +1716,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 8fa84ef7ad..91b5b3d064 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -1284,12 +1284,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index 9157dbee04..46d35d9426 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -1708,14 +1708,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index 05a765c4bf..b2115a2271 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -1304,12 +1304,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index f66ebe5b52..0c46f0c920 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -1624,14 +1624,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index 3e068205cc..df64ee697c 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -1248,12 +1248,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index 9f6475284f..9e9ef46519 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -1644,14 +1644,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index b61f14014d..5d8331afd3 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1173,12 +1173,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/issue-2719.debug.wat b/tests/compiler/rt/issue-2719.debug.wat index 2c202baebd..6aae0a765d 100644 --- a/tests/compiler/rt/issue-2719.debug.wat +++ b/tests/compiler/rt/issue-2719.debug.wat @@ -1621,14 +1621,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index 376cd994e9..0665cfc0ef 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -1238,12 +1238,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index 7dfec531fb..e95efa75fe 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -1627,14 +1627,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index 5d32a49a36..605d4f43c8 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -1257,12 +1257,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index 03792d9a1d..ded9a32b78 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -1660,14 +1660,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index df1c762f6a..a554a20ba2 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -1470,12 +1470,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index b6f795367b..641be48a4f 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -1656,14 +1656,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index 0fa3c9f108..d53285989a 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1303,12 +1303,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index 76974815e0..7c585db17c 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -1965,14 +1965,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 22943cdb01..45106a414b 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -2106,12 +2106,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index ed31bd6c6a..62e83133db 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -1629,14 +1629,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 19c0a0192a..334f1c302e 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1253,12 +1253,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index 9b9e4e7e62..ad44b4a321 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -1636,14 +1636,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index d1290df97c..7a0b6705e9 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1261,12 +1261,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index f67503e5e9..69c2f16c5e 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -2021,14 +2021,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 4b706f0de3..d97db8a353 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -1644,12 +1644,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index da8784b71b..13432055e5 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -1652,14 +1652,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 4148a7ac94..835670c17a 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -1274,12 +1274,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 04a2b09a95..5979cb6867 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -1638,14 +1638,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index 941f28ce40..012ec7a6db 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1160,12 +1160,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index 87fbfced19..3313be1958 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -1694,14 +1694,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 32bafe546c..1efa8f2c5c 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -1225,12 +1225,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index b643b683f8..3f49782b9d 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -1647,14 +1647,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index 2a2f9d8ff2..22fd0d652b 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -1265,12 +1265,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 9cb6bc3014..cfc3928c0c 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -1663,14 +1663,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 9b5ed278de..263534f48a 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -1502,12 +1502,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index eecfcbe17e..65ff72d2fc 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -1729,14 +1729,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 5db8f652ff..f04e217e60 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -1608,12 +1608,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 7c96ce666c..5e412bc990 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -1815,14 +1815,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index e8270d424d..c93b01b017 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -1692,12 +1692,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 4f3eae1809..eb35cd9489 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -1654,14 +1654,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index ce82f5fe09..1dd0f55a65 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -1279,12 +1279,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 733dbecb2d..738795005a 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -2252,14 +2252,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index e573886983..57e9b4af89 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -2289,12 +2289,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index 9baedf249c..561a3a4b9a 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -1683,14 +1683,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index 39b4ead273..e2a9fd8b6d 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1346,12 +1346,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 9b7671a355..1498ca5bde 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -1995,14 +1995,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 8dd3afe263..b0cdfab0ca 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -2114,12 +2114,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index ef9b074578..3351c851af 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -1697,14 +1697,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index 60fea95101..d6410645a6 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -1359,12 +1359,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index 1037d7b726..dc1722f0ec 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -1622,14 +1622,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index 0f870aa03f..35da8ff691 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1167,12 +1167,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index 29504e6521..dea9957b59 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -1948,14 +1948,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/switch.release.wat b/tests/compiler/switch.release.wat index 95b2826eb3..2b5172a5ea 100644 --- a/tests/compiler/switch.release.wat +++ b/tests/compiler/switch.release.wat @@ -1281,12 +1281,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 18a9c000d4..ace4b98b35 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -1808,14 +1808,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index bb5e8a5e46..9256be15f6 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -1352,12 +1352,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index 7b04cbca73..5d02f023cd 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -1760,14 +1760,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index a1cf98f400..5a767c425a 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1183,12 +1183,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index 1dfafed2d8..9bb3b1cbbb 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -2043,14 +2043,17 @@ if i32.const 0 drop + i32.const 200 + i32.const 100 + i32.rem_u + i32.const 0 + i32.eq + 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 100 + i32.div_u + i32.mul i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index c5b0c20429..c90bf786b3 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1155,12 +1155,8 @@ 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 1 + i32.shl i32.const 1024 i32.add global.set $~lib/rt/itcms/threshold From 52b953382a208925c75c130238403e90ec67a3fe Mon Sep 17 00:00:00 2001 From: CountBleck Date: Mon, 9 Mar 2026 20:24:21 -0700 Subject: [PATCH 68/86] chore: use OIDC for npm publishing (#2990) --- .github/workflows/publish.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 422f842755..269112457d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,12 +10,15 @@ jobs: name: Packages if: github.repository == 'AssemblyScript/assemblyscript' runs-on: ubuntu-latest + permissions: + id-token: write + contents: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: main fetch-depth: 0 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: node-version: current - name: Install dependencies @@ -46,7 +49,6 @@ jobs: - name: Publish packages env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: | node ./scripts/prepublish if [ $(node -pe "require('./package.json').version") != "0.0.0" ]; then From 327423bdb85fe57cf935f925c0863591b343b6a1 Mon Sep 17 00:00:00 2001 From: Changqing Jing Date: Fri, 27 Mar 2026 13:21:09 +0800 Subject: [PATCH 69/86] fix: compiler crashed when callback signature has void as parameter (#2998) --- src/resolver.ts | 9 +++++++++ tests/compiler/void-type-callback-param.json | 7 +++++++ tests/compiler/void-type-callback-param.ts | 7 +++++++ 3 files changed, 23 insertions(+) create mode 100644 tests/compiler/void-type-callback-param.json create mode 100644 tests/compiler/void-type-callback-param.ts diff --git a/src/resolver.ts b/src/resolver.ts index 0823838fa2..456aefd6f8 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -417,6 +417,15 @@ export class Resolver extends DiagnosticEmitter { reportMode ); if (!parameterType) return null; + if (parameterType == Type.void) { + if (reportMode == ReportMode.Report) { + this.error( + DiagnosticCode.Type_0_is_illegal_in_this_context, + parameterTypeNode.range, parameterType.toString() + ); + } + return null; + } parameterTypes[i] = parameterType; } let returnTypeNode = node.returnType; diff --git a/tests/compiler/void-type-callback-param.json b/tests/compiler/void-type-callback-param.json new file mode 100644 index 0000000000..1d3032d9ea --- /dev/null +++ b/tests/compiler/void-type-callback-param.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [], + "stderr": [ + "AS214: Type 'void' is illegal in this context.", + "EOF" + ] +} diff --git a/tests/compiler/void-type-callback-param.ts b/tests/compiler/void-type-callback-param.ts new file mode 100644 index 0000000000..533c766831 --- /dev/null +++ b/tests/compiler/void-type-callback-param.ts @@ -0,0 +1,7 @@ +class C1 { + then(cb: (value: T) => void): void {} +} + +new C1().then(function (): void {}); + +ERROR("EOF"); From 9ffcf258a2305ad87fbb09b99f86b0f6920549ae Mon Sep 17 00:00:00 2001 From: cui Date: Sat, 28 Mar 2026 21:34:38 +0800 Subject: [PATCH 70/86] fix: return previous color state from setColorsEnabled (#3002) --- NOTICE | 1 + src/util/terminal.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NOTICE b/NOTICE index 14d821345c..148bc0ca87 100644 --- a/NOTICE +++ b/NOTICE @@ -62,6 +62,7 @@ under the licensing terms detailed in LICENSE: * Kam Chehresa * Mopsgamer <79159094+Mopsgamer@users.noreply.github.com> * EDM115 +* Weixie Cui Portions of this software are derived from third-party works licensed under the following terms: diff --git a/src/util/terminal.ts b/src/util/terminal.ts index c5a507bc9d..44c2cc1aff 100644 --- a/src/util/terminal.ts +++ b/src/util/terminal.ts @@ -32,7 +32,7 @@ export function isColorsEnabled(): bool { /** Sets whether terminal colors are enabled or not. */ export function setColorsEnabled(isEnabled: bool): bool { - let wasEnabled = isEnabled; + let wasEnabled = colorsEnabled; colorsEnabled = isEnabled; return wasEnabled; } From fed7ffaf025dcfe2fc77317adb74b0d57810e51d Mon Sep 17 00:00:00 2001 From: cui Date: Sat, 28 Mar 2026 21:35:18 +0800 Subject: [PATCH 71/86] fix: use common type for numeric check on binary subtraction (#3003) --- src/compiler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler.ts b/src/compiler.ts index 36f09ab8aa..4b246478eb 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -4150,7 +4150,7 @@ export class Compiler extends DiagnosticEmitter { rightExpr = this.compileExpression(right, leftType); rightType = this.currentType; commonType = Type.commonType(leftType, rightType, contextualType); - if (!commonType || !leftType.isNumericValue) { + if (!commonType || !commonType.isNumericValue) { this.error( DiagnosticCode.Operator_0_cannot_be_applied_to_types_1_and_2, expression.range, "-", leftType.toString(), rightType.toString() From 04eba49c71731dc231ac796d1f0a1f0983b4e45b Mon Sep 17 00:00:00 2001 From: Max Graey Date: Sat, 28 Mar 2026 15:41:14 +0200 Subject: [PATCH 72/86] chore: update npm deps. Migrate to new eslint config. Minor fixes (#2996) --- .eslintignore | 9 - .eslintrc.cjs | 268 --- bin/asinit.js | 2 +- cli/index.js | 16 +- eslint.config.js | 231 +++ package-lock.json | 3692 +++++++----------------------------- package.json | 17 +- std/portable/index.js | 11 +- tests/allocators/index.js | 4 +- tests/allocators/runner.js | 4 +- util/text.js | 2 +- util/web.js | 2 +- 12 files changed, 937 insertions(+), 3321 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs create mode 100644 eslint.config.js diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index bb97247b6a..0000000000 --- a/.eslintignore +++ /dev/null @@ -1,9 +0,0 @@ -dist/ -lib/binaryen.js -lib/parse/index.js -build/ -raw/ -tests/parser/ - -# FIXME: Tagged template literal tests with invalid escapes -tests/compiler/templateliteral.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 3ba62e3992..0000000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,268 +0,0 @@ -/* global module */ - -module.exports = { - root: true, - parser: "@typescript-eslint/parser", - plugins: [ - "@typescript-eslint", - ], - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - ], - parserOptions: { - ecmaVersion: 2020, - sourceType: "module", - ecmaFeatures: {} - }, - globals: { - "globalThis": "readonly", - "BigInt64Array": "readonly", - "BigUint64Array": "readonly", - "WebAssembly": "readonly", - "FinalizationRegistry": "readonly", - "fetch": "readonly", - "URL": "readonly", - "console": "readonly" - }, - - // === General rules ========================================================= - - rules: { - // Omitted semicolons are hugely popular, yet within the compiler it makes - // sense to be better safe than sorry. - "semi": "error", - - // Our code bases uses 2 spaces for indentation, and we enforce it here so - // files don't mix spaces, tabs or different indentation levels. - "indent": ["error", 2, { - "SwitchCase": 1, - "VariableDeclarator": "first", - "offsetTernaryExpressions": true, - "ignoredNodes": [ // FIXME: something's odd here - "ConditionalExpression > *", - "ConditionalExpression > * > *", - "ConditionalExpression > * > * > *" - ] - }], - - // This is mostly visual style, making comments look uniform. - "spaced-comment": ["error", "always", { - "markers": ["/"], // triple-slash - "exceptions": ["/"] // all slashes - }], - - // This tends to be annoying as it encourages developers to make everything - // that is never reassigned a 'const', sometimes semantically incorrect so, - // typically leading to huge diffs in follow-up PRs modifying affected code. - "prefer-const": "off", - - // It is perfectly fine to declare top-level variables with `var`, yet this - // rule doesn't provide configuration options that would help. - "no-var": "off", - - // Quite often, dealing with multiple related cases at once or otherwise - // falling through is exactly the point of using a switch. - "no-fallthrough": "off", - - // Typical false-positives here are `do { ... } while (true)` statements or - // similar, but the only option provided here is not checking any loops. - "no-constant-condition": ["error", { checkLoops: false }], - - // Functions are nested in blocks occasionally, and there haven't been any - // problems with this so far, so turning the check off. - "no-inner-declarations": "off", - - // Quite common in scenarios where an iteration starts at `current = this`. - "@typescript-eslint/no-this-alias": "off", - - // Interferes with tests and 64-bit literals - "@typescript-eslint/no-loss-of-precision": "off", - - // Disabled here, but enabled again for JavaScript files. - "no-unused-vars": "off", - - // Disabled here, but enabled again for TypeScript files. - "@typescript-eslint/no-unused-vars": "off" - }, - overrides: [ - - // === JavaScript rules ==================================================== - - { - env: { - "browser": true, - "amd": true, - "node": true, - "es6": true - }, - files: [ - "**/*.js", - "bin/*" - ], - rules: { - // We are testing both ESM and UMD, so don't limit us. - "@typescript-eslint/no-var-requires": "off", - - // This rule does not behave well in JS files. - "@typescript-eslint/explicit-module-boundary-types": "off", - - // Enforcing to remove function parameters on stubs makes code less - // maintainable, so we instead allow unused function parameters. - "no-unused-vars": [ - "warn", { - "vars": "local", - "args": "none", - "ignoreRestSiblings": false - } - ], - - "@typescript-eslint/no-loss-of-precision": "error", - } - }, - - // === TypeScript rules ==================================================== - - { - files: [ - "**/*.ts" - ], - rules: { - // Enforcing to remove function parameters on stubs makes code less - // maintainable, so we instead allow unused function parameters. - "@typescript-eslint/no-unused-vars": [ - "warn", { - "vars": "local", - "varsIgnorePattern": "^[A-Z](?:From|To)?$", // ignore type params - "args": "none", - "ignoreRestSiblings": false - } - ] - } - }, - - // === AssemblyScript rules (extends TypeScript rules) ===================== - - { - files: [ - "**/assembly/**/*.ts", - "src/**/*.ts", - "lib/parse/src/**/*.ts" - ], - rules: { - // Namespaces are quite useful in AssemblyScript - "@typescript-eslint/no-namespace": "off", - - // There is actually codegen difference here - "@typescript-eslint/no-array-constructor": "off", - - // Sometimes it can't be avoided to add a @ts-ignore - "@typescript-eslint/ban-ts-comment": "off", - - // Utilized to achieve portability in some cases - "@typescript-eslint/no-non-null-assertion": "off", - } - }, - - // === Compiler rules (extends AssemblyScript rules) ======================= - - { - files: [ - "src/**/*.ts", - "std/assembly/**/*.ts" - ], - rules: { - // There is an actual codegen difference here - TODO: revisit - "no-cond-assign": "off", - - // Not all types can be omitted in AS yet - TODO: revisit - "@typescript-eslint/no-inferrable-types": "off", - - // Used rarely to reference internals that are not user-visible - "@typescript-eslint/triple-slash-reference": "off", - - // The compiler has its own `Function` class for example - "no-shadow-restricted-names": "off", - "@typescript-eslint/ban-types": "off" - } - }, - - // === Standard Library rules (extends AssemblyScript rules) =============== - - { - files: [ - "std/assembly/**/*.ts" - ], - rules: { - // We are implementing with --noLib, so we shadow all the time - "no-shadow-restricted-names": "off", - - // Similarly, sometimes we need the return type to be String, not string - "@typescript-eslint/ban-types": "off" - } - }, - - // === Standard Definition rules (extends TypeScript rules) ================ - - { - files: [ - "std/**/*.d.ts" - ], - rules: { - // Often required to achieve compatibility with TypeScript - "@typescript-eslint/no-explicit-any": "off", - - // Interfaces can be stubs here, i.e. not yet fully implemented - "@typescript-eslint/no-empty-interface": "off", - - // Definitions make use of `object` to model rather unusual constraints - "@typescript-eslint/ban-types": "off" - } - }, - - // === Compiler Definition rules (extends TypeScript rules) ================ - - { - files: [ - "./dist/*.d.ts" - ], - rules: { - // Our definitions are complicated, and all attempts to describe them - // as modules have failed so far. As such, we re-export namespaces. - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/triple-slash-reference": "off" - } - }, - - // === Test rules (extends TypeScript rules) =============================== - - { - files: [ - "./tests/compiler/**/*.ts", - "./lib/loader/tests/assembly/**/*.ts" - ], - rules: { - // Tests typically include unusual code patterns on purpose. This is - // very likely not an extensive list, but covers what's there so far. - "no-empty": "off", - "no-cond-assign": "off", - "no-compare-neg-zero": "off", - "no-inner-declarations": "off", - "no-constant-condition": "off", - "use-isnan": "off", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-extra-semi": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/triple-slash-reference": "off", - "@typescript-eslint/ban-ts-comment": "off", - "@typescript-eslint/no-extra-non-null-assertion": "off", - "@typescript-eslint/no-empty-interface": "off" - } - }, - ] -}; diff --git a/bin/asinit.js b/bin/asinit.js index cb52aad48c..5e3566ddc1 100755 --- a/bin/asinit.js +++ b/bin/asinit.js @@ -395,7 +395,7 @@ function ensurePackageJson() { updated = true; } if (!scripts["start"]) { - scripts["start"] = "npx serve .", + scripts["start"] = "npx serve ."; pkg["scripts"] = scripts; updated = true; } diff --git a/cli/index.js b/cli/index.js index d6808957f4..7e202e4f61 100644 --- a/cli/index.js +++ b/cli/index.js @@ -425,7 +425,7 @@ export async function main(argv, options) { } catch (e1) { try { transform = require(resolved); - } catch (e2) { + } catch { return prepareResult(e1); } } @@ -670,7 +670,7 @@ export async function main(argv, options) { .replace(/\\/g, "/") .replace(extension_re, "") .replace(/\/$/, ""); - + // Try entryPath.ext, then entryPath/index.ext let sourceText = await readFile(sourcePath + extension, baseDir); if (sourceText == null) { @@ -867,7 +867,7 @@ export async function main(argv, options) { // Prepare output if (!opts.noEmit) { if (opts.binaryFile) { - // We catched lagacy field for binary output (before 0.20) + // We caught legacy field for binary output (before 0.20) return prepareResult(Error("Usage of the --binaryFile compiler option is no longer supported. Use --outFile instead.")); } let bindings = opts.bindings || []; @@ -959,7 +959,7 @@ export async function main(argv, options) { writeFile(opts.textFile, out, baseDir) ); } else if (!hasStdout) { - hasStdout = true; + // hasStdout = true; writeStdout(out); } } @@ -1024,7 +1024,7 @@ export async function main(argv, options) { try { stats.readCount++; return await fs.promises.readFile(name, "utf8"); - } catch (e) { + } catch { return null; } } @@ -1038,7 +1038,7 @@ export async function main(argv, options) { await fs.promises.mkdir(dirPath, { recursive: true }); await fs.promises.writeFile(filePath, contents); return true; - } catch (e) { + } catch { return false; } } @@ -1049,7 +1049,7 @@ export async function main(argv, options) { stats.readCount++; return (await fs.promises.readdir(path.join(baseDir, dirname))) .filter(file => extension_re_except_d.test(file)); - } catch (e) { + } catch { return null; } } @@ -1106,7 +1106,7 @@ async function getConfig(file, baseDir, readFile) { try { config = JSON.parse(contents); } catch(ex) { - throw new Error(`Asconfig is not valid json: ${location}`); + throw new Error(`Asconfig is not valid json: ${location}`, { cause: ex }); } // validate asconfig shape diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000000..4c53f86f2b --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,231 @@ +import { defineConfig, globalIgnores } from "eslint/config"; + +import js from "@eslint/js"; +import tseslint from "typescript-eslint"; +import globals from "globals"; + +export default defineConfig([ + globalIgnores([ + "**/*.d.ts", + + "dist/**", + "lib/binaryen.js", + "lib/parse/index.js", + "build/**", + "raw/**", + + // Exclude AS sources with non-standard decorators + "src/glue/wasm/**/*.ts", + "std/assembly/**/*.ts", + + "tests/parser/**", + "tests/compiler/**", + "tests/asconfig/**", + "lib/loader/tests/**", + + // FIXME: Tagged template literal tests with invalid escapes + "tests/compiler/templateliteral.ts", + ]), + + js.configs.recommended, + ...tseslint.configs.recommended, + + { + files: ["**/*.{js,ts}"], + + languageOptions: { + parser: tseslint.parser, + ecmaVersion: 2024, + sourceType: "module", + globals: { + ...globals.es2024, + globalThis: "readonly", + BigInt64Array: "readonly", + BigUint64Array: "readonly", + WebAssembly: "readonly", + FinalizationRegistry: "readonly", + fetch: "readonly", + URL: "readonly", + console: "readonly", + }, + }, + + plugins: { + "@typescript-eslint": tseslint.plugin, + }, + + rules: { + semi: "error", + + indent: ["error", 2, { + SwitchCase: 1, + VariableDeclarator: "first", + offsetTernaryExpressions: true, + ignoredNodes: [ + "ConditionalExpression > *", + "ConditionalExpression > * > *", + "ConditionalExpression > * > * > *", + ], + }], + + "spaced-comment": ["error", "always", { + markers: ["/"], + exceptions: ["/"], + }], + + "prefer-const": "off", + "no-var": "off", + "no-fallthrough": "off", + + "no-constant-condition": ["error", { checkLoops: false }], + "no-inner-declarations": "off", + + "no-loss-of-precision": "off", + "no-unused-vars": "off", + "no-useless-assignment": "off", + + "@typescript-eslint/no-this-alias": "off", + "@typescript-eslint/no-unused-vars": "off", + }, + }, + + // === JavaScript === + { + files: ["**/*.js", "bin/*"], + + languageOptions: { + globals: { + ...globals.browser, + ...globals.amd, + ...globals.node, + ...globals.es6, + }, + }, + + rules: { + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + + "no-unused-vars": ["warn", { + vars: "local", + args: "none", + ignoreRestSiblings: false, + }], + + "@typescript-eslint/no-loss-of-precision": "error", + }, + }, + + // === TypeScript === + { + files: ["**/*.ts"], + + rules: { + "@typescript-eslint/no-unused-vars": ["warn", { + vars: "local", + varsIgnorePattern: "^[A-Z](?:From|To)?$", + args: "none", + ignoreRestSiblings: false, + }], + }, + }, + + // === AssemblyScript === + { + files: [ + "**/assembly/**/*.ts", + "src/**/*.ts", + "lib/parse/src/**/*.ts", + ], + + rules: { + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-array-constructor": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-non-null-assertion": "off", + }, + }, + + // === Compiler === + { + files: [ + "src/**/*.ts", + "std/assembly/**/*.ts", + ], + + rules: { + "no-cond-assign": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/triple-slash-reference": "off", + "no-shadow-restricted-names": "off", + "@typescript-eslint/ban-types": "off", + }, + }, + + // === Standard Library === + { + files: ["std/assembly/**/*.ts"], + + rules: { + "no-shadow-restricted-names": "off", + "@typescript-eslint/ban-types": "off", + }, + }, + + // === Definition files === + { + files: ["std/**/*.d.ts"], + + rules: { + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-empty-interface": "off", + "@typescript-eslint/ban-types": "off", + }, + }, + + // === Dist definitions === + { + files: ["./dist/*.d.ts"], + + rules: { + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/triple-slash-reference": "off", + }, + }, + + // === Tests === + { + files: [ + "./tests/compiler/**/*.ts", + "./lib/loader/tests/assembly/**/*.ts", + ], + + rules: { + "no-empty": "off", + "no-cond-assign": "off", + "no-compare-neg-zero": "off", + "no-inner-declarations": "off", + "no-constant-condition": "off", + "use-isnan": "off", + + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-extra-semi": "off", + "@typescript-eslint/no-inferrable-types": "off", + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/triple-slash-reference": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-extra-non-null-assertion": "off", + "@typescript-eslint/no-empty-interface": "off", + }, + }, + + { + files: ["tests/transform/cjs/**/*.js"], + rules: { + "@typescript-eslint/no-require-imports": "off", + }, + }, +]); diff --git a/package-lock.json b/package-lock.json index a988bec980..ebe2359041 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "assemblyscript", "version": "0.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -17,15 +17,16 @@ "asinit": "bin/asinit.js" }, "devDependencies": { - "@types/node": "^18.19.75", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", + "@eslint/js": "^10.0.1", + "@types/node": "^25.5.0", "as-float": "^1.0.1", - "diff": "^7.0.0", - "esbuild": "^0.25.0", - "eslint": "^8.57.1", - "glob": "^10.4.5", - "typescript": "^5.7.3" + "diff": "^8.0.4", + "esbuild": "^0.27.0", + "eslint": "^10.1.0", + "glob": "^13.0.6", + "globals": "^17.4.0", + "typescript": "^5.9.3", + "typescript-eslint": "^8.57.2" }, "engines": { "node": ">=20", @@ -36,19 +37,10 @@ "url": "https://opencollective.com/assemblyscript" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz", + "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==", "cpu": [ "ppc64" ], @@ -63,9 +55,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz", + "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==", "cpu": [ "arm" ], @@ -80,9 +72,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz", + "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==", "cpu": [ "arm64" ], @@ -97,9 +89,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz", + "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==", "cpu": [ "x64" ], @@ -114,9 +106,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz", + "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==", "cpu": [ "arm64" ], @@ -131,9 +123,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz", + "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==", "cpu": [ "x64" ], @@ -148,9 +140,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz", + "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==", "cpu": [ "arm64" ], @@ -165,9 +157,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz", + "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==", "cpu": [ "x64" ], @@ -182,9 +174,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz", + "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==", "cpu": [ "arm" ], @@ -199,9 +191,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz", + "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==", "cpu": [ "arm64" ], @@ -216,9 +208,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz", + "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==", "cpu": [ "ia32" ], @@ -233,9 +225,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz", + "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==", "cpu": [ "loong64" ], @@ -250,9 +242,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz", + "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==", "cpu": [ "mips64el" ], @@ -267,9 +259,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz", + "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==", "cpu": [ "ppc64" ], @@ -284,9 +276,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz", + "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==", "cpu": [ "riscv64" ], @@ -301,9 +293,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz", + "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==", "cpu": [ "s390x" ], @@ -318,9 +310,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz", + "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==", "cpu": [ "x64" ], @@ -335,9 +327,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz", + "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==", "cpu": [ "arm64" ], @@ -352,9 +344,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz", + "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==", "cpu": [ "x64" ], @@ -369,9 +361,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz", + "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==", "cpu": [ "arm64" ], @@ -386,9 +378,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz", + "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==", "cpu": [ "x64" ], @@ -402,10 +394,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz", + "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", + "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", "cpu": [ "x64" ], @@ -420,9 +429,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", + "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", "cpu": [ "arm64" ], @@ -437,9 +446,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", + "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", "cpu": [ "ia32" ], @@ -454,9 +463,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", + "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", "cpu": [ "x64" ], @@ -471,327 +480,357 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@eslint/config-array": { + "version": "0.23.3", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz", + "integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@eslint/object-schema": "^3.0.3", + "debug": "^4.3.1", + "minimatch": "^10.2.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@eslint/config-helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz", + "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.1.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@eslint/core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz", + "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@types/json-schema": "^7.0.15" }, "engines": { - "node": ">=10.10.0" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@eslint/js": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-10.0.1.tgz", + "integrity": "sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12.22" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "eslint": "^10.0.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@eslint/object-schema": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz", + "integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==", "dev": true, - "license": "BSD-3-Clause" + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/@eslint/plugin-kit": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz", + "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + "@eslint/core": "^1.1.1", + "levn": "^0.4.1" }, "engines": { - "node": ">=12" + "node": "^20.19.0 || ^22.13.0 || >=24" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">=18.18.0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "ansi-regex": "^6.0.1" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=18.18.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, + "license": "Apache-2.0", "engines": { - "node": ">= 8" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 8" + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } + "license": "MIT" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } + "license": "MIT" }, "node_modules/@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", - "dev": true + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.75", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.75.tgz", - "integrity": "sha512-UIksWtThob6ZVSyxcOqCLOUNg/dyO1Qvx4McgeuhrEtHTLFTf7BBhEazaE4K806FGTPtzd/2sE90qn4fVr7cyw==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.18.0" } }, - "node_modules/@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", - "dev": true - }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz", + "integrity": "sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/type-utils": "8.57.2", + "@typescript-eslint/utils": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.57.2", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.2.tgz", + "integrity": "sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", + "debug": "^4.4.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.2.tgz", + "integrity": "sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.57.2", + "@typescript-eslint/types": "^8.57.2", + "debug": "^4.4.3" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz", + "integrity": "sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz", + "integrity": "sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz", + "integrity": "sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2", + "@typescript-eslint/utils": "8.57.2", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.2.tgz", + "integrity": "sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -799,85 +838,92 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz", + "integrity": "sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@typescript-eslint/project-service": "8.57.2", + "@typescript-eslint/tsconfig-utils": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/visitor-keys": "8.57.2", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.2.tgz", + "integrity": "sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.57.2", + "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz", + "integrity": "sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "8.57.2", + "eslint-visitor-keys": "^5.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", "bin": { @@ -898,9 +944,9 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "dev": true, "license": "MIT", "dependencies": { @@ -914,46 +960,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/as-float": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/as-float/-/as-float-1.0.1.tgz", @@ -962,10 +968,14 @@ "license": "MIT" }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/binaryen": { "version": "123.0.0-nightly.20250530", @@ -985,77 +995,18 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { - "color-name": "~1.1.4" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=7.0.0" + "node": "18 || 20 || >=22" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1072,12 +1023,13 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1092,60 +1044,23 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/diff": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", - "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "version": "0.27.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz", + "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1156,31 +1071,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" + "@esbuild/aix-ppc64": "0.27.4", + "@esbuild/android-arm": "0.27.4", + "@esbuild/android-arm64": "0.27.4", + "@esbuild/android-x64": "0.27.4", + "@esbuild/darwin-arm64": "0.27.4", + "@esbuild/darwin-x64": "0.27.4", + "@esbuild/freebsd-arm64": "0.27.4", + "@esbuild/freebsd-x64": "0.27.4", + "@esbuild/linux-arm": "0.27.4", + "@esbuild/linux-arm64": "0.27.4", + "@esbuild/linux-ia32": "0.27.4", + "@esbuild/linux-loong64": "0.27.4", + "@esbuild/linux-mips64el": "0.27.4", + "@esbuild/linux-ppc64": "0.27.4", + "@esbuild/linux-riscv64": "0.27.4", + "@esbuild/linux-s390x": "0.27.4", + "@esbuild/linux-x64": "0.27.4", + "@esbuild/netbsd-arm64": "0.27.4", + "@esbuild/netbsd-x64": "0.27.4", + "@esbuild/openbsd-arm64": "0.27.4", + "@esbuild/openbsd-x64": "0.27.4", + "@esbuild/openharmony-arm64": "0.27.4", + "@esbuild/sunos-x64": "0.27.4", + "@esbuild/win32-arm64": "0.27.4", + "@esbuild/win32-ia32": "0.27.4", + "@esbuild/win32-x64": "0.27.4" } }, "node_modules/escape-string-regexp": { @@ -1188,6 +1104,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1196,73 +1113,78 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.1.0.tgz", + "integrity": "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.3", + "@eslint/config-helpers": "^0.5.3", + "@eslint/core": "^1.1.1", + "@eslint/plugin-kit": "^0.6.1", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^10.2.4", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { @@ -1270,6 +1192,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -1277,54 +1200,56 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.16.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^5.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1332,20 +1257,12 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1353,20 +1270,12 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1376,6 +1285,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -1387,34 +1297,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1426,39 +1308,38 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } + "license": "MIT" }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, + "license": "MIT", "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, "node_modules/find-up": { @@ -1466,6 +1347,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -1478,63 +1360,39 @@ } }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": ">=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "license": "ISC" }, "node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1545,6 +1403,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -1552,107 +1411,27 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "17.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", + "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4" } }, "node_modules/imurmurhash": { @@ -1660,43 +1439,19 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-glob": { @@ -1704,6 +1459,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1711,64 +1467,19 @@ "node": ">=0.10.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "license": "ISC" }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -1781,13 +1492,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -1797,6 +1510,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -1810,6 +1524,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -1820,110 +1535,75 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, "node_modules/long": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", - "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", "license": "Apache-2.0" }, "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", + "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=8.6" + "node": "20 || >=22" } }, "node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "*" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "dependencies": { - "wrappy": "1" - } + "license": "MIT" }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -1934,6 +1614,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -1949,6 +1630,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -1959,86 +1641,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -2049,6 +1696,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -2063,112 +1711,12 @@ "node": ">=6" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -2176,23 +1724,12 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -2205,189 +1742,39 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { "node": ">=8" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { - "node": ">=12" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "typescript": ">=4.8.4" } }, "node_modules/type-check": { @@ -2395,6 +1782,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -2402,23 +1790,10 @@ "node": ">= 0.8.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -2429,11 +1804,36 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.57.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.2.tgz", + "integrity": "sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.57.2", + "@typescript-eslint/parser": "8.57.2", + "@typescript-eslint/typescript-estree": "8.57.2", + "@typescript-eslint/utils": "8.57.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "dev": true, + "license": "MIT" }, "node_modules/uri-js": { "version": "4.4.1", @@ -2450,6 +1850,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -2460,124 +1861,22 @@ "node": ">= 8" } }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2585,1644 +1884,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true - }, - "@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, - "@types/json-schema": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.14.tgz", - "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", - "dev": true - }, - "@types/node": { - "version": "18.19.75", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.75.tgz", - "integrity": "sha512-UIksWtThob6ZVSyxcOqCLOUNg/dyO1Qvx4McgeuhrEtHTLFTf7BBhEazaE4K806FGTPtzd/2sE90qn4fVr7cyw==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "as-float": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/as-float/-/as-float-1.0.1.tgz", - "integrity": "sha512-TsN1UpoFdtzuKXqqpdnGbFuMYnK/eqMEjd2xVvACG29H/v4KLx+UD+tHRz9v6zO+Ge/AR/uskSruBIPZrchhHw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binaryen": { - "version": "123.0.0-nightly.20250530", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-123.0.0-nightly.20250530.tgz", - "integrity": "sha512-d1zPHBN5YlOd3Ff+OUxvVExuFeh8heSnqe+X3bjItFxGLvn4VGBKmrvv7pgy/cRhrIUGuPW138iaWfDhwjyDqg==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "requires": { - "fill-range": "^7.1.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "diff": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", - "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", - "dev": true, - "requires": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.2" - } - } - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "long": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.4.tgz", - "integrity": "sha512-qtzLbJE8hq7VabR3mISmVGtoXP8KGc2Z/AT8OuqlYD7JTR3oqrgwdjnk07wpj1twXxYmgDXgoKVWUG/fReSzHg==" - }, - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - } - }, - "minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - } - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } } } diff --git a/package.json b/package.json index 627dc00210..f1ed7f85d1 100644 --- a/package.json +++ b/package.json @@ -29,15 +29,16 @@ "long": "^5.2.4" }, "devDependencies": { - "@types/node": "^18.19.75", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", + "@eslint/js": "^10.0.1", + "@types/node": "^25.5.0", "as-float": "^1.0.1", - "diff": "^7.0.0", - "esbuild": "^0.25.0", - "eslint": "^8.57.1", - "glob": "^10.4.5", - "typescript": "^5.7.3" + "diff": "^8.0.4", + "esbuild": "^0.27.0", + "eslint": "^10.1.0", + "glob": "^13.0.6", + "globals": "^17.4.0", + "typescript": "^5.9.3", + "typescript-eslint": "^8.57.2" }, "type": "module", "exports": { diff --git a/std/portable/index.js b/std/portable/index.js index e1a658683b..a280120b4c 100644 --- a/std/portable/index.js +++ b/std/portable/index.js @@ -267,9 +267,9 @@ if (typeof globalScope.ASC_TARGET === "undefined") { if (!String.prototype.replaceAll) { Object.defineProperty(String.prototype, "replaceAll", { - value: function replaceAll(search, replacment) { - let res = this.split(search).join(replacment); - if (!search.length) res = replacment + res + replacment; + value: function replaceAll(search, replacement) { + let res = this.split(search).join(replacement); + if (!search.length) res = replacement + res + replacement; return res; }, configurable: true @@ -279,7 +279,8 @@ if (typeof globalScope.ASC_TARGET === "undefined") { function defaultComparator(a, b) { if (a == b) { if (a != 0) return 0; - a = 1 / a, b = 1 / b; + a = 1 / a; + b = 1 / b; } else { let nanA = a != a, nanB = b != b; if (nanA | nanB) return nanA - nanB; @@ -412,4 +413,4 @@ if (typeof globalScope.ASC_TARGET === "undefined") { if (n) message += Array.prototype.slice.call(arguments, 2, 2 + n); console.error("trace: " + message); }; -} \ No newline at end of file +} diff --git a/tests/allocators/index.js b/tests/allocators/index.js index ef2c5092cb..32f8f54570 100644 --- a/tests/allocators/index.js +++ b/tests/allocators/index.js @@ -40,12 +40,12 @@ async function test(file) { try { alloc(COMMON_MAX + 1, 0); // unreachable overflow = true; - } catch (e) { /* nop */ } + } catch { /* nop */ } if (overflow) throw Error("allocation can overflow COMMON_MAX + 1"); try { alloc(0xffffffff, 0); // unreachable overflow = true; - } catch (e) { /* nop */ } + } catch { /* nop */ } if (overflow) throw Error("allocation can overflow 0xffffffff"); } diff --git a/tests/allocators/runner.js b/tests/allocators/runner.js index 9ec9e18d1b..041683a75d 100644 --- a/tests/allocators/runner.js +++ b/tests/allocators/runner.js @@ -41,7 +41,7 @@ export default function runner(exports, runs, allocs) { console.log("base: " + base); try { reset(); - } catch (e) { + } catch { free(base); } let currentMem = exports.memory.buffer.byteLength; @@ -85,7 +85,7 @@ export default function runner(exports, runs, allocs) { let size = ((exports.memory.buffer.byteLength - base) * 9 / 10) >>> 0; let ptr = alloc(size, 0); // if (fill) fill(ptr, 0xac, size); - if (ptr !== base) throw Error("expected " + base + " but got " + ptr); + if (ptr !== base) throw Error("expected " + base + " but got " + ptr, { cause: e }); free(ptr); } testMemChanged(); diff --git a/util/text.js b/util/text.js index b7accf9f5a..7f3fa91b4b 100644 --- a/util/text.js +++ b/util/text.js @@ -105,7 +105,7 @@ export function diff(filename, expected, actual) { line.charAt(0) === "+" ? stdoutColors.green(line) : line.charAt(0) === "-" - ? line = stdoutColors.red(line) + ? stdoutColors.red(line) : line )); } diff --git a/util/web.js b/util/web.js index 1cddb1c355..5f9664866a 100644 --- a/util/web.js +++ b/util/web.js @@ -6,7 +6,7 @@ import { fs } from "./node.js"; var _fetch = typeof fetch === "function" ? fetch : - url => new Promise((resolve, reject) => { // eslint-disable-line no-global-assign + url => new Promise((resolve, reject) => { fs.readFile(url, (err, data) => { if (err) reject(err); resolve({ From 40037f56cbfef6104569ed2ad67095e5ad161825 Mon Sep 17 00:00:00 2001 From: Changqing Jing Date: Sat, 28 Mar 2026 21:45:43 +0800 Subject: [PATCH 73/86] fix: compiler crashed when duplicate inner function declared in function body (#3000) --- src/compiler.ts | 3 ++- src/program.ts | 10 +++++++++- tests/compiler/duplicate-function-in-scope.json | 8 ++++++++ tests/compiler/duplicate-function-in-scope.ts | 16 ++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 tests/compiler/duplicate-function-in-scope.json create mode 100644 tests/compiler/duplicate-function-in-scope.ts diff --git a/src/compiler.ts b/src/compiler.ts index 4b246478eb..7e4c3c9c40 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -1574,7 +1574,8 @@ export class Compiler extends DiagnosticEmitter { /** Force compilation of stdlib alternative if a builtin. */ forceStdAlternative: bool = false ): bool { - if (instance.is(CommonFlags.Compiled)) return !instance.is(CommonFlags.Errored); + if (instance.is(CommonFlags.Errored)) return false; + if (instance.is(CommonFlags.Compiled)) return true; if (!forceStdAlternative) { if (instance.hasDecorator(DecoratorFlags.Builtin)) return true; diff --git a/src/program.ts b/src/program.ts index 8bcf1bfa19..e54826b19d 100644 --- a/src/program.ts +++ b/src/program.ts @@ -3850,7 +3850,15 @@ export class Function extends TypedElement { flow.setLocalFlag(local.index, LocalFlags.Initialized); } } - registerConcreteElement(program, this); + if (program.instancesByName.has(this.internalName)) { + program.error( + DiagnosticCode.Duplicate_function_implementation, + prototype.declaration.name.range + ); + this.set(CommonFlags.Errored); + } else { + registerConcreteElement(program, this); + } } /** Gets the types of additional locals that are not parameters. */ diff --git a/tests/compiler/duplicate-function-in-scope.json b/tests/compiler/duplicate-function-in-scope.json new file mode 100644 index 0000000000..be8607a6b1 --- /dev/null +++ b/tests/compiler/duplicate-function-in-scope.json @@ -0,0 +1,8 @@ +{ + "asc_flags": [], + "stderr": [ + "EOF", + "TS2300: Duplicate identifier 'inner'.", + "TS2393: Duplicate function implementation." + ] +} diff --git a/tests/compiler/duplicate-function-in-scope.ts b/tests/compiler/duplicate-function-in-scope.ts new file mode 100644 index 0000000000..7d91e2abfc --- /dev/null +++ b/tests/compiler/duplicate-function-in-scope.ts @@ -0,0 +1,16 @@ +// Duplicate named function declarations in the same scope should +// produce a diagnostic instead of crashing the compiler. + +export function testMixed1(): void { + const inner = function (): void {}; + function inner(): void {} + inner(); +} + +export function test(): void { + function inner(): void {} + function inner(): void {} + inner(); +} + +ERROR("EOF"); From be8e56d524a4deccfb6f2242b93a6d30fcf1a589 Mon Sep 17 00:00:00 2001 From: Changqing Jing Date: Thu, 2 Apr 2026 18:22:12 +0800 Subject: [PATCH 74/86] fix: npm run build failed due to web build error (#3005) Co-authored-by: Max Graey --- scripts/build-web.js | 4 ++-- scripts/build.js | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/build-web.js b/scripts/build-web.js index fb703a7e24..8ffb3765d9 100644 --- a/scripts/build-web.js +++ b/scripts/build-web.js @@ -8,8 +8,8 @@ export function buildWeb() { const pkg = JSON.parse(fs.readFileSync(join(__dirname, "../package-lock.json"))); const mainVersion = pkg.version; - const binaryenVersion = pkg.dependencies.binaryen.version; - const longVersion = pkg.dependencies.long.version; + const binaryenVersion = pkg.packages["node_modules/binaryen"].version || pkg.dependencies.binaryen.version; + const longVersion = pkg.packages["node_modules/long"].version || pkg.dependencies.long.version; const distUrl = mainVersion === "0.0.0" ? `./` : `https://cdn.jsdelivr.net/npm/assemblyscript@${mainVersion}/dist/`; const binaryenUrl = `https://cdn.jsdelivr.net/npm/binaryen@${binaryenVersion}/index.js`; diff --git a/scripts/build.js b/scripts/build.js index ecf0a0f0b3..e8496cff23 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -182,7 +182,6 @@ const webPlugin = { const duration = Date.now() - startTime; console.log(`${time()} - web - ${stdoutColors.green("SUCCESS")} (no errors, ${duration} ms)`); - process.exitCode = 0; } catch (e) { const duration = Date.now() - startTime; console.error(e); @@ -256,7 +255,6 @@ function buildDefinitions() { const duration = Date.now() - startTime; console.log(`${time()} - dts - ${stdoutColors.green("SUCCESS")} (no errors, ${duration} ms)`); - process.exitCode = 0; } catch (e) { const duration = Date.now() - startTime; console.error(e); From c91247d8b7a0bfd6a7a2525f0810c8be0ab538ae Mon Sep 17 00:00:00 2001 From: Max Graey Date: Wed, 8 Apr 2026 19:01:49 +0300 Subject: [PATCH 75/86] chore: Add AI-polices for contributions (#3009) --- CONTRIBUTING.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aed33dc531..57b2125939 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,4 +51,15 @@ Before submitting your pull request, also make sure that the following condition Please note that if a pull request is rather complicated, i.e. touches lots of internals, or became stale, it is not uncommon that a core contributor performs the final integration to get it done in good conscience while naming you as a co-author. +Guidelines for **AI**-assisted Contributions +-------------------------------------------- + +**AI** tools are welcome as helpers, not authors. Keep these practices in mind: + +* Stay accountable: only submit changes you understand and can justify; be ready to explain behavior, edge cases. If an **AI** suggestion feels unclear, rewrite or drop it. +* Keep humans in the loop: discuss non-trivial ideas early via [Issues](https://github.com/AssemblyScript/assemblyscript/issues) or [Discord](https://discord.gg/assemblyscript), especially when you are unsure about design or impact. +* Use **AI** for acceleration, optimization and verification: treat **AI** output as a draft for code, tests, or docs; run linters/tests and review the logic **yourself**. +* Be transparent in PRs: note briefly if **AI** was used and for what (e.g., initial draft, test scaffolding), and call out any parts where you want extra review. +* Prefer small patches over large dumps; if you cannot confidently explain an **AI**-produced change, open a well-described issue instead. + Thank you! From 8c392f004abfca6f52e5e7a4b8f3cd130eec12c7 Mon Sep 17 00:00:00 2001 From: Max Graey Date: Fri, 10 Apr 2026 23:17:03 +0300 Subject: [PATCH 76/86] chore: update some CI workflows (#3011) --- .github/workflows/pr.yml | 9 +++++---- .github/workflows/stale.yml | 6 +++--- .github/workflows/test.yml | 29 ++++++++++++++++------------- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ac9170348d..9002e311df 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -10,10 +10,11 @@ jobs: steps: - name: Check PR Title Prefix id: title-check - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: script: | - const titlePrefixes = ["feat", "fix", "breaking", "chore"]; + const prefs = ["feat", "fix", "breaking", "chore"]; const title = context.payload.pull_request.title.toLowerCase(); - const titleHasValidPrefix = titlePrefixes.some((prefix) => title.startsWith(`${prefix}:`)); - if (!titleHasValidPrefix) { process.exit(-1); } + const hasValidPrefix = prefs.some(prefix => title.startsWith(`${prefix}:`)); + if (!hasValidPrefix) + core.setFailed("PR title must start with 'feat:', 'fix:', 'breaking:' or 'chore:'"); diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index b170c52285..9278bfd6aa 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -6,7 +6,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v9 + - uses: actions/stale@v10 with: stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed in one week if no further activity occurs. Thank you for your contributions!' stale-issue-label: 'stale' @@ -17,6 +17,6 @@ jobs: exempt-draft-pr: true exempt-all-milestones: true exempt-all-assignees: true - days-before-issue-stale: 30 - days-before-pr-stale: 60 + days-before-issue-stale: 60 + days-before-pr-stale: 120 days-before-close: 7 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 550ee0d7ab..f9d2f7db0a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,12 +4,15 @@ on: branches: - main pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true jobs: check: name: "Check" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: "Check that distribution files are unmodified" if: github.event_name == 'pull_request' run: | @@ -29,8 +32,8 @@ jobs: os: ["ubuntu", "macos", "windows"] node_version: ["current", "lts/*"] steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: ${{ matrix.node_version }} - name: Install dependencies @@ -49,8 +52,8 @@ jobs: matrix: target: ["debug", "release"] steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: current - name: Install dependencies @@ -70,8 +73,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 - name: Install dependencies run: npm ci --no-audit - name: Build @@ -86,8 +89,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: current - name: Install dependencies @@ -111,8 +114,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: current - name: Install dependencies @@ -129,8 +132,8 @@ jobs: runs-on: ubuntu-latest needs: check steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: 24 - name: Install dependencies From 2180c8cd32e5eba973ac78e42e6d4c775ee549d9 Mon Sep 17 00:00:00 2001 From: Changqing Jing Date: Sat, 11 Apr 2026 15:01:54 +0800 Subject: [PATCH 77/86] fix: report error when generic method attempts to implement non-generic interface method (#3007) --- src/diagnosticMessages.json | 1 + src/program.ts | 14 ++++ src/resolver.ts | 19 +++++- .../compiler/override-typeparam-mismatch.json | 13 ++++ tests/compiler/override-typeparam-mismatch.ts | 66 +++++++++++++++++++ 5 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 tests/compiler/override-typeparam-mismatch.json create mode 100644 tests/compiler/override-typeparam-mismatch.ts diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index bd12f1f7e3..6b98f6fd34 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -52,6 +52,7 @@ "Initializer, definitive assignment or nullable type expected.": 238, "Definitive assignment has no effect on local variables.": 239, "Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').": 240, + "An interface or abstract method '{0}' cannot have type parameters.": 241, "Importing the table disables some indirect call optimizations.": 901, "Exporting the table disables some indirect call optimizations.": 902, diff --git a/src/program.ts b/src/program.ts index e54826b19d..e5e27ebc59 100644 --- a/src/program.ts +++ b/src/program.ts @@ -2079,6 +2079,13 @@ export class Program extends DiagnosticEmitter { } case NodeKind.MethodDeclaration: { let methodDeclaration = memberDeclaration; + if (methodDeclaration.is(CommonFlags.Abstract) && methodDeclaration.is(CommonFlags.Generic)) { + this.error( + DiagnosticCode.An_interface_or_abstract_method_0_cannot_have_type_parameters, + methodDeclaration.name.range, + methodDeclaration.name.text + ); + } if (memberDeclaration.isAny(CommonFlags.Get | CommonFlags.Set)) { this.initializeProperty(methodDeclaration, element); } else { @@ -2653,6 +2660,13 @@ export class Program extends DiagnosticEmitter { } case NodeKind.MethodDeclaration: { let methodDeclaration = memberDeclaration; + if (methodDeclaration.is(CommonFlags.Generic)) { + this.error( + DiagnosticCode.An_interface_or_abstract_method_0_cannot_have_type_parameters, + methodDeclaration.name.range, + methodDeclaration.name.text + ); + } if (memberDeclaration.isAny(CommonFlags.Get | CommonFlags.Set)) { this.initializeProperty(methodDeclaration, element); } else { diff --git a/src/resolver.ts b/src/resolver.ts index 456aefd6f8..2a4df6c3e7 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -3063,7 +3063,19 @@ export class Resolver extends DiagnosticEmitter { 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); + let boundFuncPrototype = boundPrototype; + // Only resolve the override when the generic-ness matches the base method. + // - generic child → non-generic base: skip; vtable dispatch site has no type + // arguments to forward to the monomorphized child. + // - generic child → generic base: OK; type args come from the base call site. + // - non-generic child → non-generic base: OK; plain vtable override. + // FIXME: non-generic child → generic base is also mismatched (resolveFunction + // would assert on typeArguments/typeParameterNodes length mismatch) but that + // case is not yet guarded here. The correct fix is to replace this condition + // with `boundFuncPrototype.is(Generic) == instance.is(Generic)`. + if (!boundFuncPrototype.is(CommonFlags.Generic) || instance.is(CommonFlags.Generic)) { + overrideInstance = this.resolveFunction(boundFuncPrototype, instance.typeArguments); + } } } if (overrideInstance) overrides.add(overrideInstance); @@ -3438,7 +3450,10 @@ export class Resolver extends DiagnosticEmitter { } default: assert(false); } - if (!member.is(CommonFlags.Abstract)) { + if (!member.is(CommonFlags.Abstract) && !member.is(CommonFlags.Generic)) { + // A generic method cannot satisfy a non-generic interface/abstract + // requirement: interface methods cannot be generic (AS241), and + // virtual dispatch cannot supply type arguments for monomorphization. unimplemented.delete(memberName); } } diff --git a/tests/compiler/override-typeparam-mismatch.json b/tests/compiler/override-typeparam-mismatch.json new file mode 100644 index 0000000000..2ad855dc11 --- /dev/null +++ b/tests/compiler/override-typeparam-mismatch.json @@ -0,0 +1,13 @@ +{ + "asc_flags": [], + "stderr": [ + "AS241: An interface or abstract method 'foo' cannot have type parameters.", + "AS241: An interface or abstract method 'baz' cannot have type parameters.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/CC' does not implement inherited abstract member 'foo' from 'override-typeparam-mismatch/I'.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/DD' does not implement inherited abstract member 'bar' from 'override-typeparam-mismatch/J'.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/C2' does not implement inherited abstract member 'foo' from 'override-typeparam-mismatch/I2'.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/FF' does not implement inherited abstract member 'baz' from 'override-typeparam-mismatch/A1'.", + "TS2515: Non-abstract class 'override-typeparam-mismatch/GG' does not implement inherited abstract member 'qux' from 'override-typeparam-mismatch/A2'.", + "EOF" + ] +} diff --git a/tests/compiler/override-typeparam-mismatch.ts b/tests/compiler/override-typeparam-mismatch.ts new file mode 100644 index 0000000000..4b882b6083 --- /dev/null +++ b/tests/compiler/override-typeparam-mismatch.ts @@ -0,0 +1,66 @@ +interface I { + foo(x: i32): i32; +} + +class CC implements I { + foo(x: i32): i32 { + return x; + } +} + +let c:I = new CC(); +c.foo(1); + +interface J { + bar(x: i32): i32; +} + +class DD implements J { + bar(x: i32): i32 { + return x; + } +} + +let dd:DD = new DD(); +dd.bar(1); + +interface I2 { + foo(x: i32): i32; +} + +class C2 implements I2 { + foo(x: i32): i32 { + return x; + } +} + +new C2().foo(1); + +// abstract method cannot be generic (AS241) +abstract class A1 { + abstract baz(x: i32): i32; +} + +class FF extends A1 { + baz(x: i32): i32 { + return x; + } +} + +new FF().baz(1); + +// generic method cannot implement non-generic abstract method (TS2515) +abstract class A2 { + abstract qux(x: i32): i32; +} + +class GG extends A2 { + qux(x: i32): i32 { + return x; + } +} + +let a: A2 = new GG(); +a.qux(1); + +ERROR("EOF"); From bf7f95916b97e6d60c45e37d5d2f1c4dbb07db87 Mon Sep 17 00:00:00 2001 From: Max Graey Date: Wed, 22 Apr 2026 21:14:20 +0300 Subject: [PATCH 78/86] fix: update unicode identifier tables to Unicode 17.0 (#3017) --- scripts/unicode-identifier.js | 2 +- src/util/text.ts | 416 ++++++++++++++++++---------------- 2 files changed, 219 insertions(+), 199 deletions(-) diff --git a/scripts/unicode-identifier.js b/scripts/unicode-identifier.js index 5984ff8708..d9788b9502 100644 --- a/scripts/unicode-identifier.js +++ b/scripts/unicode-identifier.js @@ -1,4 +1,4 @@ -// see https://github.com/microsoft/TypeScript/blob/main/scripts/regenerate-unicode-identifier-parts.js +// see https://github.com/microsoft/TypeScript/blob/main/scripts/regenerate-unicode-identifier-parts.mjs const MAX_UNICODE_CODEPOINT = 0x10FFFF; const isStart = c => /[\p{ID_Start}\u{2118}\u{212E}\u{309B}\u{309C}]/u.test(c); // Other_ID_Start explicitly included for back compat - see http://www.unicode.org/reports/tr31/#Introduction diff --git a/src/util/text.ts b/src/util/text.ts index d94f5d2f07..49aca60d20 100644 --- a/src/util/text.ts +++ b/src/util/text.ts @@ -276,7 +276,7 @@ export function isIdentifierPart(cp: i32): bool { && lookupInUnicodeMap(cp, unicodeIdentifierPart); } -/** Tests if the specified string is a valid identifer. */ +/** Tests if the specified string is a valid identifier. */ export function isIdentifier(str: string): bool { let len = str.length; if (!len) return false; @@ -291,7 +291,7 @@ export function isIdentifier(str: string): bool { return true; } -/** Unicode 14.0 ID_Start/Other_ID_Start ranges */ +/** Unicode 17.0 ID_Start/Other_ID_Start ranges */ const unicodeIdentifierStart: i32[] = [/* | from ... to | from ... to | from ... to | from ... to |*/ 170 , 170 , 181 , 181 , 186 , 186 , 192 , 214 , @@ -306,7 +306,7 @@ const unicodeIdentifierStart: i32[] = [/* 1869 , 1957 , 1969 , 1969 , 1994 , 2026 , 2036 , 2037 , 2042 , 2042 , 2048 , 2069 , 2074 , 2074 , 2084 , 2084 , 2088 , 2088 , 2112 , 2136 , 2144 , 2154 , 2160 , 2183 , - 2185 , 2190 , 2208 , 2249 , 2308 , 2361 , 2365 , 2365 , + 2185 , 2191 , 2208 , 2249 , 2308 , 2361 , 2365 , 2365 , 2384 , 2384 , 2392 , 2401 , 2417 , 2432 , 2437 , 2444 , 2447 , 2448 , 2451 , 2472 , 2474 , 2480 , 2482 , 2482 , 2486 , 2489 , 2493 , 2493 , 2510 , 2510 , 2524 , 2525 , @@ -322,9 +322,9 @@ const unicodeIdentifierStart: i32[] = [/* 2962 , 2965 , 2969 , 2970 , 2972 , 2972 , 2974 , 2975 , 2979 , 2980 , 2984 , 2986 , 2990 , 3001 , 3024 , 3024 , 3077 , 3084 , 3086 , 3088 , 3090 , 3112 , 3114 , 3129 , - 3133 , 3133 , 3160 , 3162 , 3165 , 3165 , 3168 , 3169 , + 3133 , 3133 , 3160 , 3162 , 3164 , 3165 , 3168 , 3169 , 3200 , 3200 , 3205 , 3212 , 3214 , 3216 , 3218 , 3240 , - 3242 , 3251 , 3253 , 3257 , 3261 , 3261 , 3293 , 3294 , + 3242 , 3251 , 3253 , 3257 , 3261 , 3261 , 3292 , 3294 , 3296 , 3297 , 3313 , 3314 , 3332 , 3340 , 3342 , 3344 , 3346 , 3386 , 3389 , 3389 , 3406 , 3406 , 3412 , 3414 , 3423 , 3425 , 3450 , 3455 , 3461 , 3478 , 3482 , 3505 , @@ -349,7 +349,7 @@ const unicodeIdentifierStart: i32[] = [/* 6512 , 6516 , 6528 , 6571 , 6576 , 6601 , 6656 , 6678 , 6688 , 6740 , 6823 , 6823 , 6917 , 6963 , 6981 , 6988 , 7043 , 7072 , 7086 , 7087 , 7098 , 7141 , 7168 , 7203 , - 7245 , 7247 , 7258 , 7293 , 7296 , 7304 , 7312 , 7354 , + 7245 , 7247 , 7258 , 7293 , 7296 , 7306 , 7312 , 7354 , 7357 , 7359 , 7401 , 7404 , 7406 , 7411 , 7413 , 7414 , 7418 , 7418 , 7424 , 7615 , 7680 , 7957 , 7960 , 7965 , 7968 , 8005 , 8008 , 8013 , 8016 , 8023 , 8025 , 8025 , @@ -370,70 +370,76 @@ const unicodeIdentifierStart: i32[] = [/* 12704 , 12735 , 12784 , 12799 , 13312 , 19903 , 19968 , 42124 , 42192 , 42237 , 42240 , 42508 , 42512 , 42527 , 42538 , 42539 , 42560 , 42606 , 42623 , 42653 , 42656 , 42735 , 42775 , 42783 , - 42786 , 42888 , 42891 , 42954 , 42960 , 42961 , 42963 , 42963 , - 42965 , 42969 , 42994 , 43009 , 43011 , 43013 , 43015 , 43018 , - 43020 , 43042 , 43072 , 43123 , 43138 , 43187 , 43250 , 43255 , - 43259 , 43259 , 43261 , 43262 , 43274 , 43301 , 43312 , 43334 , - 43360 , 43388 , 43396 , 43442 , 43471 , 43471 , 43488 , 43492 , - 43494 , 43503 , 43514 , 43518 , 43520 , 43560 , 43584 , 43586 , - 43588 , 43595 , 43616 , 43638 , 43642 , 43642 , 43646 , 43695 , - 43697 , 43697 , 43701 , 43702 , 43705 , 43709 , 43712 , 43712 , - 43714 , 43714 , 43739 , 43741 , 43744 , 43754 , 43762 , 43764 , - 43777 , 43782 , 43785 , 43790 , 43793 , 43798 , 43808 , 43814 , - 43816 , 43822 , 43824 , 43866 , 43868 , 43881 , 43888 , 44002 , - 44032 , 55203 , 55216 , 55238 , 55243 , 55291 , 63744 , 64109 , - 64112 , 64217 , 64256 , 64262 , 64275 , 64279 , 64285 , 64285 , - 64287 , 64296 , 64298 , 64310 , 64312 , 64316 , 64318 , 64318 , - 64320 , 64321 , 64323 , 64324 , 64326 , 64433 , 64467 , 64829 , - 64848 , 64911 , 64914 , 64967 , 65008 , 65019 , 65136 , 65140 , - 65142 , 65276 , 65313 , 65338 , 65345 , 65370 , 65382 , 65470 , - 65474 , 65479 , 65482 , 65487 , 65490 , 65495 , 65498 , 65500 , - 65536 , 65547 , 65549 , 65574 , 65576 , 65594 , 65596 , 65597 , - 65599 , 65613 , 65616 , 65629 , 65664 , 65786 , 65856 , 65908 , - 66176 , 66204 , 66208 , 66256 , 66304 , 66335 , 66349 , 66378 , - 66384 , 66421 , 66432 , 66461 , 66464 , 66499 , 66504 , 66511 , - 66513 , 66517 , 66560 , 66717 , 66736 , 66771 , 66776 , 66811 , - 66816 , 66855 , 66864 , 66915 , 66928 , 66938 , 66940 , 66954 , - 66956 , 66962 , 66964 , 66965 , 66967 , 66977 , 66979 , 66993 , - 66995 , 67001 , 67003 , 67004 , 67072 , 67382 , 67392 , 67413 , - 67424 , 67431 , 67456 , 67461 , 67463 , 67504 , 67506 , 67514 , - 67584 , 67589 , 67592 , 67592 , 67594 , 67637 , 67639 , 67640 , - 67644 , 67644 , 67647 , 67669 , 67680 , 67702 , 67712 , 67742 , - 67808 , 67826 , 67828 , 67829 , 67840 , 67861 , 67872 , 67897 , - 67968 , 68023 , 68030 , 68031 , 68096 , 68096 , 68112 , 68115 , - 68117 , 68119 , 68121 , 68149 , 68192 , 68220 , 68224 , 68252 , - 68288 , 68295 , 68297 , 68324 , 68352 , 68405 , 68416 , 68437 , - 68448 , 68466 , 68480 , 68497 , 68608 , 68680 , 68736 , 68786 , - 68800 , 68850 , 68864 , 68899 , 69248 , 69289 , 69296 , 69297 , - 69376 , 69404 , 69415 , 69415 , 69424 , 69445 , 69488 , 69505 , - 69552 , 69572 , 69600 , 69622 , 69635 , 69687 , 69745 , 69746 , - 69749 , 69749 , 69763 , 69807 , 69840 , 69864 , 69891 , 69926 , - 69956 , 69956 , 69959 , 69959 , 69968 , 70002 , 70006 , 70006 , - 70019 , 70066 , 70081 , 70084 , 70106 , 70106 , 70108 , 70108 , - 70144 , 70161 , 70163 , 70187 , 70272 , 70278 , 70280 , 70280 , - 70282 , 70285 , 70287 , 70301 , 70303 , 70312 , 70320 , 70366 , - 70405 , 70412 , 70415 , 70416 , 70419 , 70440 , 70442 , 70448 , - 70450 , 70451 , 70453 , 70457 , 70461 , 70461 , 70480 , 70480 , - 70493 , 70497 , 70656 , 70708 , 70727 , 70730 , 70751 , 70753 , - 70784 , 70831 , 70852 , 70853 , 70855 , 70855 , 71040 , 71086 , - 71128 , 71131 , 71168 , 71215 , 71236 , 71236 , 71296 , 71338 , - 71352 , 71352 , 71424 , 71450 , 71488 , 71494 , 71680 , 71723 , - 71840 , 71903 , 71935 , 71942 , 71945 , 71945 , 71948 , 71955 , - 71957 , 71958 , 71960 , 71983 , 71999 , 71999 , 72001 , 72001 , - 72096 , 72103 , 72106 , 72144 , 72161 , 72161 , 72163 , 72163 , - 72192 , 72192 , 72203 , 72242 , 72250 , 72250 , 72272 , 72272 , - 72284 , 72329 , 72349 , 72349 , 72368 , 72440 , 72704 , 72712 , - 72714 , 72750 , 72768 , 72768 , 72818 , 72847 , 72960 , 72966 , - 72968 , 72969 , 72971 , 73008 , 73030 , 73030 , 73056 , 73061 , - 73063 , 73064 , 73066 , 73097 , 73112 , 73112 , 73440 , 73458 , - 73648 , 73648 , 73728 , 74649 , 74752 , 74862 , 74880 , 75075 , - 77712 , 77808 , 77824 , 78894 , 82944 , 83526 , 92160 , 92728 , - 92736 , 92766 , 92784 , 92862 , 92880 , 92909 , 92928 , 92975 , - 92992 , 92995 , 93027 , 93047 , 93053 , 93071 , 93760 , 93823 , - 93952 , 94026 , 94032 , 94032 , 94099 , 94111 , 94176 , 94177 , - 94179 , 94179 , 94208 , 100343, 100352, 101589, 101632, 101640, - 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, - 110928, 110930, 110948, 110951, 110960, 111355, 113664, 113770, + 42786 , 42888 , 42891 , 42972 , 42993 , 43009 , 43011 , 43013 , + 43015 , 43018 , 43020 , 43042 , 43072 , 43123 , 43138 , 43187 , + 43250 , 43255 , 43259 , 43259 , 43261 , 43262 , 43274 , 43301 , + 43312 , 43334 , 43360 , 43388 , 43396 , 43442 , 43471 , 43471 , + 43488 , 43492 , 43494 , 43503 , 43514 , 43518 , 43520 , 43560 , + 43584 , 43586 , 43588 , 43595 , 43616 , 43638 , 43642 , 43642 , + 43646 , 43695 , 43697 , 43697 , 43701 , 43702 , 43705 , 43709 , + 43712 , 43712 , 43714 , 43714 , 43739 , 43741 , 43744 , 43754 , + 43762 , 43764 , 43777 , 43782 , 43785 , 43790 , 43793 , 43798 , + 43808 , 43814 , 43816 , 43822 , 43824 , 43866 , 43868 , 43881 , + 43888 , 44002 , 44032 , 55203 , 55216 , 55238 , 55243 , 55291 , + 63744 , 64109 , 64112 , 64217 , 64256 , 64262 , 64275 , 64279 , + 64285 , 64285 , 64287 , 64296 , 64298 , 64310 , 64312 , 64316 , + 64318 , 64318 , 64320 , 64321 , 64323 , 64324 , 64326 , 64433 , + 64467 , 64829 , 64848 , 64911 , 64914 , 64967 , 65008 , 65019 , + 65136 , 65140 , 65142 , 65276 , 65313 , 65338 , 65345 , 65370 , + 65382 , 65470 , 65474 , 65479 , 65482 , 65487 , 65490 , 65495 , + 65498 , 65500 , 65536 , 65547 , 65549 , 65574 , 65576 , 65594 , + 65596 , 65597 , 65599 , 65613 , 65616 , 65629 , 65664 , 65786 , + 65856 , 65908 , 66176 , 66204 , 66208 , 66256 , 66304 , 66335 , + 66349 , 66378 , 66384 , 66421 , 66432 , 66461 , 66464 , 66499 , + 66504 , 66511 , 66513 , 66517 , 66560 , 66717 , 66736 , 66771 , + 66776 , 66811 , 66816 , 66855 , 66864 , 66915 , 66928 , 66938 , + 66940 , 66954 , 66956 , 66962 , 66964 , 66965 , 66967 , 66977 , + 66979 , 66993 , 66995 , 67001 , 67003 , 67004 , 67008 , 67059 , + 67072 , 67382 , 67392 , 67413 , 67424 , 67431 , 67456 , 67461 , + 67463 , 67504 , 67506 , 67514 , 67584 , 67589 , 67592 , 67592 , + 67594 , 67637 , 67639 , 67640 , 67644 , 67644 , 67647 , 67669 , + 67680 , 67702 , 67712 , 67742 , 67808 , 67826 , 67828 , 67829 , + 67840 , 67861 , 67872 , 67897 , 67904 , 67929 , 67968 , 68023 , + 68030 , 68031 , 68096 , 68096 , 68112 , 68115 , 68117 , 68119 , + 68121 , 68149 , 68192 , 68220 , 68224 , 68252 , 68288 , 68295 , + 68297 , 68324 , 68352 , 68405 , 68416 , 68437 , 68448 , 68466 , + 68480 , 68497 , 68608 , 68680 , 68736 , 68786 , 68800 , 68850 , + 68864 , 68899 , 68938 , 68965 , 68975 , 68997 , 69248 , 69289 , + 69296 , 69297 , 69314 , 69319 , 69376 , 69404 , 69415 , 69415 , + 69424 , 69445 , 69488 , 69505 , 69552 , 69572 , 69600 , 69622 , + 69635 , 69687 , 69745 , 69746 , 69749 , 69749 , 69763 , 69807 , + 69840 , 69864 , 69891 , 69926 , 69956 , 69956 , 69959 , 69959 , + 69968 , 70002 , 70006 , 70006 , 70019 , 70066 , 70081 , 70084 , + 70106 , 70106 , 70108 , 70108 , 70144 , 70161 , 70163 , 70187 , + 70207 , 70208 , 70272 , 70278 , 70280 , 70280 , 70282 , 70285 , + 70287 , 70301 , 70303 , 70312 , 70320 , 70366 , 70405 , 70412 , + 70415 , 70416 , 70419 , 70440 , 70442 , 70448 , 70450 , 70451 , + 70453 , 70457 , 70461 , 70461 , 70480 , 70480 , 70493 , 70497 , + 70528 , 70537 , 70539 , 70539 , 70542 , 70542 , 70544 , 70581 , + 70583 , 70583 , 70609 , 70609 , 70611 , 70611 , 70656 , 70708 , + 70727 , 70730 , 70751 , 70753 , 70784 , 70831 , 70852 , 70853 , + 70855 , 70855 , 71040 , 71086 , 71128 , 71131 , 71168 , 71215 , + 71236 , 71236 , 71296 , 71338 , 71352 , 71352 , 71424 , 71450 , + 71488 , 71494 , 71680 , 71723 , 71840 , 71903 , 71935 , 71942 , + 71945 , 71945 , 71948 , 71955 , 71957 , 71958 , 71960 , 71983 , + 71999 , 71999 , 72001 , 72001 , 72096 , 72103 , 72106 , 72144 , + 72161 , 72161 , 72163 , 72163 , 72192 , 72192 , 72203 , 72242 , + 72250 , 72250 , 72272 , 72272 , 72284 , 72329 , 72349 , 72349 , + 72368 , 72440 , 72640 , 72672 , 72704 , 72712 , 72714 , 72750 , + 72768 , 72768 , 72818 , 72847 , 72960 , 72966 , 72968 , 72969 , + 72971 , 73008 , 73030 , 73030 , 73056 , 73061 , 73063 , 73064 , + 73066 , 73097 , 73112 , 73112 , 73136 , 73179 , 73440 , 73458 , + 73474 , 73474 , 73476 , 73488 , 73490 , 73523 , 73648 , 73648 , + 73728 , 74649 , 74752 , 74862 , 74880 , 75075 , 77712 , 77808 , + 77824 , 78895 , 78913 , 78918 , 78944 , 82938 , 82944 , 83526 , + 90368 , 90397 , 92160 , 92728 , 92736 , 92766 , 92784 , 92862 , + 92880 , 92909 , 92928 , 92975 , 92992 , 92995 , 93027 , 93047 , + 93053 , 93071 , 93504 , 93548 , 93760 , 93823 , 93856 , 93880 , + 93883 , 93907 , 93952 , 94026 , 94032 , 94032 , 94099 , 94111 , + 94176 , 94177 , 94179 , 94179 , 94194 , 94198 , 94208 , 101589, + 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, + 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, + 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, @@ -442,25 +448,28 @@ const unicodeIdentifierStart: i32[] = [/* 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, - 120772, 120779, 122624, 122654, 123136, 123180, 123191, 123197, - 123214, 123214, 123536, 123565, 123584, 123627, 124896, 124902, - 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, - 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, - 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, - 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, - 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, - 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, - 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, - 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, - 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, - 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173791, - 173824, 177976, 177984, 178205, 178208, 183969, 183984, 191456, - 194560, 195101, 196608, 201546, + 120772, 120779, 122624, 122654, 122661, 122666, 122928, 122989, + 123136, 123180, 123191, 123197, 123214, 123214, 123536, 123565, + 123584, 123627, 124112, 124139, 124368, 124397, 124400, 124400, + 124608, 124638, 124640, 124642, 124644, 124645, 124647, 124653, + 124656, 124660, 124670, 124671, 124896, 124902, 124904, 124907, + 124909, 124910, 124912, 124926, 124928, 125124, 125184, 125251, + 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, + 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, + 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, + 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, + 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, + 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, + 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, + 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, + 126629, 126633, 126635, 126651, 131072, 173791, 173824, 178205, + 178208, 183981, 183984, 191456, 191472, 192093, 194560, 195101, + 196608, 201546, 201552, 210041, ]; const unicodeIdentifierStartMin = 170; -const unicodeIdentifierStartMax = 201546; +const unicodeIdentifierStartMax = 210041; -/** Unicode 14.0 ID_Continue/Other_ID_Continue + ID_Start/Other_ID_Start ranges*/ +/** Unicode 17.0 ID_Continue/Other_ID_Continue + ID_Start/Other_ID_Start ranges*/ const unicodeIdentifierPart: i32[] = [/* | from ... to | from ... to | from ... to | from ... to |*/ 170 , 170 , 181 , 181 , 183 , 183 , 186 , 186 , @@ -475,7 +484,7 @@ const unicodeIdentifierPart: i32[] = [/* 1759 , 1768 , 1770 , 1788 , 1791 , 1791 , 1808 , 1866 , 1869 , 1969 , 1984 , 2037 , 2042 , 2042 , 2045 , 2045 , 2048 , 2093 , 2112 , 2139 , 2144 , 2154 , 2160 , 2183 , - 2185 , 2190 , 2200 , 2273 , 2275 , 2403 , 2406 , 2415 , + 2185 , 2191 , 2199 , 2273 , 2275 , 2403 , 2406 , 2415 , 2417 , 2435 , 2437 , 2444 , 2447 , 2448 , 2451 , 2472 , 2474 , 2480 , 2482 , 2482 , 2486 , 2489 , 2492 , 2500 , 2503 , 2504 , 2507 , 2510 , 2519 , 2519 , 2524 , 2525 , @@ -497,11 +506,11 @@ const unicodeIdentifierPart: i32[] = [/* 3014 , 3016 , 3018 , 3021 , 3024 , 3024 , 3031 , 3031 , 3046 , 3055 , 3072 , 3084 , 3086 , 3088 , 3090 , 3112 , 3114 , 3129 , 3132 , 3140 , 3142 , 3144 , 3146 , 3149 , - 3157 , 3158 , 3160 , 3162 , 3165 , 3165 , 3168 , 3171 , + 3157 , 3158 , 3160 , 3162 , 3164 , 3165 , 3168 , 3171 , 3174 , 3183 , 3200 , 3203 , 3205 , 3212 , 3214 , 3216 , 3218 , 3240 , 3242 , 3251 , 3253 , 3257 , 3260 , 3268 , - 3270 , 3272 , 3274 , 3277 , 3285 , 3286 , 3293 , 3294 , - 3296 , 3299 , 3302 , 3311 , 3313 , 3314 , 3328 , 3340 , + 3270 , 3272 , 3274 , 3277 , 3285 , 3286 , 3292 , 3294 , + 3296 , 3299 , 3302 , 3311 , 3313 , 3315 , 3328 , 3340 , 3342 , 3344 , 3346 , 3396 , 3398 , 3400 , 3402 , 3406 , 3412 , 3415 , 3423 , 3427 , 3430 , 3439 , 3450 , 3455 , 3457 , 3459 , 3461 , 3478 , 3482 , 3505 , 3507 , 3515 , @@ -509,7 +518,7 @@ const unicodeIdentifierPart: i32[] = [/* 3542 , 3542 , 3544 , 3551 , 3558 , 3567 , 3570 , 3571 , 3585 , 3642 , 3648 , 3662 , 3664 , 3673 , 3713 , 3714 , 3716 , 3716 , 3718 , 3722 , 3724 , 3747 , 3749 , 3749 , - 3751 , 3773 , 3776 , 3780 , 3782 , 3782 , 3784 , 3789 , + 3751 , 3773 , 3776 , 3780 , 3782 , 3782 , 3784 , 3790 , 3792 , 3801 , 3804 , 3807 , 3840 , 3840 , 3864 , 3865 , 3872 , 3881 , 3893 , 3893 , 3895 , 3895 , 3897 , 3897 , 3902 , 3911 , 3913 , 3948 , 3953 , 3972 , 3974 , 3991 , @@ -529,128 +538,139 @@ const unicodeIdentifierPart: i32[] = [/* 6470 , 6509 , 6512 , 6516 , 6528 , 6571 , 6576 , 6601 , 6608 , 6618 , 6656 , 6683 , 6688 , 6750 , 6752 , 6780 , 6783 , 6793 , 6800 , 6809 , 6823 , 6823 , 6832 , 6845 , - 6847 , 6862 , 6912 , 6988 , 6992 , 7001 , 7019 , 7027 , - 7040 , 7155 , 7168 , 7223 , 7232 , 7241 , 7245 , 7293 , - 7296 , 7304 , 7312 , 7354 , 7357 , 7359 , 7376 , 7378 , - 7380 , 7418 , 7424 , 7957 , 7960 , 7965 , 7968 , 8005 , - 8008 , 8013 , 8016 , 8023 , 8025 , 8025 , 8027 , 8027 , - 8029 , 8029 , 8031 , 8061 , 8064 , 8116 , 8118 , 8124 , - 8126 , 8126 , 8130 , 8132 , 8134 , 8140 , 8144 , 8147 , - 8150 , 8155 , 8160 , 8172 , 8178 , 8180 , 8182 , 8188 , - 8255 , 8256 , 8276 , 8276 , 8305 , 8305 , 8319 , 8319 , - 8336 , 8348 , 8400 , 8412 , 8417 , 8417 , 8421 , 8432 , - 8450 , 8450 , 8455 , 8455 , 8458 , 8467 , 8469 , 8469 , - 8472 , 8477 , 8484 , 8484 , 8486 , 8486 , 8488 , 8488 , - 8490 , 8505 , 8508 , 8511 , 8517 , 8521 , 8526 , 8526 , - 8544 , 8584 , 11264 , 11492 , 11499 , 11507 , 11520 , 11557 , - 11559 , 11559 , 11565 , 11565 , 11568 , 11623 , 11631 , 11631 , - 11647 , 11670 , 11680 , 11686 , 11688 , 11694 , 11696 , 11702 , - 11704 , 11710 , 11712 , 11718 , 11720 , 11726 , 11728 , 11734 , - 11736 , 11742 , 11744 , 11775 , 12293 , 12295 , 12321 , 12335 , - 12337 , 12341 , 12344 , 12348 , 12353 , 12438 , 12441 , 12447 , - 12449 , 12538 , 12540 , 12543 , 12549 , 12591 , 12593 , 12686 , - 12704 , 12735 , 12784 , 12799 , 13312 , 19903 , 19968 , 42124 , - 42192 , 42237 , 42240 , 42508 , 42512 , 42539 , 42560 , 42607 , - 42612 , 42621 , 42623 , 42737 , 42775 , 42783 , 42786 , 42888 , - 42891 , 42954 , 42960 , 42961 , 42963 , 42963 , 42965 , 42969 , - 42994 , 43047 , 43052 , 43052 , 43072 , 43123 , 43136 , 43205 , - 43216 , 43225 , 43232 , 43255 , 43259 , 43259 , 43261 , 43309 , - 43312 , 43347 , 43360 , 43388 , 43392 , 43456 , 43471 , 43481 , - 43488 , 43518 , 43520 , 43574 , 43584 , 43597 , 43600 , 43609 , - 43616 , 43638 , 43642 , 43714 , 43739 , 43741 , 43744 , 43759 , - 43762 , 43766 , 43777 , 43782 , 43785 , 43790 , 43793 , 43798 , - 43808 , 43814 , 43816 , 43822 , 43824 , 43866 , 43868 , 43881 , - 43888 , 44010 , 44012 , 44013 , 44016 , 44025 , 44032 , 55203 , - 55216 , 55238 , 55243 , 55291 , 63744 , 64109 , 64112 , 64217 , - 64256 , 64262 , 64275 , 64279 , 64285 , 64296 , 64298 , 64310 , - 64312 , 64316 , 64318 , 64318 , 64320 , 64321 , 64323 , 64324 , - 64326 , 64433 , 64467 , 64829 , 64848 , 64911 , 64914 , 64967 , - 65008 , 65019 , 65024 , 65039 , 65056 , 65071 , 65075 , 65076 , - 65101 , 65103 , 65136 , 65140 , 65142 , 65276 , 65296 , 65305 , - 65313 , 65338 , 65343 , 65343 , 65345 , 65370 , 65382 , 65470 , - 65474 , 65479 , 65482 , 65487 , 65490 , 65495 , 65498 , 65500 , - 65536 , 65547 , 65549 , 65574 , 65576 , 65594 , 65596 , 65597 , - 65599 , 65613 , 65616 , 65629 , 65664 , 65786 , 65856 , 65908 , - 66045 , 66045 , 66176 , 66204 , 66208 , 66256 , 66272 , 66272 , - 66304 , 66335 , 66349 , 66378 , 66384 , 66426 , 66432 , 66461 , - 66464 , 66499 , 66504 , 66511 , 66513 , 66517 , 66560 , 66717 , - 66720 , 66729 , 66736 , 66771 , 66776 , 66811 , 66816 , 66855 , - 66864 , 66915 , 66928 , 66938 , 66940 , 66954 , 66956 , 66962 , - 66964 , 66965 , 66967 , 66977 , 66979 , 66993 , 66995 , 67001 , - 67003 , 67004 , 67072 , 67382 , 67392 , 67413 , 67424 , 67431 , - 67456 , 67461 , 67463 , 67504 , 67506 , 67514 , 67584 , 67589 , - 67592 , 67592 , 67594 , 67637 , 67639 , 67640 , 67644 , 67644 , - 67647 , 67669 , 67680 , 67702 , 67712 , 67742 , 67808 , 67826 , - 67828 , 67829 , 67840 , 67861 , 67872 , 67897 , 67968 , 68023 , + 6847 , 6877 , 6880 , 6891 , 6912 , 6988 , 6992 , 7001 , + 7019 , 7027 , 7040 , 7155 , 7168 , 7223 , 7232 , 7241 , + 7245 , 7293 , 7296 , 7306 , 7312 , 7354 , 7357 , 7359 , + 7376 , 7378 , 7380 , 7418 , 7424 , 7957 , 7960 , 7965 , + 7968 , 8005 , 8008 , 8013 , 8016 , 8023 , 8025 , 8025 , + 8027 , 8027 , 8029 , 8029 , 8031 , 8061 , 8064 , 8116 , + 8118 , 8124 , 8126 , 8126 , 8130 , 8132 , 8134 , 8140 , + 8144 , 8147 , 8150 , 8155 , 8160 , 8172 , 8178 , 8180 , + 8182 , 8188 , 8204 , 8205 , 8255 , 8256 , 8276 , 8276 , + 8305 , 8305 , 8319 , 8319 , 8336 , 8348 , 8400 , 8412 , + 8417 , 8417 , 8421 , 8432 , 8450 , 8450 , 8455 , 8455 , + 8458 , 8467 , 8469 , 8469 , 8472 , 8477 , 8484 , 8484 , + 8486 , 8486 , 8488 , 8488 , 8490 , 8505 , 8508 , 8511 , + 8517 , 8521 , 8526 , 8526 , 8544 , 8584 , 11264 , 11492 , + 11499 , 11507 , 11520 , 11557 , 11559 , 11559 , 11565 , 11565 , + 11568 , 11623 , 11631 , 11631 , 11647 , 11670 , 11680 , 11686 , + 11688 , 11694 , 11696 , 11702 , 11704 , 11710 , 11712 , 11718 , + 11720 , 11726 , 11728 , 11734 , 11736 , 11742 , 11744 , 11775 , + 12293 , 12295 , 12321 , 12335 , 12337 , 12341 , 12344 , 12348 , + 12353 , 12438 , 12441 , 12447 , 12449 , 12543 , 12549 , 12591 , + 12593 , 12686 , 12704 , 12735 , 12784 , 12799 , 13312 , 19903 , + 19968 , 42124 , 42192 , 42237 , 42240 , 42508 , 42512 , 42539 , + 42560 , 42607 , 42612 , 42621 , 42623 , 42737 , 42775 , 42783 , + 42786 , 42888 , 42891 , 42972 , 42993 , 43047 , 43052 , 43052 , + 43072 , 43123 , 43136 , 43205 , 43216 , 43225 , 43232 , 43255 , + 43259 , 43259 , 43261 , 43309 , 43312 , 43347 , 43360 , 43388 , + 43392 , 43456 , 43471 , 43481 , 43488 , 43518 , 43520 , 43574 , + 43584 , 43597 , 43600 , 43609 , 43616 , 43638 , 43642 , 43714 , + 43739 , 43741 , 43744 , 43759 , 43762 , 43766 , 43777 , 43782 , + 43785 , 43790 , 43793 , 43798 , 43808 , 43814 , 43816 , 43822 , + 43824 , 43866 , 43868 , 43881 , 43888 , 44010 , 44012 , 44013 , + 44016 , 44025 , 44032 , 55203 , 55216 , 55238 , 55243 , 55291 , + 63744 , 64109 , 64112 , 64217 , 64256 , 64262 , 64275 , 64279 , + 64285 , 64296 , 64298 , 64310 , 64312 , 64316 , 64318 , 64318 , + 64320 , 64321 , 64323 , 64324 , 64326 , 64433 , 64467 , 64829 , + 64848 , 64911 , 64914 , 64967 , 65008 , 65019 , 65024 , 65039 , + 65056 , 65071 , 65075 , 65076 , 65101 , 65103 , 65136 , 65140 , + 65142 , 65276 , 65296 , 65305 , 65313 , 65338 , 65343 , 65343 , + 65345 , 65370 , 65381 , 65470 , 65474 , 65479 , 65482 , 65487 , + 65490 , 65495 , 65498 , 65500 , 65536 , 65547 , 65549 , 65574 , + 65576 , 65594 , 65596 , 65597 , 65599 , 65613 , 65616 , 65629 , + 65664 , 65786 , 65856 , 65908 , 66045 , 66045 , 66176 , 66204 , + 66208 , 66256 , 66272 , 66272 , 66304 , 66335 , 66349 , 66378 , + 66384 , 66426 , 66432 , 66461 , 66464 , 66499 , 66504 , 66511 , + 66513 , 66517 , 66560 , 66717 , 66720 , 66729 , 66736 , 66771 , + 66776 , 66811 , 66816 , 66855 , 66864 , 66915 , 66928 , 66938 , + 66940 , 66954 , 66956 , 66962 , 66964 , 66965 , 66967 , 66977 , + 66979 , 66993 , 66995 , 67001 , 67003 , 67004 , 67008 , 67059 , + 67072 , 67382 , 67392 , 67413 , 67424 , 67431 , 67456 , 67461 , + 67463 , 67504 , 67506 , 67514 , 67584 , 67589 , 67592 , 67592 , + 67594 , 67637 , 67639 , 67640 , 67644 , 67644 , 67647 , 67669 , + 67680 , 67702 , 67712 , 67742 , 67808 , 67826 , 67828 , 67829 , + 67840 , 67861 , 67872 , 67897 , 67904 , 67929 , 67968 , 68023 , 68030 , 68031 , 68096 , 68099 , 68101 , 68102 , 68108 , 68115 , 68117 , 68119 , 68121 , 68149 , 68152 , 68154 , 68159 , 68159 , 68192 , 68220 , 68224 , 68252 , 68288 , 68295 , 68297 , 68326 , 68352 , 68405 , 68416 , 68437 , 68448 , 68466 , 68480 , 68497 , 68608 , 68680 , 68736 , 68786 , 68800 , 68850 , 68864 , 68903 , - 68912 , 68921 , 69248 , 69289 , 69291 , 69292 , 69296 , 69297 , - 69376 , 69404 , 69415 , 69415 , 69424 , 69456 , 69488 , 69509 , + 68912 , 68921 , 68928 , 68965 , 68969 , 68973 , 68975 , 68997 , + 69248 , 69289 , 69291 , 69292 , 69296 , 69297 , 69314 , 69319 , + 69370 , 69404 , 69415 , 69415 , 69424 , 69456 , 69488 , 69509 , 69552 , 69572 , 69600 , 69622 , 69632 , 69702 , 69734 , 69749 , 69759 , 69818 , 69826 , 69826 , 69840 , 69864 , 69872 , 69881 , 69888 , 69940 , 69942 , 69951 , 69956 , 69959 , 69968 , 70003 , 70006 , 70006 , 70016 , 70084 , 70089 , 70092 , 70094 , 70106 , - 70108 , 70108 , 70144 , 70161 , 70163 , 70199 , 70206 , 70206 , + 70108 , 70108 , 70144 , 70161 , 70163 , 70199 , 70206 , 70209 , 70272 , 70278 , 70280 , 70280 , 70282 , 70285 , 70287 , 70301 , 70303 , 70312 , 70320 , 70378 , 70384 , 70393 , 70400 , 70403 , 70405 , 70412 , 70415 , 70416 , 70419 , 70440 , 70442 , 70448 , 70450 , 70451 , 70453 , 70457 , 70459 , 70468 , 70471 , 70472 , 70475 , 70477 , 70480 , 70480 , 70487 , 70487 , 70493 , 70499 , - 70502 , 70508 , 70512 , 70516 , 70656 , 70730 , 70736 , 70745 , - 70750 , 70753 , 70784 , 70853 , 70855 , 70855 , 70864 , 70873 , - 71040 , 71093 , 71096 , 71104 , 71128 , 71133 , 71168 , 71232 , - 71236 , 71236 , 71248 , 71257 , 71296 , 71352 , 71360 , 71369 , - 71424 , 71450 , 71453 , 71467 , 71472 , 71481 , 71488 , 71494 , - 71680 , 71738 , 71840 , 71913 , 71935 , 71942 , 71945 , 71945 , - 71948 , 71955 , 71957 , 71958 , 71960 , 71989 , 71991 , 71992 , - 71995 , 72003 , 72016 , 72025 , 72096 , 72103 , 72106 , 72151 , - 72154 , 72161 , 72163 , 72164 , 72192 , 72254 , 72263 , 72263 , - 72272 , 72345 , 72349 , 72349 , 72368 , 72440 , 72704 , 72712 , - 72714 , 72758 , 72760 , 72768 , 72784 , 72793 , 72818 , 72847 , - 72850 , 72871 , 72873 , 72886 , 72960 , 72966 , 72968 , 72969 , - 72971 , 73014 , 73018 , 73018 , 73020 , 73021 , 73023 , 73031 , - 73040 , 73049 , 73056 , 73061 , 73063 , 73064 , 73066 , 73102 , - 73104 , 73105 , 73107 , 73112 , 73120 , 73129 , 73440 , 73462 , + 70502 , 70508 , 70512 , 70516 , 70528 , 70537 , 70539 , 70539 , + 70542 , 70542 , 70544 , 70581 , 70583 , 70592 , 70594 , 70594 , + 70597 , 70597 , 70599 , 70602 , 70604 , 70611 , 70625 , 70626 , + 70656 , 70730 , 70736 , 70745 , 70750 , 70753 , 70784 , 70853 , + 70855 , 70855 , 70864 , 70873 , 71040 , 71093 , 71096 , 71104 , + 71128 , 71133 , 71168 , 71232 , 71236 , 71236 , 71248 , 71257 , + 71296 , 71352 , 71360 , 71369 , 71376 , 71395 , 71424 , 71450 , + 71453 , 71467 , 71472 , 71481 , 71488 , 71494 , 71680 , 71738 , + 71840 , 71913 , 71935 , 71942 , 71945 , 71945 , 71948 , 71955 , + 71957 , 71958 , 71960 , 71989 , 71991 , 71992 , 71995 , 72003 , + 72016 , 72025 , 72096 , 72103 , 72106 , 72151 , 72154 , 72161 , + 72163 , 72164 , 72192 , 72254 , 72263 , 72263 , 72272 , 72345 , + 72349 , 72349 , 72368 , 72440 , 72544 , 72551 , 72640 , 72672 , + 72688 , 72697 , 72704 , 72712 , 72714 , 72758 , 72760 , 72768 , + 72784 , 72793 , 72818 , 72847 , 72850 , 72871 , 72873 , 72886 , + 72960 , 72966 , 72968 , 72969 , 72971 , 73014 , 73018 , 73018 , + 73020 , 73021 , 73023 , 73031 , 73040 , 73049 , 73056 , 73061 , + 73063 , 73064 , 73066 , 73102 , 73104 , 73105 , 73107 , 73112 , + 73120 , 73129 , 73136 , 73179 , 73184 , 73193 , 73440 , 73462 , + 73472 , 73488 , 73490 , 73530 , 73534 , 73538 , 73552 , 73562 , 73648 , 73648 , 73728 , 74649 , 74752 , 74862 , 74880 , 75075 , - 77712 , 77808 , 77824 , 78894 , 82944 , 83526 , 92160 , 92728 , - 92736 , 92766 , 92768 , 92777 , 92784 , 92862 , 92864 , 92873 , - 92880 , 92909 , 92912 , 92916 , 92928 , 92982 , 92992 , 92995 , - 93008 , 93017 , 93027 , 93047 , 93053 , 93071 , 93760 , 93823 , - 93952 , 94026 , 94031 , 94087 , 94095 , 94111 , 94176 , 94177 , - 94179 , 94180 , 94192 , 94193 , 94208 , 100343, 100352, 101589, - 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, - 110592, 110882, 110928, 110930, 110948, 110951, 110960, 111355, - 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, - 113821, 113822, 118528, 118573, 118576, 118598, 119141, 119145, - 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, - 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, - 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, - 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, - 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, - 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, - 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, - 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, - 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, - 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, - 121499, 121503, 121505, 121519, 122624, 122654, 122880, 122886, - 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, - 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, - 123536, 123566, 123584, 123641, 124896, 124902, 124904, 124907, - 124909, 124910, 124912, 124926, 124928, 125124, 125136, 125142, - 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, - 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, - 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, - 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, - 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, - 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, - 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, - 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, - 126625, 126627, 126629, 126633, 126635, 126651, 130032, 130041, - 131072, 173791, 173824, 177976, 177984, 178205, 178208, 183969, - 183984, 191456, 194560, 195101, 196608, 201546, 917760, 917999, + 77712 , 77808 , 77824 , 78895 , 78912 , 78933 , 78944 , 82938 , + 82944 , 83526 , 90368 , 90425 , 92160 , 92728 , 92736 , 92766 , + 92768 , 92777 , 92784 , 92862 , 92864 , 92873 , 92880 , 92909 , + 92912 , 92916 , 92928 , 92982 , 92992 , 92995 , 93008 , 93017 , + 93027 , 93047 , 93053 , 93071 , 93504 , 93548 , 93552 , 93561 , + 93760 , 93823 , 93856 , 93880 , 93883 , 93907 , 93952 , 94026 , + 94031 , 94087 , 94095 , 94111 , 94176 , 94177 , 94179 , 94180 , + 94192 , 94198 , 94208 , 101589, 101631, 101662, 101760, 101874, + 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, + 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, + 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, + 113808, 113817, 113821, 113822, 118000, 118009, 118528, 118573, + 118576, 118598, 119141, 119145, 119149, 119154, 119163, 119170, + 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, + 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, + 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, + 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, + 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, + 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, + 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, + 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, + 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, + 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, + 122624, 122654, 122661, 122666, 122880, 122886, 122888, 122904, + 122907, 122913, 122915, 122916, 122918, 122922, 122928, 122989, + 123023, 123023, 123136, 123180, 123184, 123197, 123200, 123209, + 123214, 123214, 123536, 123566, 123584, 123641, 124112, 124153, + 124368, 124410, 124608, 124638, 124640, 124661, 124670, 124671, + 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, + 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, + 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, + 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, + 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, + 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, + 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, + 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, + 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, + 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, + 126635, 126651, 130032, 130041, 131072, 173791, 173824, 178205, + 178208, 183981, 183984, 191456, 191472, 192093, 194560, 195101, + 196608, 201546, 201552, 210041, 917760, 917999, ]; const unicodeIdentifierPartMin = 170; const unicodeIdentifierPartMax = 917999; From ffada5a3542eb311d271dfb8c5c37c7c173aa0d8 Mon Sep 17 00:00:00 2001 From: Changqing Jing Date: Sat, 25 Apr 2026 13:07:26 +0800 Subject: [PATCH 79/86] fix: forbidden override between generic function and concrete function (#3014) --- src/diagnosticMessages.json | 1 + src/program.ts | 10 +++++++ src/resolver.ts | 28 +++++++++++++------ tests/compiler/override-generic-mismatch.json | 8 ++++++ tests/compiler/override-generic-mismatch.ts | 25 +++++++++++++++++ 5 files changed, 63 insertions(+), 9 deletions(-) create mode 100644 tests/compiler/override-generic-mismatch.json create mode 100644 tests/compiler/override-generic-mismatch.ts diff --git a/src/diagnosticMessages.json b/src/diagnosticMessages.json index 6b98f6fd34..016ba4ec3f 100644 --- a/src/diagnosticMessages.json +++ b/src/diagnosticMessages.json @@ -53,6 +53,7 @@ "Definitive assignment has no effect on local variables.": 239, "Ambiguous operator overload '{0}' (conflicting overloads '{1}' and '{2}').": 240, "An interface or abstract method '{0}' cannot have type parameters.": 241, + "Cannot override generic method '{0}' with a non-generic method or vice versa.": 242, "Importing the table disables some indirect call optimizations.": 901, "Exporting the table disables some indirect call optimizations.": 902, diff --git a/src/program.ts b/src/program.ts index e5e27ebc59..3522465ba0 100644 --- a/src/program.ts +++ b/src/program.ts @@ -1557,6 +1557,16 @@ export class Program extends DiagnosticEmitter { ) { let thisMethod = thisMember; let baseMethod = baseMember; + let thisIsGeneric = thisMethod.is(CommonFlags.Generic); + let baseIsGeneric = baseMethod.is(CommonFlags.Generic); + if (thisIsGeneric != baseIsGeneric) { + this.errorRelated( + DiagnosticCode.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa, + thisMethod.identifierNode.range, baseMethod.identifierNode.range, + thisMethod.name + ); + return; + } if (!thisMethod.visibilityEquals(baseMethod)) { this.errorRelated( DiagnosticCode.Overload_signatures_must_all_be_public_private_or_protected, diff --git a/src/resolver.ts b/src/resolver.ts index 2a4df6c3e7..56ee1c7ccb 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -2933,11 +2933,24 @@ export class Resolver extends DiagnosticEmitter { 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; + let baseTypeParameterNodes = basePrototype.typeParameterNodes; + let baseIsGeneric = baseTypeParameterNodes != null && baseTypeParameterNodes.length > 0; + let instanceIsGeneric = typeArguments != null && typeArguments.length > 0; + if (baseIsGeneric != instanceIsGeneric) { + // Cannot mix generic and non-generic functions in an override chain + this.errorRelated( + DiagnosticCode.Cannot_override_generic_method_0_with_a_non_generic_method_or_vice_versa, + instance.identifierAndSignatureRange, baseMember.identifierAndSignatureRange, + methodOrPropertyName + ); + incompatibleOverride = false; // already reported + } else { + // Possibly generic. Resolve with same type arguments to obtain the correct one. + let baseFunction = this.resolveFunction(basePrototype, typeArguments, new Map(), ReportMode.Swallow); + if (baseFunction && instance.signature.isAssignableTo(baseFunction.signature, true)) { + incompatibleOverride = false; + } } } } @@ -3069,11 +3082,8 @@ export class Resolver extends DiagnosticEmitter { // arguments to forward to the monomorphized child. // - generic child → generic base: OK; type args come from the base call site. // - non-generic child → non-generic base: OK; plain vtable override. - // FIXME: non-generic child → generic base is also mismatched (resolveFunction - // would assert on typeArguments/typeParameterNodes length mismatch) but that - // case is not yet guarded here. The correct fix is to replace this condition - // with `boundFuncPrototype.is(Generic) == instance.is(Generic)`. - if (!boundFuncPrototype.is(CommonFlags.Generic) || instance.is(CommonFlags.Generic)) { + // - non-generic child → generic base: skip; mismatched generic-ness. + if (boundFuncPrototype.is(CommonFlags.Generic) == instance.is(CommonFlags.Generic)) { overrideInstance = this.resolveFunction(boundFuncPrototype, instance.typeArguments); } } diff --git a/tests/compiler/override-generic-mismatch.json b/tests/compiler/override-generic-mismatch.json new file mode 100644 index 0000000000..d719ccfd28 --- /dev/null +++ b/tests/compiler/override-generic-mismatch.json @@ -0,0 +1,8 @@ +{ + "asc_flags": [], + "stderr": [ + "AS242: Cannot override generic method 'foo' with a non-generic method or vice versa.", + "AS242: Cannot override generic method 'bar' with a non-generic method or vice versa.", + "EOF" + ] +} diff --git a/tests/compiler/override-generic-mismatch.ts b/tests/compiler/override-generic-mismatch.ts new file mode 100644 index 0000000000..1848d804b8 --- /dev/null +++ b/tests/compiler/override-generic-mismatch.ts @@ -0,0 +1,25 @@ +// Non-generic method overriding generic method +class A { + foo(x: T): void {} +} + +class B extends A { + foo(x: i32): void {} +} + +let a:A = new B(); +a.foo(1); + +// Generic method overriding non-generic method +class C { + bar(x: i32): void {} +} + +class D extends C { + bar(x: T): void {} +} + +let c:C = new D(); +c.bar(1); + +ERROR("EOF"); From a5112aa25a6c1699c773fe279a31e2921012078b Mon Sep 17 00:00:00 2001 From: Jairus Date: Sat, 25 Apr 2026 06:18:22 -0400 Subject: [PATCH 80/86] feat: properly parse and resolve tuples (#3018) Co-authored-by: Max Graey --- NOTICE | 2 +- src/ast.ts | 32 ++++++++++++ src/extra/ast.ts | 36 +++++++++++++ src/parser.ts | 57 ++++++++++++++++++++- src/program.ts | 9 ++-- src/resolver.ts | 31 +++++++++++ tests/compiler/tuple-circular.json | 9 ++++ tests/compiler/tuple-circular.ts | 1 + tests/compiler/tuple-disabled.json | 9 ++++ tests/compiler/tuple-disabled.ts | 3 ++ tests/compiler/tuple-errors.json | 37 ++++++++++++++ tests/compiler/tuple-errors.ts | 65 +++++++++++++++++++++++ tests/compiler/tuple-type.json | 7 +++ tests/compiler/tuple-type.ts | 1 + tests/parser.js | 18 +++++-- tests/parser/tuple-errors.ts | 3 ++ tests/parser/tuple-errors.ts.fixture.ts | 3 ++ tests/parser/tuple.ts | 30 +++++++++++ tests/parser/tuple.ts.fixture.ts | 68 +++++++++++++++++++++++++ 19 files changed, 413 insertions(+), 8 deletions(-) create mode 100644 tests/compiler/tuple-circular.json create mode 100644 tests/compiler/tuple-circular.ts create mode 100644 tests/compiler/tuple-disabled.json create mode 100644 tests/compiler/tuple-disabled.ts create mode 100644 tests/compiler/tuple-errors.json create mode 100644 tests/compiler/tuple-errors.ts create mode 100644 tests/compiler/tuple-type.json create mode 100644 tests/compiler/tuple-type.ts create mode 100644 tests/parser/tuple-errors.ts create mode 100644 tests/parser/tuple-errors.ts.fixture.ts create mode 100644 tests/parser/tuple.ts create mode 100644 tests/parser/tuple.ts.fixture.ts diff --git a/NOTICE b/NOTICE index 148bc0ca87..da2cb563d4 100644 --- a/NOTICE +++ b/NOTICE @@ -51,7 +51,7 @@ under the licensing terms detailed in LICENSE: * Adrien Zinger * Ruixiang Chen * Daniel Salvadori -* Jairus Tanaka +* Jairus Tanaka * CountBleck * Abdul Rauf * Bach Le diff --git a/src/ast.ts b/src/ast.ts index 01d8e9a421..da649de549 100644 --- a/src/ast.ts +++ b/src/ast.ts @@ -50,6 +50,7 @@ export const enum NodeKind { // types NamedType, FunctionType, + TupleType, TypeName, TypeParameter, Parameter, @@ -161,6 +162,15 @@ export abstract class Node { return new FunctionTypeNode(parameters, returnType, explicitThisType, isNullable, range); } + static createTupleType( + elements: TypeNode[], + elementNames: (IdentifierExpression | null)[] | null, + isNullable: bool, + range: Range + ): TupleTypeNode { + return new TupleTypeNode(elements, elementNames, isNullable, range); + } + static createOmittedType( range: Range ): NamedTypeNode { @@ -862,6 +872,12 @@ export abstract class TypeNode extends Node { if (functionTypeNode.returnType.hasGenericComponent(typeParameterNodes)) return true; let explicitThisType = functionTypeNode.explicitThisType; if (explicitThisType && explicitThisType.hasGenericComponent(typeParameterNodes)) return true; + } else if (this.kind == NodeKind.TupleType) { + let tupleTypeNode = changetype(this); + let elements = tupleTypeNode.elements; + for (let i = 0, k = elements.length; i < k; ++i) { + if (elements[i].hasGenericComponent(typeParameterNodes)) return true; + } } else { assert(false); } @@ -928,6 +944,22 @@ export class FunctionTypeNode extends TypeNode { } } +/** Represents a tuple type. */ +export class TupleTypeNode extends TypeNode { + constructor( + /** Tuple elements. */ + public elements: TypeNode[], + /** Tuple element names, if any. */ + public elementNames: (IdentifierExpression | null)[] | null, + /** Whether nullable or not. */ + isNullable: bool, + /** Source range. */ + range: Range + ) { + super(NodeKind.TupleType, isNullable, range); + } +} + /** Represents a type parameter. */ export class TypeParameterNode extends Node { constructor( diff --git a/src/extra/ast.ts b/src/extra/ast.ts index ebe9217f90..699b2e0c71 100644 --- a/src/extra/ast.ts +++ b/src/extra/ast.ts @@ -15,6 +15,7 @@ import { TypeNode, NamedTypeNode, FunctionTypeNode, + TupleTypeNode, TypeName, TypeParameterNode, @@ -134,6 +135,10 @@ export class ASTBuilder { this.visitFunctionTypeNode(node); break; } + case NodeKind.TupleType: { + this.visitTupleTypeNode(node); + break; + } case NodeKind.TypeParameter: { this.visitTypeParameter(node); break; @@ -387,6 +392,10 @@ export class ASTBuilder { this.visitFunctionTypeNode(node); break; } + case NodeKind.TupleType: { + this.visitTupleTypeNode(node); + break; + } default: assert(false); } } @@ -450,6 +459,33 @@ export class ASTBuilder { if (isNullable) sb.push(") | null"); } + visitTupleTypeNode(node: TupleTypeNode): void { + let sb = this.sb; + sb.push("["); + let elements = node.elements; + let elementNames = node.elementNames; + let numElements = elements.length; + if (numElements) { + let name = elementNames ? elementNames[0] : null; + if (name) { + this.visitIdentifierExpression(name); + sb.push(": "); + } + this.visitTypeNode(elements[0]); + for (let i = 1; i < numElements; ++i) { + sb.push(", "); + name = elementNames ? elementNames[i] : null; + if (name) { + this.visitIdentifierExpression(name); + sb.push(": "); + } + this.visitTypeNode(elements[i]); + } + } + sb.push("]"); + if (node.isNullable) sb.push(" | null"); + } + visitTypeParameter(node: TypeParameterNode): void { this.visitIdentifierExpression(node.name); let extendsType = node.extendsType; diff --git a/src/parser.ts b/src/parser.ts index 7c69843973..157351cd3a 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -9,6 +9,7 @@ import { CommonFlags, + Feature, LIBRARY_PREFIX, PATH_DELIMITER } from "./common"; @@ -42,6 +43,7 @@ import { TypeName, NamedTypeNode, FunctionTypeNode, + TupleTypeNode, ArrowKind, Expression, @@ -90,6 +92,7 @@ import { mangleInternalPath } from "./ast"; +import { Options } from "./compiler"; /** Represents a dependee. */ class Dependee { @@ -118,7 +121,9 @@ export class Parser extends DiagnosticEmitter { sources: Source[]; /** Current overridden module name. */ currentModuleName: string | null = null; - + // TODO: Remove when multi-value feature will enable by default. + /** Compiler options. */ + options: Options | null = null; /** Constructs a new parser. */ constructor( diagnostics: DiagnosticMessage[] | null = null, @@ -563,6 +568,49 @@ export class Parser extends DiagnosticEmitter { return null; } + // 'readonly' Type + } else if (token == Token.Readonly) { + let innerType = this.parseType(tn, acceptParenthesized, suppressErrors); + if (!innerType) return null; + type = innerType; + type.range.start = startPos; + + // '[' ((Identifier ':')? Type (',' (Identifier ':')? Type)*)? ']' + } else if (token == Token.OpenBracket && this.options && this.options!.hasFeature(Feature.MultiValue)) { + let elements: TypeNode[] = []; + let elementNames: (IdentifierExpression | null)[] = []; + let hasElementNames = false; + if (!tn.skip(Token.CloseBracket)) { + do { + let elementName: IdentifierExpression | null = null; + let state = tn.mark(); + if (tn.skip(Token.Identifier)) { + let name = tn.readIdentifier(); + let nameRange = tn.range(); + if (tn.skip(Token.Colon)) { + elementName = Node.createIdentifierExpression(name, nameRange); + hasElementNames = true; + } else { + tn.reset(state); + } + } + let element = this.parseType(tn, true, suppressErrors); + if (!element) return null; + elements.push(element); + elementNames.push(elementName); + } while (tn.skip(Token.Comma)); + if (!tn.skip(Token.CloseBracket)) { + if (!suppressErrors) { + this.error( + DiagnosticCode._0_expected, + tn.range(tn.pos), "]" + ); + } + return null; + } + } + type = Node.createTupleType(elements, hasElementNames ? elementNames : null, false, tn.range(startPos, tn.pos)); + // 'void' } else if (token == Token.Void) { type = Node.createNamedType( @@ -4581,6 +4629,13 @@ function isCircularTypeAlias(name: string, type: TypeNode): bool { } break; } + case NodeKind.TupleType: { + let elements = (type).elements; + for (let i = 0, k = elements.length; i < k; i++) { + if (isCircularTypeAlias(name, elements[i])) return true; + } + break; + } default: assert(false); } return false; diff --git a/src/program.ts b/src/program.ts index 3522465ba0..f991cc1226 100644 --- a/src/program.ts +++ b/src/program.ts @@ -390,9 +390,9 @@ export namespace OperatorKind { case Token.GreaterThan_GreaterThan_Equals: return OperatorKind.BitwiseShr; case Token.GreaterThan_GreaterThan_GreaterThan: case Token.GreaterThan_GreaterThan_GreaterThan_Equals: return OperatorKind.BitwiseShrU; - case Token.Equals_Equals: + case Token.Equals_Equals: case Token.Equals_Equals_Equals: return OperatorKind.Eq; - case Token.Exclamation_Equals: + case Token.Exclamation_Equals: case Token.Exclamation_Equals_Equals: return OperatorKind.Ne; case Token.GreaterThan: return OperatorKind.Gt; case Token.GreaterThan_Equals: return OperatorKind.Ge; @@ -436,12 +436,15 @@ export class Program extends DiagnosticEmitter { diagnostics: DiagnosticMessage[] | null = null ) { super(diagnostics); - this.module = Module.create(options.stackSize > 0, options.sizeTypeRef); + this.module = Module.create(options.stackSize > 0, options.sizeTypeRef); this.parser = new Parser(this.diagnostics, this.sources); this.resolver = new Resolver(this); let nativeFile = new File(this, Source.native); this.nativeFile = nativeFile; this.filesByName.set(nativeFile.internalName, nativeFile); + + // TODO: temporary workaround. remove after multi-value support is finished + this.parser.options = this.options; } /** Module instance. */ diff --git a/src/resolver.ts b/src/resolver.ts index 56ee1c7ccb..9576a4768f 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -45,6 +45,7 @@ import { import { FunctionTypeNode, + TupleTypeNode, ParameterKind, TypeNode, NodeKind, @@ -171,6 +172,10 @@ export class Resolver extends DiagnosticEmitter { resolved = this.resolveFunctionType(node, flow, ctxElement, ctxTypes, reportMode); break; } + case NodeKind.TupleType: { + resolved = this.resolveTupleType(node, flow, ctxElement, ctxTypes, reportMode); + break; + } default: assert(false); } node.currentlyResolving = false; @@ -452,6 +457,32 @@ export class Resolver extends DiagnosticEmitter { return node.isNullable ? signature.type.asNullable() : signature.type; } + /** Resolves a {@link TupleTypeNode}. */ + private resolveTupleType( + /** The type to resolve. */ + node: TupleTypeNode, + /** The flow */ + flow: Flow | null, + /** Contextual element. */ + ctxElement: Element, + /** Contextual types, i.e. `T`. */ + ctxTypes: Map | null = null, + /** How to proceed with eventual diagnostics. */ + reportMode: ReportMode = ReportMode.Report + ): Type | null { + let elements = node.elements; + for (let i = 0, k = elements.length; i < k; ++i) { + if (!this.resolveType(elements[i], flow, ctxElement, ctxTypes, reportMode)) return null; + } + if (reportMode == ReportMode.Report) { + this.error( + DiagnosticCode.Not_implemented_0, + node.range, "Tuple types" + ); + } + return null; + } + private resolveBuiltinNotNullableType( /** The type to resolve. */ node: NamedTypeNode, diff --git a/tests/compiler/tuple-circular.json b/tests/compiler/tuple-circular.json new file mode 100644 index 0000000000..d196b422ed --- /dev/null +++ b/tests/compiler/tuple-circular.json @@ -0,0 +1,9 @@ +{ + "asc_flags": [ + "--enable", "multi-value" + ], + "stderr": [ + "TS2456: Type alias 'Loop' circularly references itself.", + "1 parse error(s)" + ] +} diff --git a/tests/compiler/tuple-circular.ts b/tests/compiler/tuple-circular.ts new file mode 100644 index 0000000000..dd016d7679 --- /dev/null +++ b/tests/compiler/tuple-circular.ts @@ -0,0 +1 @@ +type Loop = [Loop, i32]; diff --git a/tests/compiler/tuple-disabled.json b/tests/compiler/tuple-disabled.json new file mode 100644 index 0000000000..b4e8e8ffe9 --- /dev/null +++ b/tests/compiler/tuple-disabled.json @@ -0,0 +1,9 @@ +{ + "asc_flags": [ + "--disable", "multi-value" + ], + "stderr": [ + "TS1110: Type expected.", + "3 parse error(s)" + ] +} diff --git a/tests/compiler/tuple-disabled.ts b/tests/compiler/tuple-disabled.ts new file mode 100644 index 0000000000..5c93a3e424 --- /dev/null +++ b/tests/compiler/tuple-disabled.ts @@ -0,0 +1,3 @@ +export function tupleDisabled(x: [left: i32, right: i32]): void {} +export type tupleTypeDisabled1 = [i32, i32]; +export type tupleTypeDisabled2 = []; diff --git a/tests/compiler/tuple-errors.json b/tests/compiler/tuple-errors.json new file mode 100644 index 0000000000..bf732842af --- /dev/null +++ b/tests/compiler/tuple-errors.json @@ -0,0 +1,37 @@ +{ + "asc_flags": [ + "--enable", "multi-value" + ], + "stderr": [ + "in tuple-errors.ts(1,13)", + "in tuple-errors.ts(2,13)", + "in tuple-errors.ts(3,13)", + "in tuple-errors.ts(4,13)", + "in tuple-errors.ts(5,13)", + "in tuple-errors.ts(6,13)", + "in tuple-errors.ts(7,13)", + "in tuple-errors.ts(8,13)", + "AS100: Not implemented: Tuple types", + "in tuple-errors.ts(10,45)", + "in tuple-errors.ts(11,45)", + "in tuple-errors.ts(12,51)", + "in tuple-errors.ts(1,39)", + "in tuple-errors.ts(14,45)", + "in tuple-errors.ts(15,53)", + "in tuple-errors.ts(16,45)", + "in tuple-errors.ts(17,45)", + "in tuple-errors.ts(19,46)", + "in tuple-errors.ts(22,46)", + "in tuple-errors.ts(25,52)", + "in tuple-errors.ts(31,46)", + "in tuple-errors.ts(34,54)", + "in tuple-errors.ts(37,46)", + "in tuple-errors.ts(40,46)", + "in tuple-errors.ts(44,15)", + "in tuple-errors.ts(49,17)", + "in tuple-errors.ts(53,35)", + "in tuple-errors.ts(56,35)", + "in tuple-errors.ts(60,39)", + "in tuple-errors.ts(63,39)" + ] +} diff --git a/tests/compiler/tuple-errors.ts b/tests/compiler/tuple-errors.ts new file mode 100644 index 0000000000..2bab1e6bb2 --- /dev/null +++ b/tests/compiler/tuple-errors.ts @@ -0,0 +1,65 @@ +export type TupleTypeUnimplemented1 = []; +export type TupleTypeUnimplemented2 = [i32]; +export type TupleTypeUnimplemented3 = [i32, []]; +export type TupleTypeUnimplemented4 = [i32, TupleTypeUnimplemented1]; +export type TupleTypeUnimplemented5 = [string, i32]; +export type TupleTypeUnimplemented6 = [i32[], [i32]]; +export type TupleTypeUnimplemented7 = [i32, i32]; +export type TupleTypeUnimplemented8 = [x: i32, y: i32]; + +export function TupleParamUnimplemented1(x: []): void { } +export function TupleParamUnimplemented2(x: [i32]): void { } +export function TupleParamUnimplemented3(x: [i32, []]): void { } +export function TupleParamUnimplemented4(x: [i32, TupleTypeUnimplemented1]): void { } +export function TupleParamUnimplemented5(x: [string, i32]): void { } +export function TupleParamUnimplemented6(x: [i32[], [i32]]): void { } +export function TupleParamUnimplemented7(x: [i32, i32]): void { } +export function TupleParamUnimplemented8(x: [left: i32, right: i32]): void { } + +export function TupleReturnUnimplemented1(): [] { + return []; +} +export function TupleReturnUnimplemented2(): [i32] { + return [0]; +} +export function TupleReturnUnimplemented3(): [i32, []] { + return [0, []]; +} +export function TupleReturnUnimplemented4(): [i32, TupleTypeUnimplemented1] { + return [0, []]; +} +export function TupleReturnUnimplemented5(): [string, i32] { + return ["foo", 0]; +} +export function TupleReturnUnimplemented6(): [i32[], [i32]] { + return [new Array(), [0]]; +} +export function TupleReturnUnimplemented7(): [i32, i32] { + return [0, 1]; +} +export function TupleReturnUnimplemented8(): [first: i32, second: i32] { + return [0, 1]; +} + +type Box = [T, i32]; + +export function TupleGeneric1(x: Box): Box { + return x; +} +export function TupleGeneric2(x: [i32, T]): [i32, T] { + return x; +} + +export function TupleNullable1(x: [i32, i32] | null): [i32, i32] | null { + return x; +} +export function TupleNullable2(x: [] | null): [] | null { + return x; +} + +export function TupleTypeMismatch1(x: [i32, f32]): [f32, i32] { + return x; +} +export function TupleTypeMismatch2(x: [f64, f32]): [f32, f64] { + return x; +} diff --git a/tests/compiler/tuple-type.json b/tests/compiler/tuple-type.json new file mode 100644 index 0000000000..8a83de2d20 --- /dev/null +++ b/tests/compiler/tuple-type.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [ + "--enable", "multi-value" + ], + "stderr": [ + ] +} diff --git a/tests/compiler/tuple-type.ts b/tests/compiler/tuple-type.ts new file mode 100644 index 0000000000..8cf62aeb86 --- /dev/null +++ b/tests/compiler/tuple-type.ts @@ -0,0 +1 @@ +// nothing yet just getting the parser working first diff --git a/tests/parser.js b/tests/parser.js index ec3d89f0d9..687059529a 100644 --- a/tests/parser.js +++ b/tests/parser.js @@ -6,7 +6,7 @@ import { globSync } from "glob"; import { diff } from "../util/text.js"; import { stdoutColors } from "../util/terminal.js"; import * as optionsUtil from "../util/options.js"; -import { Program, Options, ASTBuilder } from "../dist/assemblyscript.js"; +import { Program, Options, ASTBuilder, Feature } from "../dist/assemblyscript.js"; const dirname = path.dirname(fileURLToPath(import.meta.url)); @@ -54,6 +54,11 @@ if (argv.length) { } let failures = 0; +const parserTestFeatures = new Map([ + ["tuple.ts", [Feature.MultiValue]], + ["tuple-more.ts", [Feature.MultiValue]], + ["tuple-errors.ts", [Feature.MultiValue]] +]); for (const filename of tests) { if (filename.charAt(0) == "_" || filename.endsWith(".fixture.ts")) continue; @@ -61,9 +66,16 @@ for (const filename of tests) { console.log(stdoutColors.white("Testing parser/" + filename)); let failed = false; - const program = new Program(new Options()); - const parser = program.parser; + const options = new Options(); const sourceText = fs.readFileSync(basedir + "/" + filename, { encoding: "utf8" }).replace(/\r?\n/g, "\n"); + const features = parserTestFeatures.get(filename); + if (features) { + for (const feature of features) { + options.setFeature(feature); + } + } + const program = new Program(options); + const parser = program.parser; parser.parseFile(sourceText, filename, true); const serializedSourceText = ASTBuilder.build(program.sources[0]); const actual = serializedSourceText + parser.diagnostics.map(diagnostic => "// " + diagnostic +"\n").join(""); diff --git a/tests/parser/tuple-errors.ts b/tests/parser/tuple-errors.ts new file mode 100644 index 0000000000..ecfed92541 --- /dev/null +++ b/tests/parser/tuple-errors.ts @@ -0,0 +1,3 @@ +export type Loop = [Loop, i32]; +export type BadTuple = [i32, ]; +export function badReadonly(x: readonly): void {} diff --git a/tests/parser/tuple-errors.ts.fixture.ts b/tests/parser/tuple-errors.ts.fixture.ts new file mode 100644 index 0000000000..d4ae1a5762 --- /dev/null +++ b/tests/parser/tuple-errors.ts.fixture.ts @@ -0,0 +1,3 @@ +// ERROR 2456: "Type alias 'Loop' circularly references itself." in tuple-errors.ts(1,13+4) +// ERROR 1110: "Type expected." in tuple-errors.ts(2,30+1) +// ERROR 1110: "Type expected." in tuple-errors.ts(3,40+1) diff --git a/tests/parser/tuple.ts b/tests/parser/tuple.ts new file mode 100644 index 0000000000..562bc15093 --- /dev/null +++ b/tests/parser/tuple.ts @@ -0,0 +1,30 @@ +function tuple0(): [] { return []; } +function tuple1(): [i32, i32] { return [1, 2]; } +function tuple2(): [i32, [i32, i32]] { return [1, [2, 3]]; } +function tuple3(): [i32, string] { return [1, "a"]; } +function tuple4(): [Array, i32[]] { return [new Array(), [1, 2]]; } +function tuple5(): [i32] { return [1]; } +function tuple6(): [[i32[]]] { return [[[1, 2]]]; } +function tuple7(): [x: i32, y: i32] { return [1, 2]; } +function tuple8(): [head: i32, tail: [lo: i32, hi: i32]] { return [1, [2, 3]]; } + +function func0(x: []): [] { return []; } +function func1(x: i32, y: i32): [i32, i32] { return [y, x]; } +function func2(x: [i32, i32]): [i32, i32] { return x; } +function func3(x: [i32, [i32, i32]], y: i32): [i32, [i32, i32]] { return x; } +function func4(x: readonly [i32, string]): [void] { return [void(0)]; } +function func5(x: readonly [Array, i32[]]): readonly [i32] { return [x[1].length]; } +function func6(x: [i32, i32] | null): [i32, i32] | null { return x; } +function func7(x: readonly [[i32[]], [string]]): readonly [[i32[]], [string]] { return x; } +function func8(x: [left: i32, right: i32]): [first: i32, second: i32] { return x; } +function func9(x: [T, T, i32]): [T] { return x; } +function func10(x: [string | null, i32] | null): [string | null, i32] | null { return x; } + +type type0 = []; +type type1 = [i32, i32]; +type type2 = [i32, [i32, i32]]; +type type3 = readonly [i32, string]; +type type4 = [i32, i32] | null; +type type5 = [[i32, i32], [i32, i32]]; +type type6 = [Array, T[], T]; +type type7 = [start: i32, end: [lo: i32, hi: i32]]; diff --git a/tests/parser/tuple.ts.fixture.ts b/tests/parser/tuple.ts.fixture.ts new file mode 100644 index 0000000000..bf461f898e --- /dev/null +++ b/tests/parser/tuple.ts.fixture.ts @@ -0,0 +1,68 @@ +function tuple0(): [] { + return []; +} +function tuple1(): [i32, i32] { + return [1, 2]; +} +function tuple2(): [i32, [i32, i32]] { + return [1, [2, 3]]; +} +function tuple3(): [i32, string] { + return [1, "a"]; +} +function tuple4(): [Array, Array] { + return [new Array(), [1, 2]]; +} +function tuple5(): [i32] { + return [1]; +} +function tuple6(): [[Array]] { + return [[[1, 2]]]; +} +function tuple7(): [x: i32, y: i32] { + return [1, 2]; +} +function tuple8(): [head: i32, tail: [lo: i32, hi: i32]] { + return [1, [2, 3]]; +} +function func0(x: []): [] { + return []; +} +function func1(x: i32, y: i32): [i32, i32] { + return [y, x]; +} +function func2(x: [i32, i32]): [i32, i32] { + return x; +} +function func3(x: [i32, [i32, i32]], y: i32): [i32, [i32, i32]] { + return x; +} +function func4(x: [i32, string]): [void] { + return [void(0)]; +} +function func5(x: [Array, Array]): [i32] { + return [x[1].length]; +} +function func6(x: [i32, i32] | null): [i32, i32] | null { + return x; +} +function func7(x: [[Array], [string]]): [[Array], [string]] { + return x; +} +function func8(x: [left: i32, right: i32]): [first: i32, second: i32] { + return x; +} +function func9(x: [T, T, i32]): [T] { + return x; +} +function func10(x: [string | null, i32] | null): [string | null, i32] | null { + return x; +} +type type0 = []; +type type1 = [i32, i32]; +type type2 = [i32, [i32, i32]]; +type type3 = [i32, string]; +type type4 = [i32, i32] | null; +type type5 = [[i32, i32], [i32, i32]]; +type type6 = [Array, Array, T]; +type type7 = [start: i32, end: [lo: i32, hi: i32]]; From f93a9415bcde40660305a32414f2cb2ccfccbfc4 Mon Sep 17 00:00:00 2001 From: Max Graey Date: Tue, 28 Apr 2026 13:29:50 +0300 Subject: [PATCH 81/86] feat: Migrate Binaryen from v123 to v129 (#3019) --- package-lock.json | 470 +- package.json | 18 +- scripts/build-dts.js | 4 +- src/common.ts | 1 + src/compiler.ts | 70 +- src/glue/binaryen.d.ts | 19 +- src/glue/binaryen.js | 35 +- src/index-wasm.ts | 4 +- src/module.ts | 303 +- src/program.ts | 12 +- src/tsconfig.json | 1 + std/assembly/shared/feature.ts | 9 +- tests/compiler/NonNullable.release.wat | 194 +- tests/compiler/abi.release.wat | 8 +- tests/compiler/assert-nonnull.release.wat | 634 +- tests/compiler/assignment-chain.release.wat | 2143 +- tests/compiler/bigint-integration.release.wat | 6 +- tests/compiler/bindings/esm.release.wat | 4717 +- .../bindings/noExportRuntime.release.wat | 2803 +- tests/compiler/bindings/raw.release.wat | 4717 +- tests/compiler/builtins.release.wat | 29 +- tests/compiler/call-inferred.release.wat | 2209 +- tests/compiler/call-optional.release.wat | 48 +- tests/compiler/call-rest.release.wat | 3907 +- tests/compiler/call-super.release.wat | 2497 +- tests/compiler/class-implements.release.wat | 2960 +- .../class-overloading-cast.release.wat | 2778 +- tests/compiler/class-overloading.release.wat | 3253 +- tests/compiler/class-override.release.wat | 1891 +- .../class-static-function.release.wat | 10 +- tests/compiler/class.release.wat | 2665 +- tests/compiler/const-folding.release.wat | 12 +- tests/compiler/constructor.release.wat | 2577 +- tests/compiler/declare.release.wat | 2 +- tests/compiler/do.release.wat | 1222 +- tests/compiler/duplicate-fields.release.wat | 1855 +- .../compiler/empty-exportruntime.release.wat | 1779 +- tests/compiler/empty-new.release.wat | 469 +- tests/compiler/enum-to-string.release.wat | 6 +- tests/compiler/export.release.wat | 10 +- tests/compiler/exportimport-table.release.wat | 4 +- tests/compiler/exports.release.wat | 14 +- .../exportstar-rereexport.release.wat | 989 +- tests/compiler/exportstar.release.wat | 10 +- .../extends-baseaggregate.release.wat | 2771 +- tests/compiler/extends-recursive.release.wat | 1963 +- tests/compiler/external.release.wat | 2 +- .../features/reference-types.release.wat | 24 +- tests/compiler/features/threads.release.wat | 82 +- .../compiler/field-initialization.release.wat | 2765 +- tests/compiler/field.release.wat | 2697 +- tests/compiler/for.release.wat | 1557 +- tests/compiler/function-call.release.wat | 1305 +- .../compiler/function-expression.release.wat | 927 +- .../function-inline-regressions.release.wat | 16 +- tests/compiler/function-types.release.wat | 12 +- tests/compiler/getter-call.release.wat | 1013 +- tests/compiler/getter-setter.release.wat | 4 +- tests/compiler/heap.release.wat | 441 +- tests/compiler/import-memory.release.wat | 4 +- .../incremental-gc/call-indirect.release.wat | 2133 +- tests/compiler/infer-array.release.wat | 3751 +- tests/compiler/infer-generic.release.wat | 1391 +- tests/compiler/inlining-recursive.release.wat | 6 +- tests/compiler/inlining.release.wat | 1517 +- tests/compiler/instanceof.release.wat | 2983 +- tests/compiler/issues/1095.release.wat | 1809 +- tests/compiler/issues/1225.release.wat | 1769 +- tests/compiler/issues/1699.release.wat | 3723 +- tests/compiler/issues/1714.release.wat | 4 +- tests/compiler/issues/2166.release.wat | 1763 +- tests/compiler/issues/2322/index.release.wat | 1199 +- tests/compiler/issues/2622.release.wat | 1487 +- tests/compiler/issues/2707.release.wat | 1755 +- tests/compiler/issues/2825.release.wat | 12 +- tests/compiler/issues/2873.release.wat | 4957 +- tests/compiler/logical.release.wat | 1839 +- tests/compiler/loop-flow.release.wat | 55 +- tests/compiler/loop-wrap.release.wat | 10 +- tests/compiler/managed-cast.release.wat | 1824 +- tests/compiler/many-locals.release.wat | 6 +- tests/compiler/memcpy.release.wat | 4 +- tests/compiler/memmove.release.wat | 4 +- tests/compiler/memory.release.wat | 6 +- tests/compiler/memset.release.wat | 6 +- tests/compiler/new.release.wat | 2223 +- tests/compiler/number.release.wat | 3383 +- tests/compiler/object-literal.release.wat | 3441 +- ...perator-overload-non-ambiguity.release.wat | 1535 +- .../optional-typeparameters.release.wat | 2165 +- tests/compiler/possibly-null.release.wat | 268 +- tests/compiler/reexport.release.wat | 691 +- tests/compiler/rereexport.release.wat | 989 +- tests/compiler/resolve-access.release.wat | 3079 +- tests/compiler/resolve-binary.release.wat | 4872 +- .../resolve-elementaccess.release.wat | 5624 +- .../resolve-function-expression.release.wat | 2521 +- tests/compiler/resolve-new.release.wat | 1119 +- .../resolve-propertyaccess.release.wat | 3207 +- tests/compiler/resolve-ternary.release.wat | 2921 +- tests/compiler/resolve-unary.release.wat | 3133 +- tests/compiler/return-unreachable.release.wat | 1609 +- tests/compiler/return.release.wat | 12 +- .../rt/alloc-large-memory.release.wat | 269 +- tests/compiler/rt/finalize.release.wat | 1161 +- tests/compiler/rt/flags.release.wat | 10 +- tests/compiler/rt/issue-2719.release.wat | 1453 +- .../rt/runtime-incremental-export.release.wat | 1779 +- .../rt/runtime-minimal-export.release.wat | 911 +- .../rt/runtime-stub-export.release.wat | 51 +- tests/compiler/simd.release.wat | 3341 +- tests/compiler/std/array-access.release.wat | 126 +- tests/compiler/std/array-literal.release.wat | 3033 +- tests/compiler/std/array.release.wat | 32431 +++--- tests/compiler/std/arraybuffer.release.wat | 2301 +- tests/compiler/std/console.release.wat | 290 +- tests/compiler/std/dataview.release.wat | 3801 +- tests/compiler/std/date.release.wat | 11183 +- tests/compiler/std/hash.release.wat | 54 +- tests/compiler/std/map.release.wat | 32899 +++--- tests/compiler/std/math.release.wat | 19610 ++-- tests/compiler/std/mod.release.wat | 14 +- tests/compiler/std/new.release.wat | 605 +- .../std/operator-overloading.release.wat | 3555 +- tests/compiler/std/pointer.release.wat | 6 +- tests/compiler/std/set.release.wat | 23567 ++--- tests/compiler/std/static-array.release.wat | 3199 +- tests/compiler/std/staticarray.release.wat | 7794 +- .../std/string-casemapping.release.wat | 9957 +- .../compiler/std/string-encoding.release.wat | 6473 +- tests/compiler/std/string-nonnull.release.wat | 152 +- tests/compiler/std/string.release.wat | 28298 ++--- tests/compiler/std/symbol.release.wat | 5913 +- tests/compiler/std/typedarray.release.wat | 86433 ++++++++-------- tests/compiler/std/uri.release.wat | 2273 +- tests/compiler/super-inline.release.wat | 1563 +- tests/compiler/switch.release.wat | 3497 +- tests/compiler/templateliteral.release.wat | 7492 +- tests/compiler/ternary.release.wat | 16 +- tests/compiler/throw.release.wat | 1578 +- tests/compiler/typealias.release.wat | 122 +- tests/compiler/typeof.release.wat | 1357 +- tests/compiler/unary.release.wat | 2 - tests/compiler/unify-local-flags.release.wat | 16 +- tests/compiler/while.release.wat | 1219 +- tsconfig-base.json | 3 +- 146 files changed, 224707 insertions(+), 224852 deletions(-) diff --git a/package-lock.json b/package-lock.json index ebe2359041..d9b6348f52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "123.0.0-nightly.20250530", + "binaryen": "129.0.0-nightly.20260428", "long": "^5.2.4" }, "bin": { @@ -18,15 +18,15 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@types/node": "^25.5.0", + "@types/node": "^25.6.0", "as-float": "^1.0.1", - "diff": "^8.0.4", - "esbuild": "^0.27.0", - "eslint": "^10.1.0", + "diff": "^9.0.0", + "esbuild": "^0.28.0", + "eslint": "^10.2.1", "glob": "^13.0.6", - "globals": "^17.4.0", - "typescript": "^5.9.3", - "typescript-eslint": "^8.57.2" + "globals": "^17.5.0", + "typescript": "^6.0.3", + "typescript-eslint": "^8.59.0" }, "engines": { "node": ">=20", @@ -38,9 +38,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz", - "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", "cpu": [ "ppc64" ], @@ -55,9 +55,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz", - "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", "cpu": [ "arm" ], @@ -72,9 +72,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz", - "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", "cpu": [ "arm64" ], @@ -89,9 +89,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz", - "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", "cpu": [ "x64" ], @@ -106,9 +106,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz", - "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", "cpu": [ "arm64" ], @@ -123,9 +123,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz", - "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", "cpu": [ "x64" ], @@ -140,9 +140,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz", - "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", "cpu": [ "arm64" ], @@ -157,9 +157,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz", - "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", "cpu": [ "x64" ], @@ -174,9 +174,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz", - "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", "cpu": [ "arm" ], @@ -191,9 +191,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz", - "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", "cpu": [ "arm64" ], @@ -208,9 +208,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz", - "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", "cpu": [ "ia32" ], @@ -225,9 +225,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz", - "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", "cpu": [ "loong64" ], @@ -242,9 +242,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz", - "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", "cpu": [ "mips64el" ], @@ -259,9 +259,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz", - "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", "cpu": [ "ppc64" ], @@ -276,9 +276,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz", - "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", "cpu": [ "riscv64" ], @@ -293,9 +293,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz", - "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", "cpu": [ "s390x" ], @@ -310,9 +310,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz", - "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", "cpu": [ "x64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz", - "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", "cpu": [ "arm64" ], @@ -344,9 +344,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz", - "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", "cpu": [ "x64" ], @@ -361,9 +361,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz", - "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", "cpu": [ "arm64" ], @@ -378,9 +378,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz", - "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", "cpu": [ "x64" ], @@ -395,9 +395,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz", - "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", "cpu": [ "arm64" ], @@ -412,9 +412,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz", - "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", "cpu": [ "x64" ], @@ -429,9 +429,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz", - "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", "cpu": [ "arm64" ], @@ -446,9 +446,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz", - "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", "cpu": [ "ia32" ], @@ -463,9 +463,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz", - "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", "cpu": [ "x64" ], @@ -509,13 +509,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.23.3", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz", - "integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==", + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^3.0.3", + "@eslint/object-schema": "^3.0.5", "debug": "^4.3.1", "minimatch": "^10.2.4" }, @@ -524,22 +524,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz", - "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz", + "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^1.1.1" + "@eslint/core": "^1.2.1" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=24" } }, "node_modules/@eslint/core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz", - "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -571,9 +571,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz", - "integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -581,13 +581,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.6.1.tgz", - "integrity": "sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz", + "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^1.1.1", + "@eslint/core": "^1.2.1", "levn": "^0.4.1" }, "engines": { @@ -668,30 +668,30 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~7.19.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.57.2.tgz", - "integrity": "sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.0.tgz", + "integrity": "sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.57.2", - "@typescript-eslint/type-utils": "8.57.2", - "@typescript-eslint/utils": "8.57.2", - "@typescript-eslint/visitor-keys": "8.57.2", + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/type-utils": "8.59.0", + "@typescript-eslint/utils": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -701,9 +701,9 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.57.2", + "@typescript-eslint/parser": "^8.59.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { @@ -717,16 +717,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.57.2.tgz", - "integrity": "sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.0.tgz", + "integrity": "sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.57.2", - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/typescript-estree": "8.57.2", - "@typescript-eslint/visitor-keys": "8.57.2", + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "debug": "^4.4.3" }, "engines": { @@ -738,18 +738,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.57.2.tgz", - "integrity": "sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.0.tgz", + "integrity": "sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.57.2", - "@typescript-eslint/types": "^8.57.2", + "@typescript-eslint/tsconfig-utils": "^8.59.0", + "@typescript-eslint/types": "^8.59.0", "debug": "^4.4.3" }, "engines": { @@ -760,18 +760,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.57.2.tgz", - "integrity": "sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.0.tgz", + "integrity": "sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/visitor-keys": "8.57.2" + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -782,9 +782,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.57.2.tgz", - "integrity": "sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.0.tgz", + "integrity": "sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==", "dev": true, "license": "MIT", "engines": { @@ -795,21 +795,21 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.57.2.tgz", - "integrity": "sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.0.tgz", + "integrity": "sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/typescript-estree": "8.57.2", - "@typescript-eslint/utils": "8.57.2", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0", + "@typescript-eslint/utils": "8.59.0", "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -820,13 +820,13 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.57.2.tgz", - "integrity": "sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.0.tgz", + "integrity": "sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==", "dev": true, "license": "MIT", "engines": { @@ -838,21 +838,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.57.2.tgz", - "integrity": "sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.0.tgz", + "integrity": "sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.57.2", - "@typescript-eslint/tsconfig-utils": "8.57.2", - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/visitor-keys": "8.57.2", + "@typescript-eslint/project-service": "8.59.0", + "@typescript-eslint/tsconfig-utils": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/visitor-keys": "8.59.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -862,20 +862,20 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.57.2.tgz", - "integrity": "sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.0.tgz", + "integrity": "sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.57.2", - "@typescript-eslint/types": "8.57.2", - "@typescript-eslint/typescript-estree": "8.57.2" + "@typescript-eslint/scope-manager": "8.59.0", + "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -886,17 +886,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.57.2.tgz", - "integrity": "sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.0.tgz", + "integrity": "sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.57.2", + "@typescript-eslint/types": "8.59.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -978,9 +978,9 @@ } }, "node_modules/binaryen": { - "version": "123.0.0-nightly.20250530", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-123.0.0-nightly.20250530.tgz", - "integrity": "sha512-d1zPHBN5YlOd3Ff+OUxvVExuFeh8heSnqe+X3bjItFxGLvn4VGBKmrvv7pgy/cRhrIUGuPW138iaWfDhwjyDqg==", + "version": "129.0.0-nightly.20260428", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-129.0.0-nightly.20260428.tgz", + "integrity": "sha512-RpjRVPZw8NOhkGzx3tTaKYdv4C+zO1VVI0VB9GSCNLM81flHOAZUwRJTLDM3Hqco3OmwB8hTLpkkpMSJjUfHXw==", "license": "Apache-2.0", "bin": { "wasm-as": "bin/wasm-as", @@ -1048,9 +1048,9 @@ "license": "MIT" }, "node_modules/diff": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", - "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", + "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -1058,9 +1058,9 @@ } }, "node_modules/esbuild": { - "version": "0.27.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz", - "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1071,32 +1071,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.4", - "@esbuild/android-arm": "0.27.4", - "@esbuild/android-arm64": "0.27.4", - "@esbuild/android-x64": "0.27.4", - "@esbuild/darwin-arm64": "0.27.4", - "@esbuild/darwin-x64": "0.27.4", - "@esbuild/freebsd-arm64": "0.27.4", - "@esbuild/freebsd-x64": "0.27.4", - "@esbuild/linux-arm": "0.27.4", - "@esbuild/linux-arm64": "0.27.4", - "@esbuild/linux-ia32": "0.27.4", - "@esbuild/linux-loong64": "0.27.4", - "@esbuild/linux-mips64el": "0.27.4", - "@esbuild/linux-ppc64": "0.27.4", - "@esbuild/linux-riscv64": "0.27.4", - "@esbuild/linux-s390x": "0.27.4", - "@esbuild/linux-x64": "0.27.4", - "@esbuild/netbsd-arm64": "0.27.4", - "@esbuild/netbsd-x64": "0.27.4", - "@esbuild/openbsd-arm64": "0.27.4", - "@esbuild/openbsd-x64": "0.27.4", - "@esbuild/openharmony-arm64": "0.27.4", - "@esbuild/sunos-x64": "0.27.4", - "@esbuild/win32-arm64": "0.27.4", - "@esbuild/win32-ia32": "0.27.4", - "@esbuild/win32-x64": "0.27.4" + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" } }, "node_modules/escape-string-regexp": { @@ -1113,18 +1113,18 @@ } }, "node_modules/eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.1.0.tgz", - "integrity": "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.2.1.tgz", + "integrity": "sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", - "@eslint/config-array": "^0.23.3", - "@eslint/config-helpers": "^0.5.3", - "@eslint/core": "^1.1.1", - "@eslint/plugin-kit": "^0.6.1", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.5.5", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -1412,9 +1412,9 @@ } }, "node_modules/globals": { - "version": "17.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", - "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", + "version": "17.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", + "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", "dev": true, "license": "MIT", "engines": { @@ -1748,14 +1748,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -1791,9 +1791,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -1805,16 +1805,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.57.2", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.57.2.tgz", - "integrity": "sha512-VEPQ0iPgWO/sBaZOU1xo4nuNdODVOajPnTIbog2GKYr31nIlZ0fWPoCQgGfF3ETyBl1vn63F/p50Um9Z4J8O8A==", + "version": "8.59.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.0.tgz", + "integrity": "sha512-BU3ONW9X+v90EcCH9ZS6LMackcVtxRLlI3XrYyqZIwVSHIk7Qf7bFw1z0M9Q0IUxhTMZCf8piY9hTYaNEIASrw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.57.2", - "@typescript-eslint/parser": "8.57.2", - "@typescript-eslint/typescript-estree": "8.57.2", - "@typescript-eslint/utils": "8.57.2" + "@typescript-eslint/eslint-plugin": "8.59.0", + "@typescript-eslint/parser": "8.59.0", + "@typescript-eslint/typescript-estree": "8.59.0", + "@typescript-eslint/utils": "8.59.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1825,13 +1825,13 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index f1ed7f85d1..47b23f9761 100644 --- a/package.json +++ b/package.json @@ -25,20 +25,20 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "123.0.0-nightly.20250530", + "binaryen": "129.0.0-nightly.20260428", "long": "^5.2.4" }, "devDependencies": { "@eslint/js": "^10.0.1", - "@types/node": "^25.5.0", + "@types/node": "^25.6.0", "as-float": "^1.0.1", - "diff": "^8.0.4", - "esbuild": "^0.27.0", - "eslint": "^10.1.0", + "diff": "^9.0.0", + "esbuild": "^0.28.0", + "eslint": "^10.2.1", "glob": "^13.0.6", - "globals": "^17.4.0", - "typescript": "^5.9.3", - "typescript-eslint": "^8.57.2" + "globals": "^17.5.0", + "typescript": "^6.0.3", + "typescript-eslint": "^8.59.0" }, "type": "module", "exports": { @@ -74,7 +74,7 @@ "scripts": { "check": "npm run check:config && npm run check:import && npm run lint", "check:config": "tsc --noEmit -p src --diagnostics --listFiles", - "check:import": "tsc --noEmit --target ESNEXT --module nodenext --moduleResolution nodenext --experimentalDecorators tests/import/index", + "check:import": "tsc --noEmit --skipLibCheck --target ESNEXT --module nodenext --moduleResolution nodenext --experimentalDecorators tests/import/index", "lint": "eslint --max-warnings 0 --ext js . && eslint --max-warnings 0 --ext ts .", "build": "node scripts/build", "watch": "node scripts/build --watch", diff --git a/scripts/build-dts.js b/scripts/build-dts.js index 0493075824..979db546a9 100644 --- a/scripts/build-dts.js +++ b/scripts/build-dts.js @@ -319,9 +319,11 @@ const prefix = "types:assemblyscript"; export function generateSrc() { const stdout = []; + const pathToSources = pathUtil.resolve(__dirname, "..", "src"); generate({ - project: pathUtil.resolve(__dirname, "..", "src"), + project: pathToSources, + baseDir: pathToSources, prefix, exclude: [ "glue/**", diff --git a/src/common.ts b/src/common.ts index 3cc25a0845..f5336f0479 100644 --- a/src/common.ts +++ b/src/common.ts @@ -191,6 +191,7 @@ export namespace CommonNames { export const ASC_FEATURE_RELAXED_SIMD = "ASC_FEATURE_RELAXED_SIMD"; export const ASC_FEATURE_EXTENDED_CONST = "ASC_FEATURE_EXTENDED_CONST"; export const ASC_FEATURE_STRINGREF = "ASC_FEATURE_STRINGREF"; + export const ASC_FEATURE_SHARED_EVERYTHING = "ASC_FEATURE_SHARED_EVERYTHING"; export const ASC_VERSION_MAJOR = "ASC_VERSION_MAJOR"; export const ASC_VERSION_MINOR = "ASC_VERSION_MINOR"; export const ASC_VERSION_PATCH = "ASC_VERSION_PATCH"; diff --git a/src/compiler.ts b/src/compiler.ts index 7e4c3c9c40..87ec94adfb 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -325,8 +325,10 @@ export class Options { /** Sets whether a feature is enabled. */ setFeature(feature: Feature, on: bool = true): void { if (on) { + // Enabling Shared Everything also enables Threads and GC + if (feature & Feature.SharedEverything) feature |= Feature.Threads | Feature.GC; // Enabling Stringref also enables GC - if (feature & Feature.Stringref) feature |= Feature.GC; + if (feature & Feature.Strings) feature |= Feature.GC; // Enabling GC also enables Reference Types if (feature & Feature.GC) feature |= Feature.ReferenceTypes; // Enabling Relaxed SIMD also enables SIMD @@ -336,9 +338,11 @@ export class Options { // Disabling Reference Types also disables GC if (feature & Feature.ReferenceTypes) feature |= Feature.GC; // Disabling GC also disables Stringref - if (feature & Feature.GC) feature |= Feature.Stringref; + if (feature & Feature.GC) feature |= Feature.Strings; // Disabling SIMD also disables Relaxed SIMD if (feature & Feature.Simd) feature |= Feature.RelaxedSimd; + // Disabling Threads or GC also disables Shared Everything + if (feature & (Feature.Threads | Feature.GC)) feature |= Feature.SharedEverything; this.features &= ~feature; } } @@ -515,7 +519,8 @@ export class Compiler extends DiagnosticEmitter { if (options.hasFeature(Feature.Memory64)) featureFlags |= FeatureFlags.Memory64; if (options.hasFeature(Feature.RelaxedSimd)) featureFlags |= FeatureFlags.RelaxedSIMD; if (options.hasFeature(Feature.ExtendedConst)) featureFlags |= FeatureFlags.ExtendedConst; - if (options.hasFeature(Feature.Stringref)) featureFlags |= FeatureFlags.Stringref; + if (options.hasFeature(Feature.Strings)) featureFlags |= FeatureFlags.Strings; + if (options.hasFeature(Feature.SharedEverything)) featureFlags |= FeatureFlags.SharedEverything; module.setFeatures(featureFlags); // set up the main start function @@ -534,10 +539,16 @@ export class Compiler extends DiagnosticEmitter { let resolver = this.resolver; let hasShadowStack = options.stackSize > 0; // implies runtime=incremental + // Register a dummy memory so Binaryen's EffectAnalyzer can read + // memory.shared on loads/stores emitted during compilation. The real + // memory is installed by `initDefaultMemory` below, which can't run + // here: it needs `memoryOffset` (known only after data layout) and + // emits diagnostics / exports that must happen exactly once. + this.initDummyMemory(); + // initialize lookup maps, built-ins, imports, exports, etc. this.program.initialize(); - // Binaryen treats all function references as being leaked to the outside world when // the module isn't marked as closed-world (see WebAssembly/binaryen#7135). Therefore, // we should mark the module as closed-world when we're definitely sure it is. @@ -762,6 +773,19 @@ export class Compiler extends DiagnosticEmitter { return module; } + private initDummyMemory(): void { + let options = this.options; + this.module.setMemory( + 0, + Module.UNLIMITED_MEMORY, + [], + options.target, + null, + CommonNames.DefaultMemory, + options.sharedMemory + ); + } + private initDefaultMemory(memoryOffset: i64): void { this.memoryOffset = memoryOffset; @@ -1524,7 +1548,7 @@ export class Compiler extends DiagnosticEmitter { private ensureEnumToString(enumElement: Enum, reportNode: Node): string | null { if (enumElement.toStringFunctionName) return enumElement.toStringFunctionName; - + if (!this.compileEnum(enumElement)) return null; if (enumElement.is(CommonFlags.Const)) { this.errorRelated( @@ -2583,7 +2607,7 @@ export class Compiler extends DiagnosticEmitter { // (then │ │ (body) │ // (?block $continue │ │ if loops: (incrementor) ─────┘ // (body) │ │ recompile body? - // ) ├◄┘ + // ) ├◄┘ // (incrementor) ┌◄┘ // (br $loop) // ) @@ -2872,17 +2896,17 @@ export class Compiler extends DiagnosticEmitter { // Compile the condition (always executes) let condExpr = this.compileExpression(statement.condition, Type.auto); let condType = this.currentType; - + // Shortcut if there are no cases if (!numCases) return module.drop(condExpr); - + // Assign the condition to a temporary local as we compare it multiple times let outerFlow = this.currentFlow; let tempLocal = outerFlow.getTempLocal(condType); let tempLocalIndex = tempLocal.index; let breaks = new Array(1 + numCases); breaks[0] = module.local_set(tempLocalIndex, condExpr, condType.isManaged); - + // Make one br_if per labeled case and leave it to Binaryen to optimize the // sequence of br_ifs to a br_table according to optimization levels let breakIndex = 1; @@ -2894,7 +2918,7 @@ export class Compiler extends DiagnosticEmitter { defaultIndex = i; continue; } - + // Compile the equality expression for this case const left = statement.condition; const leftExpr = module.local_get(tempLocalIndex, condType.toRef()); @@ -2909,7 +2933,7 @@ export class Compiler extends DiagnosticEmitter { condType, statement ); - + // Add it to the list of breaks breaks[breakIndex++] = module.br(`case${i}|${label}`, equalityExpr); } @@ -3863,7 +3887,7 @@ export class Compiler extends DiagnosticEmitter { expression: BinaryExpression, contextualType: Type, ): ExpressionRef { - + const left = expression.left; const leftExpr = this.compileExpression(left, contextualType); const leftType = this.currentType; @@ -3881,9 +3905,9 @@ export class Compiler extends DiagnosticEmitter { ); } - /** + /** * compile `==` `===` `!=` `!==` BinaryExpression, from previously compiled left and right expressions. - * + * * This is split from `compileCommutativeCompareBinaryExpression` so that the logic can be reused * for switch cases in `compileSwitchStatement`, where the left expression only should be compiled once. */ @@ -3901,7 +3925,7 @@ export class Compiler extends DiagnosticEmitter { let module = this.module; let operatorString = operatorTokenToString(operator); - + // check operator overload const operatorKind = OperatorKind.fromBinaryToken(operator); const leftOverload = leftType.lookupOverload(operatorKind, this.program); @@ -3909,7 +3933,7 @@ export class Compiler extends DiagnosticEmitter { if (leftOverload && rightOverload && leftOverload != rightOverload) { this.error( DiagnosticCode.Ambiguous_operator_overload_0_conflicting_overloads_1_and_2, - reportNode.range, + reportNode.range, operatorString, leftOverload.internalName, rightOverload.internalName @@ -3999,7 +4023,7 @@ export class Compiler extends DiagnosticEmitter { leftExpr = this.compileExpression(left, contextualType); leftType = this.currentType; - + // check operator overload const operatorKind = OperatorKind.fromBinaryToken(operator); const leftOverload = leftType.lookupOverload(operatorKind, this.program); @@ -4070,7 +4094,7 @@ export class Compiler extends DiagnosticEmitter { return this.compileNonCommutativeCompareBinaryExpression(expression, contextualType); } case Token.Equals_Equals_Equals: - case Token.Equals_Equals: + case Token.Equals_Equals: case Token.Exclamation_Equals_Equals: case Token.Exclamation_Equals: { return this.compileCommutativeCompareBinaryExpression(expression, contextualType); @@ -6352,13 +6376,13 @@ export class Compiler extends DiagnosticEmitter { if (numArguments < numParams) { return argumentExpressions; } - + // make an array literal expression from the rest args let elements = argumentExpressions.slice(numParams - 1); let range = new Range(elements[0].range.start, elements[elements.length - 1].range.end); range.source = reportNode.range.source; let arrExpr = new ArrayLiteralExpression(elements, range); - + // return the original args, but replace the rest args with the array const exprs = argumentExpressions.slice(0, numParams - 1); exprs.push(arrExpr); @@ -6622,9 +6646,9 @@ export class Compiler extends DiagnosticEmitter { let initializer = declaration.initializer; let initExpr: ExpressionRef; if (declaration.parameterKind === ParameterKind.Rest) { - const arrExpr = new ArrayLiteralExpression([], declaration.range.atEnd); + const arrExpr = new ArrayLiteralExpression([], declaration.range.atEnd); initExpr = this.compileArrayLiteral(arrExpr, type, Constraints.ConvExplicit); - initExpr = module.local_set(operandIndex, initExpr, type.isManaged); + initExpr = module.local_set(operandIndex, initExpr, type.isManaged); } else if (initializer) { initExpr = this.compileExpression( initializer, @@ -7869,7 +7893,7 @@ export class Compiler extends DiagnosticEmitter { 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)); } diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index fdc2bd7492..347428aa8b 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -18,6 +18,7 @@ export type Op = i32; export type ExternalKind = u32; export type SideEffects = u32; export type ExpressionRunnerFlags = u32; +export type MemoryOrder = u32; export type StringRef = Ref; export type Pointer = Ref; @@ -95,12 +96,12 @@ export declare function _BinaryenModuleDispose(module: ModuleRef): void; export declare function _BinaryenSizeofLiteral(): usize; export declare function _BinaryenLiteralInt32(literalOut: LiteralRef, x: i32): void; -export declare function _BinaryenLiteralInt64(literalOut: LiteralRef, x: i32, y: i32): void; +export declare function _BinaryenLiteralInt64(literalOut: LiteralRef, value: i64): void; export declare function _BinaryenLiteralFloat32(literalOut: LiteralRef, x: f32): void; export declare function _BinaryenLiteralFloat64(literalOut: LiteralRef, x: f64): void; export declare function _BinaryenLiteralVec128(literalOut: LiteralRef, x: ArrayRef): void; export declare function _BinaryenLiteralFloat32Bits(literalOut: LiteralRef, x: i32): void; -export declare function _BinaryenLiteralFloat64Bits(literalOut: LiteralRef, x: i32, y: i32): void; +export declare function _BinaryenLiteralFloat64Bits(literalOut: LiteralRef, value: i64): void; export declare function _BinaryenExpressionGetId(expr: ExpressionRef): ExpressionId; export declare function _BinaryenExpressionGetType(expr: ExpressionRef): TypeRef; @@ -228,7 +229,7 @@ export declare function _BinaryenLoadSetAlign(expr: ExpressionRef, align: u32): export declare function _BinaryenLoadGetPtr(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenLoadSetPtr(expr: ExpressionRef, ptrExpr: ExpressionRef): void; // ^ with atomic = true -export declare function _BinaryenAtomicLoad(module: ModuleRef, bytes: Index, offset: Index, type: TypeRef, ptrExpr: ExpressionRef, memoryName: StringRef): ExpressionRef; +export declare function _BinaryenAtomicLoad(module: ModuleRef, bytes: Index, offset: Index, type: TypeRef, ptrExpr: ExpressionRef, memoryName: StringRef, memoryOrder: MemoryOrder): ExpressionRef; export declare function _BinaryenStore(module: ModuleRef, bytes: u32, offset: u32, align: u32, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef): ExpressionRef; export declare function _BinaryenStoreIsAtomic(expr: ExpressionRef): bool; @@ -246,15 +247,13 @@ export declare function _BinaryenStoreSetValue(expr: ExpressionRef, valueExpr: E export declare function _BinaryenStoreGetValueType(expr: ExpressionRef): TypeRef; export declare function _BinaryenStoreSetValueType(expr: ExpressionRef, valueType: TypeRef): void; // ^ with atomic = true -export declare function _BinaryenAtomicStore(module: ModuleRef, bytes: Index, offset: Index, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef): ExpressionRef; +export declare function _BinaryenAtomicStore(module: ModuleRef, bytes: Index, offset: Index, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef, memoryOrder: MemoryOrder): ExpressionRef; export declare function _BinaryenConst(module: ModuleRef, value: LiteralRef): ExpressionRef; export declare function _BinaryenConstGetValueI32(expr: ExpressionRef): i32; export declare function _BinaryenConstSetValueI32(expr: ExpressionRef, value: i32): void; -export declare function _BinaryenConstGetValueI64Low(expr: ExpressionRef): i32; -export declare function _BinaryenConstSetValueI64Low(expr: ExpressionRef, value: i32): void; -export declare function _BinaryenConstGetValueI64High(expr: ExpressionRef): i32; -export declare function _BinaryenConstSetValueI64High(expr: ExpressionRef, value: i32): void; +export declare function _BinaryenConstGetValueI64(expr: ExpressionRef): i64; +export declare function _BinaryenConstSetValueI64(expr: ExpressionRef, value: i64): void; export declare function _BinaryenConstGetValueF32(expr: ExpressionRef): f32; export declare function _BinaryenConstSetValueF32(expr: ExpressionRef, value: f32): void; export declare function _BinaryenConstGetValueF64(expr: ExpressionRef): f64; @@ -296,7 +295,7 @@ export declare function _BinaryenNop(module: ModuleRef): ExpressionRef; export declare function _BinaryenUnreachable(module: ModuleRef): ExpressionRef; -export declare function _BinaryenAtomicRMW(module: ModuleRef, op: Op, bytes: u32, offset: u32, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef): ExpressionRef; +export declare function _BinaryenAtomicRMW(module: ModuleRef, op: Op, bytes: u32, offset: u32, ptrExpr: ExpressionRef, valueExpr: ExpressionRef, type: TypeRef, memoryName: StringRef, memoryOrder: MemoryOrder): ExpressionRef; export declare function _BinaryenAtomicRMWGetOp(expr: ExpressionRef): Op; export declare function _BinaryenAtomicRMWSetOp(expr: ExpressionRef, op: Op): void; export declare function _BinaryenAtomicRMWGetBytes(expr: ExpressionRef): u32; @@ -308,7 +307,7 @@ export declare function _BinaryenAtomicRMWSetPtr(expr: ExpressionRef, ptrExpr: E export declare function _BinaryenAtomicRMWGetValue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenAtomicRMWSetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; -export declare function _BinaryenAtomicCmpxchg(module: ModuleRef, bytes: u32, offset: u32, ptrExpr: ExpressionRef, expectedExpr: ExpressionRef, replacementExpr: ExpressionRef, type: TypeRef, memoryName: StringRef): ExpressionRef; +export declare function _BinaryenAtomicCmpxchg(module: ModuleRef, bytes: u32, offset: u32, ptrExpr: ExpressionRef, expectedExpr: ExpressionRef, replacementExpr: ExpressionRef, type: TypeRef, memoryName: StringRef, memoryOrder: MemoryOrder): ExpressionRef; export declare function _BinaryenAtomicCmpxchgGetBytes(expr: ExpressionRef): u32; export declare function _BinaryenAtomicCmpxchgSetBytes(expr: ExpressionRef, bytes: u32): void; export declare function _BinaryenAtomicCmpxchgGetOffset(expr: ExpressionRef): u32; diff --git a/src/glue/binaryen.js b/src/glue/binaryen.js index 295afb7635..4caf71afbb 100644 --- a/src/glue/binaryen.js +++ b/src/glue/binaryen.js @@ -4,6 +4,7 @@ */ import binaryen from "../../lib/binaryen.js"; +import Long from "long"; export const { _BinaryenTypeCreate, @@ -60,12 +61,10 @@ export const { _BinaryenSizeofLiteral, _BinaryenLiteralInt32, - _BinaryenLiteralInt64, _BinaryenLiteralFloat32, _BinaryenLiteralFloat64, _BinaryenLiteralVec128, _BinaryenLiteralFloat32Bits, - _BinaryenLiteralFloat64Bits, _BinaryenExpressionGetId, _BinaryenExpressionGetType, @@ -211,10 +210,6 @@ export const { _BinaryenConst, _BinaryenConstGetValueI32, _BinaryenConstSetValueI32, - _BinaryenConstGetValueI64Low, - _BinaryenConstSetValueI64Low, - _BinaryenConstGetValueI64High, - _BinaryenConstSetValueI64High, _BinaryenConstGetValueF32, _BinaryenConstSetValueF32, _BinaryenConstGetValueF64, @@ -918,4 +913,32 @@ export const { } = binaryen; +// Shims for C-API functions whose Emscripten binding now uses BigInt for i64 +// parameters (built with -sWASM_BIGINT). In portable/JS mode AssemblyScript +// represents i64 as Long, so we convert between Long and BigInt here. + +function toBigInt(long) { + return (BigInt(long.high | 0) << 32n) | BigInt(long.low >>> 0); +} + +function toLong(bign) { + return Long.fromBits(Number(bign & 0xFFFFFFFFn) | 0, Number(bign >> 32n) | 0); +} + +export function _BinaryenLiteralInt64(lit, val) { + return binaryen._BinaryenLiteralInt64(lit, toBigInt(val)); +} + +export function _BinaryenLiteralFloat64Bits(lit, val) { + return binaryen._BinaryenLiteralFloat64Bits(lit, toBigInt(val)); +} + +export function _BinaryenConstGetValueI64(expr) { + return toLong(binaryen._BinaryenConstGetValueI64(expr)); +} + +export function _BinaryenConstSetValueI64(expr, val) { + binaryen._BinaryenConstSetValueI64(expr, toBigInt(val)); +} + export default binaryen; diff --git a/src/index-wasm.ts b/src/index-wasm.ts index ec51de73da..b448aa0ae4 100644 --- a/src/index-wasm.ts +++ b/src/index-wasm.ts @@ -201,7 +201,9 @@ export const FEATURE_RELAXED_SIMD = Feature.RelaxedSimd; /** Extended const expressions. */ export const FEATURE_EXTENDED_CONST = Feature.ExtendedConst; /** String references. */ -export const FEATURE_STRINGREF = Feature.Stringref; +export const FEATURE_STRINGREF = Feature.Strings; +/** Shared-everything threads. */ +export const FEATURE_SHARED_EVERYTHING = Feature.SharedEverything; /** All features. */ export const FEATURES_ALL = Feature.All; /** Default features. */ diff --git a/src/module.ts b/src/module.ts index 2719f60c50..79efc7896e 100644 --- a/src/module.ts +++ b/src/module.ts @@ -210,14 +210,18 @@ export const enum FeatureFlags { Memory64 = 2048 /* _BinaryenFeatureMemory64 */, RelaxedSIMD = 4096 /* _BinaryenFeatureRelaxedSIMD */, ExtendedConst = 8192 /* _BinaryenFeatureExtendedConst */, - Stringref = 16384 /* _BinaryenFeatureStrings */, + Strings = 16384 /* _BinaryenFeatureStrings */, MultiMemory = 32768 /* _BinaryenFeatureMultiMemory */, StackSwitching = 65536 /* _BinaryenFeatureStackSwitching */, SharedEverything = 131072 /* _BinaryenFeatureSharedEverything */, FP16 = 262144 /* _BinaryenFeatureFP16 */, BulkMemoryOpt = 524288 /* _BinaryenFeatureBulkMemoryOpt */, CallIndirectOverlong = 1048576 /* _BinaryenFeatureCallIndirectOverlong */, - All = 4194303 /* _BinaryenFeatureAll */ + RelaxedAtomics = 4194304 /* _BinaryenFeatureRelaxedAtomics */, + CustomPageSizes = 8388608 /* _BinaryenFeatureCustomPageSizes */, + Multibyte = 16777216 /* _BinaryenFeatureMultibyte */, + WideArithmetic = 33554432 /* _BinaryenFeatureWideArithmetic */, + All = 67108863 /* _BinaryenFeatureAll */ } /** Binaryen expression id constants. See wasm-delegations.def in Binaryen. */ @@ -251,74 +255,83 @@ export const enum ExpressionId { AtomicWait = 26 /* _BinaryenAtomicWaitId */, AtomicNotify = 27 /* _BinaryenAtomicNotifyId */, AtomicFence = 28 /* _BinaryenAtomicFenceId */, - SIMDExtract = 29 /* _BinaryenSIMDExtractId */, - SIMDReplace = 30 /* _BinaryenSIMDReplaceId */, - SIMDShuffle = 31 /* _BinaryenSIMDShuffleId */, - SIMDTernary = 32 /* _BinaryenSIMDTernaryId */, - SIMDShift = 33 /* _BinaryenSIMDShiftId */, - SIMDLoad = 34 /* _BinaryenSIMDLoadId */, - SIMDLoadStoreLane = 35 /* _BinaryenSIMDLoadStoreLaneId */, - MemoryInit = 36 /* _BinaryenMemoryInitId */, - DataDrop = 37 /* _BinaryenDataDropId */, - MemoryCopy = 38 /* _BinaryenMemoryCopyId */, - MemoryFill = 39 /* _BinaryenMemoryFillId */, - Pop = 40 /* _BinaryenPopId */, - RefNull = 41 /* _BinaryenRefNullId */, - RefIsNull = 42 /* _BinaryenRefIsNullId */, - RefFunc = 43 /* _BinaryenRefFuncId */, - RefEq = 44 /* _BinaryenRefEqId */, - TableGet = 45 /* _BinaryenTableGetId */, - TableSet = 46 /* _BinaryenTableSetId */, - TableSize = 47 /* _BinaryenTableSizeId */, - TableGrow = 48 /* _BinaryenTableGrowId */, - TableFill = 49 /* _BinaryenTableFillId */, - TableCopy = 50 /* _BinaryenTableCopyId */, - TableInit = 51 /* _BinaryenTableInitId */, - Try = 52 /* _BinaryenTryId */, - TryTable = 53 /* _BinaryenTryTableId */, - Throw = 54 /* _BinaryenThrowId */, - Rethrow = 55 /* _BinaryenRethrowId */, - ThrowRef = 56 /* _BinaryenThrowRefId */, - TupleMake = 57 /* _BinaryenTupleMakeId */, - TupleExtract = 58 /* _BinaryenTupleExtractId */, - RefI31 = 59 /* _BinaryenRefI31Id */, - I31Get = 60 /* _BinaryenI31GetId */, - CallRef = 61 /* _BinaryenCallRefId */, - RefTest = 62 /* _BinaryenRefTestId */, - RefCast = 63 /* _BinaryenRefCastId */, - RefGetDesc = 64 /* _BinaryenRefGetDescId */, - BrOn = 65 /* _BinaryenBrOnId */, - StructNew = 66 /* _BinaryenStructNewId */, - StructGet = 67 /* _BinaryenStructGetId */, - StructSet = 68 /* _BinaryenStructSetId */, - StructRMW = 69 /* _BinaryenStructRMWId */, - StructCmpxchg = 70 /* _BinaryenStructCmpxchgId */, - ArrayNew = 71 /* _BinaryenArrayNewId */, - ArrayNewData = 72 /* _BinaryenArrayNewDataId */, - ArrayNewElem = 73 /* _BinaryenArrayNewElemId */, - ArrayNewFixed = 74 /* _BinaryenArrayNewFixedId */, - ArrayGet = 75 /* _BinaryenArrayGetId */, - ArraySet = 76 /* _BinaryenArraySetId */, - ArrayLen = 77 /* _BinaryenArrayLenId */, - ArrayCopy = 78 /* _BinaryenArrayCopyId */, - ArrayFill = 79 /* _BinaryenArrayFillId */, - ArrayInitData = 80 /* _BinaryenArrayInitDataId */, - ArrayInitElem = 81 /* _BinaryenArrayInitElemId */, - RefAs = 82 /* _BinaryenRefAsId */, - StringNew = 83 /* _BinaryenStringNewId */, - StringConst = 84 /* _BinaryenStringConstId */, - StringMeasure = 85 /* _BinaryenStringMeasureId */, - StringEncode = 86 /* _BinaryenStringEncodeId */, - StringConcat = 87 /* _BinaryenStringConcatId */, - StringEq = 88 /* _BinaryenStringEqId */, - StringWTF16Get = 89 /* _BinaryenStringWTF16GetId */, - StringSliceWTF = 90 /* _BinaryenStringSliceWTFId */, - ContNew = 91 /* _BinaryenContNewId */, - ContBind = 92 /* _BinaryenContBindId */, - Suspend = 93 /* _BinaryenSuspendId */, - Resume = 94 /* _BinaryenResumeId */, - ResumeThrow = 95 /* _BinaryenResumeThrowId */, - StackSwitch = 96 /* _BinaryenStackSwitchId */ + Pause = 29 /* _BinaryenPauseId */, + SIMDExtract = 30 /* _BinaryenSIMDExtractId */, + SIMDReplace = 31 /* _BinaryenSIMDReplaceId */, + SIMDShuffle = 32 /* _BinaryenSIMDShuffleId */, + SIMDTernary = 33 /* _BinaryenSIMDTernaryId */, + SIMDShift = 34 /* _BinaryenSIMDShiftId */, + SIMDLoad = 35 /* _BinaryenSIMDLoadId */, + SIMDLoadStoreLane = 36 /* _BinaryenSIMDLoadStoreLaneId */, + MemoryInit = 37 /* _BinaryenMemoryInitId */, + DataDrop = 38 /* _BinaryenDataDropId */, + MemoryCopy = 39 /* _BinaryenMemoryCopyId */, + MemoryFill = 40 /* _BinaryenMemoryFillId */, + Pop = 41 /* _BinaryenPopId */, + RefNull = 42 /* _BinaryenRefNullId */, + RefIsNull = 43 /* _BinaryenRefIsNullId */, + RefFunc = 44 /* _BinaryenRefFuncId */, + RefEq = 45 /* _BinaryenRefEqId */, + TableGet = 46 /* _BinaryenTableGetId */, + TableSet = 47 /* _BinaryenTableSetId */, + TableSize = 48 /* _BinaryenTableSizeId */, + TableGrow = 49 /* _BinaryenTableGrowId */, + TableFill = 50 /* _BinaryenTableFillId */, + TableCopy = 51 /* _BinaryenTableCopyId */, + TableInit = 52 /* _BinaryenTableInitId */, + ElemDrop = 53 /* _BinaryenElemDropId */, + Try = 54 /* _BinaryenTryId */, + TryTable = 55 /* _BinaryenTryTableId */, + Throw = 56 /* _BinaryenThrowId */, + Rethrow = 57 /* _BinaryenRethrowId */, + ThrowRef = 58 /* _BinaryenThrowRefId */, + TupleMake = 59 /* _BinaryenTupleMakeId */, + TupleExtract = 60 /* _BinaryenTupleExtractId */, + RefI31 = 61 /* _BinaryenRefI31Id */, + I31Get = 62 /* _BinaryenI31GetId */, + CallRef = 63 /* _BinaryenCallRefId */, + RefTest = 64 /* _BinaryenRefTestId */, + RefCast = 65 /* _BinaryenRefCastId */, + RefGetDesc = 66 /* _BinaryenRefGetDescId */, + BrOn = 67 /* _BinaryenBrOnId */, + StructNew = 68 /* _BinaryenStructNewId */, + StructGet = 69 /* _BinaryenStructGetId */, + StructSet = 70 /* _BinaryenStructSetId */, + StructRMW = 71 /* _BinaryenStructRMWId */, + StructCmpxchg = 72 /* _BinaryenStructCmpxchgId */, + ArrayNew = 73 /* _BinaryenArrayNewId */, + ArrayNewData = 74 /* _BinaryenArrayNewDataId */, + ArrayNewElem = 75 /* _BinaryenArrayNewElemId */, + ArrayNewFixed = 76 /* _BinaryenArrayNewFixedId */, + ArrayGet = 77 /* _BinaryenArrayGetId */, + ArraySet = 78 /* _BinaryenArraySetId */, + ArrayLoad = 79 /* _BinaryenArrayLoadId */, + ArrayStore = 80 /* _BinaryenArrayStoreId */, + ArrayLen = 81 /* _BinaryenArrayLenId */, + ArrayCopy = 82 /* _BinaryenArrayCopyId */, + ArrayFill = 83 /* _BinaryenArrayFillId */, + ArrayInitData = 84 /* _BinaryenArrayInitDataId */, + ArrayInitElem = 85 /* _BinaryenArrayInitElemId */, + ArrayRMW = 86 /* _BinaryenArrayRMWId */, + ArrayCmpxchg = 87 /* _BinaryenArrayCmpxchgId */, + RefAs = 88 /* _BinaryenRefAsId */, + StringNew = 89 /* _BinaryenStringNewId */, + StringConst = 90 /* _BinaryenStringConstId */, + StringMeasure = 91 /* _BinaryenStringMeasureId */, + StringEncode = 92 /* _BinaryenStringEncodeId */, + StringConcat = 93 /* _BinaryenStringConcatId */, + StringEq = 94 /* _BinaryenStringEqId */, + StringTest = 95 /* _BinaryenStringTestId */, + StringWTF16Get = 96 /* _BinaryenStringWTF16GetId */, + StringSliceWTF = 97 /* _BinaryenStringSliceWTFId */, + ContNew = 98 /* _BinaryenContNewId */, + ContBind = 99 /* _BinaryenContBindId */, + Suspend = 100 /* _BinaryenSuspendId */, + Resume = 101 /* _BinaryenResumeId */, + ResumeThrow = 102 /* _BinaryenResumeThrowId */, + StackSwitch = 103 /* _BinaryenStackSwitchId */, + StructWait = 104 /* _BinaryenStructWaitId */, + StructNotify = 105 /* _BinaryenStructNotifyId */ } /** Binaryen external kind constants. */ @@ -330,6 +343,16 @@ export const enum ExternalKind { Tag = 4 /* _BinaryenExternalTag */ } +/** Binaryen memory order constants for atomic operations. */ +export const enum MemoryOrder { + /** Non-atomic access. */ + Unordered = 0 /* _BinaryenMemoryOrderUnordered */, + /** Sequentially consistent atomic memory operation. */ + SeqCst = 1 /* _BinaryenMemoryOrderSeqCst */, + /** Acquire/Release atomic memory operation; acquire for loads, release for stores. */ + AcqRel = 2 /* _BinaryenMemoryOrderAcqRel */ +} + /** Binaryen unary operation constants. */ export const enum UnaryOp { /** i32.clz */ @@ -511,7 +534,7 @@ export const enum UnaryOp { AllTrueI64x2 = 83 /* _BinaryenAllTrueVecI64x2 */, /** i64x2.bitmask */ BitmaskI64x2 = 84 /* _BinaryenBitmaskVecI64x2 */, - // FIXME FIXME FIXME DONT FORGET TODO: F16 (not in C API yet) + // FIXME: f16x8 abs/neg/sqrt/ceil/floor/trunc/nearest (85..91) are in wasm.h but not yet exported via C API /** f32x4.abs */ AbsF32x4 = 92 /* _BinaryenAbsVecF32x4 */, /** f32x4.neg */ @@ -600,8 +623,15 @@ export const enum UnaryOp { RelaxedTruncF64x2ToI32x4Zero = 134 /* _BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4 */, /** i32x4.relaxed_trunc_f64x2_u_zero */ RelaxedTruncF64x2ToU32x4Zero = 135 /* _BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4 */, + // FIXME: f16x8 splat/trunc_sat/convert (136..140) are in wasm.h but not yet exported via C API + /** f32x4.promote_low_f16x8 */ + PromoteLowF16x8ToF32x4 = 141 /* _BinaryenPromoteLowVecF16x8ToVecF32x4 */, + /** f16x8.demote_f32x4_zero */ + // DemoteZeroF32x4ToF16x8 = 142 /* TODO_BinaryenDemoteZeroVecF32x4ToVecF16x8 */, + /** f16x8.demote_f64x2_zero */ + // DemoteZeroF64x2ToF16x8 = 143 /* TODO_BinaryeDemoteZeroVecF64x2ToVecF16x8 */, - _last = RelaxedTruncF64x2ToU32x4Zero, + _last = PromoteLowF16x8ToF32x4, // Target dependent @@ -844,6 +874,7 @@ export const enum BinaryOp { LeI64x2 = 110 /* _BinaryenLeSVecI64x2 */, /** i64x2.ge_s */ GeI64x2 = 111 /* _BinaryenGeSVecI64x2 */, + // FIXME: f16x8 compare ops (eq/ne/lt/gt/le/ge = 112..117) are in wasm.h but not yet exported via C API /** f32x4.eq */ EqF32x4 = 118 /* _BinaryenEqVecF32x4 */, /** f32x4.ne */ @@ -970,6 +1001,7 @@ export const enum BinaryOp { ExtmulLowU64x2 = 179 /* _BinaryenExtMulLowUVecI64x2 */, /** i64x2.extmul_high_i32x4_u */ ExtmulHighU64x2 = 180 /* _BinaryenExtMulHighUVecI64x2 */, + // FIXME: f16x8 arithmetic ops (add/sub/mul/div/min/max/pmin/pmax = 181..188) are in wasm.h but not yet exported via C API /** f32x4.add */ AddF32x4 = 189 /* _BinaryenAddVecF32x4 */, /** f32x4.sub */ @@ -1109,13 +1141,14 @@ export const enum SIMDExtractOp { ExtractLaneI16x8 = 2 /* _BinaryenExtractLaneSVecI16x8 */, /** i16x8.extract_lane_u */ ExtractLaneU16x8 = 3 /* _BinaryenExtractLaneUVecI16x8 */, - /** i32x4.extract_lane_s */ + /** i32x4.extract_lane */ ExtractLaneI32x4 = 4 /* _BinaryenExtractLaneVecI32x4 */, - /** i32x4.extract_lane_u */ + /** i64x2.extract_lane */ ExtractLaneI64x2 = 5 /* _BinaryenExtractLaneVecI64x2 */, - /** i64x2.extract_lane_s */ + // FIXME: f16x8.extract_lane (= 6) is in wasm.h but not yet exported via C API + /** f32x4.extract_lane */ ExtractLaneF32x4 = 7 /* _BinaryenExtractLaneVecF32x4 */, - /** i64x2.extract_lane_u */ + /** f64x2.extract_lane */ ExtractLaneF64x2 = 8 /* _BinaryenExtractLaneVecF64x2 */, } @@ -1129,6 +1162,7 @@ export const enum SIMDReplaceOp { ReplaceLaneI32x4 = 2 /* _BinaryenReplaceLaneVecI32x4 */, /** i64x2.replace_lane */ ReplaceLaneI64x2 = 3 /* _BinaryenReplaceLaneVecI64x2 */, + // FIXME: f16x8.replace_lane (= 4) is in wasm.h but not yet exported via C API /** f32x4.replace_lane */ ReplaceLaneF32x4 = 5 /* _BinaryenReplaceLaneVecF32x4 */, /** f64x2.replace_lane */ @@ -1215,31 +1249,25 @@ export const enum SIMDLoadStoreLaneOp { export const enum SIMDTernaryOp { /** v128.bitselect */ Bitselect = 0 /* _BinaryenBitselectVec128 */, - - // Relaxed SIMD for F16 - /** f16x8.relaxed_madd */ - RelaxedMaddVecF16x8 = 1 /* TODO_BinaryenRelaxedMaddVecF16x8 */, - /** f16x8.relaxed_nmadd */ - RelaxedNmaddVecF16x8 = 2 /* TODO_BinaryenRelaxedNmaddVecF16x8 */, - /** f32x4.relaxed_madd */ - RelaxedMaddF32x4 = 3 /* _BinaryenRelaxedMaddVecF32x4 */, + RelaxedMaddF32x4 = 1 /* _BinaryenRelaxedMaddVecF32x4 */, /** f32x4.relaxed_nmadd */ - RelaxedNmaddF32x4 = 4 /* _BinaryenRelaxedNmaddVecF32x4 */, + RelaxedNmaddF32x4 = 2 /* _BinaryenRelaxedNmaddVecF32x4 */, /** f64x2.relaxed_madd */ - RelaxedMaddF64x2 = 5 /* _BinaryenRelaxedMaddVecF64x2 */, + RelaxedMaddF64x2 = 3 /* _BinaryenRelaxedMaddVecF64x2 */, /** f64x2.relaxed_nmadd */ - RelaxedNmaddF64x2 = 6 /* _BinaryenRelaxedNmaddVecF64x2 */, + RelaxedNmaddF64x2 = 4 /* _BinaryenRelaxedNmaddVecF64x2 */, /** i8x16.relaxed_laneselect */ - RelaxedLaneselectI8x16 = 7 /* _BinaryenLaneselectI8x16 */, + RelaxedLaneselectI8x16 = 5 /* _BinaryenLaneselectI8x16 */, /** i16x8.relaxed_laneselect */ - RelaxedLaneselectI16x8 = 8 /* _BinaryenLaneselectI16x8 */, + RelaxedLaneselectI16x8 = 6 /* _BinaryenLaneselectI16x8 */, /** i32x4.relaxed_laneselect */ - RelaxedLaneselectI32x4 = 9 /* _BinaryenLaneselectI32x4 */, + RelaxedLaneselectI32x4 = 7 /* _BinaryenLaneselectI32x4 */, /** i64x2.relaxed_laneselect */ - RelaxedLaneselectI64x2 = 10 /* _BinaryenLaneselectI64x2 */, + RelaxedLaneselectI64x2 = 8 /* _BinaryenLaneselectI64x2 */, /** i32x4.relaxed_dot_i8x16_i7x16_add_s */ - RelaxedDotI8x16I7x16AddToI32x4 = 11 /* _BinaryenDotI8x16I7x16AddSToVecI32x4 */, + RelaxedDotI8x16I7x16AddToI32x4 = 9 /* _BinaryenDotI8x16I7x16AddSToVecI32x4 */, + // FIXME: f16x8 madd/nmadd (= 10, 11) are in wasm.h but not yet exported via C API } /** Binaryen RefAs operation constants. */ @@ -1349,7 +1377,7 @@ export class Module { i64(valueLow: i32, valueHigh: i32 = 0): ExpressionRef { let out = this.lit; - binaryen._BinaryenLiteralInt64(out, valueLow, valueHigh); + binaryen._BinaryenLiteralInt64(out, i64_new(valueLow, valueHigh)); return binaryen._BinaryenConst(this.ref, out); } @@ -1580,10 +1608,11 @@ export class Module { ptr: ExpressionRef, type: TypeRef, offset: Index = 0, - name: string = CommonNames.DefaultMemory + name: string = CommonNames.DefaultMemory, + order: MemoryOrder = MemoryOrder.SeqCst ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenAtomicLoad(this.ref, bytes, offset, type, ptr, cStr); + return binaryen._BinaryenAtomicLoad(this.ref, bytes, offset, type, ptr, cStr, order); } atomic_store( @@ -1592,10 +1621,11 @@ export class Module { value: ExpressionRef, type: TypeRef, offset: Index = 0, - name: string = CommonNames.DefaultMemory + name: string = CommonNames.DefaultMemory, + order: MemoryOrder = MemoryOrder.SeqCst ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenAtomicStore(this.ref, bytes, offset, ptr, value, type, cStr); + return binaryen._BinaryenAtomicStore(this.ref, bytes, offset, ptr, value, type, cStr, order); } atomic_rmw( @@ -1605,10 +1635,11 @@ export class Module { ptr: ExpressionRef, value: ExpressionRef, type: TypeRef, - name: string = CommonNames.DefaultMemory + name: string = CommonNames.DefaultMemory, + order: MemoryOrder = MemoryOrder.SeqCst ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenAtomicRMW(this.ref, op, bytes, offset, ptr, value, type, cStr); + return binaryen._BinaryenAtomicRMW(this.ref, op, bytes, offset, ptr, value, type, cStr, order); } atomic_cmpxchg( @@ -1618,10 +1649,11 @@ export class Module { expected: ExpressionRef, replacement: ExpressionRef, type: TypeRef, - name: string = CommonNames.DefaultMemory + name: string = CommonNames.DefaultMemory, + order: MemoryOrder = MemoryOrder.SeqCst ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenAtomicCmpxchg(this.ref, bytes, offset, ptr, expected, replacement, type, cStr); + return binaryen._BinaryenAtomicCmpxchg(this.ref, bytes, offset, ptr, expected, replacement, type, cStr, order); } atomic_wait( @@ -2471,6 +2503,14 @@ export class Module { binaryen._BinaryenSetDebugInfo(on); } + getTrapsNeverHappen(): bool { + return binaryen._BinaryenGetTrapsNeverHappen(); + } + + setTrapsNeverHappen(on: bool): void { + binaryen._BinaryenSetTrapsNeverHappen(on); + } + getClosedWorld(): bool { return binaryen._BinaryenGetClosedWorld(); } @@ -2567,6 +2607,10 @@ export class Module { binaryen._BinaryenSetAllowInliningFunctionsWithLoops(enabled); } + setPartialInliningIfs(value: i32): void { + this.setPassArgument("partial-inlining-ifs", value.toString()); + } + // meta (module) getFeatures(): FeatureFlags { @@ -2603,12 +2647,13 @@ export class Module { // Implicitly run costly non-LLVM optimizations on -O3 or -Oz if (optimizeLevel >= 3 || shrinkLevel >= 2) optimizeLevel = 4; + this.clearPassArguments(); + this.setOptimizeLevel(optimizeLevel); this.setShrinkLevel(shrinkLevel); this.setDebugInfo(debugInfo); this.setZeroFilledMemory(zeroFilledMemory); this.setFastMath(true); - this.clearPassArguments(); // OptimizationOptions#parse in src/tools/optimization-options.h const stackIR = optimizeLevel >= 2 || shrinkLevel >= 1; @@ -2620,7 +2665,7 @@ export class Module { this.setAlwaysInlineMaxSize(12); this.setFlexibleInlineMaxSize(70); this.setOneCallerInlineMaxSize(200); - this.setAllowInliningFunctionsWithLoops(optimizeLevel >= 3); + this.setAllowInliningFunctionsWithLoops(true); } else { this.setAlwaysInlineMaxSize( optimizeLevel <= 1 || shrinkLevel >= 2 @@ -2631,6 +2676,7 @@ export class Module { this.setOneCallerInlineMaxSize(80); this.setAllowInliningFunctionsWithLoops(false); } + this.setPartialInliningIfs(optimizeLevel >= 2 ? 4 : 0); // Pass order here differs substantially from Binaryen's defaults // see: Binaryen/src/pass.cpp @@ -2641,12 +2687,15 @@ export class Module { passes.push("duplicate-function-elimination"); passes.push("remove-unused-module-elements"); // + - - // --- PassRunner::addDefaultFunctionOptimizationPasses --- if (optimizeLevel >= 2) { passes.push("once-reduction"); + } + + // --- PassRunner::addDefaultFunctionOptimizationPasses --- + if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("inlining"); passes.push("simplify-globals-optimizing"); + passes.push("generate-global-effects"); } if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("rse"); @@ -2659,7 +2708,6 @@ export class Module { passes.push("merge-blocks"); passes.push("precompute-propagate"); passes.push("simplify-globals-optimizing"); - passes.push("gufa-optimizing"); passes.push("dae-optimizing"); } if (optimizeLevel >= 3) { @@ -2668,20 +2716,31 @@ export class Module { passes.push("vacuum"); passes.push("simplify-locals-notee-nostructure"); passes.push("vacuum"); + passes.push("local-cse"); passes.push("licm"); passes.push("merge-locals"); passes.push("reorder-locals"); } passes.push("optimize-instructions"); - if (optimizeLevel >= 3 || shrinkLevel >= 1) { - passes.push("dce"); + if (optimizeLevel >= 2) { + passes.push("avoid-reinterprets"); } + passes.push("dce"); passes.push("remove-unused-brs"); passes.push("remove-unused-names"); + passes.push("merge-blocks"); + if (this.getFeatures() & FeatureFlags.MultiValue) { + // Optimize tuples before local opts (as splitting tuples can help local + // opts), but also not too early, as we want to be after + // optimize-instructions at least (which can remove tuple-related things). + passes.push("tuple-optimization"); + } if (optimizeLevel >= 3 || shrinkLevel >= 2) { passes.push("inlining"); passes.push("precompute-propagate"); passes.push("simplify-globals-optimizing"); + } else if (optimizeLevel >= 2 || shrinkLevel >= 1) { + passes.push("precompute-propagate"); } else { passes.push("precompute"); } @@ -2703,7 +2762,7 @@ export class Module { passes.push("rse"); passes.push("vacuum"); } - if (optimizeLevel >= 3 || shrinkLevel >= 1) { + if (shrinkLevel >= 1) { passes.push("merge-locals"); passes.push("vacuum"); } @@ -2756,6 +2815,10 @@ export class Module { } passes.push("directize"); // replace indirect with direct calls passes.push("dae-optimizing"); // reduce arity + if (optimizeLevel >= 3 || shrinkLevel >= 1) { + // whole-program value-flow analysis + passes.push("gufa-optimizing"); + } passes.push("inlining-optimizing"); // and inline if possible if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("code-folding"); @@ -2795,18 +2858,32 @@ export class Module { passes.push("merge-blocks"); passes.push("vacuum"); + if (this.getFeatures() & FeatureFlags.Strings) { + // Gather strings to globals right before reorder-globals, which will then + // sort them properly. + passes.push("string-gathering"); + } + passes.push("simplify-globals-optimizing"); - passes.push("reorder-globals"); passes.push("remove-unused-brs"); passes.push("optimize-instructions"); + passes.push("vacuum"); } + passes.push("reorder-globals"); + passes.push("reorder-functions"); // clean up - passes.push("duplicate-function-elimination"); + if (optimizeLevel >= 2 || shrinkLevel >= 1) { + passes.push("duplicate-function-elimination"); + } if (shrinkLevel >= 2) { passes.push("merge-similar-functions"); } passes.push("memory-packing"); passes.push("remove-unused-module-elements"); + if (optimizeLevel >= 2 || shrinkLevel >= 1) { + // release the global-effects cache populated earlier in post-passes. + passes.push("discard-global-effects"); + } this.runPasses(passes); } @@ -3031,11 +3108,11 @@ export function getConstValueI32(expr: ExpressionRef): i32 { } export function getConstValueI64Low(expr: ExpressionRef): i32 { - return binaryen._BinaryenConstGetValueI64Low(expr); + return i64_low(binaryen._BinaryenConstGetValueI64(expr)); } export function getConstValueI64High(expr: ExpressionRef): i32 { - return binaryen._BinaryenConstGetValueI64High(expr); + return i64_high(binaryen._BinaryenConstGetValueI64(expr)); } export function getConstValueInteger(expr: ExpressionRef, isWasm64: bool): i64 { diff --git a/src/program.ts b/src/program.ts index f991cc1226..f5d9b7cae6 100644 --- a/src/program.ts +++ b/src/program.ts @@ -1088,7 +1088,9 @@ export class Program extends DiagnosticEmitter { this.registerConstantInteger(CommonNames.ASC_FEATURE_EXTENDED_CONST, Type.bool, i64_new(options.hasFeature(Feature.ExtendedConst) ? 1 : 0, 0)); this.registerConstantInteger(CommonNames.ASC_FEATURE_STRINGREF, Type.bool, - i64_new(options.hasFeature(Feature.Stringref) ? 1 : 0, 0)); + i64_new(options.hasFeature(Feature.Strings) ? 1 : 0, 0)); + this.registerConstantInteger(CommonNames.ASC_FEATURE_SHARED_EVERYTHING, Type.bool, + i64_new(options.hasFeature(Feature.Strings) ? 1 : 0, 0)); // remember deferred elements let queuedImports = new Array(); @@ -1292,7 +1294,9 @@ export class Program extends DiagnosticEmitter { this.registerWrapperClass(Type.bool, CommonNames.Bool); this.registerWrapperClass(Type.f32, CommonNames.F32); this.registerWrapperClass(Type.f64, CommonNames.F64); - if (options.hasFeature(Feature.Simd)) this.registerWrapperClass(Type.v128, CommonNames.V128); + if (options.hasFeature(Feature.Simd)) { + this.registerWrapperClass(Type.v128, CommonNames.V128); + } if (options.hasFeature(Feature.ReferenceTypes)) { this.registerWrapperClass(Type.func, CommonNames.RefFunc); this.registerWrapperClass(Type.extern, CommonNames.RefExtern); @@ -1303,7 +1307,7 @@ export class Program extends DiagnosticEmitter { this.registerWrapperClass(Type.array, CommonNames.RefArray); this.registerWrapperClass(Type.i31, CommonNames.RefI31); } - if (options.hasFeature(Feature.Stringref)) { + if (options.hasFeature(Feature.Strings)) { this.registerWrapperClass(Type.string, CommonNames.RefString); } } @@ -1987,7 +1991,7 @@ export class Program extends DiagnosticEmitter { case TypeKind.StringviewWTF16: case TypeKind.StringviewIter: { return this.checkFeatureEnabled(Feature.ReferenceTypes, reportNode) - && this.checkFeatureEnabled(Feature.Stringref, reportNode); + && this.checkFeatureEnabled(Feature.Strings, reportNode); } } let classReference = type.getClass(); diff --git a/src/tsconfig.json b/src/tsconfig.json index a6acaae80a..f4dbff1903 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../std/portable.json", "compilerOptions": { "target": "esnext", + "rootDir": "..", "outDir": "../build", "allowJs": false, "sourceMap": true, diff --git a/std/assembly/shared/feature.ts b/std/assembly/shared/feature.ts index 1baa9ba3c9..6fe809b326 100644 --- a/std/assembly/shared/feature.ts +++ b/std/assembly/shared/feature.ts @@ -33,9 +33,11 @@ export const enum Feature { /** Extended const expressions. */ ExtendedConst = 1 << 13, // see: https://github.com/WebAssembly/extended-const /** Reference typed strings. */ - Stringref = 1 << 14, // see: https://github.com/WebAssembly/stringref + Strings = 1 << 14, // see: https://github.com/WebAssembly/stringref + /** Shared-everything threads. */ + SharedEverything = 1 << 15, // see: https://github.com/WebAssembly/shared-everything-threads /** All features. */ - All = (1 << 15) - 1 + All = (1 << 16) - 1 } /** Gets the name of the specified feature one would specify on the command line. */ @@ -55,7 +57,8 @@ export function featureToString(feature: Feature): string { case Feature.Memory64: return "memory64"; case Feature.RelaxedSimd: return "relaxed-simd"; case Feature.ExtendedConst: return "extended-const"; - case Feature.Stringref: return "stringref"; + case Feature.Strings: return "stringref"; + case Feature.SharedEverything: return "shared-everything"; } assert(false); return ""; diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index 7f27ab78fa..03d6aaf8c0 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -20,103 +20,6 @@ (data $5.1 (i32.const 1272) "\02\00\00\00^\00\00\00U\00n\00e\00x\00p\00e\00c\00t\00e\00d\00 \00\'\00n\00u\00l\00l\00\'\00 \00(\00n\00o\00t\00 \00a\00s\00s\00i\00g\00n\00e\00d\00 \00o\00r\00 \00f\00a\00i\00l\00e\00d\00 \00c\00a\00s\00t\00)") (export "memory" (memory $0)) (start $~start) - (func $~start - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1388 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 1056 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 3 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1136 - i32.const 1136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 4 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1168 - i32.const 1168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 5 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store - call $NonNullable/assertNonNull<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store - 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 1388 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store - call $~lib/string/String.__ne - if - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store - call $NonNullable/assertNonNull<~lib/string/String> - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34176 - i32.const 34224 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -351,4 +254,101 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1388 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 3 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1136 + i32.const 1136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1168 + i32.const 1168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + call $NonNullable/assertNonNull<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + 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 1388 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + call $~lib/string/String.__ne + if + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + call $NonNullable/assertNonNull<~lib/string/String> + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34176 + i32.const 34224 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) ) diff --git a/tests/compiler/abi.release.wat b/tests/compiler/abi.release.wat index 5320131fcb..f5060e8da6 100644 --- a/tests/compiler/abi.release.wat +++ b/tests/compiler/abi.release.wat @@ -3,11 +3,11 @@ (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\02\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s") - (export "exported" (func $abi/exported)) - (export "exportedExported" (func $abi/exported)) - (export "exportedInternal" (func $abi/exported)) + (export "exported" (func $abi/exportedInternal)) + (export "exportedExported" (func $abi/exportedInternal)) + (export "exportedInternal" (func $abi/exportedInternal)) (export "memory" (memory $0)) - (func $abi/exported (result i32) + (func $abi/exportedInternal (result i32) i32.const -128 ) ) diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index 67f4405bc2..53e5430763 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -132,7 +132,57 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testObj (param $0 i32) (result i32) + (func $export:assert-nonnull/testRet (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.eqz + br_if $folding-inner1 + local.get $0 + i32.load + call_indirect (type $1) + unreachable + end + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + i32.const 1184 + i32.const 44 + i32.const 10 + call $~lib/builtins/abort + unreachable + ) + (func $export:assert-nonnull/testProp (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -158,23 +208,23 @@ i64.store global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 i32.store offset=4 local.get $0 i32.eqz if i32.const 1056 i32.const 1184 - i32.const 11 + i32.const 15 i32.const 10 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -182,6 +232,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 34256 @@ -191,7 +242,65 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testProp (param $0 i32) (result i32) + (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + br_if $folding-inner1 + local.get $0 + i32.load + call_indirect (type $1) + unreachable + end + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + i32.const 1184 + i32.const 52 + i32.const 10 + call $~lib/builtins/abort + unreachable + ) + (func $export:assert-nonnull/testObjFn (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -220,7 +329,7 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.load + i32.load offset=4 local.tee $0 i32.store offset=4 local.get $0 @@ -228,21 +337,15 @@ if i32.const 1056 i32.const 1184 - i32.const 15 + i32.const 48 i32.const 10 call $~lib/builtins/abort unreachable end - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - return + i32.load + call_indirect (type $1) + unreachable end i32.const 34256 i32.const 34304 @@ -251,7 +354,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testArr (param $0 i32) (result i32) + (func $export:assert-nonnull/testObj (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -283,7 +386,7 @@ if i32.const 1056 i32.const 1184 - i32.const 19 + i32.const 11 i32.const 10 call $~lib/builtins/abort unreachable @@ -291,6 +394,39 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 + i32.load + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:assert-nonnull/testFn2 (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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -305,50 +441,72 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 i32.eqz if - i32.const 1248 - i32.const 1312 - i32.const 114 - i32.const 42 + i32.const 1056 + i32.const 1184 + i32.const 39 + i32.const 13 call $~lib/builtins/abort unreachable end + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + call_indirect (type $1) + unreachable + end + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:assert-nonnull/testFn (param $0 i32) (result 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 1468 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.load - local.tee $0 - i32.store offset=4 + i32.store local.get $0 i32.eqz if - i32.const 1360 - i32.const 1312 - i32.const 118 - i32.const 40 + i32.const 1056 + i32.const 1184 + i32.const 35 + i32.const 10 call $~lib/builtins/abort unreachable end - 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.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 + i32.load + call_indirect (type $1) + unreachable end i32.const 34256 i32.const 34304 @@ -417,167 +575,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testAll (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 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=12 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.tee $0 - i32.store offset=16 - local.get $0 - i32.eqz - br_if $folding-inner1 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - i32.const 1184 - i32.const 27 - i32.const 10 - call $~lib/builtins/abort - unreachable - ) - (func $export:assert-nonnull/testAll2 (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 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=12 - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.tee $0 - i32.store offset=16 - local.get $0 - i32.eqz - br_if $folding-inner1 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - i32.const 1184 - i32.const 31 - i32.const 10 - call $~lib/builtins/abort - unreachable - ) - (func $export:assert-nonnull/testFn (param $0 i32) (result i32) + (func $export:assert-nonnull/testArr (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -591,7 +589,7 @@ local.get $0 i32.store 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 @@ -599,44 +597,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 i32.eqz if i32.const 1056 i32.const 1184 - i32.const 35 + i32.const 19 i32.const 10 call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - call_indirect (type $1) - unreachable - end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:assert-nonnull/testFn2 (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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -654,23 +629,50 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=12 i32.eqz if - i32.const 1056 - i32.const 1184 - i32.const 39 - i32.const 13 + i32.const 1248 + i32.const 1312 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=4 i32.load - call_indirect (type $1) - unreachable + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + if + i32.const 1360 + i32.const 1312 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + 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.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 i32.const 34256 i32.const 34304 @@ -679,7 +681,8 @@ call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testRet (param $0 i32) (result i32) + (func $export:assert-nonnull/testAll2 (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -694,7 +697,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -702,18 +705,47 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=12 local.get $0 i32.eqz br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load - call_indirect (type $1) - unreachable + local.tee $0 + i32.store offset=16 + local.get $0 + i32.eqz + br_if $folding-inner1 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end i32.const 34256 i32.const 34304 @@ -724,66 +756,13 @@ end i32.const 1056 i32.const 1184 - i32.const 44 + i32.const 31 i32.const 10 call $~lib/builtins/abort unreachable ) - (func $export:assert-nonnull/testObjFn (param $0 i32) (result 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 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 1056 - i32.const 1184 - i32.const 48 - i32.const 10 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load - call_indirect (type $1) - unreachable - end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) + (func $export:assert-nonnull/testAll (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -798,7 +777,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -806,26 +785,47 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 + call $~lib/array/Array#__get local.tee $0 - i32.store offset=4 + i32.store offset=12 local.get $0 i32.eqz br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load - call_indirect (type $1) - unreachable + local.tee $0 + i32.store offset=16 + local.get $0 + i32.eqz + br_if $folding-inner1 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end i32.const 34256 i32.const 34304 @@ -836,7 +836,7 @@ end i32.const 1056 i32.const 1184 - i32.const 52 + i32.const 27 i32.const 10 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index 0200dad357..fb11835ac0 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -5,8 +5,8 @@ (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (result i32))) (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)) @@ -39,51 +39,6 @@ (export "static_setter_assignment_chain" (func $assignment-chain/static_setter_assignment_chain)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -628,1011 +583,914 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 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 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 local.get $0 - i32.load offset=1568 - local.tee $3 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - local.get $3 - i32.const 4 + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 end - local.get $3 - local.get $1 + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 i32.const 16 + i32.shl + i32.const 4 i32.sub - local.tee $5 - i32.eq + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end + local.get $5 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.load + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + i32.gt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - local.get $3 - i32.const 8 + if + i32.const 0 + i32.const 1392 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub local.tee $3 - i32.const 1 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 + memory.fill local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $assignment-chain/B + block $assignment-chain/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $assignment-chain/A $assignment-chain/B $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - unreachable - end - i32.const 34304 - i32.const 0 - i32.store - i32.const 35872 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 i32.lt_u if - local.get $0 - i32.const 2 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl - i32.const 34304 i32.add - i32.const 0 - i32.store 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 34304 - i32.add - i32.const 0 - i32.store 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 + i32.sub + local.set $1 end - end - i32.const 34304 - i32.const 35876 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34304 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34300 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.load offset=4 + local.get $1 + i32.ctz local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne if i32.const 0 - i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 1392 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34300 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34300 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 local.get $1 - i32.const 4 - i32.shr_u - local.set $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s else - local.get $1 - i32.const 536870910 + i32.const 0 + end + if + unreachable + end + i32.const 34304 + i32.const 0 + i32.store + i32.const 35872 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 i32.lt_u if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub + local.get $0 + i32.const 2 i32.shl + i32.const 34304 i32.add - i32.const 1 - i32.sub + i32.const 0 + i32.store 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 34304 + i32.add + i32.const 0 + i32.store 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 - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 - i32.const 16 - i32.lt_u + i32.const 34304 + i32.const 35876 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34304 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 334 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.const 19 + i32.add + i32.const -16 i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.get $2 + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 + if + local.get $3 i32.const 4 - i32.shl i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 + i32.const 1572 i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $2 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) - (func $~lib/rt/itcms/__new (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 + (func $~lib/object/Object#constructor (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 1532 + i32.lt_s if - i32.const 1056 - i32.const 1120 - i32.const 261 - i32.const 31 + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.eqz if - call $~lib/rt/tlsf/initialize + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/rt/tlsf/ROOT - local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 16 + ) + (func $assignment-chain/static_setter_assignment_chain + global.get $assignment-chain/C._setter_cnt + i32.const 1 i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + global.set $assignment-chain/C._setter_cnt + global.get $assignment-chain/C._setter_cnt + i32.const 1 + i32.add + global.set $assignment-chain/C._setter_cnt + global.get $assignment-chain/C._setter_cnt + i32.const 2 + i32.ne if - i32.const 1056 - i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 0 + i32.const 1456 + i32.const 45 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + ) + (func $assignment-chain/setter_assignment_chain + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1532 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1532 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/object/Object#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - i32.lt_s + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $assignment-chain/B#set:y + local.get $1 + call $assignment-chain/B#set:y + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load + i32.const 2 + i32.ne if - local.get $3 - memory.grow i32.const 0 - i32.lt_s - if - unreachable - end + i32.const 1456 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 if i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 + i32.const 1456 + i32.const 31 + 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 - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $assignment-chain/normal_assignment_chain + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $assignment-chain/static_setter_assignment_chain - global.get $assignment-chain/C._setter_cnt - i32.const 1 - i32.add - global.set $assignment-chain/C._setter_cnt - global.get $assignment-chain/C._setter_cnt - i32.const 1 - i32.add - global.set $assignment-chain/C._setter_cnt - global.get $assignment-chain/C._setter_cnt - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1456 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $assignment-chain/B - block $assignment-chain/A - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $assignment-chain/A $assignment-chain/B $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34300 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - call $assignment-chain/normal_assignment_chain - call $assignment-chain/setter_assignment_chain - call $assignment-chain/static_setter_assignment_chain - ) - (func $assignment-chain/normal_assignment_chain - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1532 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1532 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~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 @@ -1741,158 +1599,301 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $assignment-chain/setter_assignment_chain + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34300 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $assignment-chain/normal_assignment_chain + call $assignment-chain/setter_assignment_chain + call $assignment-chain/static_setter_assignment_chain + ) + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1532 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~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 1532 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/object/Object#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $assignment-chain/B#set:y - local.get $1 - call $assignment-chain/B#set:y - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load - i32.const 2 - i32.ne - if + (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end i32.const 0 - i32.const 1456 - i32.const 30 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 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 34300 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1456 - i32.const 31 + local.get $0 + i32.load 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 - call $~lib/builtins/abort - unreachable + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34300 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34300 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/object/Object#constructor (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 1532 - 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 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/bigint-integration.release.wat b/tests/compiler/bigint-integration.release.wat index 65f0bbea0b..6702bb5684 100644 --- a/tests/compiler/bigint-integration.release.wat +++ b/tests/compiler/bigint-integration.release.wat @@ -14,9 +14,6 @@ (export "getInternalValue" (func $bigint-integration/getInternalValue)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $bigint-integration/getInternalValue (result i64) - i64.const 9007199254740991 - ) (func $~start global.get $~started if @@ -47,4 +44,7 @@ unreachable end ) + (func $bigint-integration/getInternalValue (result i64) + i64.const 9007199254740991 + ) ) diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index 09936b2aba..4fa9022ad2 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -2,22 +2,22 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func (param i32))) (type $2 (func (param i32) (result i32))) - (type $3 (func (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) + (type $3 (func (param i32 i32 i32))) + (type $4 (func (result i32))) + (type $5 (func)) (type $6 (func (param i32 i32))) (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $9 (func (param f64) (result f64))) - (type $10 (func (param i64 i64) (result i64))) - (type $11 (func (result i64))) - (type $12 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $10 (func (param f64) (result f64))) + (type $11 (func (param i64 i64) (result i64))) + (type $12 (func (result i64))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) (import "env" "Date.getTimezoneOffset" (func $bindings/esm/Date_getTimezoneOffset (result i32))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $bindings/esm/plainGlobal i32 (i32.const 1)) (global $bindings/esm/plainMutableGlobal (mut i32) (i32.const 2)) (global $bindings/esm/stringGlobal i32 (i32.const 1056)) @@ -120,218 +120,6 @@ (export "objectFunction" (func $export:bindings/esm/objectFunction)) (export "internrefFunction" (func $export:bindings/esm/internrefFunction)) (export "functionFunction" (func $export:bindings/esm/staticarrayU16)) - (func $bindings/esm/plainFunction (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $bindings/esm/plainFunction64 (param $0 i64) (param $1 i64) (result i64) - local.get $0 - local.get $1 - i64.add - ) - (func $bindings/esm/getMaxUnsigned32 (result i32) - i32.const -1 - ) - (func $bindings/esm/getMaxUnsigned64 (result i64) - i64.const -1 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $bindings/esm/mutableStringGlobal - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1552 - call $~lib/rt/itcms/__visit - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1968 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 2096 - call $~lib/rt/itcms/__visit - i32.const 2160 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1424 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 35044 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/toSpace - local.set $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $2 - i32.const 2208 - i32.load - i32.gt_u - if - i32.const 1552 - i32.const 1616 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.shl - i32.const 2212 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -356,591 +144,407 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1696 - i32.const 268 - i32.const 14 + i32.const 1360 + i32.const 1424 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1696 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1360 i32.const 1696 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1696 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1696 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1696 - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1696 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + i32.or + i32.store offset=4 local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 i32.add - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz if i32.const 0 - i32.const 1696 - i32.const 234 + i32.const 1424 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub + global.get $~lib/rt/itcms/white local.get $1 - i32.store - 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.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and 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 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (func $~lib/array/Array#get:length (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 2276 + i32.lt_s if - i32.const 0 - i32.const 1696 - i32.const 251 - i32.const 14 + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 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 offset=96 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1696 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1696 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1696 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 35056 - i32.const 0 - i32.store - i32.const 36624 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 35056 - i32.add - i32.const 0 - i32.store 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 35056 - i32.add - i32.const 0 - i32.store 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 35056 - i32.const 36628 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 35056 - global.set $~lib/rt/tlsf/ROOT + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1202,51 +806,185 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if - 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.set $1 + i32.const 0 + i32.const 1424 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end local.get $1 + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/toSpace + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $2 + i32.const 2208 + i32.load + i32.gt_u + if + i32.const 1552 + i32.const 1616 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + i32.const 2212 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $1 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + ) + (func $~lib/typedarray/Int16Array#get:length (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1696 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else i32.const 31 - local.get $1 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1257,627 +995,374 @@ if i32.const 0 i32.const 1696 - i32.const 334 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 local.get $2 - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 - i32.eqz + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - i32.const 0 - i32.const 1696 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 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 + local.get $1 + i32.eqz if - i32.const 1360 - i32.const 1424 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1696 + i32.const 201 + i32.const 14 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$70 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if - 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 1360 + i32.const 0 i32.const 1696 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load local.tee $2 - i32.eqz + i32.const 1 + i32.and if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 + local.get $0 local.get $4 - i32.load offset=1568 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add local.get $2 - i32.const 16 - i32.shl + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.const -65536 + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 i32.eqz if i32.const 0 i32.const 1696 - i32.const 499 + i32.const 221 i32.const 16 call $~lib/builtins/abort unreachable end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1696 - i32.const 501 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1696 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1696 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + i32.shr_u else + i32.const 31 + i32.const 1073741820 local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add local.get $2 - i32.load - i32.const -4 - i32.and - i32.add + 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.load - i32.const -3 - i32.and - i32.store + 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 1696 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 + local.get $5 + i32.const 4 + i32.shl local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 - global.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl local.get $2 - local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 i32.load offset=4 - i32.const 3 - i32.and + i32.const 1 + local.get $2 + i32.shl i32.or i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 i32.const -4 i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 i32.eqz if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 35044 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end return end local.get $0 + i32.load offset=8 + local.tee $0 i32.eqz if i32.const 0 i32.const 1424 - i32.const 295 - i32.const 14 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white local.get $1 - i32.const 20 - i32.sub - local.tee $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $bindings/esm/newInternref (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 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 2096 - i32.const 1424 - i32.const 338 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/itcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 2160 - i32.const 1424 - i32.const 352 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (func $~lib/rt/itcms/__collect - 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 + i32.or + i32.store offset=4 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -2038,189 +1523,84 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~setArgumentsLength (param $0 i32) + (func $export:bindings/esm/staticarrayU16 (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - global.set $~argumentsLength ) - (func $~start - global.get $~started + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 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 2276 + i32.lt_s if - return + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 1 - global.set $~started - i32.const 1152 - i32.const 1 - f64.const 42 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 1184 - call $~lib/bindings/dom/console.log - global.get $~lib/bindings/dom/Math.E - call $~lib/bindings/dom/Math.log - drop - call $bindings/esm/Date_getTimezoneOffset - drop - memory.size - i32.const 16 - i32.shl - i32.const 35044 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/pinSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - i32.const 1504 - global.set $~lib/rt/itcms/toSpace - i32.const 1652 - i32.const 1648 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - i32.const 1656 - i32.const 1648 + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1173 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - i32.const 1648 - global.set $~lib/rt/itcms/fromSpace - ) - (func $bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub + i32.const 4 + i32.add global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$284 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1760 - local.set $2 - br $__inlined_func$~lib/string/String#concat$284 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $3 - memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - 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.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - end - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2244,14 +1624,14 @@ i32.store local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2273,16 +1653,38 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 - i32.load offset=8 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 2 i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1856 + i32.const 93 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2306,545 +1708,413 @@ i32.store local.get $1 local.get $0 - i32.load offset=8 - i32.const 3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 i32.shr_u i32.ge_u if i32.const 1552 - i32.const 1792 - i32.const 1173 - i32.const 64 + i32.const 1856 + i32.const 78 + i32.const 41 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add - local.get $2 - i64.store + i32.load global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 256 + i32.lt_u + if local.get $1 - i32.store - block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - 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 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1248 - i32.const 1296 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $2 - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor - end - br $folding-inner1 + local.set $1 end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub local.tee $2 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - local.get $5 - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if i32.const 0 - local.set $3 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 - local.get $4 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1696 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 - global.set $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 local.get $2 - return + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end end - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 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 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) i32.const 1 - call $~lib/builtins/abort + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if unreachable end - global.get $~lib/memory/__stack_pointer + i32.const 35056 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 36624 + i32.const 0 i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 35056 + i32.add + i32.const 0 + i32.store 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 35056 + i32.add + i32.const 0 + i32.store 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 35056 + i32.const 36628 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 35056 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u + i64.extend_i32_u + i64.lt_u if - i32.const 1552 - i32.const 1856 - i32.const 78 - i32.const 41 + i32.const 0 + i32.const 1696 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1696 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1696 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $0 - i32.const 20 i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 1552 - i32.const 1856 - i32.const 93 - i32.const 41 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 + local.get $4 i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.and + local.get $3 + i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $3 + i32.add + local.tee $3 + i32.const 2 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + local.get $3 + i32.store offset=1568 local.get $0 - i32.load offset=12 - i32.ge_u + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $bindings/esm/mutableStringGlobal + local.tee $0 if - i32.const 1552 - i32.const 1920 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.const 1552 + call $~lib/rt/itcms/__visit + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1968 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 2096 + call $~lib/rt/itcms/__visit + i32.const 2160 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1424 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -2974,9 +2244,144 @@ i32.store offset=8 end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1552 + i32.const 1920 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1552 + i32.const 1920 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + if + i32.const 1968 + i32.const 1920 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3046,9 +2451,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3063,8 +2468,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3083,7 +2488,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -3091,210 +2495,339 @@ i32.shl i32.add i32.load - local.tee $0 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$284 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1760 + local.set $2 + br $__inlined_func$~lib/string/String#concat$284 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $3 + memory.copy + local.get $2 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + 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.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + i32.const 1152 + i32.const 1 + f64.const 42 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 1184 + call $~lib/bindings/dom/console.log + global.get $~lib/bindings/dom/Math.E + call $~lib/bindings/dom/Math.log + drop + call $bindings/esm/Date_getTimezoneOffset + drop + memory.size + i32.const 16 + i32.shl + i32.const 35044 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1476 + i32.const 1472 + i32.store + i32.const 1480 + i32.const 1472 + i32.store + i32.const 1472 + global.set $~lib/rt/itcms/pinSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/toSpace + i32.const 1652 + i32.const 1648 + i32.store + i32.const 1656 + i32.const 1648 + i32.store + i32.const 1648 + global.set $~lib/rt/itcms/fromSpace + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 i32.eqz if - i32.const 1968 - i32.const 1920 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 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 - i32.const 2276 - i32.lt_s + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 + i32.const 2160 + i32.const 1424 + i32.const 352 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq if local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1552 - i32.const 1920 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 local.get $1 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $0 - local.get $3 - i32.store offset=12 + local.get $1 + i32.store offset=8 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $0 + if local.get $0 i32.const 20 i32.sub - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - local.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $5 - i32.const 1073741820 - i32.gt_u + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq if - i32.const 1248 - i32.const 1296 - i32.const 52 - i32.const 43 + i32.const 2096 + i32.const 1424 + i32.const 338 + i32.const 7 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/pinSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $3 + i32.const 3 + i32.or i32.store offset=4 - local.get $5 - local.get $0 + local.get $1 local.get $2 - memory.copy + i32.store offset=8 local.get $2 - local.get $5 - i32.add local.get $1 - local.get $4 - memory.copy - 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.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $3 + local.get $1 + i32.store offset=8 + end + local.get $0 + ) + (func $~lib/rt/itcms/__collect + 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 - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3318,7 +2851,7 @@ i32.store offset=4 local.get $0 local.get $1 - call $bindings/esm/stringFunction + call $bindings/esm/typedarrayFunction global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3396,7 +2929,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3420,7 +2953,7 @@ i32.store offset=4 local.get $0 local.get $1 - call $bindings/esm/typedarrayFunction + call $bindings/esm/stringFunction global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3618,9 +3151,265 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) + (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$bindings/esm/PlainObject#constructor$4 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 68 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=18 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + f32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + f64.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=56 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=60 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=64 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$bindings/esm/PlainObject#constructor$4 + end + br $folding-inner1 + end + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load8_s + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load16_s offset=2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 + 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 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result 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 @@ -3638,12 +3427,128 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $export:bindings/esm/arrayFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $4 + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $2 + memory.copy + local.get $2 + local.get $5 + i32.add + local.get $1 + local.get $4 + memory.copy + 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.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3665,7 +3570,7 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3676,8 +3581,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3692,7 +3597,7 @@ call $~lib/array/Array#get:length local.get $4 i32.add - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3709,39 +3614,39 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 11 + i32.const 12 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store - local.get $6 + local.get $5 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=12 - local.get $5 + local.get $4 i32.const 268435455 i32.gt_u if @@ -3754,54 +3659,54 @@ 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 $3 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.store - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 + local.get $5 local.get $6 - local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 local.get $5 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -3813,17 +3718,22 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 + i32.store offset=12 local.get $0 local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set local.get $2 i32.const 1 i32.add @@ -3843,11 +3753,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=12 local.get $0 call $~lib/array/Array#get:length local.get $2 @@ -3855,13 +3765,18 @@ local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=12 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=8 - local.get $6 + local.get $5 local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set local.get $2 i32.const 1 i32.add @@ -3870,14 +3785,14 @@ end end 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 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 return end i32.const 35072 @@ -3887,7 +3802,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/arrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3909,7 +3824,7 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3920,8 +3835,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3936,7 +3851,7 @@ call $~lib/array/Array#get:length local.get $4 i32.add - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3953,39 +3868,39 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 12 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store - local.get $5 + local.get $6 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -3998,54 +3913,54 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $6 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.store - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 local.get $6 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 + local.get $6 local.get $5 - local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -4057,22 +3972,17 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=8 - local.get $5 + local.get $6 local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -4092,11 +4002,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 call $~lib/array/Array#get:length local.get $2 @@ -4104,18 +4014,13 @@ local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=8 - local.get $5 + local.get $6 local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set + local.get $1 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -4124,14 +4029,14 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return end i32.const 35072 @@ -4141,28 +4046,18 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) + (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 2276 i32.lt_s @@ -4174,7 +4069,21 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$4 (result i32) + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $5 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4188,8 +4097,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 + i32.const 12 + i32.const 7 call $~lib/rt/itcms/__new local.tee $2 i32.store @@ -4198,7 +4107,7 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4206,187 +4115,259 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 + i32.const 12 + i32.const 3 call $~lib/rt/itcms/__new local.tee $2 i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 i32.const 0 - i32.store8 offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 - i32.store16 offset=18 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=24 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $2 i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=36 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 i32.const 0 - i32.store8 offset=40 + i32.store offset=8 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 0 - f32.store offset=44 + local.get $5 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - local.get $2 - f64.const 0 - f64.store offset=48 global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=56 + local.get $5 + i32.store local.get $2 - i32.const 0 + local.get $5 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - i32.store offset=60 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $5 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - i32.store offset=64 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$4 + br $__inlined_func$~lib/typedarray/Uint64Array#constructor end br $folding-inner1 end local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load8_s + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + local.get $5 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $3 - local.get $1 - i32.load8_s - i32.add - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load16_s offset=2 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + local.get $4 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 return end @@ -4397,9 +4378,20 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) + (func $bindings/esm/plainFunction64 (param $0 i64) (param $1 i64) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $bindings/esm/plainFunction (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $bindings/esm/newInternref (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4414,15 +4406,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 0 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $bindings/esm/getMaxUnsigned64 (result i64) + i64.const -1 + ) + (func $bindings/esm/getMaxUnsigned32 (result i32) + i32.const -1 + ) ) diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index 9a784f3d63..8db482731d 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func (result i32))) (type $1 (func (param i32))) - (type $2 (func)) - (type $3 (func (param i32 i32))) + (type $2 (func (param i32 i32))) + (type $3 (func)) (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -68,203 +68,6 @@ (export "_start" (func $~start)) (export "takesNonPlainObject" (func $export:bindings/noExportRuntime/takesNonPlainObject)) (export "takesFunction" (func $export:bindings/noExportRuntime/takesNonPlainObject)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $bindings/noExportRuntime/isBuffer - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $bindings/noExportRuntime/isTypedArray - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1632 - call $~lib/rt/itcms/__visit - i32.const 1712 - call $~lib/rt/itcms/__visit - i32.const 1392 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1200 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1264 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$132 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34548 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$132 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1744 - i32.load - i32.gt_u - if - i32.const 1392 - i32.const 1456 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1748 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -289,330 +92,387 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1536 - i32.const 268 - i32.const 14 + i32.const 1200 + i32.const 1264 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1536 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1200 i32.const 1536 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1536 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1536 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1536 - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1536 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1536 - i32.const 234 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -620,520 +480,575 @@ if i32.const 0 i32.const 1536 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.tee $1 + i32.load offset=96 + i32.eq if - i32.const 0 - i32.const 1536 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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.const 19 - i32.add - i32.const -16 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1536 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 + i32.load + i32.const -4 + i32.and i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if local.get $1 - i32.gt_u + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1536 - i32.const 402 - i32.const 5 + 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 end + local.get $4 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1536 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 i32.const 4 i32.add - local.get $3 + local.get $2 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.ne if + i32.const 0 + i32.const 1536 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 34560 - i32.const 0 - i32.store - i32.const 36128 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34560 - i32.add - i32.const 0 - i32.store 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 34560 - i32.add - i32.const 0 - i32.store 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 + 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 - i32.const 34560 - i32.const 36132 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34560 - global.set $~lib/rt/tlsf/ROOT + 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 1536 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if 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 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 34548 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1264 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white + i32.load offset=8 i32.eqz - local.get $1 - i32.const 3 + local.get $0 + i32.const 34548 + i32.lt_u i32.and - i32.ne + i32.eqz if i32.const 0 i32.const 1264 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 34548 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34548 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + br $__inlined_func$~lib/rt/itcms/Object#unlink$132 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1744 + i32.load + i32.gt_u + if + i32.const 1392 + i32.const 1456 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1748 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $bindings/noExportRuntime/NonPlainObject + block $~lib/array/Array<~lib/array/Array> + block $~lib/array/Array + block $~lib/typedarray/Int32Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Int32Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + 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 1780 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner1 end - global.get $~lib/rt/tlsf/ROOT - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1780 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 15 - i32.and - i32.const 1 + i32.store local.get $0 - select - if (result i32) - i32.const 1 - else + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1536 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + br $folding-inner1 end + return end - i32.const 10 - return + unreachable end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 34576 + i32.const 34624 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1229,528 +1144,363 @@ i32.and local.tee $1 if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1200 - i32.const 1264 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1200 - i32.const 1536 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - local.get $5 + i32.const 0 end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select memory.grow i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34560 + i32.const 0 + i32.store + i32.const 36128 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34560 + i32.add i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if + i32.store offset=4 i32.const 0 - i32.const 1536 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34560 + i32.add + i32.const 0 + i32.store 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 - local.get $5 + i32.const 34560 + i32.const 36132 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34560 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1536 - i32.const 501 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 + local.get $1 + i32.const 19 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1536 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 local.tee $3 - i32.const 16 - i32.ge_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1536 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1536 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $3 + i32.store offset=1568 local.get $0 local.get $1 - i32.store - local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $bindings/noExportRuntime/isBuffer + local.tee $0 if local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/__visit + end + global.get $bindings/noExportRuntime/isTypedArray + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1632 + call $~lib/rt/itcms/__visit + i32.const 1712 + call $~lib/rt/itcms/__visit + i32.const 1392 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1200 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.ne if local.get $0 - i32.const 20 - i32.sub i32.load offset=4 i32.const 3 i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + i32.const 3 + i32.ne 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 + i32.const 0 + i32.const 1264 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end - ) - (func $bindings/noExportRuntime/takesReturnsBasic (param $0 i32) (result i32) - global.get $bindings/noExportRuntime/isBasic - ) - (func $bindings/noExportRuntime/returnsString (result i32) - i32.const 1056 - ) - (func $bindings/noExportRuntime/returnsBuffer (result i32) - global.get $bindings/noExportRuntime/isBuffer - ) - (func $bindings/noExportRuntime/returnsTypedArray (result i32) - global.get $bindings/noExportRuntime/isTypedArray - ) - (func $bindings/noExportRuntime/returnsArrayOfBasic (result i32) - i32.const 1632 - ) - (func $bindings/noExportRuntime/returnsArrayOfArray (result i32) - i32.const 1712 - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $bindings/noExportRuntime/NonPlainObject - block $~lib/array/Array<~lib/array/Array> - block $~lib/array/Array - block $~lib/typedarray/Int32Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Int32Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 1780 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 - end - 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 1780 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load 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 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - br $folding-inner1 + call $~lib/rt/itcms/Object#makeGray end - return end - unreachable end + end + ) + (func $export:bindings/noExportRuntime/takesNonPlainObject (param $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 1780 + i32.lt_s + if i32.const 34576 i32.const 34624 i32.const 1 @@ -1761,9 +1511,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -1881,95 +1628,349 @@ local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $bindings/noExportRuntime/isTypedArray + br $__inlined_func$start:bindings/noExportRuntime + end + i32.const 34576 + i32.const 34624 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34548 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 1 - call $~lib/rt/itcms/__new + i32.load offset=4 local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1264 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - global.set $bindings/noExportRuntime/isTypedArray - br $__inlined_func$start:bindings/noExportRuntime + i32.const 34548 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34548 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1536 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end + i32.const 0 ) - (func $export:bindings/noExportRuntime/takesNonPlainObject (param $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 1780 - i32.lt_s - if - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + (func $bindings/noExportRuntime/takesReturnsBasic (param $0 i32) (result i32) + global.get $bindings/noExportRuntime/isBasic + ) + (func $bindings/noExportRuntime/returnsTypedArray (result i32) + global.get $bindings/noExportRuntime/isTypedArray + ) + (func $bindings/noExportRuntime/returnsString (result i32) + i32.const 1056 + ) + (func $bindings/noExportRuntime/returnsBuffer (result i32) + global.get $bindings/noExportRuntime/isBuffer + ) + (func $bindings/noExportRuntime/returnsArrayOfBasic (result i32) + i32.const 1632 + ) + (func $bindings/noExportRuntime/returnsArrayOfArray (result i32) + i32.const 1712 ) ) diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index dcd117d596..6d66004d1a 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -2,22 +2,22 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func (param i32))) (type $2 (func (param i32) (result i32))) - (type $3 (func (result i32))) - (type $4 (func)) - (type $5 (func (param i32 i32 i32))) + (type $3 (func (param i32 i32 i32))) + (type $4 (func (result i32))) + (type $5 (func)) (type $6 (func (param i32 i32))) (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $9 (func (param f64) (result f64))) - (type $10 (func (param i64 i64) (result i64))) - (type $11 (func (result i64))) - (type $12 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32 i32))) + (type $9 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $10 (func (param f64) (result f64))) + (type $11 (func (param i64 i64) (result i64))) + (type $12 (func (result i64))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) (import "env" "Date.getTimezoneOffset" (func $bindings/esm/Date_getTimezoneOffset (result i32))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $bindings/esm/plainGlobal i32 (i32.const 1)) (global $bindings/esm/plainMutableGlobal (mut i32) (i32.const 2)) (global $bindings/esm/stringGlobal i32 (i32.const 1056)) @@ -120,218 +120,6 @@ (export "objectFunction" (func $export:bindings/esm/objectFunction)) (export "internrefFunction" (func $export:bindings/esm/internrefFunction)) (export "functionFunction" (func $export:bindings/esm/staticarrayU16)) - (func $bindings/esm/plainFunction (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $bindings/esm/plainFunction64 (param $0 i64) (param $1 i64) (result i64) - local.get $0 - local.get $1 - i64.add - ) - (func $bindings/esm/getMaxUnsigned32 (result i32) - i32.const -1 - ) - (func $bindings/esm/getMaxUnsigned64 (result i64) - i64.const -1 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1552 - call $~lib/rt/itcms/__visit - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1968 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 2096 - call $~lib/rt/itcms/__visit - i32.const 2160 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $bindings/esm/mutableStringGlobal - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1424 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 35044 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/toSpace - local.set $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $2 - i32.const 2208 - i32.load - i32.gt_u - if - i32.const 1552 - i32.const 1616 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.shl - i32.const 2212 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -356,591 +144,407 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1696 - i32.const 268 - i32.const 14 + i32.const 1360 + i32.const 1424 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1696 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + block $__inlined_func$~lib/rt/itcms/interrupt$71 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$71 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1360 i32.const 1696 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1696 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1696 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1696 - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1696 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + i32.or + i32.store offset=4 local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 i32.add - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz if i32.const 0 - i32.const 1696 - i32.const 234 + i32.const 1424 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub + global.get $~lib/rt/itcms/white local.get $1 - i32.store - 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.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and 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 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (func $~lib/array/Array#get:length (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 2276 + i32.lt_s if - i32.const 0 - i32.const 1696 - i32.const 251 - i32.const 14 + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 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 offset=96 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1696 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1696 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1696 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 35056 - i32.const 0 - i32.store - i32.const 36624 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 35056 - i32.add - i32.const 0 - i32.store 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 35056 - i32.add - i32.const 0 - i32.store 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 35056 - i32.const 36628 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 35056 - global.set $~lib/rt/tlsf/ROOT + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1202,51 +806,185 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if - 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.set $1 + i32.const 0 + i32.const 1424 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end local.get $1 + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/toSpace + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $2 + i32.const 2208 + i32.load + i32.gt_u + if + i32.const 1552 + i32.const 1616 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + i32.shl + i32.const 2212 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $1 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + ) + (func $~lib/typedarray/Int16Array#get:length (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1696 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else i32.const 31 - local.get $1 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1257,627 +995,374 @@ if i32.const 0 i32.const 1696 - i32.const 334 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 local.get $2 - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 - i32.eqz + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - i32.const 0 - i32.const 1696 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 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 + local.get $1 + i32.eqz if - i32.const 1360 - i32.const 1424 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1696 + i32.const 201 + i32.const 14 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$71 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if - 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 1360 + i32.const 0 i32.const 1696 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load local.tee $2 - i32.eqz + i32.const 1 + i32.and if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 + local.get $0 local.get $4 - i32.load offset=1568 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add local.get $2 - i32.const 16 - i32.shl + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.const -65536 + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 i32.eqz if i32.const 0 i32.const 1696 - i32.const 499 + i32.const 221 i32.const 16 call $~lib/builtins/abort unreachable end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1696 - i32.const 501 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1696 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1696 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + i32.shr_u else + i32.const 31 + i32.const 1073741820 local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add local.get $2 - i32.load - i32.const -4 - i32.and - i32.add + 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.load - i32.const -3 - i32.and - i32.store + 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 1696 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 + local.get $5 + i32.const 4 + i32.shl local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 - global.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl local.get $2 - local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 i32.load offset=4 - i32.const 3 - i32.and + i32.const 1 + local.get $2 + i32.shl i32.or i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load + ) + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 i32.const -4 i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 i32.eqz if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 35044 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end return end local.get $0 + i32.load offset=8 + local.tee $0 i32.eqz if i32.const 0 i32.const 1424 - i32.const 295 - i32.const 14 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white local.get $1 - i32.const 20 - i32.sub - local.tee $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $bindings/esm/newInternref (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 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 2096 - i32.const 1424 - i32.const 338 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/itcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 2160 - i32.const 1424 - i32.const 352 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (func $~lib/rt/itcms/__collect - 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 + i32.or + i32.store offset=4 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -2038,189 +1523,84 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~setArgumentsLength (param $0 i32) + (func $export:bindings/esm/staticarrayU16 (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 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - global.set $~argumentsLength ) - (func $~start - global.get $~started + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 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 2276 + i32.lt_s if - return + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 1 - global.set $~started - i32.const 1152 - i32.const 1 - f64.const 42 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 1184 - call $~lib/bindings/dom/console.log - global.get $~lib/bindings/dom/Math.E - call $~lib/bindings/dom/Math.log - drop - call $bindings/esm/Date_getTimezoneOffset - drop - memory.size - i32.const 16 - i32.shl - i32.const 35044 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1476 - i32.const 1472 - i32.store - i32.const 1480 - i32.const 1472 - i32.store - i32.const 1472 - global.set $~lib/rt/itcms/pinSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - i32.const 1504 - global.set $~lib/rt/itcms/toSpace - i32.const 1652 - i32.const 1648 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - i32.const 1656 - i32.const 1648 + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1173 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - i32.const 1648 - global.set $~lib/rt/itcms/fromSpace - ) - (func $bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub + i32.const 4 + i32.add global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$285 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1760 - local.set $2 - br $__inlined_func$~lib/string/String#concat$285 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $3 - memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - 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.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - end - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2244,14 +1624,14 @@ i32.store local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2273,16 +1653,38 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 - i32.load offset=8 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 2 i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1856 + i32.const 93 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2306,545 +1708,413 @@ i32.store local.get $1 local.get $0 - i32.load offset=8 - i32.const 3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 i32.shr_u i32.ge_u if i32.const 1552 - i32.const 1792 - i32.const 1173 - i32.const 64 + i32.const 1856 + i32.const 78 + i32.const 41 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add - local.get $2 - i64.store + i32.load global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 256 + i32.lt_u + if local.get $1 - i32.store - block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - 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 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1248 - i32.const 1296 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $2 - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor - end - br $folding-inner1 + local.set $1 end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub local.tee $2 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - local.get $5 - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if i32.const 0 - local.set $3 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 - local.get $4 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1696 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 - global.set $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 local.get $2 - return + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end end - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 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 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) i32.const 1 - call $~lib/builtins/abort + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if unreachable end - global.get $~lib/memory/__stack_pointer + i32.const 35056 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 36624 + i32.const 0 i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 35056 + i32.add + i32.const 0 + i32.store 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 35056 + i32.add + i32.const 0 + i32.store 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 35056 + i32.const 36628 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 35056 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u + i64.extend_i32_u + i64.lt_u if - i32.const 1552 - i32.const 1856 - i32.const 78 - i32.const 41 + i32.const 0 + i32.const 1696 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1696 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1696 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $0 - i32.const 20 i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 1552 - i32.const 1856 - i32.const 93 - i32.const 41 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 + local.get $4 i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.and + local.get $3 + i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 2276 - i32.lt_s - if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $3 + i32.add + local.tee $3 + i32.const 2 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + local.get $3 + i32.store offset=1568 local.get $0 - i32.load offset=12 - i32.ge_u + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1552 + call $~lib/rt/itcms/__visit + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1968 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 2096 + call $~lib/rt/itcms/__visit + i32.const 2160 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $bindings/esm/mutableStringGlobal + local.tee $0 if - i32.const 1552 - i32.const 1920 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1424 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -2974,9 +2244,144 @@ i32.store offset=8 end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1552 + i32.const 1920 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + if + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1552 + i32.const 1920 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + if + i32.const 1968 + i32.const 1920 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3046,9 +2451,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3063,8 +2468,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3083,7 +2488,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 local.get $1 @@ -3091,210 +2495,339 @@ i32.shl i32.add i32.load - local.tee $0 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$285 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1760 + local.set $2 + br $__inlined_func$~lib/string/String#concat$285 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $3 + memory.copy + local.get $2 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + 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.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + i32.const 1152 + i32.const 1 + f64.const 42 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 1184 + call $~lib/bindings/dom/console.log + global.get $~lib/bindings/dom/Math.E + call $~lib/bindings/dom/Math.log + drop + call $bindings/esm/Date_getTimezoneOffset + drop + memory.size + i32.const 16 + i32.shl + i32.const 35044 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1476 + i32.const 1472 + i32.store + i32.const 1480 + i32.const 1472 + i32.store + i32.const 1472 + global.set $~lib/rt/itcms/pinSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/toSpace + i32.const 1652 + i32.const 1648 + i32.store + i32.const 1656 + i32.const 1648 + i32.store + i32.const 1648 + global.set $~lib/rt/itcms/fromSpace + ) + (func $~setArgumentsLength (param $0 i32) + local.get $0 + global.set $~argumentsLength + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 i32.eqz if - i32.const 1968 - i32.const 1920 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 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 - i32.const 2276 - i32.lt_s + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 + i32.const 2160 + i32.const 1424 + i32.const 352 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq if local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1552 - i32.const 1920 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 local.get $1 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $0 - local.get $3 - i32.store offset=12 + local.get $1 + i32.store offset=8 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $0 + if local.get $0 i32.const 20 i32.sub - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $4 - local.get $2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $5 - i32.const 1073741820 - i32.gt_u + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq if - i32.const 1248 - i32.const 1296 - i32.const 52 - i32.const 43 + i32.const 2096 + i32.const 1424 + i32.const 338 + i32.const 7 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/pinSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $3 + i32.const 3 + i32.or i32.store offset=4 - local.get $5 - local.get $0 + local.get $1 local.get $2 - memory.copy + i32.store offset=8 local.get $2 - local.get $5 - i32.add local.get $1 - local.get $4 - memory.copy - 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.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $3 + local.get $1 + i32.store offset=8 + end + local.get $0 + ) + (func $~lib/rt/itcms/__collect + 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 - i32.const 35072 - i32.const 35120 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3318,7 +2851,7 @@ i32.store offset=4 local.get $0 local.get $1 - call $bindings/esm/stringFunction + call $bindings/esm/typedarrayFunction global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3396,7 +2929,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/stringFunction (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3420,7 +2953,7 @@ i32.store offset=4 local.get $0 local.get $1 - call $bindings/esm/typedarrayFunction + call $bindings/esm/stringFunction global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3618,9 +3151,265 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/staticarrayU16 (param $0 i32) (result i32) + (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + 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 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$bindings/esm/PlainObject#constructor$4 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 68 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=18 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + f32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + f64.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=56 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=60 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=64 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$bindings/esm/PlainObject#constructor$4 + end + br $folding-inner1 + end + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load8_s + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load16_s offset=2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 + 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 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result 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 @@ -3638,12 +3427,128 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $export:bindings/esm/arrayFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/bufferFunction (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $4 + local.get $2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $0 + local.get $2 + memory.copy + local.get $2 + local.get $5 + i32.add + local.get $1 + local.get $4 + memory.copy + 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.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + i32.const 35072 + i32.const 35120 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3665,7 +3570,7 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3676,8 +3581,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3692,7 +3597,7 @@ call $~lib/array/Array#get:length local.get $4 i32.add - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3709,39 +3614,39 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 11 + i32.const 12 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store - local.get $6 + local.get $5 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 i32.const 0 i32.store offset=12 - local.get $5 + local.get $4 i32.const 268435455 i32.gt_u if @@ -3754,54 +3659,54 @@ 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 $3 + local.tee $6 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.store - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 - local.get $4 + local.get $5 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 + local.get $5 local.get $6 - local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 local.get $5 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -3813,17 +3718,22 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 + i32.store offset=12 local.get $0 local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set local.get $2 i32.const 1 i32.add @@ -3843,11 +3753,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=12 local.get $0 call $~lib/array/Array#get:length local.get $2 @@ -3855,13 +3765,18 @@ local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=12 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=8 - local.get $6 + local.get $5 local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set local.get $2 i32.const 1 i32.add @@ -3870,14 +3785,14 @@ end end 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 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 return end i32.const 35072 @@ -3887,7 +3802,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/arrayOfStringsFunction (param $0 i32) (param $1 i32) (result i32) + (func $export:bindings/esm/arrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3909,7 +3824,7 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3920,8 +3835,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3936,7 +3851,7 @@ call $~lib/array/Array#get:length local.get $4 i32.add - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -3953,39 +3868,39 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 12 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store - local.get $5 + local.get $6 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 268435455 i32.gt_u if @@ -3998,54 +3913,54 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i32.const 8 i32.le_u select i32.const 2 i32.shl - local.tee $6 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.store - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 - local.get $3 + local.get $6 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 local.get $6 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 + local.get $6 local.get $5 - local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 loop $for-loop|0 global.get $~lib/memory/__stack_pointer @@ -4057,22 +3972,17 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=8 - local.get $5 + local.get $6 local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -4092,11 +4002,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=8 local.get $0 call $~lib/array/Array#get:length local.get $2 @@ -4104,18 +4014,13 @@ local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=8 - local.get $5 + local.get $6 local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set + local.get $1 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set local.get $2 i32.const 1 i32.add @@ -4124,14 +4029,14 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return end i32.const 35072 @@ -4141,28 +4046,18 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/objectFunction (param $0 i32) (param $1 i32) (result i32) + (func $bindings/esm/typedarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - 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 2276 i32.lt_s @@ -4174,7 +4069,21 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$4 (result i32) + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/typedarray/Uint64Array#constructor (result i32) + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $5 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4188,8 +4097,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 + i32.const 12 + i32.const 7 call $~lib/rt/itcms/__new local.tee $2 i32.store @@ -4198,7 +4107,7 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4206,187 +4115,259 @@ i32.lt_s br_if $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 + i32.const 12 + i32.const 3 call $~lib/rt/itcms/__new local.tee $2 i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 i32.const 0 - i32.store8 offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.store local.get $2 i32.const 0 - i32.store16 offset=18 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=24 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $2 i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=36 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 i32.const 0 - i32.store8 offset=40 + i32.store offset=8 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 0 - f32.store offset=44 + local.get $5 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - local.get $2 - f64.const 0 - f64.store offset=48 global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=56 + local.get $5 + i32.store local.get $2 - i32.const 0 + local.get $5 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - i32.store offset=60 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $5 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - i32.const 0 - i32.store offset=64 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$4 + br $__inlined_func$~lib/typedarray/Uint64Array#constructor end br $folding-inner1 end local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load8_s + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + local.get $5 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $3 - local.get $1 - i32.load8_s - i32.add - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load16_s offset=2 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + local.get $4 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 return end @@ -4397,9 +4378,20 @@ call $~lib/builtins/abort unreachable ) - (func $export:bindings/esm/internrefFunction (param $0 i32) (param $1 i32) (result i32) + (func $bindings/esm/plainFunction64 (param $0 i64) (param $1 i64) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $bindings/esm/plainFunction (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $bindings/esm/newInternref (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4414,15 +4406,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 0 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $bindings/esm/getMaxUnsigned64 (result i64) + i64.const -1 + ) + (func $bindings/esm/getMaxUnsigned32 (result i32) + i32.const -1 + ) ) diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index a22c2024c1..856132d52c 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -70,18 +70,6 @@ (export "test" (func $start:builtins~anonymous|1)) (export "memory" (memory $0)) (start $~start) - (func $start:builtins~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $start:builtins~anonymous|1 - ) - (func $start:builtins~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - ) - (func $~start - call $start:builtins - ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -244,6 +232,19 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) + (func $start:builtins~anonymous|1 + ) + (func $~start + call $start:builtins + ) + (func $start:builtins~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + unreachable + ) + (func $start:builtins~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) (func $start:builtins global.get $~lib/memory/__stack_pointer i32.const 8 @@ -596,13 +597,9 @@ global.set $builtins/I f64.const 1.24e-322 global.set $builtins/F - memory.size - drop i32.const 1 memory.grow drop - memory.size - drop i32.const 1 memory.grow drop diff --git a/tests/compiler/call-inferred.release.wat b/tests/compiler/call-inferred.release.wat index bbbd16397b..07fa104b08 100644 --- a/tests/compiler/call-inferred.release.wat +++ b/tests/compiler/call-inferred.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32) (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (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)) @@ -35,51 +35,6 @@ (data $9 (i32.const 1504) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1312 - call $~lib/rt/itcms/__visit - i32.const 1120 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1184 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -232,77 +187,391 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1456 - i32.const 268 - i32.const 14 + i32.const 1120 + i32.const 1184 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1120 i32.const 1456 - i32.const 270 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + local.get $4 + local.get $2 + i32.const 12 + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 i32.sub - local.set $2 - local.get $3 + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u + local.get $5 local.get $2 - i32.const 23 - i32.lt_u + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u + if + i32.const 0 + i32.const 1456 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1456 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1456 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1456 @@ -624,119 +893,208 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $call-inferred/Baz + block $call-inferred/Bar + block $call-inferred/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $call-inferred/Foo $call-inferred/Bar $call-inferred/Baz $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return + end + unreachable + ) + (func $call-inferred/Foo#constructor (param $0 i32) (result 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 1536 + i32.lt_s if - i32.const 0 - i32.const 1456 - i32.const 382 - i32.const 14 + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 42 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load offset=1568 - local.tee $3 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1456 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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.set $1 end - local.get $3 local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1456 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1456 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -818,975 +1176,618 @@ i32.const 34304 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1456 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if 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 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 34304 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1456 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1456 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1312 + call $~lib/rt/itcms/__visit + i32.const 1120 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1184 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34304 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34304 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1456 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 + (func $~start + (local $0 i32) + (local $1 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 1536 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34304 + i32.sub + i32.const 1 i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u + global.set $~lib/rt/itcms/threshold + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/pinSpace + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/toSpace + i32.const 1412 + i32.const 1408 + i32.store + i32.const 1416 + i32.const 1408 + i32.store + i32.const 1408 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $call-inferred/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne if - local.get $1 + i32.const 0 + i32.const 1056 + i32.const 22 i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $call-inferred/Foo#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 23 i32.const 1 - i32.sub - local.set $1 + call $~lib/builtins/abort + unreachable end - local.get $1 - i32.const 31 - local.get $1 - i32.clz + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1536 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1536 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1456 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl - i32.and - local.tee $1 - if (result i32) + i32.store local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.load offset=96 - else + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1536 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $call-inferred/Foo#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 42 + i32.ne + if i32.const 0 + i32.const 1056 + i32.const 34 + 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 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 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 1120 - i32.const 1184 - i32.const 261 - 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$70 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 + 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 - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1120 - i32.const 1456 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add i32.const 1 - i32.sub - else - local.get $5 + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow i32.const 0 - i32.lt_s + 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 offset=4 + i32.const -4 + i32.and + i32.eq if - unreachable + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34304 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1456 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1456 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1456 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $call-inferred/Baz - block $call-inferred/Bar - block $call-inferred/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $call-inferred/Foo $call-inferred/Bar $call-inferred/Baz $invalid - end - return - end - return - end - return + local.get $0 + i32.load 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 1184 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34304 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34304 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1456 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $0 + local.get $2 + local.get $2 i32.load - call $~lib/rt/itcms/__visit - return + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - return end + i32.const 10 return end - return - end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 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 1536 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34304 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/pinSpace - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/toSpace - i32.const 1412 - i32.const 1408 - i32.store - i32.const 1416 - i32.const 1408 - i32.store - i32.const 1408 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $call-inferred/Foo#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 22 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $call-inferred/Foo#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 23 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1536 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $call-inferred/Foo#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 34 - 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 34336 - i32.const 34384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $call-inferred/Foo#constructor (param $0 i32) (result 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 1536 - i32.lt_s - if - i32.const 34336 - i32.const 34384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 42 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/call-optional.release.wat b/tests/compiler/call-optional.release.wat index 79b66938d4..7f53c6549f 100644 --- a/tests/compiler/call-optional.release.wat +++ b/tests/compiler/call-optional.release.wat @@ -13,30 +13,6 @@ (elem $0 (i32.const 1) $call-optional/opt@varargs) (export "memory" (memory $0)) (start $~start) - (func $call-optional/opt@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const -1 - local.set $1 - end - i32.const -2 - local.set $2 - end - local.get $1 - i32.const 3 - i32.add - local.get $2 - i32.add - ) (func $~start i32.const 1 global.set $~argumentsLength @@ -95,4 +71,28 @@ unreachable end ) + (func $call-optional/opt@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const -1 + local.set $1 + end + i32.const -2 + local.set $2 + end + local.get $1 + i32.const 3 + i32.add + local.get $2 + i32.add + ) ) diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index d1710e2690..f36eff6343 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32 i32 i32) (result i32))) (type $1 (func (param i32 i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32) (result i32))) + (type $5 (func)) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) - (type $9 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -77,184 +77,68 @@ (elem $0 (i32.const 1) $call-rest/fn@varargs) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1744 - call $~lib/rt/itcms/__visit - i32.const 1200 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1264 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + (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 2136 + i32.lt_s if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$160 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34904 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$160 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/toSpace - local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 - local.tee $1 i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 2096 - i32.load - i32.gt_u - if - i32.const 1056 - i32.const 1392 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 2100 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new local.set $3 local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + if + local.get $3 + local.get $2 + local.get $4 + memory.copy + end + local.get $3 + i32.store + i32.const 16 + local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + call $~lib/rt/itcms/__link + local.get $1 local.get $3 - select - local.get $2 - i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $4 i32.store offset=8 local.get $1 local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 @@ -280,1702 +164,1840 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1472 - i32.const 268 - i32.const 14 + i32.const 1200 + i32.const 1264 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1472 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1200 i32.const 1472 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1472 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and if i32.const 0 i32.const 1472 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1472 - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1472 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + i32.or + i32.store offset=4 local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 i32.add - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz if i32.const 0 - i32.const 1472 - i32.const 234 + i32.const 1264 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub + global.get $~lib/rt/itcms/white local.get $1 - i32.store - 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.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.load 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 - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (func $~lib/array/Array#get:length (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 2136 + i32.lt_s if - i32.const 0 - i32.const 1472 - i32.const 251 - i32.const 14 + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + global.set $~lib/memory/__stack_pointer + ) + (func $call-rest/count (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 2136 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + call $~lib/array/Array#get:length + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 i32.add - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store offset=96 + global.set $~lib/memory/__stack_pointer + ) + (func $call-rest/Foo#sum (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or + local.tee $3 i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl + local.get $3 + call $~lib/array/Array#get:length + local.set $4 + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + local.get $3 + local.get $1 + call $~lib/array/Array#__get + local.get $2 + i32.add + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 + global.set $~lib/memory/__stack_pointer local.get $2 - i32.shl - i32.or - i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 local.get $1 - i64.extend_i32_u - i64.lt_u + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1472 - i32.const 382 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $3 + i32.const -4 i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 local.tee $3 + i32.const 12 + i32.lt_u if + i32.const 0 + i32.const 1472 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) local.get $3 i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1472 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.shr_u + else + i32.const 31 + i32.const 1073741820 local.get $3 - local.get $1 - i32.const 16 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1472 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub local.tee $3 - i32.const 20 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1472 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable end local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end local.get $1 + local.get $0 + local.get $2 i32.const 4 - i32.add + i32.shl local.get $3 i32.add - local.tee $3 i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.add local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 34912 - i32.const 0 - i32.store - i32.const 36480 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if local.get $0 + local.get $2 i32.const 2 i32.shl - i32.const 34912 i32.add - i32.const 0 + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 i32.store 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 34912 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 34912 - i32.const 36484 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34912 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34904 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1472 + 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 1472 + 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 + 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 1472 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$160 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white + i32.load offset=8 i32.eqz - local.get $1 - i32.const 3 + local.get $0 + i32.const 34904 + i32.lt_u i32.and - i32.ne + i32.eqz if i32.const 0 i32.const 1264 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 34904 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34904 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + br $__inlined_func$~lib/rt/itcms/Object#unlink$160 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2096 + i32.load + i32.gt_u + if + i32.const 1056 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 2100 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner0 + block $invalid + block $~lib/array/Array<~lib/string/String> + block $call-rest/Foo + block $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> $call-rest/Foo $~lib/array/Array<~lib/string/String> $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + call $~lib/array/Array~visit + return + end + local.get $0 + call $~lib/array/Array~visit + return end - global.get $~lib/rt/tlsf/ROOT - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1472 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1472 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - i32.ctz - local.tee $1 + local.get $0 + i32.load offset=12 i32.const 2 i32.shl i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.ctz - local.get $1 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl i32.add - i32.load offset=96 - else - i32.const 0 + global.set $~lib/memory/__stack_pointer + return end + unreachable end + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__new (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 + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 2136 + i32.lt_s if - i32.const 1200 - i32.const 1264 - i32.const 261 - i32.const 31 + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + i32.const 1056 + i32.const 1120 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $call-rest/fn@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 2136 + i32.lt_s if - i32.const 1200 - i32.const 1472 - i32.const 461 - i32.const 29 + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end unreachable end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if i32.const 0 - i32.const 1472 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.set $1 end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1472 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.const 5 + i32.const 1168 + call $~lib/rt/__newArray + local.tee $2 + i32.store end - local.get $4 + global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/rt/tlsf/removeBlock + i32.store offset=4 + local.get $1 local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 + call $call-rest/fn + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const 15 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $call-rest/fn (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 2136 + i32.lt_s if - i32.const 0 - i32.const 1472 - i32.const 361 - i32.const 14 + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $0 + i32.add + local.set $0 + 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 + local.get $0 + ) + (func $call-rest/Foo#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.ge_u - if + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or + i32.store offset=4 + local.get $2 + i32.const 0 i32.store local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2 i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=12 local.get $3 - i32.const 4 - i32.sub + i32.const 0 i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else + call $~lib/array/Array#__set + local.get $3 + i32.const 1 + local.get $0 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $2 - local.get $6 - i32.const -2 - i32.and + local.get $3 i32.store local.get $2 - i32.const 4 + local.get $3 + call $~lib/rt/itcms/__link + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/array/Array#get:length + local.set $7 + loop $for-loop|0 + local.get $0 + local.get $7 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + call $~lib/array/Array#__get + 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 2136 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $6 + i32.load offset=12 + local.tee $4 + i32.const 1 + i32.add + local.tee $5 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + 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 16 i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + return end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 + i32.const 34928 + i32.const 34976 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 - i32.eqz + i32.const 256 + i32.lt_u if - return + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - local.get $0 + local.get $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 1264 - i32.const 295 + i32.const 1472 + i32.const 334 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 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add i32.load offset=4 - i32.const 3 + i32.const -1 + local.get $1 + i32.shl i32.and - i32.eq - if + 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 + i32.load offset=96 + else local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl 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.tee $1 + if (result i32) local.get $0 - i32.const 3 - i32.eq - i32.and + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1472 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end end ) - (func $~lib/array/Array~visit (param $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 2136 - i32.lt_s - if - i32.const 34928 - i32.const 34976 - i32.const 1 + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) i32.const 1 - call $~lib/builtins/abort + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if unreachable end - global.get $~lib/memory/__stack_pointer + i32.const 34912 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 36480 + i32.const 0 i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner0 - block $invalid - block $~lib/array/Array<~lib/string/String> - block $call-rest/Foo - block $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> - block $~lib/array/Array - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32?%2C...~lib/array/Array%29=>i32> $call-rest/Foo $~lib/array/Array<~lib/string/String> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - 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 2136 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 2136 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - i32.load offset=12 i32.const 2 i32.shl + i32.const 34912 i32.add - local.set $2 - loop $while-continue|0 + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - local.get $2 + i32.const 16 i32.lt_u if + local.get $0 + i32.const 4 + i32.shl local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end + i32.add + i32.const 2 + i32.shl + i32.const 34912 + i32.add + i32.const 0 + i32.store offset=96 local.get $1 - i32.const 4 + i32.const 1 i32.add local.set $1 - br $while-continue|0 + br $for-loop|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - end - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - call $start:call-rest + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 34912 + i32.const 36484 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34912 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/array/Array#get:length (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 2136 - i32.lt_s + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1472 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2136 - i32.lt_s + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1472 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1472 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 1056 - i32.const 1120 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 + local.get $4 i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $call-rest/fn (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.and + local.get $3 + i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2136 - i32.lt_s - if - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 + local.tee $3 i32.const 1 - i32.add - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.or + i32.or i32.store local.get $1 - call $~lib/array/Array#get:length - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.get $0 - i32.add - local.set $0 - 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 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $call-rest/fn@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result 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 2136 - i32.lt_s - if - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1744 + call $~lib/rt/itcms/__visit + i32.const 1200 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1264 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - i32.const 1168 - call $~lib/rt/__newArray - local.tee $2 - i32.store end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $1 - local.get $2 - call $call-rest/fn - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -2108,8 +2130,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/array/Array~visit (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2131,206 +2152,81 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1056 - i32.const 1120 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store + i32.load + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $call-rest/Foo#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2136 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=12 - local.get $3 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 2136 + i32.lt_s + if + i32.const 34928 + i32.const 34976 i32.const 1 - call $~lib/array/Array#__set - local.get $3 i32.const 1 - local.get $0 - call $~lib/array/Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $2 - local.get $3 - i32.store - local.get $2 - local.get $3 - call $~lib/rt/itcms/__link - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/array/Array#get:length - local.set $7 - loop $for-loop|0 - local.get $0 - local.get $7 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load - local.tee $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - call $~lib/array/Array#__get - 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 2136 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $6 - i32.load offset=12 - local.tee $4 - i32.const 1 - i32.add - local.tee $5 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1056 + i32.const 1120 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 end - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $call-rest/Foo#constructor@varargs (param $0 i32) (result i32) (local $1 i32) @@ -2362,129 +2258,297 @@ global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + i32.const 1792 + call $~lib/rt/__newArray + local.tee $1 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $call-rest/Foo#constructor + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:call-rest + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34904 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1264 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34904 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34904 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - unreachable end - i32.const 0 - local.set $0 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.const 5 - i32.const 1792 - call $~lib/rt/__newArray - local.tee $1 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $call-rest/Foo#constructor - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $call-rest/Foo#sum (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2136 - i32.lt_s - if - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $3 - call $~lib/array/Array#get:length - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#__get - local.get $2 - i32.add - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $call-rest/count (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 2136 - i32.lt_s - if - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $start:call-rest (local $0 i32) @@ -2898,67 +2962,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2136 - i32.lt_s - if - i32.const 34928 - i32.const 34976 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $3 - local.get $2 - if - local.get $3 - local.get $2 - local.get $4 - memory.copy - end - local.get $3 - i32.store - i32.const 16 - local.get $1 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.store offset=4 - local.get $1 - local.get $4 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=12 - 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/call-super.release.wat b/tests/compiler/call-super.release.wat index 0c67fa96d2..003836b8dc 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (result i32))) (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)) @@ -35,728 +35,1066 @@ (data $9 (i32.const 1488) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) + (func $~lib/rt/itcms/__new (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.eqz + i32.const 1073741804 + i32.ge_u if - return + i32.const 1104 + i32.const 1168 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$158 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34316 - i32.lt_u - i32.and + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state i32.eqz if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$158 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if + local.get $2 i32.const 0 - i32.const 1168 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1488 - i32.load - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 2 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 i32.shl - i32.const 1492 i32.add - i32.load - i32.const 32 - i32.and + global.set $~lib/rt/itcms/threshold end - local.set $3 - local.get $2 - i32.load 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 offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1104 i32.const 1440 - i32.const 268 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 + local.get $4 + local.get $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 $3 - i32.const 256 - i32.lt_u + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and i32.const 4 i32.sub - i32.shr_u - i32.const 16 - i32.xor end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1440 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1440 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - 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 + i32.store offset=12 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 offset=96 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 local.set $3 + local.get $2 local.get $1 - i32.const 0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $3 i32.store offset=8 local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl + i32.const -4 + i32.and + i32.const 4 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 + i32.add + global.set $~lib/rt/itcms/total local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + global.get $~lib/rt/itcms/white local.get $0 - i32.load offset=1568 - local.tee $3 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - local.get $3 - i32.const 4 - i32.add local.get $1 - i32.gt_u + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter end - local.get $3 + block $__inlined_func$~lib/rt/itcms/Object#unlink$158 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34316 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$158 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1488 i32.load - local.set $4 - local.get $5 - local.set $1 + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1492 + i32.add + i32.load + i32.const 32 + i32.and end - else + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 local.get $0 - i32.const 1572 - i32.add local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - i32.sub + i32.load local.tee $3 - i32.const 20 - i32.lt_u + i32.const 1 + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1440 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add local.get $3 - i32.add + i32.const -4 + i32.and local.tee $3 - i32.const 2 - i32.store - local.get $0 + 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 $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s + i32.const 256 + i32.lt_u if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s + local.get $3 + i32.const 4 + i32.shr_u else - i32.const 0 - end - if - unreachable + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1440 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + 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 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $call-super/I + block $call-super/J + block $call-super/G + block $call-super/H + block $call-super/E + block $call-super/F + block $call-super/C + block $call-super/D + block $call-super/A + block $call-super/B + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $call-super/B $call-super/A $call-super/D $call-super/C $call-super/F $call-super/E $call-super/H $call-super/G $call-super/J $call-super/I $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__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 $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1440 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable end i32.const 34320 i32.const 0 @@ -805,18 +1143,215 @@ i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $for-loop|0 + end + end + i32.const 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end - i32.const 34320 - i32.const 35892 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34320 - global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + if + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + call $start:call-super ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -970,554 +1505,113 @@ 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34316 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34316 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1440 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $2 + 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 1440 - i32.const 347 - i32.const 18 + i32.const 1168 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1104 - i32.const 1168 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1104 - i32.const 1440 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 + i32.const 34316 i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 i32.add - i32.const 1 i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34316 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end + i32.const 10 + return end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.const 1440 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + global.set $~lib/rt/itcms/state end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 i32.const 0 - local.get $0 - memory.fill - local.get $1 ) (func $start:call-super (local $0 i32) @@ -2231,97 +2325,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $call-super/I - block $call-super/J - block $call-super/G - block $call-super/H - block $call-super/E - block $call-super/F - block $call-super/C - block $call-super/D - block $call-super/A - block $call-super/B - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $call-super/B $call-super/A $call-super/D $call-super/C $call-super/F $call-super/E $call-super/H $call-super/G $call-super/J $call-super/I $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__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 - call $start:call-super - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1548 - i32.lt_s - if - i32.const 34336 - i32.const 34384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index 405b45c818..54da044a10 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -1,10 +1,10 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32))) - (type $4 (func (result i32))) - (type $5 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32))) + (type $2 (func)) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32))) + (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -42,104 +42,372 @@ (data $9 (i32.const 1504) "\15\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $class-implements/a - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-implements/c - local.tee $0 + (func $~lib/rt/itcms/__new (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 - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - global.get $class-implements/d - local.tee $0 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 $class-implements/e - local.tee $0 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + call $~lib/rt/tlsf/initialize end - global.get $class-implements/f - local.tee $0 + 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 - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end - global.get $class-implements/g - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - global.get $class-implements/h - local.tee $0 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne + local.get $3 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - local.get $0 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1392 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $class-implements/I2#get:foo@override (param $0 i32) (result i32) + block $case5 + block $case4 + block $case3 + block $case2 + block $case1 + block $case0 + block $tablify|0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 14 + i32.sub + br_table $case4 $tablify|0 $case0 $case1 $case5 $case2 $case3 $tablify|0 + end + unreachable + end + local.get $0 + i32.load + return + end + local.get $0 + i32.load + return + end + local.get $0 + call $class-implements/B3#get:foo + return + end + local.get $0 + call $class-implements/B3#get:foo + return + end + local.get $0 + i32.load + return + end + local.get $0 + call $class-implements/B2#get:foo + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 i32.const 20 i32.sub local.tee $1 @@ -281,71 +549,195 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (func $class-implements/B3#get:foo (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 1592 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/object/Object#constructor (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 1592 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-implements/I2#set:foo@override (param $0 i32) (param $1 i32) + block $folding-inner0 + block $case5 + block $case3 + block $case2 + block $tablify|0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 14 + i32.sub + br_table $folding-inner0 $tablify|0 $folding-inner0 $folding-inner0 $case5 $case2 $case3 $tablify|0 + end + unreachable + end + local.get $0 + local.get $1 + call $class-implements/B3#set:foo + return + end + local.get $0 + local.get $1 + call $class-implements/B3#set:foo + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + i32.const 16 i32.lt_u local.get $2 i32.const 23 @@ -673,1246 +1065,675 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (func $~lib/rt/__visit_members (param $0 i32) + block $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/K + block $class-implements/G + 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 + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~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/G $class-implements/K $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 + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + 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 + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $class-implements/F#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1592 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34368 - i32.const 0 - i32.store - i32.const 35936 - i32.const 0 - i32.store - 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 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 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 - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34368 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34360 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34360 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34360 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1073741804 - i32.ge_u + call $class-implements/D#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-implements/D#constructor (param $0 i32) (result 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 1592 + i32.lt_s if - i32.const 1056 - i32.const 1120 - i32.const 261 - i32.const 31 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 i32.eqz if - call $~lib/rt/tlsf/initialize + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/rt/tlsf/ROOT - local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-implements/B2#constructor (param $0 i32) (result 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 1592 + i32.lt_s if - i32.const 1056 - i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 i32.eqz if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-implements/A2#constructor (param $0 i32) (result 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 1592 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 361 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 + local.get $1 i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + i32.shr_u + local.set $1 else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 i32.const 4 - i32.add + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 7 + i32.sub + local.set $2 end - local.get $2 local.get $1 - i32.store offset=12 + 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 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + i32.const 2 + i32.shl + i32.add i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i32.const -1 local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 + i32.shl i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $class-implements/I2#get:foo@override (param $0 i32) (result 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 - i32.const 14 - i32.sub - br_table $case4 $default $case0 $case1 $case5 $case2 $case3 $default - end - local.get $0 - i32.load - return - end - local.get $0 - i32.load - return - end - local.get $0 - call $class-implements/B3#get:foo - return - end - local.get $0 - call $class-implements/B3#get:foo - return - end - local.get $0 - i32.load - return - end - local.get $0 - call $class-implements/B2#get:foo - return - end - unreachable - ) - (func $class-implements/I2#set:foo@override (param $0 i32) (param $1 i32) - block $folding-inner0 - block $default - block $case5 - block $case3 - block $case2 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 14 - i32.sub - br_table $folding-inner0 $default $folding-inner0 $folding-inner0 $case5 $case2 $case3 $default - end - local.get $0 - local.get $1 - call $class-implements/B3#set:foo - return - end - local.get $0 - local.get $1 - call $class-implements/B3#set:foo - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 + local.get $2 + i32.ctz local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end - unreachable end - local.get $0 - local.get $1 - i32.store ) - (func $class-implements/B2#get:foo@override (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 i32) (local $1 i32) - block $default - block $case1 + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34368 + i32.const 0 + i32.store + i32.const 35936 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $1 - i32.const 19 - i32.ne - if + i32.const 2 + i32.shl + i32.const 34368 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - i32.const 20 - 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/B3#get:foo - return - end - local.get $0 - call $class-implements/B2#get:foo - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $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/K - block $class-implements/G - 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 - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~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/G $class-implements/K $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 - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - 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 - return - end - return + 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 offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - return end - return + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - return end - unreachable - ) - (func $~start - call $start:class-implements + i32.const 34368 + i32.const 35940 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34368 + global.set $~lib/rt/tlsf/ROOT ) - (func $class-implements/D#constructor (param $0 i32) (result 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 1592 - i32.lt_s + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + 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.eqz + i32.load offset=1568 + local.tee $3 if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $class-implements/F#constructor (result i32) + (func $~lib/rt/itcms/visitRoots (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1592 - i32.lt_s + (local $1 i32) + global.get $class-implements/a + local.tee $0 if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 11 - call $~lib/rt/itcms/__new + global.get $class-implements/c local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-implements/D#constructor + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/d local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $class-implements/A2#constructor (param $0 i32) (result 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 1592 - i32.lt_s if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz + global.get $class-implements/e + local.tee $0 if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor + global.get $class-implements/f local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/g + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-implements/h + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) - (func $class-implements/B2#constructor (param $0 i32) (result i32) + (func $class-implements/B3#set:foo (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1927,37 +1748,47 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/object/Object#constructor - local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 3 - i32.store global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + ) + (func $class-implements/B2#get:foo@override (param $0 i32) (result i32) + (local $1 i32) + block $default + block $case1 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $1 + i32.const 19 + i32.ne + if + local.get $1 + i32.const 20 + 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/B3#get:foo + return + end local.get $0 + call $class-implements/B2#get:foo ) (func $class-implements/B2#get:foo (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1988,34 +1819,268 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $class-implements/B3#get:foo (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 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + (func $~start + call $start:class-implements + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34360 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34360 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34360 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $start:class-implements (local $0 i32) @@ -2167,22 +2232,19 @@ i32.const 0 call $class-implements/D#constructor global.set $class-implements/d - block $__inlined_func$class-implements/D#foo@override$163 (result i32) - global.get $~lib/memory/__stack_pointer - global.get $class-implements/d - local.tee $0 - i32.store - i32.const 4 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 11 - i32.eq - br_if $__inlined_func$class-implements/D#foo@override$163 - drop - i32.const 3 - end + global.get $~lib/memory/__stack_pointer + global.get $class-implements/d + local.tee $0 + i32.store + i32.const 4 + i32.const 3 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 11 + i32.eq + select i32.const 3 i32.ne if @@ -2224,22 +2286,19 @@ global.set $~lib/memory/__stack_pointer local.get $0 global.set $class-implements/e - block $__inlined_func$class-implements/D#foo@override$165 (result i32) - global.get $~lib/memory/__stack_pointer - global.get $class-implements/e - local.tee $0 - i32.store - i32.const 4 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 11 - i32.eq - br_if $__inlined_func$class-implements/D#foo@override$165 - drop - i32.const 3 - end + global.get $~lib/memory/__stack_pointer + global.get $class-implements/e + local.tee $0 + i32.store + i32.const 4 + i32.const 3 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 11 + i32.eq + select i32.const 3 i32.ne if @@ -2257,22 +2316,19 @@ i32.store call $class-implements/F#constructor global.set $class-implements/g - block $__inlined_func$class-implements/D#foo@override$166 (result i32) - global.get $~lib/memory/__stack_pointer - global.get $class-implements/g - local.tee $0 - i32.store - i32.const 4 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 11 - i32.eq - br_if $__inlined_func$class-implements/D#foo@override$166 - drop - i32.const 3 - end + global.get $~lib/memory/__stack_pointer + global.get $class-implements/g + local.tee $0 + i32.store + i32.const 4 + i32.const 3 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 11 + i32.eq + select i32.const 4 i32.ne if @@ -2289,39 +2345,33 @@ global.get $class-implements/h local.tee $0 i32.store - block $__inlined_func$class-implements/I#foo@override$167 - block $default12 - block $case3 - block $case2 - block $case1 - block $case013 + block $__inlined_func$class-implements/I#foo@override$167 (result i32) + block $case3 + block $case2 + block $case1 + block $case013 + block $tablify|0 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case1 $default12 $case2 $default12 $case3 $default12 $case3 $case013 $default12 + br_table $case1 $tablify|0 $case2 $tablify|0 $case3 $tablify|0 $case3 $case013 $tablify|0 end - i32.const 4 - local.set $0 - br $__inlined_func$class-implements/I#foo@override$167 + unreachable end - i32.const 1 - local.set $0 + i32.const 4 br $__inlined_func$class-implements/I#foo@override$167 end - i32.const 2 - local.set $0 + i32.const 1 br $__inlined_func$class-implements/I#foo@override$167 end - i32.const 3 - local.set $0 + i32.const 2 br $__inlined_func$class-implements/I#foo@override$167 end - unreachable + i32.const 3 end - local.get $0 i32.const 4 i32.ne if @@ -2364,37 +2414,32 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$class-implements/J#foo@override$169 - block $default14 - block $case315 - block $case216 - block $case117 - block $case018 + block $__inlined_func$class-implements/J#foo@override$169 (result i32) + block $case315 + block $case216 + block $case117 + block $case018 + block $tablify|00 local.get $0 i32.const 8 i32.sub i32.load i32.const 8 i32.sub - br_table $case216 $default14 $case216 $case117 $case315 $case018 $default14 + br_table $case216 $tablify|00 $case216 $case117 $case315 $case018 $tablify|00 end unreachable end - i32.const 4 - local.set $0 - br $__inlined_func$class-implements/J#foo@override$169 + unreachable end - i32.const 3 - local.set $0 + i32.const 4 br $__inlined_func$class-implements/J#foo@override$169 end - i32.const 1 - local.set $0 + i32.const 3 br $__inlined_func$class-implements/J#foo@override$169 end - unreachable + i32.const 1 end - local.get $0 i32.const 1 i32.ne if @@ -2976,69 +3021,4 @@ call $~lib/builtins/abort unreachable ) - (func $class-implements/B3#set:foo (param $0 i32) (param $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 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/object/Object#constructor (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 1592 - i32.lt_s - if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index d40d976f0e..a06c23f70d 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1,12 +1,12 @@ (module - (type $0 (func)) - (type $1 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func)) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (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)) @@ -48,429 +48,173 @@ (data $13 (i32.const 1648) "\0e\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) (local $1 i32) - global.get $class-overloading-cast/v - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading-cast/v2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading-cast/v3 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading-cast/c - local.tee $0 + (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 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 i32.const 0 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold end end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 + global.get $~lib/rt/tlsf/ROOT i32.eqz if - return + call $~lib/rt/tlsf/initialize end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.eqz if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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.set $3 local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$141 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34476 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$141 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 + local.get $3 local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1648 - i32.load - i32.gt_u + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 2 - i32.shl - i32.const 1652 - i32.add - i32.load - i32.const 32 - i32.and end - local.set $3 - local.get $2 - i32.load 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 offset=4 local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $1 i32.load - local.tee $3 - 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 $3 i32.const -4 i32.and - local.tee $3 - 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 $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 + i32.const 28 i32.lt_u - i32.and - i32.eqz if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 + call $~lib/rt/tlsf/removeBlock local.get $1 i32.load 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 i32.const -4 i32.and - i32.add + i32.const 28 + i32.sub local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + i32.const 16 + i32.ge_u 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.const 2 i32.and + i32.const 28 + i32.or + i32.store + 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 + 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 local.get $1 i32.const 4 @@ -480,640 +224,854 @@ i32.const -4 i32.and i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 + local.tee $2 + local.get $2 i32.load - local.tee $6 - i32.const 1 + i32.const -3 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 end - local.get $4 - local.get $2 - i32.const 2 + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white i32.or - i32.store - 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 + i32.store offset=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 + i32.store offset=8 + local.get $2 local.get $1 - i32.store 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.load offset=4 + i32.const 3 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 + i32.or i32.store offset=4 + local.get $0 local.get $1 - local.get $3 i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end - local.get $0 - local.get $5 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + i32.const -4 + i32.and i32.const 4 - i32.shl - local.get $2 i32.add - i32.const 2 - i32.shl i32.add + global.set $~lib/rt/itcms/total local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl + i32.const 20 i32.add local.tee $0 + i32.const 0 + i32.const 0 + memory.fill local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + global.get $~lib/rt/itcms/white local.get $0 - i32.load offset=1568 - local.tee $3 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 + global.get $~lib/rt/itcms/iter i32.eq if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34480 - i32.const 0 - i32.store - i32.const 36048 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34480 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + block $__inlined_func$~lib/rt/itcms/Object#unlink$141 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if local.get $1 - i32.const 16 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34476 i32.lt_u + i32.and + i32.eqz if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34480 - i32.add i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$141 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 + else + local.get $0 + i32.const 1648 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1652 i32.add - local.set $0 - br $for-loop|0 + i32.load + i32.const 32 + i32.and end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - i32.const 34480 - i32.const 36052 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34480 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result 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 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 + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1708 + i32.lt_s + if + i32.const 34496 + i32.const 34544 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq if - local.get $0 - global.set $~lib/rt/itcms/iter + local.get $2 + i32.const 8 + i32.add + local.set $2 local.get $1 + i32.const 8 + i32.add + local.set $1 local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 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 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 34476 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 offset=4 - i32.const -4 - i32.and + end + block $__inlined_func$~lib/util/string/compareImpl$87 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end + br_if $__inlined_func$~lib/util/string/compareImpl$87 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 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 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 + i32.const 0 + local.set $3 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/object/Object#constructor (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 1708 + i32.lt_s + if + i32.const 34496 + i32.const 34544 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - i32.const 34476 - i32.lt_u + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 i32.load - i32.const -4 + i32.const -2 + local.get $2 + i32.rotl 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 34476 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + 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 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $class-overloading-cast/A + block $"class-overloading-cast/B" + block $class-overloading-cast/D + block $class-overloading-cast/A<~lib/string/String> + block $class-overloading-cast/C + block $class-overloading-cast/A + block $"class-overloading-cast/B" + block $"class-overloading-cast/B" + block $class-overloading-cast/A + block $"class-overloading-cast/B" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"class-overloading-cast/B" $class-overloading-cast/A $"class-overloading-cast/B" $"class-overloading-cast/B" $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $"class-overloading-cast/B" $class-overloading-cast/A $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return + end + return + end + return + end + return end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + return end + return end - i32.const 10 return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1172,298 +1130,268 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + memory.size local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 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 i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34480 + i32.const 0 + i32.store + i32.const 36048 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34480 + i32.add i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if + i32.store offset=4 i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34480 + i32.add + i32.const 0 + i32.store 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 34480 + i32.const 36052 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34480 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 382 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 - local.tee $3 - i32.const -4 + i32.const 19 + i32.add + i32.const -16 i32.and - i32.const 28 + i32.const 4 i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - local.get $1 local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - 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 - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else + i32.add local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const -2 - i32.and - i32.store local.get $1 - i32.const 4 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else + local.get $0 + i32.const 1572 i32.add local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 - local.get $0 local.get $1 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total local.get $1 - i32.load - i32.const -4 - i32.and i32.const 4 i32.add + local.get $3 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 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $class-overloading-cast/A - block $"class-overloading-cast/B" - block $class-overloading-cast/D - block $class-overloading-cast/A<~lib/string/String> - block $class-overloading-cast/C - block $class-overloading-cast/A - block $"class-overloading-cast/B" - block $"class-overloading-cast/B" - block $class-overloading-cast/A - block $"class-overloading-cast/B" - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"class-overloading-cast/B" $class-overloading-cast/A $"class-overloading-cast/B" $"class-overloading-cast/B" $class-overloading-cast/A $class-overloading-cast/C $class-overloading-cast/A<~lib/string/String> $class-overloading-cast/D $"class-overloading-cast/B" $class-overloading-cast/A $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $class-overloading-cast/v + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading-cast/v2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading-cast/v3 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit end - unreachable - ) - (func $~start - global.get $~started + global.get $class-overloading-cast/c + local.tee $0 if - return + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end end - i32.const 1 - global.set $~started - call $start:class-overloading-cast ) (func $class-overloading-cast/A#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1507,166 +1435,273 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1708 - i32.lt_s - if - i32.const 34496 - i32.const 34544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq + (func $~start + global.get $~started if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 return end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 + i32.const 1 + global.set $~started + call $start:class-overloading-cast + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34476 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$87 - loop $while-continue|1 + local.get $0 + i32.const 34476 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34476 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$87 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:class-overloading-cast @@ -1838,11 +1873,11 @@ local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer + global.get $class-overloading-cast/v + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer block $__inlined_func$class-overloading-cast/A#foo@override$136 (result i32) - global.get $~lib/memory/__stack_pointer - global.get $class-overloading-cast/v - local.tee $0 - i32.store offset=4 block $default block $case1 local.get $0 @@ -1900,22 +1935,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - block $__inlined_func$class-overloading-cast/A#foo@override$137 (result i32) - global.get $~lib/memory/__stack_pointer - global.get $class-overloading-cast/v3 - local.tee $0 - i32.store offset=4 - i32.const 1488 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 7 - i32.eq - br_if $__inlined_func$class-overloading-cast/A#foo@override$137 - drop - i32.const 1456 - end + global.get $class-overloading-cast/v3 + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1488 + i32.const 1456 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 7 + i32.eq + select local.tee $0 i32.store local.get $0 @@ -2157,38 +2189,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (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 1708 - i32.lt_s - if - i32.const 34496 - i32.const 34544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index 02caf42072..5552f940ac 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) + (type $1 (func (param i32))) + (type $2 (func)) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $class-overloading/which (mut i32) (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -58,441 +58,335 @@ (data $17 (i32.const 1792) "\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\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $class-overloading/which - local.tee $0 + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 34656 + i32.const 34704 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $class-overloading/a - local.tee $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - local.get $0 - call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - global.get $class-overloading/c - local.tee $0 - if + block $folding-inner0 + local.get $1 + i32.eqz local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading/ia - local.tee $0 - if + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading/ic - local.tee $0 - if + i32.store local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $class-overloading/b2 - local.tee $0 - if + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + i32.store local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 160 - 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 offset=4 - i32.const -4 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq + i32.eqz if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$171 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz + loop $do-loop|0 + local.get $2 + i64.load local.get $1 - i32.const 34636 - i32.lt_u - i32.and - i32.eqz + i64.load + i64.eq if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$171 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1792 - i32.load - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/util/string/compareImpl$95 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$95 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end end - local.get $0 - i32.const 2 + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/itcms/__new (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$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 i32.shl - i32.const 1796 i32.add - i32.load - i32.const 32 - i32.and + global.set $~lib/rt/itcms/threshold end - local.set $3 + 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 + i32.const 4 local.get $2 - i32.load offset=8 - local.set $0 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $1 + local.get $3 local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 local.get $3 + i32.gt_s select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end local.get $2 - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $1 i32.load - local.tee $3 - i32.const 1 + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1424 - i32.const 268 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 i32.const -4 i32.and - local.tee $3 - i32.const 12 - i32.lt_u + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u if - i32.const 0 - i32.const 1424 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u - select + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 + i32.add local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 local.get $4 i32.const 4 i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1424 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1424 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else local.get $1 local.get $3 - i32.const 4 - i32.add - local.get $2 - i32.const -4 + i32.const -2 i32.and - i32.add - local.tee $3 i32.store local.get $1 i32.const 4 @@ -502,640 +396,807 @@ i32.const -4 i32.and i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 + local.tee $2 + local.get $2 i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - 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.const -3 i32.and - i32.add - local.tee $3 i32.store end - local.get $4 + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 local.get $2 - i32.const 2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and i32.or - i32.store - local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1424 - 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 1424 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub + global.set $~lib/rt/itcms/total local.get $1 - i32.store - 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 1424 - 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl + i32.const 20 i32.add local.tee $0 + i32.const 0 + i32.const 0 + memory.fill local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1424 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + global.get $~lib/rt/itcms/white local.get $0 - i32.load offset=1568 - local.tee $3 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - local.get $3 - i32.const 4 - i32.add local.get $1 - i32.gt_u + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 0 - i32.const 1424 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter end - local.get $3 + block $__inlined_func$~lib/rt/itcms/Object#unlink$171 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34636 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$171 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1792 i32.load - local.set $4 - local.get $5 - local.set $1 + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1796 + i32.add + i32.load + i32.const 32 + i32.and end - else - local.get $0 - i32.const 1572 - i32.add + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + ) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + if + i32.const 34656 + i32.const 34704 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-overloading/A#a@override (param $0 i32) + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case0 $case1 $case0 $case0 $case2 $default + end + i32.const 1520 + global.set $class-overloading/which + return + end + local.get $0 + call $class-overloading/C#a + return + end + i32.const 1648 + global.set $class-overloading/which return end + i32.const 1488 + global.set $class-overloading/which + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - local.get $4 - i32.const 2 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 8 - i32.sub + i32.const -4 + i32.and local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1424 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1424 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end local.get $1 + local.get $0 + local.get $2 i32.const 4 - i32.add + i32.shl local.get $3 i32.add - local.tee $3 i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.add local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 34640 - i32.const 0 - i32.store - i32.const 36208 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if local.get $0 + local.get $2 i32.const 2 i32.shl - i32.const 34640 i32.add - i32.const 0 - i32.store 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 34640 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 34640 - i32.const 36212 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34640 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if 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 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 34636 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members + i32.const 1424 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1424 + 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 1424 + 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 + 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 1424 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $class-overloading/A1 + block $class-overloading/B1 + block $class-overloading/B2 + block $class-overloading/A2 + block $class-overloading/CC + block $class-overloading/IC + block $class-overloading/CA + block $class-overloading/IA + block $class-overloading/F + block $class-overloading/E + block $class-overloading/D + block $class-overloading/C + block $class-overloading/B + block $class-overloading/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-overloading/A $class-overloading/B $class-overloading/C $class-overloading/D $class-overloading/E $class-overloading/F $class-overloading/IA $class-overloading/CA $class-overloading/IC $class-overloading/CC $class-overloading/A2 $class-overloading/B2 $class-overloading/B1 $class-overloading/A1 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 + return end + return 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + return 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 + return + end + unreachable + ) + (func $class-overloading/B#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz if - local.get $0 - i32.load 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 1152 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34636 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34636 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + 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 + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - i32.const 0 + i32.const 34656 + i32.const 34704 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1194,419 +1255,324 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + memory.size local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 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 i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34640 + i32.const 0 + i32.store + i32.const 36208 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34640 + i32.add i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if + i32.store offset=4 i32.const 0 - i32.const 1424 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34640 + i32.add + i32.const 0 + i32.store 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 34640 + i32.const 36212 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34640 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1424 - i32.const 501 + i32.const 382 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 - local.tee $3 - i32.const -4 + i32.const 19 + i32.add + i32.const -16 i32.and - i32.const 28 + i32.const 4 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 - 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 - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 + if local.get $3 - i32.const -2 - i32.and - i32.store - local.get $1 i32.const 4 i32.add local.get $1 - i32.load - i32.const -4 - i32.and + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else + local.get $0 + i32.const 1572 i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 - local.get $0 local.get $1 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total local.get $1 - i32.load - i32.const -4 - i32.and i32.const 4 i32.add + local.get $3 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 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $class-overloading/A#a@override (param $0 i32) - block $default - block $case2 - block $case1 - block $case0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case0 $case1 $case0 $case0 $case2 $default - end - i32.const 1520 - global.set $class-overloading/which - return - end - local.get $0 - call $class-overloading/C#a - return - end - i32.const 1648 - global.set $class-overloading/which - return + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $class-overloading/which + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 1488 - global.set $class-overloading/which - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $class-overloading/A1 - block $class-overloading/B1 - block $class-overloading/B2 - block $class-overloading/A2 - block $class-overloading/CC - block $class-overloading/IC - block $class-overloading/CA - block $class-overloading/IA - block $class-overloading/F - block $class-overloading/E - block $class-overloading/D - block $class-overloading/C - block $class-overloading/B - block $class-overloading/A - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-overloading/A $class-overloading/B $class-overloading/C $class-overloading/D $class-overloading/E $class-overloading/F $class-overloading/IA $class-overloading/CA $class-overloading/IC $class-overloading/CC $class-overloading/A2 $class-overloading/B2 $class-overloading/B1 $class-overloading/A1 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return + global.get $class-overloading/a + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/ia + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/ic + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $class-overloading/b2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - return + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - return end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:class-overloading ) - (func $class-overloading/B#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $class-overloading/E#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + if + i32.const 34656 + i32.const 34704 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if 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 1868 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor + call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/D#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $class-overloading/D#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1626,273 +1592,342 @@ i64.const 0 i64.store local.get $0 - local.get $1 - i32.eq + i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/B#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $class-overloading/C#a (param $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 1868 + i32.lt_s + if + i32.const 34656 + i32.const 34704 i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1520 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store + i32.const 1520 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + i32.const 1616 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:class-overloading + ) + (func $~lib/rt/itcms/step (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 offset=4 + i32.const -4 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - i32.const 8 - i32.add - local.set $1 local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34636 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - block $__inlined_func$~lib/util/string/compareImpl$95 - loop $while-continue|1 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 1152 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34636 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34636 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$95 local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $class-overloading/C#a (param $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 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 1520 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store - i32.const 1520 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.const 1552 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - i32.const 1616 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $class-overloading/D#constructor (param $0 i32) (result 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 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-overloading/B#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $class-overloading/E#constructor (param $0 i32) (result 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 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-overloading/D#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) (func $start:class-overloading (local $0 i32) @@ -2825,31 +2860,27 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@override$168 - block $default88 - block $case189 + block $case189 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 11 + i32.ne + if local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 11 - i32.ne - if - local.get $0 - i32.const 13 - i32.eq - br_if $case189 - br $default88 - end - i32.const 1680 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$168 + i32.const 13 + i32.eq + br_if $case189 + unreachable end - i32.const 1712 + i32.const 1680 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@override$168 end - unreachable + i32.const 1712 + global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer global.get $class-overloading/which @@ -2904,31 +2935,27 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@override$170 - block $default91 - block $case192 + block $case192 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 11 + i32.ne + if local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 11 - i32.ne - if - local.get $0 - i32.const 13 - i32.eq - br_if $case192 - br $default91 - end - i32.const 1680 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$170 + i32.const 13 + i32.eq + br_if $case192 + unreachable end - i32.const 1712 + i32.const 1680 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@override$170 end - unreachable + i32.const 1712 + global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer global.get $class-overloading/which @@ -3148,38 +3175,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (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 1868 - i32.lt_s - if - i32.const 34656 - i32.const 34704 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/class-override.release.wat b/tests/compiler/class-override.release.wat index b1418a45d3..470d06af94 100644 --- a/tests/compiler/class-override.release.wat +++ b/tests/compiler/class-override.release.wat @@ -1,12 +1,12 @@ (module - (type $0 (func)) - (type $1 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func)) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32) (result i32))) + (type $7 (func (result i32))) (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)) @@ -37,57 +37,6 @@ (export "fn" (func $class-override/fn)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $class-override/x - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -240,122 +189,352 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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 - else - i32.const 31 - i32.const 1073741820 + local.set $3 + local.get $1 local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u + i32.gt_s select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + local.get $1 + i32.load + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.load offset=8 - local.set $5 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load offset=4 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq + i32.const 16 + i32.ge_u if local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 local.get $2 i32.const 2 @@ -632,26 +811,200 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $class-override/B + block $class-override/C + block $class-override/D + block $class-override/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-override/A $class-override/D $class-override/C $class-override/B $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34320 + i32.const 0 + i32.store + i32.const 35888 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34320 + i32.add + i32.const 0 + i32.store 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 34320 + i32.add + i32.const 0 + i32.store 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 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 @@ -746,669 +1099,168 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + global.get $class-override/x + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34320 - i32.const 0 - i32.store - i32.const 35888 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34320 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 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 34320 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34320 - i32.const 35892 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34320 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34308 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34308 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34308 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 - local.tee $1 - i32.const 4 - local.get $2 - i32.load 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 - i32.const 0 + ) + (func $class-override/fn (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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1540 i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1392 - i32.const 501 - 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 - 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 - 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 - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and + global.get $~lib/memory/__stack_pointer + global.get $class-override/x + local.tee $1 i32.store - end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $class-override/B - block $class-override/C - block $class-override/D - block $class-override/A - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class-override/A $class-override/D $class-override/C $class-override/B $invalid - end - return - end - return - end - return - end - local.get $0 + block $__inlined_func$class-override/A#f@override$126 + block $default + block $case1 + block $case0 + local.get $1 + i32.const 8 + i32.sub i32.load - call $~lib/rt/itcms/__visit - return + i32.const 5 + i32.sub + br_table $case1 $case1 $case0 $default end - return + local.get $1 + local.get $0 + call $class-override/B#f + local.set $0 + br $__inlined_func$class-override/A#f@override$126 end - return + 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 1540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $class-override/B#f + i32.const 100 + i32.add + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$class-override/A#f@override$126 end - return + local.get $0 + i32.const 1 + i32.add + local.set $0 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 return end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable ) + (func $class-override/B#f (param $0 i32) (param $1 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 1540 + i32.lt_s + if + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 11 + i32.add + ) (func $~start (local $0 i32) (local $1 i32) @@ -1561,167 +1413,316 @@ local.tee $0 i32.store end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-override/x + i32.const 0 + call $class-override/fn + i32.const 111 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$start:class-override + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34308 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - global.set $class-override/x - i32.const 0 - call $class-override/fn - i32.const 111 + i32.load 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 1456 - i32.const 24 - i32.const 1 + i32.const 1120 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - br $__inlined_func$start:class-override - end - i32.const 34336 - i32.const 34384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $class-override/fn (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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $class-override/x - local.tee $1 - i32.store - block $__inlined_func$class-override/A#f@override$126 - block $default - block $case1 - block $case0 - local.get $1 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case1 $case1 $case0 $default - end - local.get $1 - local.get $0 - call $class-override/B#f - local.set $0 - br $__inlined_func$class-override/A#f@override$126 - end - 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 1540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 34308 + i32.lt_u + if + local.get $0 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + i32.store offset=4 local.get $0 - call $class-override/B#f - i32.const 100 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 i32.add - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$class-override/A#f@override$126 + local.tee $0 + i32.const 34308 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end - local.get $0 - i32.const 1 - i32.add - local.set $0 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34336 - i32.const 34384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $class-override/B#f (param $0 i32) (param $1 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 1540 - i32.lt_s - if - i32.const 34336 - i32.const 34384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 11 - i32.add ) ) diff --git a/tests/compiler/class-static-function.release.wat b/tests/compiler/class-static-function.release.wat index 10a8811e24..2cec4c8884 100644 --- a/tests/compiler/class-static-function.release.wat +++ b/tests/compiler/class-static-function.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func (result i32))) - (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func)) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33916)) (memory $0 1) @@ -13,9 +13,6 @@ (elem $0 (i32.const 1) $class-static-function/Example.staticFunc) (export "memory" (memory $0)) (start $~start) - (func $class-static-function/Example.staticFunc (result i32) - i32.const 42 - ) (func $~start global.get $~lib/memory/__stack_pointer i32.const 4 @@ -47,4 +44,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $class-static-function/Example.staticFunc (result i32) + i32.const 42 + ) ) diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 992b686367..7a93b429d2 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -39,185 +39,6 @@ (export "memory" (memory $0)) (export "test" (func $export:class/test)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$139 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34336 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$139 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1536 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1540 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -242,330 +63,387 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$71 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$71 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1056 i32.const 1392 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1392 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 234 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -573,520 +451,575 @@ if i32.const 0 i32.const 1392 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - 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 offset=1568 - local.tee $3 + local.tee $1 + i32.load offset=96 + i32.eq if - local.get $3 - i32.const 4 - i32.add local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end end - else + end + ) + (func $~lib/rt/tlsf/insertBlock (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 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if local.get $0 - i32.const 1572 + 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 local.get $1 - i32.gt_u + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + 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 end + local.get $4 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + 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 2 - i32.and - local.get $3 - i32.const 8 + i32.const 4 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or + local.get $1 i32.store + 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 offset=96 + local.set $3 local.get $1 i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $3 i32.store offset=8 - local.get $1 - i32.const 4 - i32.add local.get $3 - i32.add - local.tee $3 - i32.const 2 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store local.get $0 - local.get $3 - i32.store offset=1568 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - unreachable + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter end - i32.const 34336 - i32.const 0 - i32.store - i32.const 35904 - i32.const 0 - i32.store - loop $for-loop|0 + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 local.get $0 - i32.const 23 - i32.lt_u + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if local.get $0 - i32.const 2 - i32.shl + i32.load offset=8 + i32.eqz + local.get $0 i32.const 34336 - i32.add - i32.const 0 - i32.store offset=4 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$139 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u - if + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1536 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1540 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/array/Array + block $class/GenericInitializer + block $class/Animal + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class/Animal $class/GenericInitializer $~lib/array/Array $invalid + end + return + end + return + end + return + end 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 offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.load + call $~lib/rt/itcms/__visit + return end + return end local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.load + call $~lib/rt/itcms/__visit + return end - end - i32.const 34336 - i32.const 35908 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34336 - global.set $~lib/rt/tlsf/ROOT + 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 1568 + 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 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $1 + if + local.get $0 + i32.eqz + if 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 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 34336 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1120 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if local.get $0 + i32.const 20 + i32.sub i32.load offset=4 - local.tee $1 - i32.const -4 + i32.const 3 i32.and - global.set $~lib/rt/itcms/iter + local.tee $0 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34336 - i32.lt_u + i32.eq if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $1 + call $~lib/rt/itcms/Object#makeGray else - global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq local.get $0 - i32.load - i32.const -4 + i32.const 3 + i32.eq 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 34336 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + local.get $1 + call $~lib/rt/itcms/Object#makeGray end end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1216,373 +1149,627 @@ end end ) - (func $~lib/rt/itcms/__new (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 + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end if - i32.const 1056 - i32.const 1120 - i32.const 261 - 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$71 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz + i32.const 34336 + i32.const 0 + i32.store + i32.const 35904 + i32.const 0 + i32.store + 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 offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u if - global.get $~lib/rt/itcms/total - i32.const 1 + local.get $0 + i32.const 4 i32.shl - i32.const 1024 + local.get $1 i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$71 + i32.const 2 + i32.shl + i32.const 34336 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl + local.get $0 + i32.const 1 i32.add - global.set $~lib/rt/itcms/threshold + local.set $0 + br $for-loop|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - 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 + i32.const 34336 + i32.const 35908 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34336 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 1056 + i32.const 0 i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and + 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 offset=1568 + local.tee $3 + if + local.get $3 i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 local.get $5 + local.set $1 end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 + else + local.get $0 + i32.const 1572 i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 499 - i32.const 16 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end end - local.get $5 local.get $2 - i32.load - i32.const -4 + i32.wrap_i64 + i32.const -16 i32.and - i32.gt_u + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end + local.get $1 local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 + i32.const 2 i32.and - local.get $5 + local.get $3 + i32.const 8 i32.sub local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white + i32.const 1 i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/array/Array#set:buffer (param $0 i32) (param $1 i32) + local.get $3 + i32.store offset=1568 local.get $0 local.get $1 - i32.store - local.get $1 - if + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34336 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34336 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34336 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34336 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $export:class/test (param $0 i32) (result 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 1568 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1568 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + drop + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load16_s offset=4 + drop + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load8_s offset=6 + drop + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store16 offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load 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 + i32.store8 offset=6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end + i32.const 34368 + i32.const 34416 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $class/testGenericInitializer (local $0 i32) @@ -1743,190 +1930,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/array/Array - block $class/GenericInitializer - block $class/Animal - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $class/Animal $class/GenericInitializer $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 1568 - 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 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34336 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - ) - (func $export:class/test (param $0 i32) (result 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 1568 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1568 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load16_s offset=4 - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load8_s offset=6 - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store16 offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store8 offset=6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34368 - i32.const 34416 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/const-folding.release.wat b/tests/compiler/const-folding.release.wat index bdd34a3c6c..2056595ad5 100644 --- a/tests/compiler/const-folding.release.wat +++ b/tests/compiler/const-folding.release.wat @@ -1,12 +1,16 @@ (module - (type $0 (func (param i64) (result i64))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i64) (result i64))) (global $const-folding/x (mut i32) (i32.const 0)) (memory $0 0) (export "x" (global $const-folding/x)) (export "test" (func $const-folding/test)) (export "memory" (memory $0)) (start $~start) + (func $~start + i32.const 30 + global.set $const-folding/x + ) (func $const-folding/test (param $0 i64) (result i64) local.get $0 i64.const 1 @@ -16,8 +20,4 @@ i64.shr_u i64.add ) - (func $~start - i32.const 30 - global.set $const-folding/x - ) ) diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index bf036d6c77..0299cca344 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (result i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i64))) (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)) @@ -44,105 +44,6 @@ (data $9 (i32.const 1488) "\10\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $constructor/emptyCtor - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/emptyCtorWithFieldInit - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/emptyCtorWithFieldNoInit - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/emptyCtorWithFieldAccess - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/none - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/justFieldInit - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/justFieldNoInit - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/ctorConditionallyReturnsThis - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $constructor/ctorFieldInitOrder - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -295,330 +196,422 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.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 270 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + local.get $4 + local.get $2 + i32.const 12 + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and i32.const 4 i32.sub - i32.shr_u - i32.const 16 - i32.xor end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 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 offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 if local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 - i32.or - i32.store - 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 + i32.store offset=12 local.get $2 - i32.add - i32.ne + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/object/Object#constructor (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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1392 - i32.const 234 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -626,197 +619,529 @@ if i32.const 0 i32.const 1392 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 + (local $6 i32) local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz if i32.const 0 i32.const 1392 - i32.const 382 + i32.const 201 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 offset=1568 + i32.load local.tee $3 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - i32.const 4 - i32.add + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end local.get $3 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 + i32.const 4 i32.add local.get $1 - i32.gt_u + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + 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 end + local.get $4 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + 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 2 - i32.and - local.get $3 - i32.const 8 + i32.const 4 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or + local.get $1 i32.store + 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 offset=96 + local.set $3 local.get $1 i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $3 i32.store offset=8 - local.get $1 - i32.const 4 - i32.add local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 i32.add - local.tee $3 i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store local.get $0 - local.get $3 - i32.store offset=1568 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $constructor/CtorFieldInitOrder + block $constructor/CtorFieldInitWithoutConstructor + 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 + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~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/CtorFieldInitWithoutConstructor $constructor/CtorFieldInitOrder $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + 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 $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 end if unreachable @@ -881,767 +1206,277 @@ i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - 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 offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 334 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.const 19 + i32.add + i32.const -16 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 + i32.const 4 + i32.sub + local.set $1 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 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + i32.load offset=1568 + local.tee $3 if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl + local.get $3 i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s + local.get $1 + i32.gt_u if - local.get $3 - memory.grow i32.const 0 - i32.lt_s - if - unreachable - end + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 499 - i32.const 16 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end end - local.get $5 local.get $2 - i32.load - i32.const -4 + i32.wrap_i64 + i32.const -16 i32.and - i32.gt_u + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end + local.get $1 local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $constructor/emptyCtor + local.tee $0 if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - local.get $6 + global.get $constructor/emptyCtorWithFieldInit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/emptyCtorWithFieldNoInit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/emptyCtorWithFieldAccess + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/none + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/justFieldInit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/justFieldNoInit + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/ctorConditionallyReturnsThis + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $constructor/ctorFieldInitOrder + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 i32.const -4 i32.and - local.get $5 + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $constructor/CtorFieldInitWithoutConstructor#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1556 + i32.lt_s if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub + i32.const 34352 + i32.const 34400 i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or + local.get $0 + i32.const 10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 + local.get $0 + local.get $0 i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.tee $1 - i32.const 0 + global.set $~lib/memory/__stack_pointer local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $constructor/CtorFieldInitOrder - block $constructor/CtorFieldInitWithoutConstructor - 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 - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~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/CtorFieldInitWithoutConstructor $constructor/CtorFieldInitOrder $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - 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 (local $0 i32) @@ -2121,127 +1956,293 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $constructor/ctorFieldInitOrder + global.get $~lib/memory/__stack_pointer + global.get $constructor/ctorFieldInitOrder + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 112 + 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 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.store - local.get $0 - i32.load - i32.const 3 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1456 - i32.const 112 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load 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 229 + 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 offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $constructor/CtorFieldInitWithoutConstructor#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $0 - i32.load - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/object/Object#constructor (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 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/declare.release.wat b/tests/compiler/declare.release.wat index 93d8dcee02..795c5041aa 100644 --- a/tests/compiler/declare.release.wat +++ b/tests/compiler/declare.release.wat @@ -3,9 +3,9 @@ (type $1 (func (param i32 i32 i32 i32))) (import "declare" "externalConstant" (global $declare/externalConstant i32)) (import "declare" "my.externalConstant" (global $declare/my.externalConstant i32)) - (import "declare" "externalFunction" (func $declare/externalFunction)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "declare" "my.externalFunction" (func $declare/my.externalFunction)) + (import "declare" "externalFunction" (func $declare/externalFunction)) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\14\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s") diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 1b1313c49a..09a5e6e6a9 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -34,132 +34,347 @@ (data $9 (i32.const 1472) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + (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 - i32.const 1152 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load 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 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$125 - local.get $1 + 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 offset=4 i32.const -4 i32.and - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34264 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34264 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 offset=4 + i32.const -4 i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end end - br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + 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 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - local.get $1 - i32.load offset=8 - local.tee $2 + 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 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 1152 - i32.const 132 - i32.const 16 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 + i32.const 34264 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34264 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$125 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34264 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$125 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 local.get $2 i32.load offset=4 i32.const 3 @@ -231,6 +446,70 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $do/Ref#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34288 + i32.const 34336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -623,119 +902,90 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1424 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $do/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $do/Ref $invalid + end + return + end + return + end + return + end + local.get $0 i32.load - local.set $4 - local.get $5 - local.set $1 + call $~lib/rt/itcms/__visit + return end - else + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.const 1572 - i32.add local.get $1 - i32.gt_u - if + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 347 + 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 offset=96 + else i32.const 0 - i32.const 1424 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -817,320 +1067,162 @@ i32.const 34272 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1424 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if 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 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 34264 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1424 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq if - local.get $0 - i32.load 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 1152 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34264 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34264 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 local.get $0 local.get $1 - i32.ctz - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -2 - i32.and - local.tee $1 - if (result i32) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1424 - i32.const 347 - i32.const 18 + i32.const 1152 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1190,12 +1282,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1208,7 +1299,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1363,6 +1456,9 @@ memory.fill local.get $0 ) + (func $~start + call $start:do + ) (func $start:do (local $0 i32) (local $1 i32) @@ -1509,11 +1605,10 @@ local.tee $0 i32.const 10 i32.ne + local.tee $1 br_if $do-loop|02 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1531,11 +1626,10 @@ local.tee $0 i32.const 10 i32.ne + local.tee $1 br_if $do-loop|03 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1553,14 +1647,13 @@ local.tee $0 i32.const 10 i32.ne + local.tee $1 i32.const 0 local.get $0 select br_if $do-loop|09 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1811,99 +1904,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $do/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $do/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - call $start:do - ) - (func $do/Ref#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34288 - i32.const 34336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index 100107f6b6..93f8386acc 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) + (type $0 (func (param i32))) + (type $1 (func (param i32 i32))) + (type $2 (func)) (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -36,194 +36,319 @@ (data $9 (i32.const 1504) "\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 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $duplicate-fields/foo - local.tee $0 + (func $~lib/rt/itcms/__new (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 - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - global.get $duplicate-fields/raz - local.tee $0 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 i32.const 0 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold end end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$139 - local.get $0 - i32.load offset=4 - i32.const -4 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34320 + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 i32.lt_u - i32.and - i32.eqz + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$139 end - local.get $0 - i32.load offset=8 + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz if i32.const 0 - i32.const 1120 - i32.const 132 + i32.const 1392 + i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1392 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 i32.and i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - local.get $1 - i32.const 1504 + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1508 + i32.const -4 + i32.and i32.add + local.tee $3 + local.get $3 i32.load - i32.const 32 + i32.const -3 i32.and + i32.store end - local.set $3 local.get $2 - i32.load offset=8 - local.set $1 + local.get $1 + i32.store offset=12 + local.get $2 local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 + local.get $3 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $0 i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 @@ -249,6 +374,61 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $duplicate-fields/A2#set:bar (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load 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/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -641,461 +821,184 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 + i32.const 1120 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$139 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34320 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$139 end - else local.get $0 - i32.const 1572 - i32.add + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else local.get $1 + i32.const 1504 + i32.load i32.gt_u if - i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 call $~lib/builtins/abort unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 1508 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 local.get $1 - i32.const 0 i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34320 - i32.const 0 - i32.store - i32.const 35888 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34320 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u - if + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $duplicate-fields/A3 + block $duplicate-fields/B3 + block $duplicate-fields/B2 + block $duplicate-fields/Foo + block $duplicate-fields/B + block $duplicate-fields/A + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $duplicate-fields/A $duplicate-fields/B $folding-inner0 $duplicate-fields/Foo $duplicate-fields/B2 $duplicate-fields/B3 $duplicate-fields/A3 $invalid + end + return + end + return + end + return + end + return + end + return + end + return + end local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34320 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.load + call $~lib/rt/itcms/__visit + br $folding-inner0 end + return end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + return end + unreachable end - i32.const 34320 - i32.const 35892 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34320 - global.set $~lib/rt/tlsf/ROOT + local.get $0 + i32.load + call $~lib/rt/itcms/__visit ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34320 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34320 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34320 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 256 @@ -1223,427 +1126,265 @@ end end ) - (func $~lib/rt/itcms/__new (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 + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end if - i32.const 1056 - i32.const 1120 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz + i32.const 34320 + i32.const 0 + i32.store + i32.const 35888 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34320 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u if - global.get $~lib/rt/itcms/total - i32.const 1 + local.get $0 + i32.const 4 i32.shl - i32.const 1024 + local.get $1 i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2 + i32.shl + i32.const 34320 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl + local.get $0 + i32.const 1 i32.add - global.set $~lib/rt/itcms/threshold + local.set $0 + br $for-loop|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - 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 + i32.const 34320 + i32.const 35892 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34320 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 1056 + i32.const 0 i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + 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 offset=1568 + local.tee $3 if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl + local.get $3 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + local.get $1 + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 499 + i32.const 389 i32.const 16 call $~lib/builtins/abort unreachable end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 local.get $3 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (func $duplicate-fields/A2#set:bar (param $0 i32) (param $1 i32) + local.get $3 + i32.store offset=1568 local.get $0 local.get $1 - i32.store - local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $duplicate-fields/foo + local.tee $0 if local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white + call $~lib/rt/itcms/__visit + end + global.get $duplicate-fields/raz + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.ne if local.get $0 - i32.const 20 - i32.sub i32.load offset=4 i32.const 3 i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + i32.const 3 + i32.ne 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 + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $duplicate-fields/A3 - block $duplicate-fields/B3 - block $duplicate-fields/B2 - block $duplicate-fields/Foo - block $duplicate-fields/B - block $duplicate-fields/A - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $duplicate-fields/A $duplicate-fields/B $folding-inner0 $duplicate-fields/Foo $duplicate-fields/B2 $duplicate-fields/B3 $duplicate-fields/A3 $invalid - end - return - end - return - end - return - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - br $folding-inner0 - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + (func $~start + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1552 @@ -2048,4 +1789,264 @@ call $~lib/builtins/abort unreachable ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34320 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34320 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34320 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) ) diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index 605d4f43c8..422cd0bc5a 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32 i32))) (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) (type $7 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -42,190 +42,6 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 1520 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34356 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/toSpace - local.set $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $2 - i32.const 1568 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.shl - i32.const 1572 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -250,76 +66,336 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - 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 $3 - i32.const -4 - i32.and - local.tee $3 - 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 $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 offset=4 + i32.const -4 + i32.and + i32.eq + if + i32.const 34356 + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34356 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34356 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34356 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and i32.eqz if i32.const 0 @@ -642,119 +718,209 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34356 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.tee $0 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1120 + i32.const 132 + i32.const 16 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 offset=1568 - local.tee $3 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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.set $1 end - local.get $3 local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -814,415 +980,418 @@ i32.store 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 - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34368 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 offset=4 - i32.const -4 - i32.and - i32.eq - if - i32.const 34356 - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34356 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end + i32.add + local.set $1 + br $for-loop|1 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 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 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + i32.const 34368 + i32.const 35940 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34368 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 1520 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if - i32.const 0 - i32.const 1120 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34356 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34356 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end + i32.const 0 + i32.const 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - i32.const 10 - return + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 4 - i32.shr_u - local.set $1 + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/toSpace + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 else - local.get $1 - i32.const 536870910 - i32.lt_u + local.get $2 + i32.const 1568 + i32.load + i32.gt_u if - 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.set $1 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 local.get $2 - i32.const 7 - i32.sub - local.set $2 + i32.const 2 + i32.shl + i32.const 1572 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 local.get $1 - i32.const 16 - i32.lt_u + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $1 + i32.or + i32.store offset=4 + local.get $0 local.get $2 - i32.const 23 - i32.lt_u + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34356 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add + i32.const 20 + i32.sub + local.tee $1 i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl + i32.const 3 i32.and - local.tee $1 - if (result i32) + i32.const 3 + i32.ne + if + i32.const 1520 + i32.const 1120 + i32.const 352 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + end + ) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + if local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq + if + i32.const 1456 + i32.const 1120 + i32.const 338 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/pinSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $3 + i32.const 3 + i32.or + i32.store offset=4 local.get $1 - i32.ctz local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 + i32.store offset=8 local.get $2 - i32.const 1 - i32.add - i32.shl + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end + i32.or + i32.store offset=4 + local.get $3 + local.get $1 + i32.store offset=8 end + local.get $0 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1322,8 +1491,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1351,7 +1518,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1365,7 +1533,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1537,116 +1707,6 @@ memory.fill local.get $1 ) - (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 1456 - i32.const 1120 - i32.const 338 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/itcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 1520 - i32.const 1120 - i32.const 352 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) (func $~lib/rt/itcms/__collect global.get $~lib/rt/itcms/state i32.const 0 @@ -1682,63 +1742,4 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34356 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index 21625b2ae4..f4381da8f1 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -3,9 +3,9 @@ (type $1 (func (param i32))) (type $2 (func (param i32 i32))) (type $3 (func (param i32 i32 i32 i32))) - (type $4 (func (param i32 i32 i64))) - (type $5 (func (result i32))) - (type $6 (func (param i32) (result i32))) + (type $4 (func (param i32) (result i32))) + (type $5 (func (param i32 i32 i64))) + (type $6 (func (result i32))) (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)) @@ -31,51 +31,6 @@ (data $8 (i32.const 1440) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -620,6 +575,168 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34240 + i32.const 0 + i32.store + i32.const 35808 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34240 + i32.add + i32.const 0 + i32.store 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 34240 + i32.add + i32.const 0 + i32.store 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 34240 + i32.const 35812 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34240 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -734,85 +851,85 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34240 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 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 34240 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34240 - i32.const 35812 + ) + (func $~start memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34240 - global.set $~lib/rt/tlsf/ROOT + i32.const 16 + i32.shl + i32.const 34228 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $~lib/rt/itcms/__new ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1074,63 +1191,6 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (local $0 i32) (local $1 i32) @@ -1187,12 +1247,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1205,7 +1264,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1358,64 +1419,4 @@ i32.const 0 memory.fill ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34228 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - call $~lib/rt/itcms/__new - ) ) diff --git a/tests/compiler/enum-to-string.release.wat b/tests/compiler/enum-to-string.release.wat index 91a870b03a..9e1363df6d 100644 --- a/tests/compiler/enum-to-string.release.wat +++ b/tests/compiler/enum-to-string.release.wat @@ -21,9 +21,6 @@ (data $6.1 (i32.const 1272) "\02\00\00\00\06\00\00\00C\00E\000") (export "memory" (memory $0)) (start $~start) - (func $~start - call $start:enum-to-string - ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -186,6 +183,9 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) + (func $~start + call $start:enum-to-string + ) (func $start:enum-to-string global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/export.release.wat b/tests/compiler/export.release.wat index cab08e7ae1..89f40fe121 100644 --- a/tests/compiler/export.release.wat +++ b/tests/compiler/export.release.wat @@ -11,11 +11,6 @@ (export "b" (global $export/b)) (export "renamed_c" (global $export/c)) (export "memory" (memory $0)) - (func $export/add (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 @@ -26,4 +21,9 @@ local.get $1 i32.mul ) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) ) diff --git a/tests/compiler/exportimport-table.release.wat b/tests/compiler/exportimport-table.release.wat index 9c5d7e1158..57904fd960 100644 --- a/tests/compiler/exportimport-table.release.wat +++ b/tests/compiler/exportimport-table.release.wat @@ -4,9 +4,9 @@ (memory $0 1) (data $0 (i32.const 1036) "\1c") (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") - (elem $0 (i32.const 1) $start:exportimport-table~anonymous|0) + (elem $0 (i32.const 1) $~start) (export "memory" (memory $0)) (export "table" (table $0)) - (func $start:exportimport-table~anonymous|0 + (func $~start ) ) diff --git a/tests/compiler/exports.release.wat b/tests/compiler/exports.release.wat index ec7aad9f8e..c928da80f0 100644 --- a/tests/compiler/exports.release.wat +++ b/tests/compiler/exports.release.wat @@ -12,10 +12,9 @@ (export "renamed_mul" (func $export/mul)) (export "memory" (memory $0)) (export "__setArgumentsLength" (func $~setArgumentsLength)) - (func $exports/add (param $0 i32) (param $1 i32) (result i32) + (func $~setArgumentsLength (param $0 i32) local.get $0 - local.get $1 - i32.add + global.set $~argumentsLength ) (func $exports/subOpt@varargs (param $0 i32) (param $1 i32) (result i32) block $1of1 @@ -35,13 +34,14 @@ local.get $1 i32.sub ) - (func $export/mul (param $0 i32) (param $1 i32) (result i32) + (func $exports/add (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 - i32.mul + i32.add ) - (func $~setArgumentsLength (param $0 i32) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) local.get $0 - global.set $~argumentsLength + local.get $1 + i32.mul ) ) diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index fbd6f1e267..29956c7614 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -47,69 +47,6 @@ (export "renamed_default" (func $export-default/theDefault)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $rereexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rereexport/exportsNamespaceCar - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $reexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -654,145 +591,187 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid + end + return + end + return + end + return + end + local.get $0 i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__visit + return end + return end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + unreachable + ) + (func $exports/Car#get:numDoors (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s if - return + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/initialize + (func $exports/Car#constructor (result i32) (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s if + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34336 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $0 i32.store - i32.const 35904 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34336 + i32.const 0 + i32.store + i32.const 35904 + i32.const 0 i32.store loop $for-loop|0 local.get $0 @@ -848,6 +827,315 @@ i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $rereexport/car + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rereexport/exportsNamespaceCar + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $reexport/car + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $export-default/theDefault + ) + (func $~start + (local $0 i32) + block $__inlined_func$start:exportstar-rereexport$1 + 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 1560 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + 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 1560 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34328 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + 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 + local.get $0 + call $exports/Car#get:numDoors + 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 + local.get $0 + call $exports/Car#get:numDoors + 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 + local.get $0 + call $exports/Car#get:numDoors + 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$1 + end + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) @@ -1089,81 +1377,24 @@ i32.load i32.const 1 i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - 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 offset=96 - else - i32.const 0 + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end + i32.const 0 ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) @@ -1221,12 +1452,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1239,7 +1469,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1393,235 +1625,4 @@ i32.store align=1 local.get $0 ) - (func $export-default/theDefault - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $exports/Car - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - block $__inlined_func$start:exportstar-rereexport$1 - 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 1560 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 1560 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34328 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - 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 - local.get $0 - call $exports/Car#get:numDoors - 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 - local.get $0 - call $exports/Car#get:numDoors - 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 - local.get $0 - call $exports/Car#get:numDoors - 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$1 - end - i32.const 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $exports/Car#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1560 - 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $exports/Car#get:numDoors (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 1560 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/exportstar.release.wat b/tests/compiler/exportstar.release.wat index cab08e7ae1..89f40fe121 100644 --- a/tests/compiler/exportstar.release.wat +++ b/tests/compiler/exportstar.release.wat @@ -11,11 +11,6 @@ (export "b" (global $export/b)) (export "renamed_c" (global $export/c)) (export "memory" (memory $0)) - (func $export/add (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 @@ -26,4 +21,9 @@ local.get $1 i32.mul ) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) ) diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index 280a9a62c3..7ece00a053 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (param i32))) (type $1 (func)) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (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)) @@ -46,189 +46,6 @@ (data $14.1 (i32.const 1732) "\02A\00\00\02A") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1168 - call $~lib/rt/itcms/__visit - i32.const 1408 - call $~lib/rt/itcms/__visit - i32.const 1616 - call $~lib/rt/itcms/__visit - i32.const 1216 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1280 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$142 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34508 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$142 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1696 - i32.load - i32.gt_u - if - i32.const 1408 - i32.const 1472 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1700 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -253,330 +70,387 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1552 - i32.const 268 - i32.const 14 + i32.const 1216 + i32.const 1280 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1552 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1216 i32.const 1552 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1552 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1552 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1552 - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1552 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1552 - i32.const 234 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -584,520 +458,560 @@ if i32.const 0 i32.const 1552 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1552 - i32.const 382 - 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 offset=1568 - local.tee $3 + local.tee $1 + i32.load offset=96 + i32.eq if - local.get $3 - i32.const 4 - i32.add local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1552 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end end - else + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1552 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1552 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if local.get $0 - i32.const 1572 + 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 local.get $1 - i32.gt_u + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1552 - i32.const 402 - i32.const 5 + 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 end + local.get $4 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1552 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 i32.const 4 i32.add - local.get $3 + local.get $2 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.ne if + i32.const 0 + i32.const 1552 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 34512 - i32.const 0 - i32.store - i32.const 36080 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34512 - i32.add - i32.const 0 - i32.store 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 34512 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - 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 $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 1552 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1280 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end end end - i32.const 34512 - i32.const 36084 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34512 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if 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 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 34508 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1280 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$142 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white + i32.load offset=8 i32.eqz - local.get $1 - i32.const 3 + local.get $0 + i32.const 34508 + i32.lt_u i32.and - i32.ne + i32.eqz if i32.const 0 i32.const 1280 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 34508 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34508 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + br $__inlined_func$~lib/rt/itcms/Object#unlink$142 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1280 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1696 + i32.load + i32.gt_u + if + i32.const 1408 + i32.const 1472 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1700 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $extends-baseaggregate/A2 + block $extends-baseaggregate/A1 + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $extends-baseaggregate/A1 $folding-inner0 $extends-baseaggregate/A2 $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load offset=16 + call $~lib/rt/itcms/__visit + return end - global.get $~lib/rt/tlsf/ROOT 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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1552 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.load offset=16 + call $~lib/rt/itcms/__visit + return end + local.get $0 + call $~lib/array/Array~visit + return end - i32.const 10 + local.get $0 + call $~lib/array/Array~visit return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + unreachable end - i32.const 0 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1174,428 +1088,301 @@ 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 offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1216 - i32.const 1280 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1216 - i32.const 1552 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else + local.get $0 + i32.load + i32.const -1 local.get $2 - i32.const 19 + i32.const 1 i32.add - i32.const -16 + i32.shl i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u + local.tee $1 if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - local.get $5 + i32.const 0 end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select memory.grow i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34512 + i32.const 0 + i32.store + i32.const 36080 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34512 + i32.add i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if + i32.store offset=4 i32.const 0 - i32.const 1552 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34512 + i32.add + i32.const 0 + i32.store 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 - local.get $5 + i32.const 34512 + i32.const 36084 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34512 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1552 - i32.const 501 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 + local.get $1 + i32.const 19 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1552 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 local.tee $3 - i32.const 16 - i32.ge_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1552 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1552 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.eqz - if - return - end + local.get $3 + i32.store offset=1568 local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white local.get $1 - i32.const 20 - i32.sub + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 1408 + call $~lib/rt/itcms/__visit + i32.const 1616 + call $~lib/rt/itcms/__visit + i32.const 1216 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 i32.load offset=4 - i32.const 3 + i32.const -4 i32.and - i32.eq - if + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + local.get $1 + i32.ne if local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 + i32.load offset=4 i32.const 3 - i32.eq i32.and + i32.const 3 + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1280 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1652,66 +1439,20 @@ local.get $1 i32.const 4 i32.add - local.set $1 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $~lib/array/Array - block $extends-baseaggregate/A2 - block $extends-baseaggregate/A1 - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $extends-baseaggregate/A1 $folding-inner0 $extends-baseaggregate/A2 $~lib/array/Array $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load offset=16 - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load offset=16 - call $~lib/rt/itcms/__visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return + local.set $1 + br $while-continue|0 end - unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~start (local $0 i32) @@ -1915,144 +1656,404 @@ i32.const 1176 i32.load local.tee $0 - i32.const 2 - i32.shr_u - i32.gt_u + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $2 + i32.const 268435455 + i32.gt_u + if + i32.const 1616 + i32.const 1664 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$141 + i32.const 1073741820 + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + local.get $0 + i32.const 1073741820 + i32.ge_u + select + local.tee $1 + i32.const 8 + local.get $2 + local.get $2 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + local.get $0 + local.get $1 + i32.lt_u + select + local.tee $3 + i32.const 1168 + i32.load + local.tee $0 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $3 + i32.store offset=16 + local.get $0 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$141 + end + local.get $3 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $0 + local.get $3 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $2 + local.get $3 + i32.gt_u + select + memory.copy + end + local.get $0 + local.get $1 + i32.ne + if + i32.const 1168 + local.get $1 + i32.store + i32.const 1172 + local.get $1 + i32.store + i32.const 1168 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end + i32.const 1176 + local.get $3 + i32.store + 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 1168 + i32.store + i32.const 1172 + i32.load + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + i32.const 1168 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1180 + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34508 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 $2 - i32.const 268435455 - i32.gt_u + local.get $0 + i32.load 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 1616 - i32.const 1664 - i32.const 19 - i32.const 48 + i32.const 0 + i32.const 1280 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$141 - i32.const 1073741820 + local.get $0 + i32.const 34508 + i32.lt_u + if local.get $0 - i32.const 1 - i32.shl - local.tee $0 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 1073741820 - i32.ge_u - select - local.tee $1 - i32.const 8 - local.get $2 - local.get $2 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - local.get $1 - i32.lt_u - select - local.tee $3 - i32.const 1168 - i32.load - local.tee $0 - i32.const 20 - i32.sub - local.tee $2 i32.load i32.const -4 i32.and - i32.const 16 + i32.const 4 + i32.add i32.sub - i32.le_u + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34508 + i32.ge_u if - local.get $2 - local.get $3 - i32.store offset=16 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$141 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1552 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $3 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $0 - local.get $3 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $2 - local.get $3 - i32.gt_u - select - memory.copy - end - local.get $0 - local.get $1 - i32.ne - if - i32.const 1168 - local.get $1 - i32.store - i32.const 1172 - local.get $1 - i32.store - i32.const 1168 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link end - i32.const 1176 - local.get $3 - i32.store + i32.const 10 + return 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 1168 - i32.store - i32.const 1172 - i32.load - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - i32.const 1168 - local.get $6 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1180 - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - i32.const 34528 - i32.const 34576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 ) ) diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index b00fbf4cd8..4ae0ed92db 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -32,51 +32,6 @@ (data $8 (i32.const 1440) "\06\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -621,1060 +576,1106 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 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 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 local.get $0 - i32.load offset=1568 - local.tee $3 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - local.get $3 - i32.const 4 + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 end - local.get $3 - local.get $1 + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 i32.const 16 + i32.shl + i32.const 4 i32.sub - local.tee $5 - i32.eq + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end + local.get $5 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.load + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + i32.gt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - local.get $3 - i32.const 8 + if + i32.const 0 + i32.const 1392 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub local.tee $3 - i32.const 1 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 + memory.fill local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end unreachable end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 i32.lt_u if - local.get $0 - i32.const 2 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl - i32.const 34240 i32.add - i32.const 0 - i32.store 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 34240 - i32.add - i32.const 0 - i32.store 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 + i32.sub + local.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end end - i32.const 34240 - i32.const 35812 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34240 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/tlsf/initialize (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 + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34240 + i32.const 0 + i32.store + i32.const 35808 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34240 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u if local.get $0 - global.set $~lib/rt/itcms/iter + i32.const 4 + i32.shl local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 + i32.add + i32.const 2 + i32.shl + i32.const 34240 + i32.add + i32.const 0 + i32.store 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 34240 + i32.const 35812 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34240 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if 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 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 34236 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34236 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34236 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~start + (local $0 i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u + block $__inlined_func$start:extends-recursive$1 + memory.size i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 + i32.const 34236 + i32.sub i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.ctz - local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl i32.add - i32.load offset=96 - else + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:extends-recursive$1 end - end - ) - (func $~lib/rt/itcms/__new (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 261 - i32.const 31 + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + ) + (func $~lib/rt/itcms/step (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 - local.get $2 + i32.const 1 + global.set $~lib/rt/itcms/state i32.const 0 - i32.gt_s - br_if $do-loop|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/total - global.get $~lib/rt/itcms/total - 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.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 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow i32.const 0 - i32.lt_s + 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 offset=4 + i32.const -4 + i32.and + i32.eq if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34236 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return end - return + 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 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 - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $__inlined_func$start:extends-recursive$1 - memory.size - 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 - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $0 + i32.load 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - i32.eqz + i32.const 34236 + i32.lt_u if - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 0 + i32.store offset=4 + local.get $0 i32.const 0 - call $~lib/rt/itcms/__new + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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.store + i32.const 34236 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:extends-recursive$1 + i32.const 10 + return end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end + i32.const 0 ) ) diff --git a/tests/compiler/external.release.wat b/tests/compiler/external.release.wat index 26463e94fb..5101b88d4c 100644 --- a/tests/compiler/external.release.wat +++ b/tests/compiler/external.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func)) (import "foo" "var" (global $external/var_ i32)) - (import "external" "foo" (func $external/foo)) (import "external" "bar" (func $external/two)) (import "foo" "baz" (func $external/three)) + (import "external" "foo" (func $external/foo)) (memory $0 0) (export "foo" (func $external/foo)) (export "two" (func $external/two)) diff --git a/tests/compiler/features/reference-types.release.wat b/tests/compiler/features/reference-types.release.wat index 1c580b033e..40fd3e75ca 100644 --- a/tests/compiler/features/reference-types.release.wat +++ b/tests/compiler/features/reference-types.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (result externref))) - (type $1 (func)) - (type $2 (func (param externref) (result externref))) + (type $1 (func (param externref) (result externref))) + (type $2 (func)) (type $3 (func (param i32 i32 i32 i32))) - (import "reference-types" "somethingReal" (func $features/reference-types/somethingReal (result externref))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "reference-types" "somethingNull" (func $features/reference-types/somethingNull (result externref))) + (import "reference-types" "somethingReal" (func $features/reference-types/somethingReal (result externref))) (import "reference-types" "external" (func $features/reference-types/external (param externref) (result externref))) + (import "reference-types" "somethingNull" (func $features/reference-types/somethingNull (result externref))) (global $features/reference-types/funcGlobal (mut funcref) (ref.null nofunc)) (global $features/reference-types/a externref (ref.null noextern)) (global $features/reference-types/b funcref (ref.null nofunc)) @@ -28,14 +28,6 @@ (export "nonNullReal" (global $features/reference-types/nonNullReal)) (export "memory" (memory $0)) (start $~start) - (func $features/reference-types/someFunc - ) - (func $features/reference-types/internal (param $0 externref) (result externref) - local.get $0 - call $features/reference-types/external - call $features/reference-types/external - call $features/reference-types/external - ) (func $~start (local $0 externref) call $features/reference-types/somethingReal @@ -111,4 +103,12 @@ local.get $0 global.set $features/reference-types/nonNullReal ) + (func $features/reference-types/internal (param $0 externref) (result externref) + local.get $0 + call $features/reference-types/external + call $features/reference-types/external + call $features/reference-types/external + ) + (func $features/reference-types/someFunc + ) ) diff --git a/tests/compiler/features/threads.release.wat b/tests/compiler/features/threads.release.wat index 679c863058..3db113d7ca 100644 --- a/tests/compiler/features/threads.release.wat +++ b/tests/compiler/features/threads.release.wat @@ -3,7 +3,11 @@ (memory $0 1 10 shared) (export "memory" (memory $0)) (start $~start) - (func $features/threads/testAtomic + (func $~start + call $features/threads/testAtomic + call $features/threads/testAtomicAsm + ) + (func $features/threads/testAtomicAsm i32.const 0 i32.atomic.load8_u drop @@ -25,9 +29,6 @@ i32.const 0 i64.atomic.load drop - i32.const 8 - i64.atomic.load - drop i32.const 0 i32.const 1 i32.atomic.store8 @@ -49,9 +50,6 @@ i32.const 0 i64.const 1 i64.atomic.store - i32.const 8 - i64.const 1 - i64.atomic.store i32.const 0 i32.const 1 i32.atomic.rmw8.add_u @@ -81,10 +79,6 @@ i64.atomic.rmw.add drop i32.const 0 - i64.const 1 - i64.atomic.rmw.add offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.sub_u drop @@ -113,10 +107,6 @@ i64.atomic.rmw.sub drop i32.const 0 - i64.const 1 - i64.atomic.rmw.sub offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.and_u drop @@ -145,10 +135,6 @@ i64.atomic.rmw.and drop i32.const 0 - i64.const 1 - i64.atomic.rmw.and offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.or_u drop @@ -177,10 +163,6 @@ i64.atomic.rmw.or drop i32.const 0 - i64.const 1 - i64.atomic.rmw.or offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.xor_u drop @@ -209,10 +191,6 @@ i64.atomic.rmw.xor drop i32.const 0 - i64.const 1 - i64.atomic.rmw.xor offset=8 - drop - i32.const 0 i32.const 1 i32.atomic.rmw8.xchg_u drop @@ -241,10 +219,6 @@ i64.atomic.rmw.xchg drop i32.const 0 - i64.const 1 - i64.atomic.rmw.xchg offset=8 - drop - i32.const 0 i32.const 1 i32.const 2 i32.atomic.rmw8.cmpxchg_u @@ -279,13 +253,8 @@ i64.const 2 i64.atomic.rmw.cmpxchg drop - i32.const 0 - i64.const 1 - i64.const 2 - i64.atomic.rmw.cmpxchg offset=8 - drop ) - (func $features/threads/testAtomicAsm + (func $features/threads/testAtomic i32.const 0 i32.atomic.load8_u drop @@ -307,6 +276,9 @@ i32.const 0 i64.atomic.load drop + i32.const 8 + i64.atomic.load + drop i32.const 0 i32.const 1 i32.atomic.store8 @@ -328,6 +300,9 @@ i32.const 0 i64.const 1 i64.atomic.store + i32.const 8 + i64.const 1 + i64.atomic.store i32.const 0 i32.const 1 i32.atomic.rmw8.add_u @@ -357,6 +332,10 @@ i64.atomic.rmw.add drop i32.const 0 + i64.const 1 + i64.atomic.rmw.add offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.sub_u drop @@ -385,6 +364,10 @@ i64.atomic.rmw.sub drop i32.const 0 + i64.const 1 + i64.atomic.rmw.sub offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.and_u drop @@ -413,6 +396,10 @@ i64.atomic.rmw.and drop i32.const 0 + i64.const 1 + i64.atomic.rmw.and offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.or_u drop @@ -441,6 +428,10 @@ i64.atomic.rmw.or drop i32.const 0 + i64.const 1 + i64.atomic.rmw.or offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.xor_u drop @@ -469,6 +460,10 @@ i64.atomic.rmw.xor drop i32.const 0 + i64.const 1 + i64.atomic.rmw.xor offset=8 + drop + i32.const 0 i32.const 1 i32.atomic.rmw8.xchg_u drop @@ -497,6 +492,10 @@ i64.atomic.rmw.xchg drop i32.const 0 + i64.const 1 + i64.atomic.rmw.xchg offset=8 + drop + i32.const 0 i32.const 1 i32.const 2 i32.atomic.rmw8.cmpxchg_u @@ -531,9 +530,10 @@ i64.const 2 i64.atomic.rmw.cmpxchg drop - ) - (func $~start - call $features/threads/testAtomic - call $features/threads/testAtomicAsm + i32.const 0 + i64.const 1 + i64.const 2 + i64.atomic.rmw.cmpxchg offset=8 + drop ) ) diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index 6f87390f7f..187b718ade 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func)) - (type $1 (func (param i32))) + (type $1 (func (param i32 i32) (result i32))) (type $2 (func (param i32 i32))) (type $3 (func (result i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $4 (func (param i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) @@ -50,322 +50,798 @@ (data $16.1 (i32.const 1832) " \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1536 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + (func $~lib/rt/itcms/__new (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 261 + 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$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 i32.const 0 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold end end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$241 - local.get $0 - i32.load offset=4 - i32.const -4 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34668 + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 i32.lt_u - i32.and - i32.eqz + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$241 end - local.get $0 - i32.load offset=8 + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz if i32.const 0 - i32.const 1120 - i32.const 132 + i32.const 1392 + i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1392 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - local.get $1 - i32.const 1792 + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1796 + i32.const -4 + i32.and i32.add + local.tee $3 + local.get $3 i32.load - i32.const 32 + i32.const -3 i32.and + i32.store end - local.set $3 local.get $2 - i32.load offset=8 - local.set $1 + local.get $1 + i32.store offset=12 + local.get $2 local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 + local.get $3 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $0 i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 i32.eqz if return end - global.get $~lib/rt/itcms/white local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount + i32.const 20 + i32.sub + i32.load 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 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (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 1900 + i32.lt_s + if + i32.const 34688 + i32.const 34736 i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + local.get $1 + i32.const 20 i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $3 - local.get $4 + local.tee $0 i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$118 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$118 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 i32.load offset=4 - local.tee $4 + i32.const 3 + i32.and + i32.eq if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - local.get $5 + ) + (func $~lib/object/Object#constructor (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 1900 + i32.lt_s if - local.get $5 - local.get $4 - i32.store offset=4 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 - local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $3 i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $field-initialization/SomeObject#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1900 + i32.lt_s if - local.get $1 - local.get $5 - i32.store offset=96 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 local.get $5 i32.eqz if @@ -645,503 +1121,235 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 + i32.const 1120 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$241 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34668 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$241 end - else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + i32.load offset=8 + local.tee $2 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1792 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1796 + i32.add + i32.load + i32.const 32 + i32.and end - local.get $1 - local.get $4 + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 local.get $1 - i32.const 0 i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $field-initialization/SomeOtherObject + block $field-initialization/SomeObject + block $field-initialization/Value_Ctor_Init + block $field-initialization/Value_Init_Ctor + block $field-initialization/Value_Ctor + block $field-initialization/Value + block $field-initialization/Value_Init + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + return + end + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + call $~lib/rt/itcms/__visit + return + end unreachable end - i32.const 34672 - i32.const 0 - i32.store - i32.const 36240 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 i32.lt_u if - local.get $0 - i32.const 2 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl - i32.const 34672 i32.add - i32.const 0 - i32.store 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 34672 - i32.add - i32.const 0 - i32.store 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 + i32.sub + local.set $1 end - end - i32.const 34672 - i32.const 36244 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34672 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34668 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34668 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34668 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end local.get $1 i32.const 16 @@ -1196,465 +1404,282 @@ local.get $0 local.get $1 i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.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 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - local.get $5 + i32.const 0 end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select memory.grow i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34672 + i32.const 0 + i32.store + i32.const 36240 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34672 + i32.add i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if + i32.store offset=4 i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34672 + i32.add + i32.const 0 + i32.store 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 - local.get $5 + i32.const 34672 + i32.const 36244 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34672 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 + local.get $1 + i32.const 19 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 local.tee $3 - i32.const 16 - i32.ge_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - local.get $1 - i32.eqz - if - return - end + local.get $3 + i32.store offset=1568 local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white local.get $1 - i32.const 20 - i32.sub + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1536 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 i32.load offset=4 - i32.const 3 + i32.const -4 i32.and - i32.eq - if + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + local.get $1 + i32.ne 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.load offset=4 i32.const 3 - i32.eq i32.and + i32.const 3 + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $field-initialization/SomeOtherObject - block $field-initialization/SomeObject - block $field-initialization/Value_Ctor_Init - block $field-initialization/Value_Init_Ctor - block $field-initialization/Value_Ctor - block $field-initialization/Value - block $field-initialization/Value_Init - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return - end - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - return + i32.const 0 + i32.const 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit + i32.const 20 + i32.add + call $~lib/rt/__visit_members local.get $0 - i32.load offset=8 - call $~lib/rt/itcms/__visit - return + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - unreachable end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - call $start:field-initialization ) - (func $field-initialization/Inherit_Base#constructor (param $0 i32) (result i32) - (local $1 i32) + (func $field-initialization/SomeOtherObject#constructor (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1672,49 +1697,38 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end + i32.const 12 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/object/Object#constructor + call $field-initialization/SomeObject#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - i32.store + i32.const 0 + i32.store offset=8 local.get $0 - local.get $1 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $field-initialization/SomeObject#constructor (param $0 i32) (result i32) + (func $field-initialization/Inherit_Base#constructor (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1731,12 +1745,15 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 21 + i32.const 4 + i32.const 19 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1752,234 +1769,285 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $0 - i32.const 0 - i32.store + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 + local.get $1 + i32.store local.get $0 - i32.const 0 + local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~start + call $start:field-initialization + ) + (func $~lib/rt/itcms/step (result i32) + (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 + 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 offset=4 + i32.const -4 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - i32.const 8 - i32.add - local.set $1 local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34668 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - block $__inlined_func$~lib/util/string/compareImpl$118 - loop $while-continue|1 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34668 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34668 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$118 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $field-initialization/SomeOtherObject#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $field-initialization/SomeObject#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:field-initialization (local $0 i32) @@ -3421,71 +3489,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (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 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (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 1900 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 415b3934d5..da05c7bb6a 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32 i32))) (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) (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)) @@ -35,183 +35,6 @@ (data $9.1 (i32.const 1496) "\02A\00\00\02\t") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$127 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34272 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$127 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1472 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1476 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -236,851 +59,1220 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - 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 $3 - i32.const -4 - i32.and - local.tee $3 - 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 $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34272 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl + local.tee $1 + i32.const -4 i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 + 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34272 + i32.lt_u if local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 i32.load - i32.const -2 - local.get $2 - i32.rotl + i32.const -4 i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if + 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 34272 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.const 1392 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + i32.const 0 + ) + (func $~lib/rt/itcms/__new (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 - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.const 2 - i32.and + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - 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 + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - 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 end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 i32.add - i32.ne + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1056 i32.const 1392 - i32.const 234 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store local.get $2 - i32.const 256 - i32.lt_u + i32.const 12 + i32.le_u if (result i32) - local.get $2 - i32.const 4 - i32.shr_u + i32.const 12 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.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 i32.sub - local.set $5 - local.get $2 - local.get $3 + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $2 - i32.const 16 - i32.lt_u local.get $5 - i32.const 23 - i32.lt_u + local.get $2 + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 251 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $5 - i32.const 4 - i32.shl + local.get $4 local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl + call $~lib/rt/tlsf/removeBlock local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 + local.set $6 local.get $5 - i32.const 2 - i32.shl + i32.const 4 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + i32.const 15 + i32.and if i32.const 0 i32.const 1392 - i32.const 382 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $6 + i32.const -4 i32.and - i32.const 4 + local.get $5 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 local.tee $3 + i32.const 16 + i32.ge_u if - local.get $3 + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + local.get $5 + i32.add + local.tee $5 local.get $3 - local.get $1 - i32.const 16 + i32.const 4 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - local.get $0 - i32.const 1572 + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store end + local.get $2 local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 + memory.fill local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if i32.const 0 - i32.lt_s - else + i32.const 1392 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 34272 - i32.const 0 - i32.store - i32.const 35840 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if local.get $0 + local.get $2 i32.const 2 i32.shl - i32.const 34272 i32.add - i32.const 0 + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 i32.store 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 34272 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 34272 - i32.const 35844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34272 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (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 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if 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 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 34272 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + 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 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$127 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white + i32.load offset=8 i32.eqz - local.get $1 - i32.const 3 + local.get $0 + i32.const 34272 + i32.lt_u i32.and - i32.ne + i32.eqz if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 34272 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34272 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + br $__inlined_func$~lib/rt/itcms/Object#unlink$127 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1472 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1476 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array + block $~lib/array/Array<~lib/string/String> + block $field/NoStaticConflict + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $field/NoStaticConflict $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end - global.get $~lib/rt/tlsf/ROOT - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1504 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 15 - i32.and - i32.const 1 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + br $folding-inner1 end + 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 1504 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner1 end - i32.const 10 - return + unreachable end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1152,376 +1344,302 @@ 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.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 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz local.get $2 - i32.const 16 - i32.shl i32.const 4 - i32.sub - i32.ne i32.shl i32.add - i32.const 65535 + i32.const 2 + i32.shl i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort unreachable end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable end end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort + i32.lt_s + else + i32.const 0 + end + if unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock + i32.const 34272 + i32.const 0 + i32.store + i32.const 35840 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34272 + i32.add + i32.const 0 + i32.store 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 34272 + i32.add + i32.const 0 + i32.store 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 34272 + i32.const 35844 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34272 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 361 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 + local.get $1 + i32.const 19 + i32.add + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 local.tee $3 - i32.const 16 - i32.ge_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 @@ -1577,6 +1695,9 @@ end end ) + (func $~start + call $start:field + ) (func $start:field (local $0 i32) (local $1 i32) @@ -1788,124 +1909,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $~lib/array/Array<~lib/string/String> - block $field/NoStaticConflict - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $field/NoStaticConflict $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 1504 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - br $folding-inner1 - end - 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 1504 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 - end - unreachable - end - 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.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~start - call $start:field - ) ) diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index 4f07612e6c..d638bb953f 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -34,245 +34,524 @@ (data $9 (i32.const 1472) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $for/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.ne + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1496 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end + i32.const 34288 + i32.const 34336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__visit (param $0 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load 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 offset=8 - local.tee $0 - i32.eqz - if + 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 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$128 - local.get $1 + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34264 - i32.lt_u - i32.and - i32.eqz + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$128 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 + 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 offset=4 - i32.const 3 + i32.const -4 i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1472 - i32.load - i32.gt_u + i32.eq if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34264 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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.const 2 - i32.shl - i32.const 1476 - i32.add - i32.load - i32.const 32 + i32.load 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 1152 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34264 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34264 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - local.set $3 - local.get $2 - i32.load 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 offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $2 - local.get $1 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 0 + global.set $~lib/rt/itcms/state end + i32.const 0 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + local.get $0 i32.eqz if - i32.const 0 - i32.const 1424 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $3 - i32.const -4 + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 i32.and - local.tee $3 - i32.const 12 - i32.lt_u + i32.eq if - i32.const 0 - i32.const 1424 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 + local.get $1 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$128 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34264 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$128 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1472 + i32.load + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1476 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1424 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 i32.const 1073741820 local.get $3 local.get $3 @@ -623,514 +902,327 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1424 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1424 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34272 - i32.const 0 - i32.store - i32.const 35840 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34272 - i32.add - i32.const 0 - i32.store 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 34272 - i32.add - i32.const 0 - i32.store 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 34272 - i32.const 35844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34272 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34264 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $for/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $for/Ref $invalid end - local.get $0 - i32.load 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + return + end + return + end + return end - global.get $~lib/rt/itcms/visitCount + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 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 1152 - i32.const 229 - i32.const 20 + i32.const 1424 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34264 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34264 - i32.ge_u + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34272 + i32.const 0 + i32.store + i32.const 35840 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34272 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT 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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34272 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.add + local.set $1 + br $for-loop|1 end end - i32.const 10 - return + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 34272 + i32.const 35844 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34272 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1424 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1424 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 local.get $0 local.get $1 - i32.ctz - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -2 - i32.and - local.tee $1 - if (result i32) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1424 - i32.const 347 - i32.const 18 + i32.const 1152 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1190,12 +1282,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1208,7 +1299,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1363,10 +1456,14 @@ memory.fill local.get $0 ) + (func $~start + call $start:for + ) (func $start:for (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) loop $for-loop|0 local.get $0 i32.const 10 @@ -1490,11 +1587,10 @@ local.tee $0 i32.const 10 i32.ne + local.tee $3 br_if $for-loop|06 end - local.get $0 - i32.const 10 - i32.ne + local.get $3 if i32.const 0 i32.const 1056 @@ -1807,99 +1903,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $for/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $for/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - call $start:for - ) - (func $for/Ref#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1496 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34288 - i32.const 34336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index fa80a471b8..ae676fe060 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -56,67 +56,6 @@ (elem $0 (i32.const 1) $start:function-call~anonymous|0 $start:function-call~anonymous|0 $start:function-call~anonymous|2 $start:function-call~anonymous|2 $start:function-call~fn2|4 $function-call/Foo#fnVoid $start:function-call~fn2|4 $function-call/Foo#fnRet) (export "memory" (memory $0)) (start $~start) - (func $start:function-call~anonymous|0 - ) - (func $start:function-call~anonymous|2 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $start:function-call~fn2|4 (param $0 i32) (result i32) - i32.const 1 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $function-call/foo - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -661,6 +600,201 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $function-call/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $function-call/Foo $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + end + 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 1804 + i32.lt_s + if + i32.const 34592 + i32.const 34640 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34576 + i32.const 0 + i32.store + i32.const 36144 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34576 + i32.add + i32.const 0 + i32.store 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 34576 + i32.add + i32.const 0 + i32.store 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 34576 + i32.const 36148 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34576 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -775,567 +909,222 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + global.get $function-call/foo + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34576 - i32.const 0 - i32.store - i32.const 36144 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34576 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 160 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 34576 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34576 - i32.const 36148 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34576 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result 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 $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$69 + i32.const 2048 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow 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 offset=4 - i32.const -4 - i32.and - i32.eq + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34572 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + unreachable 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 + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if - local.get $0 - i32.load 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 1344 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34572 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34572 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 0 + i32.const 1616 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 + end + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1616 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - i32.const -2 + local.get $2 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 + i32.const -4 i32.and - local.tee $1 - if (result i32) - local.get $0 + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if local.get $1 - i32.ctz + local.get $3 i32.const 2 - i32.shl + i32.and + i32.const 28 + i32.or + i32.store + local.get $1 + i32.const 32 i32.add - i32.load offset=96 + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 - local.tee $1 - i32.const 4 - local.get $2 - i32.load 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 - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 1616 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 501 - 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 - 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 - 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 - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 + local.get $1 + local.get $3 i32.const -2 i32.and i32.store @@ -1401,72 +1190,19 @@ memory.fill local.get $0 ) - (func $function-call/Foo#fnVoid (param $0 i32) + (func $start:function-call~fn2|4 (param $0 i32) (result i32) + i32.const 1 ) - (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - i32.const 3 + (func $start:function-call~anonymous|2 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $function-call/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $function-call/Foo $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - end - 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 1804 - i32.lt_s - if - i32.const 34592 - i32.const 34640 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~start - (local $0 i32) - (local $1 i32) + (func $start:function-call~anonymous|0 + ) + (func $~start + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1650,4 +1386,269 @@ call $~lib/builtins/abort unreachable ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34572 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1344 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34572 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34572 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $function-call/Foo#fnVoid (param $0 i32) + ) + (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 3 + ) ) diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index 9272f39796..560499a4a1 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -76,205 +76,6 @@ (export "semanticallyAnonymous" (func $function-expression/semanticallyAnonymous)) (export "memory" (memory $0)) (start $~start) - (func $start:function-expression~anonymous|0 (param $0 i32) (result i32) - local.get $0 - ) - (func $start:function-expression~someName|2 - ) - (func $start:function-expression~anonymous|3 (result i32) - i32.const 1 - ) - (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) - i32.const 3 - ) - (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (result i32) - i32.const 1 - ) - (func $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) - i32.const 42 - ) - (func $start:function-expression~anonymous|7~anonymous|0 (param $0 i32) (result i32) - local.get $0 - i32.const 24 - i32.add - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1792 - call $~lib/rt/itcms/__visit - i32.const 1600 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1664 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$133 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34924 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$133 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 2112 - i32.load - i32.gt_u - if - i32.const 1792 - i32.const 1856 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 2116 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -299,6 +100,9 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $start:function-expression~anonymous|0 (param $0 i32) (result i32) + local.get $0 + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -691,57 +495,392 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1936 - i32.const 382 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1936 - i32.const 389 - i32.const 16 + i32.const 1664 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$133 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34924 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$133 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2112 + i32.load + i32.gt_u + if + i32.const 1792 + i32.const 1856 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 2116 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $function-expression/FieldClass + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $function-expression/FieldClass $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + end + 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 2156 + i32.lt_s + if + i32.const 34944 + i32.const 34992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:function-expression~anonymous|7~anonymous|0 (param $0 i32) (result i32) + local.get $0 + i32.const 24 + i32.add + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34928 + i32.const 0 + i32.store + i32.const 36496 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34928 + i32.add + i32.const 0 + i32.store 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 34928 + i32.add + i32.const 0 + i32.store 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 34928 + i32.const 36500 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34928 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1936 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 local.get $5 local.set $1 end @@ -805,85 +944,92 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size + i32.const 1792 + call $~lib/rt/itcms/__visit + i32.const 1600 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34928 - i32.const 0 - i32.store - i32.const 36496 - i32.const 0 - i32.store - loop $for-loop|0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34928 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + local.get $1 + i32.ne + if + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1664 + i32.const 160 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 34928 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34928 - i32.const 36500 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34928 - global.set $~lib/rt/tlsf/ROOT + ) + (func $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) + i32.const 42 + ) + (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (result i32) + i32.const 1 + ) + (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) + i32.const 3 + ) + (func $start:function-expression~anonymous|3 (result i32) + i32.const 1 + ) + (func $function-expression/semanticallyAnonymous + 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 2156 + i32.lt_s + if + i32.const 34944 + i32.const 34992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2064 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:function-expression ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1145,63 +1291,6 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1936 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) (local $1 i32) @@ -1258,12 +1347,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1276,7 +1364,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1430,65 +1520,9 @@ i32.store align=1 local.get $0 ) - (func $function-expression/semanticallyAnonymous - 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 2156 - i32.lt_s - if - i32.const 34944 - i32.const 34992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2064 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + (func $start:function-expression~someName|2 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $function-expression/FieldClass - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $function-expression/FieldClass $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - end + (func $start:function-expression~anonymous|7 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1508,18 +1542,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1472 i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~start - call $start:function-expression + i32.const 1472 ) (func $start:function-expression (local $0 i32) @@ -1922,34 +1951,6 @@ call $~lib/builtins/abort unreachable ) - (func $start:function-expression~anonymous|7 (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 2156 - i32.lt_s - if - i32.const 34944 - i32.const 34992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1472 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1472 - ) (func $function-expression/testLocal~anonymous|0 (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/function-inline-regressions.release.wat b/tests/compiler/function-inline-regressions.release.wat index 8fb2f2a946..0f2d81b39f 100644 --- a/tests/compiler/function-inline-regressions.release.wat +++ b/tests/compiler/function-inline-regressions.release.wat @@ -1,16 +1,10 @@ (module - (type $0 (func (param i32))) - (type $1 (func (param i32 i32 i32) (result i32))) + (type $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32))) (memory $0 0) (export "baz" (func $function-inline-regressions/baz)) (export "foo" (func $function-inline-regressions/foo)) (export "memory" (memory $0)) - (func $function-inline-regressions/baz (param $0 i32) - local.get $0 - if - unreachable - end - ) (func $function-inline-regressions/foo (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 @@ -39,4 +33,10 @@ i32.store local.get $3 ) + (func $function-inline-regressions/baz (param $0 i32) + local.get $0 + if + unreachable + end + ) ) diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index 726e8230ce..5b3f80a227 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -27,12 +27,6 @@ local.get $1 i32.add ) - (func $function-types/makeAdder~anonymous|0 (param $0 i64) (param $1 i64) (result i64) - i64.const 30 - ) - (func $function-types/makeAdder~anonymous|0 (param $0 f64) (param $1 f64) (result f64) - f64.const 4 - ) (func $~start (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -213,4 +207,10 @@ call $~lib/builtins/abort unreachable ) + (func $function-types/makeAdder~anonymous|0 (param $0 i64) (param $1 i64) (result i64) + i64.const 30 + ) + (func $function-types/makeAdder~anonymous|0 (param $0 f64) (param $1 f64) (result f64) + f64.const 4 + ) ) diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index b31fd6bd03..9794ae6bb1 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -37,51 +37,6 @@ (export "test" (func $getter-call/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -626,6 +581,202 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (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 + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $getter-call/C $~lib/function/Function<%28%29=>i32> $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + 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 1500 + i32.lt_s + if + i32.const 34288 + i32.const 34336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34272 + i32.const 0 + i32.store + i32.const 35840 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34272 + i32.add + i32.const 0 + i32.store 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 34272 + i32.add + i32.const 0 + i32.store 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 34272 + i32.const 35844 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34272 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -740,400 +891,48 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34272 - i32.const 0 - i32.store - i32.const 35840 - i32.const 0 - i32.store - loop $for-loop|0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34272 - i32.add - i32.const 0 - i32.store 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 34272 - i32.add - i32.const 0 - i32.store 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 34272 - i32.const 35844 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34272 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34268 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + local.get $1 i32.ne if local.get $0 i32.load 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34268 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34268 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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.const 20 i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/__visit_members 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 offset=96 - else - i32.const 0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1193,12 +992,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1211,7 +1009,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1366,101 +1166,299 @@ memory.fill local.get $0 ) - (func $getter-call/C#get:x~anonymous|0 (result i32) - i32.const 42 + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34268 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/rt/__visit_members (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 - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $getter-call/C $~lib/function/Function<%28%29=>i32> $invalid - end - return + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34268 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members end - return + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return 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 - i32.load - call $~lib/rt/itcms/__visit - return + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load 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/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1500 - i32.lt_s + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 34288 - i32.const 34336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34268 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34268 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + global.set $~lib/rt/itcms/state end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34268 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace + i32.const 0 ) (func $getter-call/test (result i32) (local $0 i32) @@ -1552,4 +1550,7 @@ call $~lib/builtins/abort unreachable ) + (func $getter-call/C#get:x~anonymous|0 (result i32) + i32.const 42 + ) ) diff --git a/tests/compiler/getter-setter.release.wat b/tests/compiler/getter-setter.release.wat index dc779d8714..b626215eec 100644 --- a/tests/compiler/getter-setter.release.wat +++ b/tests/compiler/getter-setter.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32 i32))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $getter-setter/Foo._bar (mut i32) (i32.const 0)) (memory $0 1) diff --git a/tests/compiler/heap.release.wat b/tests/compiler/heap.release.wat index 14a0518c9b..cf51676de3 100644 --- a/tests/compiler/heap.release.wat +++ b/tests/compiler/heap.release.wat @@ -4,8 +4,8 @@ (type $2 (func)) (type $3 (func (param i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32 i32 i32))) + (type $5 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $heap/ptr (mut i32) (i32.const 0)) @@ -408,119 +408,77 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $2 local.get $1 - i64.extend_i32_u - i64.lt_u + i32.load + local.set $3 + local.get $2 + i32.const 4 + i32.add + i32.const 15 + i32.and if i32.const 0 i32.const 1056 - i32.const 382 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $3 + i32.const -4 i32.and - i32.const 4 + local.get $2 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + local.tee $4 + i32.const 16 + i32.ge_u if + local.get $1 + local.get $2 local.get $3 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 i32.const 4 i32.add + local.get $2 + i32.add + local.tee $1 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1056 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end local.get $3 + i32.const -2 + i32.and + i32.store local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 + i32.const 4 i32.add local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1056 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -602,32 +560,35 @@ i32.const 33936 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) + (local $1 i32) local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1120 - i32.const 1056 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + local.set $1 local.get $0 - i32.const 12 - i32.le_u + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select if (result i32) - i32.const 12 + i32.const 1 else - local.get $0 - i32.const 19 - i32.add - i32.const -16 + local.get $1 + i32.load + i32.const 1 i32.and - i32.const 4 - i32.sub end + if + i32.const 0 + i32.const 1056 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -757,77 +718,64 @@ end end ) - (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.load - local.set $3 - local.get $2 - i32.const 4 - i32.add - i32.const 15 - i32.and + (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) + local.get $0 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1120 i32.const 1056 - i32.const 361 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $0 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + ) + (func $~lib/rt/tlsf/moveBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.const 32 + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load i32.const -4 i32.and - local.get $2 - i32.sub - local.tee $4 - i32.const 16 + memory.copy + local.get $1 + i32.const 33932 i32.ge_u if local.get $1 - local.get $2 - local.get $3 - i32.const 2 - i32.and - i32.or - i32.store local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.tee $1 - local.get $4 - i32.const 4 - i32.sub + i32.load i32.const 1 i32.or i32.store local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const -2 - i32.and - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store end + local.get $2 ) (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -840,8 +788,6 @@ local.tee $1 i32.eqz if - memory.size - local.tee $3 local.get $2 i32.const 256 i32.ge_u @@ -869,7 +815,8 @@ i32.const 4 local.get $0 i32.load offset=1568 - local.get $3 + memory.size + local.tee $3 i32.const 16 i32.shl i32.const 4 @@ -883,7 +830,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.set $1 + local.get $3 + local.get $1 local.get $1 local.get $3 i32.lt_s @@ -946,67 +895,119 @@ call $~lib/rt/tlsf/prepareBlock local.get $1 ) - (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $1 - i32.load - i32.const 1 - i32.and - end + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1056 - i32.const 562 - i32.const 3 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - ) - (func $~lib/rt/tlsf/moveBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - i32.const 32 - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - i32.const 4 - i32.add - local.get $1 - i32.const 4 + i32.const 19 i32.add - local.get $1 - i32.load - i32.const -4 + i32.const -16 i32.and - memory.copy - local.get $1 - i32.const 33932 - i32.ge_u + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if + local.get $3 + i32.const 4 + i32.add local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1056 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 local.get $1 - i32.load - i32.const 1 - i32.or - i32.store + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else local.get $0 + i32.const 1572 + i32.add local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.gt_u + if + i32.const 0 + i32.const 1056 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) (func $~start (local $0 i32) @@ -1044,12 +1045,12 @@ call $~lib/rt/tlsf/moveBlock local.set $0 else + global.get $~lib/rt/tlsf/ROOT + local.set $3 + local.get $0 + call $~lib/rt/tlsf/checkUsedBlock + local.set $0 block $__inlined_func$~lib/rt/tlsf/reallocateBlock$53 - global.get $~lib/rt/tlsf/ROOT - local.set $3 - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - local.set $0 i32.const 32 call $~lib/rt/tlsf/prepareSize local.tee $5 diff --git a/tests/compiler/import-memory.release.wat b/tests/compiler/import-memory.release.wat index be4cb9b4ae..2b56107252 100644 --- a/tests/compiler/import-memory.release.wat +++ b/tests/compiler/import-memory.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32 i32))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "memory" (memory $0 1)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (data $0 (i32.const 1036) "<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00i\00m\00p\00o\00r\00t\00-\00m\00e\00m\00o\00r\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") diff --git a/tests/compiler/incremental-gc/call-indirect.release.wat b/tests/compiler/incremental-gc/call-indirect.release.wat index 709def24e2..f43270e2d3 100644 --- a/tests/compiler/incremental-gc/call-indirect.release.wat +++ b/tests/compiler/incremental-gc/call-indirect.release.wat @@ -2,8 +2,8 @@ (type $0 (func)) (type $1 (func (param i32) (result i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (result i32))) + (type $3 (func (result i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32) (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) @@ -40,51 +40,6 @@ (export "issue_2923" (func $incremental-gc/call-indirect/issue_2923)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1168 - call $~lib/rt/itcms/__visit - i32.const 1376 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1072 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -237,168 +192,271 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1312 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1312 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 + 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 offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const -4 i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 + local.set $0 + loop $while-continue|1 local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 + 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 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 34352 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1072 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34352 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34352 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1312 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.const 1312 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state end + i32.const 0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 i32.load local.tee $3 @@ -408,45 +466,202 @@ if i32.const 0 i32.const 1312 - i32.const 203 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $3 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.tee $3 + i32.const 12 + i32.lt_u if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 + i32.const 0 + i32.const 1312 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) local.get $3 i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select local.tee $3 - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1312 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1312 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1312 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and i32.add local.tee $4 i32.load @@ -629,459 +844,381 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1312 - i32.const 382 - i32.const 14 + i32.const 1376 + i32.const 1072 + i32.const 261 + i32.const 31 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1312 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - else - local.get $0 - i32.const 1572 + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + 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 1376 + i32.const 1312 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 i32.add - local.get $1 - i32.gt_u + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if i32.const 0 i32.const 1312 - i32.const 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end + local.get $5 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.load + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + i32.gt_u if - return + i32.const 0 + i32.const 1312 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - local.get $3 - i32.const 8 + if + i32.const 0 + i32.const 1312 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub local.tee $3 - i32.const 1 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 + memory.fill local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34352 - i32.const 0 - i32.store - i32.const 35920 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34352 - i32.add - i32.const 0 - i32.store 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 34352 - i32.add - i32.const 0 - i32.store 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 34352 - i32.const 35924 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34352 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34352 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $incremental-gc/call-indirect/B + block $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> + block $incremental-gc/call-indirect/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $incremental-gc/call-indirect/A $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> $incremental-gc/call-indirect/B $invalid + end + return + end + return end - local.get $0 - i32.load 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 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 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 1072 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34352 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34352 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1312 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + return end - local.get $2 - local.get $2 + local.get $0 i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + call $~lib/rt/itcms/__visit + return end + return end - i32.const 10 + 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 1584 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1211,379 +1348,350 @@ end end ) - (func $~lib/rt/itcms/__new (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 1376 - i32.const 1072 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1376 - i32.const 1312 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 + i32.const 1 + local.get $1 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select memory.grow i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34352 + i32.const 0 + i32.store + i32.const 35920 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34352 + i32.add i32.const 0 - i32.lt_s - if - unreachable + i32.store 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 34352 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1312 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end end - local.get $5 + i32.const 34352 + i32.const 35924 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34352 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1312 - i32.const 501 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 + local.get $1 + i32.const 19 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1312 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 local.tee $3 - i32.const 16 - i32.ge_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1312 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1312 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $incremental-gc/call-indirect/B - block $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> - block $incremental-gc/call-indirect/A - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $incremental-gc/call-indirect/A $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32> $incremental-gc/call-indirect/B $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - 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 1584 - i32.lt_s + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 1376 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1072 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.const 20 + i32.add + call $~lib/rt/__visit_members local.get $0 i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end + end + ) + (func $~lib/object/Object#constructor (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 1584 + 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $incremental-gc/call-indirect/issue_2923 (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1584 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + 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 1584 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1440 + i32.store offset=4 + local.get $0 + i32.const 1440 + i32.load + call_indirect (type $1) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer return end + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable ) (func $~start @@ -1735,111 +1843,4 @@ call $~lib/builtins/abort unreachable ) - (func $incremental-gc/call-indirect/issue_2923 (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1584 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 1584 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1440 - i32.store offset=4 - local.get $0 - i32.const 1440 - i32.load - call_indirect (type $1) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/object/Object#constructor (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 1584 - 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 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 07fd25eb5e..a256276d6d 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -1,13 +1,13 @@ (module (type $0 (func (param i32))) - (type $1 (func)) - (type $2 (func (param i32 i32))) + (type $1 (func (param i32 i32))) + (type $2 (func)) (type $3 (func (param i32 i32) (result i32))) - (type $4 (func (result i32))) - (type $5 (func (param i32 i32 i32))) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32 i32) (result i32))) + (type $8 (func (param i32 i32 i64))) (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)) @@ -70,186 +70,68 @@ (data $25 (i32.const 2160) "\r\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\1a\00\00\02\01\00\00\02\19\00\00 \00\00\00\02a\00\00\02a\00\00\02\01\00\00\02A") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1744 - call $~lib/rt/itcms/__visit - i32.const 2048 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 2216 + i32.lt_s if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$154 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34984 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$154 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + i32.const 35008 + i32.const 35056 i32.const 1 - else - local.get $1 - i32.const 2160 - i32.load - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 2164 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + local.get $1 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $1 local.get $3 - select + if + local.get $1 + local.get $3 + local.get $5 + memory.copy + end + local.get $1 + i32.store + i32.const 16 local.get $2 - i32.or - i32.store offset=4 - local.get $0 + call $~lib/rt/itcms/__new + local.tee $2 local.get $1 - i32.store offset=8 + i32.store + local.get $2 local.get $1 - local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $2 local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $5 i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 @@ -275,851 +157,1432 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2216 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1424 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1280 + i32.const 1488 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.tee $7 + local.set $5 + 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 2216 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $5 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1744 + i32.const 1488 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$149 + i32.const 1073741820 + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $4 + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + local.get $3 + local.get $4 + i32.lt_u + select + local.tee $6 + local.get $0 + i32.load + local.tee $3 + i32.const 20 + i32.sub + local.tee $5 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $5 + local.get $6 + i32.store offset=16 + local.get $3 + local.set $4 + br $__inlined_func$~lib/rt/itcms/__renew$149 + end + local.get $6 + local.get $5 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $4 + local.get $3 + local.get $6 + local.get $5 + i32.load offset=16 + local.tee $5 + local.get $5 + local.get $6 + i32.gt_u + select + memory.copy + end + local.get $3 + local.get $4 + i32.ne + if + local.get $0 + local.get $4 + i32.store + local.get $0 + local.get $4 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.const 35008 + i32.const 35056 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 2216 + i32.lt_s if - i32.const 0 - i32.const 1424 - i32.const 284 - i32.const 14 + i32.const 35008 + i32.const 35056 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $5 - local.get $4 - i32.store offset=4 + i32.const 1280 + i32.const 1488 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 i32.shl i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (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 + (func $~lib/array/Array#__get (param $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 2216 + i32.lt_s if - i32.const 0 - i32.const 1424 - i32.const 201 - i32.const 14 + i32.const 35008 + i32.const 35056 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 i32.eqz if - i32.const 0 - i32.const 1424 - i32.const 203 - i32.const 14 + i32.const 1280 + i32.const 1488 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 i32.load - i32.const -4 - i32.and + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__new (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 - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 1088 + i32.const 1152 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - local.get $3 - i32.const 2 - i32.and + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - 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 end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + 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 12 - i32.lt_u + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1088 i32.const 1424 - i32.const 233 - i32.const 14 + i32.const 461 + i32.const 29 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 1424 - 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 - local.get $2 - i32.const 256 - i32.lt_u + i32.const 12 + i32.le_u if (result i32) - local.get $2 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 - local.get $2 local.get $2 - i32.const 1073741820 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 i32.ge_u - select + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size 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 16 + i32.shl i32.const 4 i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $2 - i32.const 16 - i32.lt_u local.get $5 - i32.const 23 - i32.lt_u + local.get $2 + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u if i32.const 0 i32.const 1424 - i32.const 251 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $5 - i32.const 4 - i32.shl + local.get $4 local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl + call $~lib/rt/tlsf/removeBlock local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 + local.set $6 local.get $5 - i32.const 2 - i32.shl + i32.const 4 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + i32.const 15 + i32.and if i32.const 0 i32.const 1424 - i32.const 382 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $6 + i32.const -4 i32.and - i32.const 4 + local.get $5 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 local.tee $3 + i32.const 16 + i32.ge_u if - local.get $3 + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + local.get $5 + i32.add + local.tee $5 local.get $3 - local.get $1 - i32.const 16 + i32.const 4 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1424 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store end local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 + global.get $~lib/rt/itcms/white i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 + memory.fill local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $infer-array/Ref#constructor (result i32) (local $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2216 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2216 i32.lt_s - else + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - end - if - unreachable - end - i32.const 34992 - i32.const 0 - i32.store - i32.const 36560 - i32.const 0 - i32.store - loop $for-loop|0 + i32.store local.get $0 - i32.const 23 - i32.lt_u + i32.eqz if - local.get $0 - i32.const 2 - i32.shl - i32.const 34992 - i32.add + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store 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 34992 - i32.add - i32.const 0 - i32.store 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 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - i32.const 34992 - i32.const 36564 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34992 - global.set $~lib/rt/tlsf/ROOT + i32.const 35008 + i32.const 35056 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 + (func $~lib/array/Array#__get (param $0 i32) (param $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 2216 + i32.lt_s + if + i32.const 35008 + i32.const 35056 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1280 + i32.const 1488 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1424 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1424 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 i32.load offset=4 - i32.const -4 + i32.const -2 + local.get $3 + i32.rotl i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1424 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1424 + 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 1424 + 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 + 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 1424 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 i32.eq + i32.and if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34984 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + call $~lib/rt/itcms/Object#makeGray 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 + end + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$154 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34984 + i32.lt_u 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 1152 - i32.const 229 - i32.const 20 + i32.const 128 + i32.const 18 call $~lib/builtins/abort unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$154 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 2160 + i32.load + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 2164 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $infer-array/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $infer-array/Ref $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner1 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + end + 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 2216 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 34984 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + 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 2216 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 i32.lt_u if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 + local.get $1 i32.load - 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 34984 - i32.ge_u + local.tee $3 if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - 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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + local.get $3 + call $~lib/rt/itcms/__visit end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 0 + i32.const 35008 + i32.const 35056 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1145,651 +1608,352 @@ i32.shl i32.add i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1424 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1088 - i32.const 1152 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1088 - i32.const 1424 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 + i32.sub + local.set $1 end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 i32.const 4 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - local.get $5 + local.get $1 + i32.const 16 + i32.lt_u local.get $2 - i32.load - i32.const -4 + i32.const 23 + i32.lt_u i32.and - i32.gt_u + i32.eqz if i32.const 0 i32.const 1424 - i32.const 501 + i32.const 334 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock + local.get $0 local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 + i32.const 2 + i32.shl i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1424 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz local.get $2 i32.const 4 + i32.shl i32.add - local.get $5 + i32.const 2 + i32.shl i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + i32.load offset=96 else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 + local.get $0 i32.load - i32.const -4 - i32.and + i32.const -1 + local.get $2 + i32.const 1 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 + i32.shl i32.and - i32.store + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size local.tee $1 i32.const 0 - local.get $0 - memory.fill - local.get $1 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34992 + i32.const 0 + i32.store + i32.const 36560 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34992 + i32.add + i32.const 0 + i32.store 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 34992 + i32.add + i32.const 0 + i32.store 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 34992 + i32.const 36564 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34992 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i32.eqz - if - return - end - local.get $0 - i32.eqz + i64.extend_i32_u + i64.lt_u if i32.const 0 - i32.const 1152 - i32.const 295 + i32.const 1424 + i32.const 382 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 offset=4 - i32.const 3 + i32.const 19 + i32.add + i32.const -16 i32.and - i32.eq + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - local.get $0 - i32.const 20 + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz + local.tee $5 i32.eq if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $infer-array/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $infer-array/Ref $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner1 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - end - 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 2216 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - 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 2216 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + else local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1572 i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - call $start:infer-array - ) - (func $~lib/array/Array#__get (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 i32.store local.get $0 - i32.load offset=12 - i32.eqz - if - i32.const 1280 - i32.const 1488 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $3 + i32.store offset=1568 local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1744 + call $~lib/rt/itcms/__visit + i32.const 2048 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.load - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) (func $~lib/array/Array#__get (param $0 i32) global.get $~lib/memory/__stack_pointer @@ -1836,55 +2000,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 2216 - i32.lt_s - if - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1280 - i32.const 1488 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1935,319 +2050,268 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $infer-array/Ref#constructor (result i32) + (func $~start + call $start:infer-array + ) + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 + (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + 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 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 34984 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2216 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if + local.get $0 + i32.load 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 0 - i32.lt_s + i32.const 3 + i32.and + i32.ne if - i32.const 1280 - i32.const 1488 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1152 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 1 - i32.add - local.tee $6 - 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 2216 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.const 2 - i32.shr_u - i32.gt_u + i32.const 34984 + i32.lt_u if - local.get $3 - i32.const 268435455 - i32.gt_u - if - i32.const 1744 - i32.const 1488 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$149 - i32.const 1073741820 - local.get $4 - i32.const 1 - i32.shl - local.tee $4 - local.get $4 - i32.const 1073741820 - i32.ge_u - select - local.tee $4 - i32.const 8 - local.get $3 - local.get $3 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - local.get $3 - local.get $4 - i32.lt_u - select - local.tee $5 + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34984 + 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.get $0 - i32.load - local.tee $4 - i32.const 20 + i32.const 4 i32.sub - local.tee $7 - i32.load - i32.const -4 + local.set $2 + local.get $0 + i32.const 15 i32.and - i32.const 16 - i32.sub - i32.le_u + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end if - local.get $7 - local.get $5 - i32.store offset=16 - local.get $4 - local.set $3 - br $__inlined_func$~lib/rt/itcms/__renew$149 + i32.const 0 + i32.const 1424 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $5 - local.get $7 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $3 - local.get $4 - local.get $5 - local.get $7 - i32.load offset=16 - local.tee $7 - local.get $5 - local.get $7 - i32.lt_u - select - memory.copy - end - local.get $3 - local.get $4 - i32.ne - if - local.get $0 - local.get $3 + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $0 - local.get $5 - i32.store offset=8 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $6 - i32.store offset=12 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__get (param $0 i32) (param $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 2216 - i32.lt_s - if - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1280 - i32.const 1488 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $start:infer-array (local $0 i32) @@ -2681,67 +2745,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 2216 - i32.lt_s - if - i32.const 35008 - i32.const 35056 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $1 - local.get $3 - if - local.get $1 - local.get $3 - local.get $5 - memory.copy - end - local.get $1 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - 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/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index bfd2ec7d06..788794869f 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1,14 +1,14 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 f32 i32 i32) (result i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 f32 i32 i32) (result i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param f32) (result f32))) - (type $9 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) + (type $9 (func (param f32) (result f32))) (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)) @@ -51,61 +51,6 @@ (export "test5" (func $export:infer-generic/test2)) (export "inferAssert" (func $export:infer-generic/inferAssert)) (start $~start) - (func $start:infer-generic~anonymous|0 (param $0 i32) (param $1 f32) (param $2 i32) (param $3 i32) (result i32) - local.get $1 - f32.const 0 - f32.ne - i32.const 0 - local.get $0 - select - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 1424 - call $~lib/rt/itcms/__visit - i32.const 1232 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1296 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -258,6 +203,51 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $export:infer-generic/test2 (param $0 i32) (result 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 1660 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1660 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34448 + i32.const 34496 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -650,119 +640,217 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $infer-generic/Ref + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $folding-inner0 $infer-generic/Ref $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1660 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + return + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1660 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) 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 offset=1568 - local.tee $3 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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.set $1 end - local.get $3 local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1568 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1568 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -844,427 +932,200 @@ i32.const 34432 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1568 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34428 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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.const 1152 + call $~lib/rt/itcms/__visit + i32.const 1424 + call $~lib/rt/itcms/__visit + i32.const 1232 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1296 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34428 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__new (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 1232 + i32.const 1296 + i32.const 261 + 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$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 34428 - i32.ge_u + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - 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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1568 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1568 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1232 - i32.const 1296 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total i32.const 1 i32.shl i32.const 1024 @@ -1330,8 +1191,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1359,7 +1218,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1373,7 +1233,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1545,93 +1407,6 @@ memory.fill local.get $1 ) - (func $infer-generic/test1 (param $0 f32) (result f32) - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $infer-generic/Ref - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $folding-inner0 $infer-generic/Ref $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - return - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - 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 - unreachable - ) (func $~start (local $0 i32) (local $1 i32) @@ -1711,7 +1486,7 @@ i32.const 1152 i32.const 1200 i32.load - call_indirect (type $2) + call_indirect (type $4) local.set $0 local.get $1 i32.const 1 @@ -1839,50 +1614,276 @@ call $~lib/builtins/abort unreachable ) - (func $export:infer-generic/test2 (param $0 i32) (result 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 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34428 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1296 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34428 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34428 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1568 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + global.set $~lib/rt/itcms/state end - i32.const 34448 - i32.const 34496 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 + ) + (func $start:infer-generic~anonymous|0 (param $0 i32) (param $1 f32) (param $2 i32) (param $3 i32) (result i32) + local.get $1 + f32.const 0 + f32.ne + i32.const 0 + local.get $0 + select + ) + (func $infer-generic/test1 (param $0 f32) (result f32) + local.get $0 ) (func $export:infer-generic/inferAssert (param $0 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining-recursive.release.wat b/tests/compiler/inlining-recursive.release.wat index 79a6b7c99a..dc115bc899 100644 --- a/tests/compiler/inlining-recursive.release.wat +++ b/tests/compiler/inlining-recursive.release.wat @@ -5,10 +5,10 @@ (export "bar" (func $inlining-recursive/baz)) (export "baz" (func $inlining-recursive/baz)) (export "memory" (memory $0)) - (func $inlining-recursive/foo - call $inlining-recursive/foo - ) (func $inlining-recursive/baz call $inlining-recursive/baz ) + (func $inlining-recursive/foo + call $inlining-recursive/foo + ) ) diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index d8a449feae..0da8126d77 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func)) - (type $1 (func (result i32))) - (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32) (result i32))) + (type $1 (func (param i32))) + (type $2 (func (param i32 i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (result i32))) + (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32) (result f64))) (type $7 (func (param i32 i32 i32 i32))) - (type $8 (func (param i32 i32 i64))) - (type $9 (func (param f64) (result f64))) + (type $8 (func (param f64) (result f64))) + (type $9 (func (param i32 i32 i64))) (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)) @@ -45,57 +45,6 @@ (export "bar" (func $inlining/bar)) (export "memory" (memory $0)) (start $~start) - (func $inlining/test (result i32) - i32.const 3 - ) - (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) - i32.const 2 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1328 - call $~lib/rt/itcms/__visit - i32.const 1136 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1200 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -640,119 +589,319 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1472 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $inlining/Baz + block $inlining/Bar + block $inlining/Foo + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $inlining/Foo $inlining/Bar $inlining/Baz $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + return + end + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + unreachable + ) + (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) + (local $1 i32) + (local $2 i64) + (local $3 f64) + (local $4 f64) local.get $0 - i32.load offset=1568 - local.tee $3 + i64.reinterpret_f64 + local.tee $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 2146435072 + i32.ge_u if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + local.get $0 + f64.add + return + end + local.get $1 + i32.const 1048576 + i32.lt_u + if (result i32) + local.get $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $1 + i32.eqz if - i32.const 0 - i32.const 1472 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $0 + return end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 + i32.const 3 + i32.div_u + i32.const 696219795 i32.add + else local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1472 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add end + local.set $1 local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end + i64.const -9223372036854775808 + i64.and local.get $1 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + local.tee $4 + local.get $4 + f64.mul + local.get $4 + local.get $0 + f64.div + f64.mul + local.set $3 + local.get $0 local.get $4 - i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store + f64.const 1.6214297201053545 + f64.mul + f64.const -1.8849797954337717 + f64.add + f64.mul + f64.const 1.87595182427177 + f64.add + local.get $3 + local.get $3 + f64.mul + local.get $3 + f64.mul + local.get $3 + f64.const 0.14599619288661245 + f64.mul + f64.const -0.758397934778766 + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.tee $0 + local.get $0 + f64.mul + f64.div + local.set $3 + local.get $0 local.get $0 local.get $3 - i32.store offset=1568 local.get $0 + f64.sub + local.get $0 + local.get $0 + f64.add + local.get $3 + f64.add + f64.div + f64.mul + f64.add + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1472 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -834,391 +983,162 @@ i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1472 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1472 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1328 + call $~lib/rt/itcms/__visit + i32.const 1136 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1200 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34324 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1472 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl + i32.const 20 i32.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1472 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + call $~lib/rt/__visit_members local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1320,8 +1240,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1349,7 +1267,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1363,7 +1282,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1488,52 +1409,315 @@ i32.and i32.store end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~start + call $start:inlining + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1200 + i32.const 229 + 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 offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end i32.const 0 - local.get $0 - memory.fill - local.get $1 ) (func $start:inlining (local $0 i32) @@ -1554,7 +1738,7 @@ i32.const 2 i32.const 1104 i32.load - call_indirect (type $2) + call_indirect (type $5) drop global.get $~lib/memory/__stack_pointer i32.const 123 @@ -1746,126 +1930,11 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) - (local $1 i32) - (local $2 i64) - (local $3 f64) - (local $4 f64) - local.get $0 - i64.reinterpret_f64 - local.tee $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $1 - i32.const 2146435072 - i32.ge_u - if - local.get $0 - local.get $0 - f64.add - return - end - local.get $1 - i32.const 1048576 - i32.lt_u - if (result i32) - local.get $0 - f64.const 18014398509481984 - f64.mul - i64.reinterpret_f64 - local.tee $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - return - end - local.get $1 - i32.const 3 - i32.div_u - i32.const 696219795 - i32.add - else - local.get $1 - i32.const 3 - i32.div_u - i32.const 715094163 - i32.add - end - local.set $1 - local.get $2 - i64.const -9223372036854775808 - i64.and - local.get $1 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - local.tee $4 - local.get $4 - f64.mul - local.get $4 - local.get $0 - f64.div - f64.mul - local.set $3 - local.get $0 - local.get $4 - local.get $3 - local.get $3 - f64.const 1.6214297201053545 - f64.mul - f64.const -1.8849797954337717 - f64.add - f64.mul - f64.const 1.87595182427177 - f64.add - local.get $3 - local.get $3 - f64.mul - local.get $3 - f64.mul - local.get $3 - f64.const 0.14599619288661245 - f64.mul - f64.const -0.758397934778766 - f64.add - f64.mul - f64.add - f64.mul - i64.reinterpret_f64 - i64.const 2147483648 - i64.add - i64.const -1073741824 - i64.and - f64.reinterpret_i64 - local.tee $0 - local.get $0 - f64.mul - f64.div - local.set $3 - local.get $0 - local.get $0 - local.get $3 - local.get $0 - f64.sub - local.get $0 - local.get $0 - f64.add - local.get $3 - f64.add - f64.div - f64.mul - f64.add + (func $inlining/test (result i32) + i32.const 3 + ) + (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) + i32.const 2 ) (func $inlining/foo (param $0 i32) (param $1 i32) (param $2 i32) (result f64) local.get $0 @@ -1902,72 +1971,4 @@ f64.add f64.div ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $inlining/Baz - block $inlining/Bar - block $inlining/Foo - block $~lib/function/Function<%28i32%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $inlining/Foo $inlining/Bar $inlining/Baz $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start - call $start:inlining - ) ) diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index bdbf1e3b54..3605a2ca97 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -49,140 +49,65 @@ (data $9 (i32.const 1488) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $instanceof/a - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/b - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/an - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/child - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/childAsParent - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/animal - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/cat - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/blackcat - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/nullableAnimal - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/nullableCat - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/nullableBlackcat - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/w - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/x - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/y - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $instanceof/z - local.tee $0 + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" (param $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 1588 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Y$78 (result i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 19 + i32.eq + br_if $is_instance + local.get $0 + i32.const 22 + i32.eq + br_if $is_instance i32.const 0 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + br $__inlined_func$~instanceof|instanceof/Y$78 end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + i32.const 1 end + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1456 + i32.const 12 + 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 ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -336,1075 +261,635 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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 - else - i32.const 31 - i32.const 1073741820 + local.set $3 + local.get $1 local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u + i32.gt_s select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if + memory.grow i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end local.get $1 i32.load - local.tee $3 - i32.const 1 + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.const 4 - i32.add + call $~lib/rt/tlsf/removeBlock local.get $1 i32.load + local.tee $3 i32.const -4 i32.and - i32.add + i32.const 28 + i32.sub local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + i32.const 16 + i32.ge_u 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.const 2 i32.and - i32.add - local.tee $3 + i32.const 28 + i32.or i32.store local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + i32.const 32 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $3 + local.get $4 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - 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 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else local.get $1 - call $~lib/rt/tlsf/removeBlock + local.get $3 + i32.const -2 + i32.and + i32.store local.get $1 - local.get $6 i32.const 4 i32.add - local.get $3 + local.get $1 + i32.load i32.const -4 i32.and i32.add - local.tee $3 + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 - local.get $2 - i32.const 2 + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white i32.or - i32.store - local.get $3 - i32.const -4 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 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 + i32.or + i32.store offset=4 + local.get $0 local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $2 i32.add - i32.ne + 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 + local.get $0 + ) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" (param $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 1588 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 234 - i32.const 14 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $2 - i32.const 256 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 if (result i32) - local.get $2 - i32.const 4 - i32.shr_u + block $__inlined_func$~instanceof|instanceof/X$76 (result i32) + block $is_instance + block $tablify|0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 16 + i32.sub + br_table $is_instance $tablify|0 $tablify|0 $is_instance $tablify|0 $tablify|0 $is_instance $tablify|0 + end + i32.const 0 + br $__inlined_func$~instanceof|instanceof/X$76 + end + i32.const 1 + end 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 + i32.const 0 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 + i32.const 1456 + i32.const 12 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + global.set $~lib/memory/__stack_pointer + ) + (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" (param $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 1588 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + i32.const 34384 + i32.const 34432 + i32.const 1 + i32.const 1 + 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 - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 + i32.store local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + if (result i32) + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 22 + i32.eq + else + i32.const 0 + end + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1456 + i32.const 12 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.const -16 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $"instanceof/assertDynamicFalse" (param $0 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1588 + i32.lt_s if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + if (result i32) + block $__inlined_func$~instanceof|instanceof/Y$82 (result i32) + block $is_instance + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 19 + i32.eq + br_if $is_instance + local.get $0 + i32.const 22 + i32.eq + br_if $is_instance + i32.const 0 + br $__inlined_func$~instanceof|instanceof/Y$82 + end + i32.const 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 0 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + if + i32.const 0 + i32.const 1456 + i32.const 19 + 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 + ) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1588 + i32.lt_s if - return + 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - local.get $4 - i32.const 2 + i32.load + local.tee $3 + 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 $3 - i32.const 8 - i32.sub + i32.const -4 + i32.and local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end local.get $1 + local.get $0 + local.get $2 i32.const 4 - i32.add + i32.shl local.get $3 i32.add - local.tee $3 i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.add local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 + i32.load offset=96 + i32.eq + if local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34368 - i32.const 0 - i32.store - i32.const 35936 - i32.const 0 - i32.store - 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 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 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 - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34368 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34356 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34356 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34356 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 i32.shl i32.add - global.set $~lib/rt/itcms/threshold + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end 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 + ) + (func $~lib/rt/tlsf/insertBlock (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 - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load 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 i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const 1392 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable end local.get $1 i32.load - i32.const -4 + local.tee $3 + i32.const 1 i32.and - i32.const 28 - i32.lt_u + i32.eqz if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 203 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.const 4 + i32.add local.get $1 i32.load - local.tee $3 i32.const -4 i32.and - i32.const 28 - i32.sub + i32.add local.tee $4 - i32.const 16 - i32.ge_u + i32.load + 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 2 - i32.and - i32.const 28 - i32.or - i32.store - 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 + i32.add local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const -2 + i32.const -4 i32.and + i32.add + local.tee $3 i32.store local.get $1 i32.const 4 @@ -1414,118 +899,273 @@ i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $4 i32.load - i32.const -3 + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + 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 end - local.get $1 + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + 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 + 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 - i32.store offset=12 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add + i32.const 2 + i32.shl 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 + i32.store offset=96 local.get $0 - ) - (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/X>" (param $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 1588 - 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 - global.get $~lib/memory/__stack_pointer local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store local.get $0 - if (result i32) - block $__inlined_func$~instanceof|instanceof/X$76 (result i32) - block $is_instance - block $tablify|0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 16 - i32.sub - br_table $is_instance $tablify|0 $tablify|0 $is_instance $tablify|0 $tablify|0 $is_instance $tablify|0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $instanceof/IE + block $instanceof/Z + block $instanceof/IC + block $instanceof/ID + block $instanceof/Y + block $instanceof/IA + block $instanceof/IB + block $instanceof/X + block $instanceof/W + 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/C + block $instanceof/B + block $instanceof/A + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $instanceof/A $instanceof/B $instanceof/C $instanceof/Child $instanceof/Parent $instanceof/Child $instanceof/Parent $instanceof/SomethingElse $instanceof/Animal $instanceof/Cat $instanceof/BlackCat $instanceof/W $instanceof/X $instanceof/IB $instanceof/IA $instanceof/Y $instanceof/ID $instanceof/IC $instanceof/Z $instanceof/IE $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + 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 + return + end + return + end + return + end + return + end + return end - i32.const 0 - br $__inlined_func$~instanceof|instanceof/X$76 + return end - i32.const 1 + return end - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1456 - i32.const 12 - i32.const 5 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + unreachable ) - (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Y>" (param $0 i32) + (func $"instanceof/assertDynamicFalse" (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1549,33 +1189,19 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~instanceof|instanceof/Y$78 (result i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 19 - i32.eq - br_if $is_instance - local.get $0 - i32.const 22 - i32.eq - br_if $is_instance - i32.const 0 - br $__inlined_func$~instanceof|instanceof/Y$78 - end - i32.const 1 - end + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 22 + i32.eq else i32.const 0 end - i32.eqz if i32.const 0 i32.const 1456 - i32.const 12 + i32.const 19 i32.const 5 call $~lib/builtins/abort unreachable @@ -1585,9 +1211,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"instanceof/assertDynamicTrue<~lib/object/Object,instanceof/Z>" (param $0 i32) + (func $instanceof/Cat#constructor (param $0 i32) (result 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 @@ -1602,39 +1228,76 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $instanceof/Animal#constructor + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - if (result i32) - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 22 - i32.eq - else - i32.const 0 + ) + (func $instanceof/Animal#constructor (param $0 i32) (result 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 1588 + 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 + i64.const 0 + i64.store + local.get $0 i32.eqz if - i32.const 0 - i32.const 1456 + global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $"instanceof/assertDynamicFalse" (param $0 i32) + (func $instanceof/A#constructor (param $0 i32) (result 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 @@ -1649,225 +1312,418 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store + 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 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/object/Object#constructor + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 if (result i32) - block $__inlined_func$~instanceof|instanceof/Y$82 (result i32) - block $is_instance - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 19 - i32.eq - br_if $is_instance - local.get $0 - i32.const 22 - i32.eq - br_if $is_instance + local.get $0 + local.get $1 + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if i32.const 0 - br $__inlined_func$~instanceof|instanceof/Y$82 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - i32.const 1 + 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 offset=96 + else + i32.const 0 end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s else i32.const 0 end + if + unreachable + end + i32.const 34368 + i32.const 0 + i32.store + i32.const 35936 + i32.const 0 + i32.store + 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 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 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 + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34368 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 - i32.const 1456 - i32.const 19 - i32.const 5 + i32.const 1392 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"instanceof/assertDynamicFalse" (param $0 i32) - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1588 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.set $1 local.get $0 - if (result i32) - local.get $0 - i32.const 8 + i32.load offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 i32.sub - i32.load - i32.const 22 + local.tee $5 i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else - i32.const 0 + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1456 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $instanceof/IE - block $instanceof/Z - block $instanceof/IC - block $instanceof/ID - block $instanceof/Y - block $instanceof/IA - block $instanceof/IB - block $instanceof/X - block $instanceof/W - 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/C - block $instanceof/B - block $instanceof/A - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $instanceof/A $instanceof/B $instanceof/C $instanceof/Child $instanceof/Parent $instanceof/Child $instanceof/Parent $instanceof/SomethingElse $instanceof/Animal $instanceof/Cat $instanceof/BlackCat $instanceof/W $instanceof/X $instanceof/IB $instanceof/IA $instanceof/Y $instanceof/ID $instanceof/IC $instanceof/Z $instanceof/IE $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - 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 - return - end - return - end - return - end - return - end - return - end - return - end - return - end - return + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $instanceof/a + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/b + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/an + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/child + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/childAsParent + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/animal + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/cat + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit end - unreachable - ) - (func $~start - call $start:instanceof - ) - (func $instanceof/A#constructor (param $0 i32) (result 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 1588 - i32.lt_s + global.get $instanceof/blackcat + local.tee $0 if - i32.const 34384 - i32.const 34432 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz + global.get $instanceof/nullableAnimal + local.tee $0 if - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor + global.get $instanceof/nullableCat local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/nullableBlackcat + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/w + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/x + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/y + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $instanceof/z + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) - (func $instanceof/Animal#constructor (param $0 i32) (result i32) + (func $instanceof/Y#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1890,7 +1746,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 19 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1900,7 +1756,7 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/object/Object#constructor + call $instanceof/X#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1909,7 +1765,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $instanceof/Cat#constructor (param $0 i32) (result i32) + (func $instanceof/X#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1932,7 +1788,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 13 + i32.const 16 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -1942,7 +1798,7 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - call $instanceof/Animal#constructor + call $~lib/object/Object#constructor local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1990,89 +1846,268 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $instanceof/X#constructor (param $0 i32) (result 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 1588 - 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 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + (func $~start + call $start:instanceof ) - (func $instanceof/Y#constructor (param $0 i32) (result 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 1588 - 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 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 19 - call $~lib/rt/itcms/__new + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34356 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.store + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34356 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34356 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $instanceof/X#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) (func $start:instanceof (local $0 i32) @@ -3554,38 +3589,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (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 1588 - 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 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index b5ae2294e0..542118d3ea 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) + (type $0 (func (param i32))) + (type $1 (func (param i32 i32))) + (type $2 (func)) (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -38,183 +38,6 @@ (data $11 (i32.const 1648) "\05\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$117 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34440 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$117 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1648 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1652 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -631,585 +454,533 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 + i32.const 1120 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$117 local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34440 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$117 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - local.get $1 - local.get $4 + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1648 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1652 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 local.get $1 - i32.const 0 i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/1095/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1095/Foo $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - unreachable - end - i32.const 34448 - i32.const 0 - i32.store - i32.const 36016 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 i32.lt_u if - local.get $0 - i32.const 2 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl - i32.const 34448 i32.add - i32.const 0 - i32.store 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 34448 - i32.add - i32.const 0 - i32.store 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 + i32.sub + local.set $1 end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - i32.const 34448 - i32.const 36020 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34448 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34440 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 $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 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.load offset=4 + local.get $1 + i32.ctz local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne if i32.const 0 - i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 1392 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34440 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34440 - i32.ge_u + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34448 + i32.const 0 + i32.store + i32.const 36016 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34448 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT 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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34448 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.add + local.set $1 + br $for-loop|1 end end - i32.const 10 - return + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 + i32.const 34448 + i32.const 36020 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34448 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i32.const 256 - i32.lt_u + i64.extend_i32_u + i64.lt_u if - local.get $1 + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 i32.const 4 - i32.shr_u - local.set $1 - else + i32.add local.get $1 - i32.const 536870910 - i32.lt_u + i32.gt_u if - 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.set $1 + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $3 local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 i32.sub - local.set $2 + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - i32.const 16 - i32.lt_u local.get $2 - i32.const 23 - i32.lt_u + i32.wrap_i64 + i32.const -16 i32.and - i32.eqz + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $0 - local.get $2 + local.get $1 + local.get $4 i32.const 2 - i32.shl + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 i32.add - i32.load offset=4 - i32.const -1 + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 local.get $1 - i32.shl - i32.and + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - if (result i32) + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 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 offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $2 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1311,8 +1082,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1340,7 +1109,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1354,7 +1124,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1535,247 +1307,476 @@ local.get $0 i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 295 - i32.const 14 + i32.const 0 + i32.const 1120 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load 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 $~start + (local $0 i32) + (local $1 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 1672 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34440 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1672 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1672 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1456 + call $issues/1095/Foo#set:bar + 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 + 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 1672 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $1 + i32.store offset=12 + local.get $1 + i32.eqz + if + i32.const 1488 + i32.const 1616 + i32.const 8 + i32.const 13 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.store offset=4 + local.get $0 + local.get $1 + call $issues/1095/Foo#set:bar + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34464 + i32.const 34512 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34440 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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.const 20 - i32.sub i32.load offset=4 - i32.const 3 + local.tee $1 + i32.const -4 i32.and - local.tee $0 + global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - i32.eq + local.get $1 + i32.const 3 + i32.and + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34440 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq + global.get $~lib/rt/itcms/total local.get $0 - i32.const 3 - i32.eq + i32.load + 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 34440 + i32.ge_u if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/1095/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1095/Foo $invalid - end - return + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - return + global.get $~lib/rt/tlsf/ROOT + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit + i32.const 10 return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 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 1672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34440 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - i32.const 1456 - call $issues/1095/Foo#set:bar - 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 - 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 1672 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $1 - i32.store offset=12 - local.get $1 - i32.eqz - if - i32.const 1488 - i32.const 1616 - i32.const 8 - i32.const 13 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - call $issues/1095/Foo#set:bar - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 0 + global.set $~lib/rt/itcms/state end - i32.const 34464 - i32.const 34512 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 ) ) diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index 10fcd3691c..3a9ede7e7b 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32) (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) (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)) @@ -37,57 +37,6 @@ (export "viaThis" (func $issues/1225/viaThis)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $issues/1225/x - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -240,216 +189,476 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - 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 $3 - i32.const -4 - i32.and - local.tee $3 - 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 $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 + 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 offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const -4 i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 + local.set $0 + loop $while-continue|1 local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + 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 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 34280 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34280 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34280 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/removeBlock (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.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if i32.const 0 i32.const 1392 - i32.const 201 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 + local.get $3 + i32.const -4 i32.and - i32.eqz + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 256 + i32.lt_u + if (result i32) local.get $3 i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select local.tee $3 - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and i32.add local.tee $4 i32.load @@ -632,119 +841,90 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/1225/X + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1225/X $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else i32.const 0 - i32.const 1392 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -826,322 +1006,389 @@ i32.const 34288 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots (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 + global.get $issues/1225/x + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 - i32.const -4 + i32.const 3 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34280 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34280 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34280 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $issues/1225/viaThis (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 1512 + i32.lt_s + if + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $issues/1225/x + local.tee $0 + i32.store local.get $0 i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $issues/1225/normal (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 1512 + i32.lt_s + if + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $issues/1225/x + local.tee $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + (local $0 i32) + memory.size + i32.const 16 + i32.shl + i32.const 34280 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1512 + i32.lt_s + if + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load offset=8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $issues/1225/x + call $issues/1225/normal + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $issues/1225/viaThis + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1456 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $issues/1225/x + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/step + drop + br $while-continue|0 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 offset=96 - else - i32.const 0 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/rt/itcms/__new (result i32) (local $0 i32) @@ -1199,12 +1446,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1217,7 +1463,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1372,251 +1620,4 @@ memory.fill local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/1225/X - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1225/X $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 34280 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s - if - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $0 - i32.load offset=8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $issues/1225/x - call $issues/1225/normal - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1456 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $issues/1225/viaThis - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1456 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $issues/1225/x - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - 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 $issues/1225/normal (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 1512 - i32.lt_s - if - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $issues/1225/x - local.tee $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $issues/1225/viaThis (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 1512 - i32.lt_s - if - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $issues/1225/x - local.tee $0 - i32.store - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 0ba5679b98..5da543848f 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -2,9 +2,9 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32) (result i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (result i32))) - (type $5 (func (param i32 i32 i32))) + (type $3 (func (param i32 i32 i32))) + (type $4 (func (param i32 i32))) + (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -41,187 +41,6 @@ (data $12 (i32.const 1712) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\02A") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1552 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$146 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34508 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$146 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1712 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1716 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -246,1853 +65,2143 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 + i32.const 1152 + i32.const 1216 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1152 i32.const 1488 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1488 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1488 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + i32.or + i32.store offset=4 local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 i32.add - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result 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 1740 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 234 - i32.const 14 + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - 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 + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 251 - i32.const 14 + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add + i32.load offset=4 + local.get $1 i32.const 2 i32.shl i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store + local.tee $0 + i32.store offset=4 local.get $0 - local.get $5 - i32.const 2 - i32.shl + i32.eqz + if + i32.const 1552 + i32.const 1104 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $0 + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz + if + return + end + local.get $0 + i32.eqz if i32.const 0 - i32.const 1488 - i32.const 382 + i32.const 1216 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end + global.get $~lib/rt/itcms/white local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 + i32.const 20 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 + local.get $0 + i32.const 20 i32.sub - local.tee $5 + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - i32.sub + i32.load local.tee $3 - i32.const 20 - i32.lt_u + i32.const 1 + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1488 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 + local.get $3 + i32.const -4 i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1488 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 8 - i32.sub + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + 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 1488 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end local.get $1 + local.get $0 + local.get $2 i32.const 4 - i32.add + i32.shl local.get $3 i32.add - local.tee $3 i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.add local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 34512 - i32.const 0 - i32.store - i32.const 36080 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if local.get $0 + local.get $2 i32.const 2 i32.shl - i32.const 34512 i32.add - i32.const 0 - i32.store 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 34512 - i32.add - i32.const 0 - i32.store 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 34512 - i32.const 36084 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34512 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34508 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34508 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34508 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $2 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 i32.eqz if - i32.const 0 - i32.const 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 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 + local.get $1 + i32.eqz if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1488 + i32.const 201 + i32.const 14 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if - 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 1152 + i32.const 0 i32.const 1488 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load local.tee $2 - i32.eqz + i32.const 1 + i32.and if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 + local.get $0 local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and i32.eqz if i32.const 0 i32.const 1488 - i32.const 499 + 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 end - local.get $5 + local.get $4 local.get $2 - i32.load + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1488 - i32.const 501 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1488 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 + 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.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else + 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 1488 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$146 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34508 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$146 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store + i32.store offset=8 local.get $2 - i32.const 4 - i32.add + local.get $1 local.get $2 - i32.load - i32.const -4 + i32.load offset=4 + i32.const 3 i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1712 + i32.load + i32.gt_u + if + i32.const 1344 + i32.const 1408 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1716 i32.add - local.tee $3 - local.get $3 i32.load - i32.const -3 + i32.const 32 i32.and - i32.store end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 local.set $3 local.get $2 - local.get $1 + i32.load offset=8 + local.set $1 + local.get $0 global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 i32.or i32.store offset=4 - local.get $2 - local.get $3 + local.get $0 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $0 + local.get $1 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 local.get $0 - memory.fill - local.get $1 + i32.store offset=8 ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - local.get $1 - i32.eqz - if - return - end - local.get $0 - i32.eqz - if + block $invalid + block $~lib/array/Array + block $issues/1699/MultiAssignmentTest + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1699/MultiAssignmentTest $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + if + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1216 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - i32.const 20 - i32.sub - local.tee $0 i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 local.get $1 local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and + i32.lt_u if local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end end - end - ) - (func $start:issues/1699 - (local $0 i32) - (local $1 i32) - (local $2 i32) - memory.size - i32.const 16 - i32.shl - i32.const 34508 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 28 - memory.fill - global.get $~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 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 i32.store + local.get $1 local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1344 + i32.const 1104 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.tee $7 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $5 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$145 + i32.const 1073741820 + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $4 + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + local.get $3 + local.get $4 + i32.lt_u + select + local.tee $6 + local.get $0 + i32.load + local.tee $3 + i32.const 20 + i32.sub + local.tee $5 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $5 + local.get $6 + i32.store offset=16 + local.get $3 + local.set $4 + br $__inlined_func$~lib/rt/itcms/__renew$145 + end + local.get $6 + local.get $5 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $4 + local.get $3 + local.get $6 + local.get $5 + i32.load offset=16 + local.tee $5 + local.get $5 + local.get $6 + i32.gt_u + select + memory.copy + end + local.get $3 + local.get $4 + i32.ne + if + local.get $0 + local.get $4 + i32.store + local.get $0 + local.get $4 + i32.store offset=4 + local.get $0 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $6 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $7 + i32.store offset=12 + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 - i32.store offset=4 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store local.get $0 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 32 + local.get $2 i32.const 1 - call $~lib/rt/itcms/__new + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - i32.store - local.get $0 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 1488 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 32 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - call $issues/1699/MultiAssignmentTest#constructor - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else local.get $0 - i32.const 1 + i32.load + i32.const -1 local.get $2 - call $~lib/array/Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 i32.const 1 - call $~lib/array/Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $2 - call $~lib/array/Array#__set - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34512 + i32.const 0 + i32.store + i32.const 36080 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - i32.load offset=12 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl + i32.const 34512 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - call $issues/1699/MultiAssignmentTest#constructor - local.tee $2 - i32.store offset=24 + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - i32.const 1 - i32.gt_s + i32.const 16 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $0 + i32.const 4 + i32.shl local.get $1 - local.get $2 - call $~lib/array/Array#__set + i32.add + i32.const 2 + i32.shl + i32.const 34512 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 34512 + i32.const 36084 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34512 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if i32.const 0 - call $~lib/array/Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array#__get + i32.const 1488 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add local.get $1 - i32.ne + i32.gt_u if i32.const 0 - i32.const 1680 - i32.const 15 - i32.const 3 + i32.const 1488 + i32.const 389 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array#__get + local.get $3 local.get $1 + i32.const 16 + i32.sub + local.tee $5 i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1680 - i32.const 16 - i32.const 3 + i32.const 1488 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if return end - i32.const 34528 - i32.const 34576 - i32.const 1 + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - block $invalid - block $~lib/array/Array - block $issues/1699/MultiAssignmentTest - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1699/MultiAssignmentTest $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return + i32.const 1344 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1552 + call $~lib/rt/itcms/__visit + i32.const 1152 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - return + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + end + ) + (func $issues/1699/MultiAssignmentTest#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - if - i32.const 34528 - i32.const 34576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + i32.store offset=4 local.get $0 - i32.load offset=12 i32.const 2 - i32.shl + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - loop $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34528 + i32.const 34576 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~start + call $start:issues/1699 + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34508 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 - local.get $2 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34508 i32.lt_u if - local.get $1 + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 i32.load - local.tee $3 + 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 34508 + i32.ge_u if - local.get $3 - call $~lib/rt/itcms/__visit + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1488 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 end + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - unreachable - ) - (func $~start - call $start:issues/1699 + i32.const 0 ) - (func $issues/1699/MultiAssignmentTest#constructor (result i32) + (func $start:issues/1699 (local $0 i32) (local $1 i32) + (local $2 i32) + memory.size + i32.const 16 + i32.shl + i32.const 34508 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 28 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 28 + memory.fill + global.get $~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 1740 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner0 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.store + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 local.get $0 + local.get $2 i32.store + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.const 2 - i32.store + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - return - end - i32.const 34528 - i32.const 34576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + i32.store offset=4 + local.get $0 + i32.const 32 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner0 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1344 - i32.const 1104 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.tee $6 - local.set $3 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + call $issues/1699/MultiAssignmentTest#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $0 + i32.const 1 + local.get $2 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 + local.get $2 + call $~lib/array/Array#__set + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2100,143 +2209,98 @@ global.get $~lib/memory/__stack_pointer i32.const 1740 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 - i32.load offset=8 - local.tee $4 - i32.const 2 - i32.shr_u - i32.gt_u + i32.load offset=12 + 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 + i32.lt_s if - local.get $3 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$145 - i32.const 1073741820 - local.get $4 - i32.const 1 - i32.shl - local.tee $4 - local.get $4 - i32.const 1073741820 - i32.ge_u - select - local.tee $4 - i32.const 8 - local.get $3 - local.get $3 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - local.get $3 - local.get $4 - i32.lt_u - select - local.tee $5 - local.get $0 - i32.load - local.tee $4 - i32.const 20 - i32.sub - local.tee $7 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $7 - local.get $5 - i32.store offset=16 - local.get $4 - local.set $3 - br $__inlined_func$~lib/rt/itcms/__renew$145 - end - local.get $5 - local.get $7 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $3 - local.get $4 - local.get $5 - local.get $7 - i32.load offset=16 - local.tee $7 - local.get $5 - local.get $7 - i32.lt_u - select - memory.copy - end - local.get $3 - local.get $4 - i32.ne + call $issues/1699/MultiAssignmentTest#constructor + local.tee $2 + i32.store offset=24 + local.get $1 + i32.const 1 + i32.gt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $3 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + call $~lib/array/Array#__set end - local.get $0 - local.get $5 - i32.store offset=8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $6 - i32.store offset=12 end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 + i32.const 0 + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get local.get $1 + i32.ne + if + i32.const 0 + i32.const 1680 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 - local.get $2 i32.const 1 - call $~lib/rt/itcms/__link + call $~lib/array/Array#__get + local.get $1 + i32.eq + if + i32.const 0 + i32.const 1680 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer return @@ -2248,67 +2312,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result 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 1740 - i32.lt_s - if - i32.const 34528 - i32.const 34576 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 1552 - i32.const 1104 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/issues/1714.release.wat b/tests/compiler/issues/1714.release.wat index 5fc4c4ca7e..7645fdba1b 100644 --- a/tests/compiler/issues/1714.release.wat +++ b/tests/compiler/issues/1714.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32 i32))) - (type $1 (func)) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33884)) (memory $0 1) diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index d445b2d6cd..fa61a80944 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -4,9 +4,9 @@ (type $2 (func (param i32 i32))) (type $3 (func (param i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (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)) @@ -43,50 +43,167 @@ (data $13 (i32.const 1632) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1660 + 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 + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$79 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$79 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -632,158 +749,362 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.load + i32.const -4 + i32.and + i32.const 28 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end + local.get $2 local.get $1 - local.get $4 - i32.const 2 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 + i32.const -4 i32.and - local.get $3 - i32.const 8 + i32.const 28 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + 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 + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 local.get $1 i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 i32.store offset=8 + global.get $~lib/rt/itcms/total local.get $1 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + global.set $~lib/rt/itcms/total local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34432 + i32.const 20 + i32.add + local.tee $0 i32.const 0 - i32.store - i32.const 36000 i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34432 - i32.add - i32.const 0 - i32.store offset=4 + memory.fill + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/2166/Test2166Ref2 + block $issues/2166/Test2166Ref1<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/2166/Test2166Ref1<~lib/string/String> $issues/2166/Test2166Ref2 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34432 + i32.const 0 + i32.store + i32.const 36000 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34432 + i32.add + i32.const 0 + i32.store offset=4 i32.const 0 local.set $1 loop $for-loop|1 @@ -826,585 +1147,167 @@ i32.const 34432 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 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 34428 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34428 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34428 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 - local.tee $1 - i32.const 4 - local.get $2 - i32.load 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 - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - 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 - 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 - 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 - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/2166/Test2166Ref2 - block $issues/2166/Test2166Ref1<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/2166/Test2166Ref1<~lib/string/String> $issues/2166/Test2166Ref2 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) + (func $~start + (local $0 i32) (local $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -1593,179 +1496,277 @@ 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 34448 - i32.const 34496 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1660 - 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 - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + 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 + unreachable + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34428 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$79 - loop $while-continue|1 + local.get $0 + i32.const 34428 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34428 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$79 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) ) diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index 026f2c493b..cf2df6b497 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -33,51 +33,6 @@ (export "test" (func $issues/2322/index/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -622,150 +577,192 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/2322/lib/Wrapper + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/2322/lib/Wrapper $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) 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 offset=1568 - local.tee $3 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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.set $1 end - local.get $3 local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.const 16 i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.and local.tee $1 - i32.const 0 - i32.le_s if (result i32) - i32.const 1 + local.get $0 local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - i32.const 0 - end - if - unreachable - end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 local.get $0 - i32.const 23 - i32.lt_u + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34240 + i32.const 0 + i32.store + i32.const 35808 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if local.get $0 i32.const 2 @@ -816,391 +813,162 @@ i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots (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 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if 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 + i32.const 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34232 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34232 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34232 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 + br $while-continue|0 end end ) @@ -1302,8 +1070,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1331,7 +1097,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1345,7 +1112,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1517,67 +1286,299 @@ memory.fill local.get $1 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/2322/lib/Wrapper - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34232 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34232 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/2322/lib/Wrapper $invalid + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members end - return + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return end - return + 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 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 - call $~lib/rt/itcms/__visit + i32.load 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34232 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34232 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 return end - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34232 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace + i32.const 0 ) (func $issues/2322/index/test (local $0 i32) diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index 885743588e..2cb8d68623 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func)) - (type $1 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func)) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) @@ -36,87 +36,6 @@ (data $8 (i32.const 1440) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $issues/2622/a - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $issues/2622/b - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $issues/2622/_a/t1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $issues/2622/_a/t1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $issues/2622/_b/t2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $issues/2622/_b/t2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -661,119 +580,323 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $3 + 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 + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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.set $3 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add + local.get $2 local.get $1 - i32.gt_u + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.load + i32.const -4 + i32.and + i32.const 28 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end + local.get $2 local.get $1 - local.get $4 - i32.const 2 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.tee $3 + i32.const -4 i32.and - local.get $3 - i32.const 8 + i32.const 28 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + 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 + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 local.get $1 i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 i32.store offset=8 + global.get $~lib/rt/itcms/total local.get $1 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store + 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 local.get $0 - local.get $3 - i32.store offset=1568 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/2622/_b/T2 + block $issues/2622/_a/T1 + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/2622/_a/T1 $issues/2622/_b/T2 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -855,592 +978,244 @@ i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 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 34236 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $issues/2622/a + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2622/b + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $issues/2622/_a/t1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2622/_a/t1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2622/_b/t2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $issues/2622/_b/t2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34236 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34236 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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.const 20 i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/__visit_members 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 offset=96 - else - i32.const 0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) - (func $~lib/rt/itcms/__new (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 + (func $~lib/object/Object#constructor (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 1468 + i32.lt_s if - block $__inlined_func$~lib/rt/itcms/interrupt$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.eqz if - call $~lib/rt/tlsf/initialize + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + (local $0 i32) + block $__inlined_func$start:issues/2622$1 memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 i32.const 16 i32.shl - i32.const 4 + i32.const 34236 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 - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - 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 - 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 - 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 - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/2622/_b/T2 - block $issues/2622/_a/T1 - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/2622/_a/T1 $issues/2622/_b/T2 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - block $__inlined_func$start:issues/2622$1 - memory.size - i32.const 16 - i32.shl - i32.const 34236 - i32.sub - i32.const 1 + i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold i32.const 1172 @@ -1542,38 +1317,264 @@ unreachable end ) - (func $~lib/object/Object#constructor (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 1468 - i32.lt_s - if - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34236 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.store + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34236 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34236 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat index 980e20a05d..4857753a2a 100644 --- a/tests/compiler/issues/2707.release.wat +++ b/tests/compiler/issues/2707.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) + (type $1 (func (param i32))) + (type $2 (func)) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -38,186 +38,6 @@ (elem $0 (i32.const 1) $start:issues/2707~anonymous|0) (export "memory" (memory $0)) (start $~start) - (func $start:issues/2707~anonymous|0 (param $0 i32) (result i32) - i32.const 1 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1328 - call $~lib/rt/itcms/__visit - i32.const 1136 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1200 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$119 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34316 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$119 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1520 - i32.load - i32.gt_u - if - i32.const 1328 - i32.const 1392 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1524 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -634,163 +454,319 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1472 - i32.const 382 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1472 - i32.const 389 - i32.const 16 + i32.const 1200 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$119 local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - i32.const 0 - i32.const 1472 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34316 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$119 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1520 + i32.load + i32.gt_u + if + i32.const 1328 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1524 + i32.add + i32.load + i32.const 32 + i32.and end - local.get $1 - local.get $4 + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 local.get $1 - i32.const 0 i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/function/Function<%28~lib/array/Array%29=>i32> + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/function/Function<%28~lib/array/Array%29=>i32> $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + end + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) - memory.size + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.tee $1 - i32.const 0 - i32.le_s if (result i32) - i32.const 1 + local.get $0 local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - i32.const 0 - end - if - unreachable - end - i32.const 34320 - i32.const 0 - i32.store - i32.const 35888 - i32.const 0 - i32.store - loop $for-loop|0 local.get $0 - i32.const 23 - i32.lt_u - if + i32.load + i32.const -2 + i32.and + local.tee $1 + if (result i32) local.get $0 + local.get $1 + i32.ctz + local.tee $1 i32.const 2 i32.shl - i32.const 34320 i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34320 + i32.const 0 + i32.store + i32.const 35888 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34320 + i32.add + i32.const 0 + i32.store 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 @@ -828,320 +804,162 @@ i32.const 34320 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1472 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1472 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1472 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots (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 1328 + call $~lib/rt/itcms/__visit + i32.const 1136 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if 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 + i32.const 1200 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34316 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1200 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34316 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34316 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1472 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load offset=4 - i32.const -4 - 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 347 - 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 offset=96 - else - i32.const 0 + br $while-continue|0 end end ) @@ -1201,12 +1019,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1219,7 +1036,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1315,304 +1134,486 @@ local.get $1 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 16 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + i64.const 0 + i64.store align=1 + local.get $0 + i64.const 0 + i64.store offset=8 align=1 + local.get $0 + ) + (func $~start + (local $0 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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34316 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/pinSpace + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/toSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + 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 1548 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 1088 + i32.const 16 + memory.copy + local.get $0 + i32.store + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + i32.store + local.get $0 + if + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $2 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $3 + 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 + local.get $3 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + local.get $2 + local.get $0 + i32.store offset=4 + local.get $2 + i32.const 16 + i32.store offset=8 + local.get $2 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $2 - i32.load - i32.const -3 - i32.and i32.store + local.get $2 + i32.const 1056 + i32.load + call_indirect (type $0) + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 16 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 - i64.const 0 - i64.store align=1 - local.get $0 - i64.const 0 - i64.store offset=8 align=1 - local.get $0 + i32.const 34336 + i32.const 34384 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/function/Function<%28~lib/array/Array%29=>i32> - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/function/Function<%28~lib/array/Array%29=>i32> $invalid - end - return - end - return - end + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 - call $~lib/rt/itcms/__visit - return + i32.load 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 offset=4 + i32.const -4 + i32.and + i32.eq + if global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1548 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34316 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 - i32.store + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.load 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/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1548 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/visitCount return end - unreachable - end - i32.const 34336 - i32.const 34384 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - (local $0 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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1548 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34316 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/pinSpace - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/toSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - 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 1548 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/itcms/__new + global.get $~lib/rt/itcms/iter local.tee $0 - i32.const 1088 - i32.const 16 - memory.copy - local.get $0 - i32.store - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - i32.store - local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $2 + local.get $0 + i32.load 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 1200 - i32.const 295 - i32.const 14 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white local.get $0 - i32.const 20 - i32.sub - local.tee $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.const 34316 + i32.lt_u if - local.get $2 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + 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 34316 + i32.ge_u if - local.get $3 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + 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 + i32.const 1 + i32.and + end if - local.get $3 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1472 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end + i32.const 10 + return end - local.get $2 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $2 - i32.const 16 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 - local.get $2 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 1056 - i32.load - call_indirect (type $0) - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 0 + global.set $~lib/rt/itcms/state end - i32.const 34336 - i32.const 34384 - i32.const 1 + i32.const 0 + ) + (func $start:issues/2707~anonymous|0 (param $0 i32) (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable ) ) diff --git a/tests/compiler/issues/2825.release.wat b/tests/compiler/issues/2825.release.wat index c11fb2dae0..a03d3b82f6 100644 --- a/tests/compiler/issues/2825.release.wat +++ b/tests/compiler/issues/2825.release.wat @@ -8,12 +8,6 @@ (export "init" (func $issues/2825/init)) (export "memory" (memory $0)) (start $~start) - (func $issues/2825/init - loop $for-loop|0 - br $for-loop|0 - end - unreachable - ) (func $~start (local $0 i32) loop $for-loop|0 @@ -40,4 +34,10 @@ end end ) + (func $issues/2825/init + loop $for-loop|0 + br $for-loop|0 + end + unreachable + ) ) diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat index 7cc4d874f8..82a92f5c23 100644 --- a/tests/compiler/issues/2873.release.wat +++ b/tests/compiler/issues/2873.release.wat @@ -1,20 +1,20 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32) (result i32))) + (type $0 (func (param i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i64 i64 i32 i64 i32) (result i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 f64 i32) (result i32))) - (type $8 (func (param i32 i32 i32 i32))) - (type $9 (func (param i32 i32 i64))) - (type $10 (func (result i32))) - (type $11 (func (param i32) (result i32))) - (type $12 (func (param i32 f32) (result i32))) - (type $13 (func (param i32 f64) (result i32))) - (type $14 (func (param f32) (result i32))) - (type $15 (func (param f64) (result i32))) + (type $4 (func (param i32 i32 i32 i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 f64 i32) (result i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 f64) (result i32))) + (type $9 (func (param i32 f32) (result i32))) + (type $10 (func (param f64) (result i32))) + (type $11 (func (param f32) (result i32))) + (type $12 (func (param i32 i32 i64))) + (type $13 (func (param i32 i32 i32) (result i32))) + (type $14 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $15 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) @@ -77,938 +77,547 @@ (data $26 (i32.const 3344) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\19\00\00\02\1a") (export "memory" (memory $0)) (start $~start) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - local.get $2 - local.get $1 - i64.sub - local.set $9 - i64.const 1 - i32.const 0 - local.get $3 + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 i32.sub - local.tee $10 - i64.extend_i32_s local.tee $1 - i64.shl - local.tee $12 - i64.const 1 - i64.sub - local.tee $11 - local.get $2 - i64.and - local.set $8 - local.get $2 - local.get $1 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 2656 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$138 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 36140 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 2656 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$138 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 2656 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add + i32.and + i32.or + i32.store offset=4 end - else - local.get $3 - i32.const 10000000 - i32.lt_u + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + i32.const 1 else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u + local.get $0 + i32.const 3344 + i32.load + i32.gt_u + if + i32.const 2784 + i32.const 2848 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 3348 i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - local.set $7 - loop $while-continue|0 - local.get $7 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $7 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $3 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100 - i32.div_u - local.set $6 - local.get $3 - i32.const 100 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10 - i32.div_u - local.set $6 - local.get $3 - i32.const 10 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - local.set $6 - i32.const 0 - local.set $3 - br $break|1 + ) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u + if + i32.const 2592 + i32.const 2656 + i32.const 261 + 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$72 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$72 end + local.get $1 i32.const 0 - local.set $6 + i32.gt_s + br_if $do-loop|0 end - local.get $5 - local.get $6 - i32.or - if - local.get $0 - local.get $5 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $3 + local.get $0 + i32.const 16 + i32.add + local.tee $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 2592 + i32.const 2928 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $4 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + local.get $4 + i32.const 256 + i32.ge_u + if (result i32) + local.get $4 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $4 i32.const 1 + i32.const 27 + local.get $4 + i32.clz + i32.sub i32.shl i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 i32.const 1 - i32.add - local.set $5 + i32.sub + else + local.get $4 end - local.get $7 - i32.const 1 - i32.sub - local.set $7 + else local.get $4 - local.get $3 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - local.tee $2 - i64.shl - local.get $8 - i64.add - local.tee $1 - i64.ge_u + end + i32.const 4 + local.get $3 + i32.load offset=1568 + memory.size + local.tee $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $2 + memory.grow + i32.const 0 + i32.lt_s if - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $7 - i32.const 2 - i32.shl - i32.const 2128 - i32.add - i64.load32_u - local.get $2 - i64.shl - local.set $2 - local.get $0 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|3 - local.get $1 - local.get $9 - i64.lt_u - local.get $4 - local.get $1 - i64.sub - local.get $2 - i64.ge_u - i32.and - if (result i32) - local.get $9 - local.get $1 - local.get $2 - i64.add - local.tee $8 - i64.gt_u - local.get $9 - local.get $1 - i64.sub - local.get $8 - local.get $9 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $2 - i64.add - local.set $1 - br $while-continue|3 - end - end - local.get $0 - local.get $7 - i32.store16 - local.get $5 - return + unreachable end - br $while-continue|0 end - end - loop $while-continue|4 + local.get $3 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $3 local.get $4 - i64.const 10 - i64.mul - local.set $4 - local.get $8 - i64.const 10 - i64.mul + call $~lib/rt/tlsf/searchBlock local.tee $1 - local.get $10 - i64.extend_i32_s - i64.shr_u - local.tee $2 - local.get $5 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne + i32.eqz if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 + i32.const 0 + i32.const 2928 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $11 - i64.and - local.tee $8 - local.get $4 - i64.ge_u - br_if $while-continue|4 end - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $9 - i32.const 0 - local.get $7 - i32.sub - i32.const 2 - i32.shl - i32.const 2128 + local.get $4 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 2928 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $5 + local.get $4 + i32.const 4 i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $0 + i32.const 15 + i32.and + if + i32.const 0 + i32.const 2928 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $5 - i32.const 1 + i32.const -4 + i32.and + local.get $4 i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|6 + local.tee $2 + i32.const 16 + i32.ge_u + if local.get $1 - local.get $8 - i64.gt_u local.get $4 - local.get $8 - i64.sub - local.get $12 - i64.ge_u + local.get $5 + i32.const 2 i32.and - if (result i32) - local.get $1 - local.get $8 - local.get $12 - i64.add - local.tee $2 - i64.gt_u - local.get $1 - local.get $8 - i64.sub - local.get $2 - local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $8 - local.get $12 - i64.add - local.set $8 - br $while-continue|6 - end - end - local.get $0 - local.get $7 - i32.store16 - local.get $5 - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 + i32.or + i32.store local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 2168 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 2168 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl + i32.const 4 i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 2168 + local.get $4 i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 + local.tee $4 local.get $2 - i32.const 2 + i32.const 4 i32.sub i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 2168 - i32.add - i32.load + i32.or i32.store + local.get $3 + local.get $4 + call $~lib/rt/tlsf/insertBlock else - local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add local.get $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - local.get $2 - i32.eqz - if - local.get $0 + local.get $5 + i32.const -2 + i32.and + i32.store local.get $1 - i32.const 1 - i32.shl + i32.const 4 i32.add - i32.const 3145774 - i32.store local.get $1 - i32.const 2 + i32.load + i32.const -4 + i32.and i32.add - return + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store end local.get $1 + i32.const 2 + i32.store offset=12 + local.get $1 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $2 + i32.load offset=8 + local.set $3 + local.get $1 local.get $2 - i32.add - local.tee $3 - i32.const 21 - i32.le_s + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 local.get $1 local.get $3 - i32.le_s + i32.store offset=8 + local.get $3 + local.get $1 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) + local.get $1 + f64.const 0 + f64.lt + local.tee $4 + if local.get $0 - local.get $3 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + local.set $1 + end + local.get $2 + if (result i64) + local.get $1 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $8 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.tee $9 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $3 - i32.const 2 - i32.add + local.get $9 + select + i32.const 150 + i32.sub + local.set $5 + local.get $8 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $9 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add else + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 1 + local.get $8 + select + i32.const 1075 + i32.sub + local.set $5 local.get $3 - i32.const 21 - i32.le_s - local.get $3 - i32.const 0 - i32.gt_s - i32.and - if (result i32) - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.const 2 - i32.add - local.get $0 - i32.const 0 - local.get $2 - i32.sub - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 - i32.add - else - local.get $3 - i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 - local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $4 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $1 - i32.const 2 - i32.add - end - end - end - ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - (local $16 i64) - local.get $1 - f64.const 0 - f64.lt - local.tee $4 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $1 - f64.neg - local.set $1 - end - local.get $2 - if (result i64) - local.get $1 - f32.demote_f64 - i32.reinterpret_f32 - local.tee $8 - i32.const 2139095040 - i32.and - i32.const 23 - i32.shr_u - local.tee $9 - i32.const 1 - local.get $9 - select - i32.const 150 - i32.sub - local.set $5 - local.get $8 - i32.const 8388607 - i32.and - i64.extend_i32_u - local.get $9 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 23 - i64.shl - i64.add - else - local.get $1 - i64.reinterpret_f64 - local.tee $3 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $8 - i32.const 1 - local.get $8 - select - i32.const 1075 - i32.sub - local.set $5 - local.get $3 - i64.const 4503599627370495 - i64.and - local.get $8 + i64.const 4503599627370495 + i64.and + local.get $8 i32.const 0 i32.ne i64.extend_i32_u @@ -1129,11 +738,11 @@ i64.const 4294967295 i64.and local.set $14 - local.get $12 local.get $3 i64.const 32 i64.shr_u local.tee $7 + local.get $12 i64.mul local.get $12 local.get $14 @@ -1160,17 +769,17 @@ i64.shr_u i64.add local.set $12 + local.get $7 local.get $11 i64.const 32 i64.shr_u - local.tee $11 - local.get $7 + local.tee $7 i64.mul local.get $15 i64.const 32 i64.shr_u i64.add - local.get $11 + local.get $7 local.get $14 i64.mul local.get $15 @@ -1184,7 +793,7 @@ i64.add i64.const 1 i64.sub - local.set $7 + local.set $11 local.get $0 local.get $4 i32.const 1 @@ -1192,14 +801,14 @@ i32.add local.get $0 local.get $6 - local.get $11 + local.get $7 i64.mul local.get $13 i64.const 32 i64.shr_u i64.add + local.get $7 local.get $10 - local.get $11 i64.mul local.get $13 i64.const 4294967295 @@ -1210,14 +819,14 @@ i64.const 32 i64.shr_u i64.add - local.get $7 + local.get $11 global.get $~lib/util/number/_exp_pow global.get $~lib/util/number/_exp i32.add i32.const -64 i32.sub - local.get $7 local.get $11 + local.get $7 local.get $16 i64.mul local.get $12 @@ -1225,7 +834,7 @@ i64.shr_u i64.add local.get $3 - local.get $11 + local.get $7 i64.mul local.get $12 i64.const 4294967295 @@ -1248,206 +857,167 @@ local.get $4 i32.add ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 3104 - call $~lib/rt/itcms/__visit - i32.const 3312 - call $~lib/rt/itcms/__visit - i32.const 2784 - call $~lib/rt/itcms/__visit - i32.const 2592 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 2656 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3372 + i32.lt_s if - return + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + local.get $1 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 2656 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$138 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36140 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 2656 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$138 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 2656 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3344 - i32.load - i32.gt_u - if - i32.const 2784 - i32.const 2848 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3348 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + i32.store local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$82 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$82 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - global.set $~lib/rt/itcms/visitCount + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) @@ -1762,538 +1332,623 @@ 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 2928 - 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 2928 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 2928 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 2928 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $3 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 16 i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 2928 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $3 i32.store offset=8 - local.get $1 - i32.const 4 - i32.add local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 i32.add - local.tee $3 i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store local.get $0 - local.get $3 - i32.store offset=1568 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 36144 - i32.const 0 - i32.store - i32.const 37712 - i32.const 0 - i32.store - loop $for-loop|0 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + call $~lib/array/Array~visit + return + end local.get $0 - i32.const 23 - i32.lt_u + call $~lib/array/Array~visit + return + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u i32.const 2 i32.shl - i32.const 36144 + i32.const 2168 i32.add - i32.const 0 - i32.store 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 36144 - i32.add - i32.const 0 - i32.store 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 + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2168 i32.add - local.set $0 - br $for-loop|0 + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - i32.const 36144 - i32.const 37716 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36144 - global.set $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2168 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 2168 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result 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 offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + local.get $1 + local.get $1 + f64.ne + if local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 if local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 + i32.const 45 + i32.store16 local.get $0 - i32.load offset=4 - i32.const -4 - i32.and + i32.const 2 + i32.add 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 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 36140 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 + i64.const 29555310648492105 + i64.store local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.1 end - global.get $~lib/rt/itcms/visitCount - return + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.get $0 + local.get $1 + i32.const 0 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f32) (result i32) + (local $2 f64) + (local $3 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + local.get $1 + f64.promote_f32 + local.tee $2 + f64.const 0 + f64.eq if local.get $0 - i32.load 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 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 2656 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36140 - i32.lt_u + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total + i32.const 78 + i32.store16 local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + i32.const 97 + i32.store16 offset=2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 36140 - i32.ge_u + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $2 + f64.const 0 + f64.lt + local.tee $3 if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and - i32.const 1 + i32.const 45 + i32.store16 local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 2928 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.const 2 + i32.add + local.set $0 end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $3 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 end - i32.const 10 - return + unreachable end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 + local.get $0 + local.get $2 + i32.const 1 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/util/number/dtoa (param $0 f64) (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 + global.get $~lib/memory/__stack_pointer + i32.const 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1056 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if + i32.const 1088 + local.set $1 + local.get $0 + local.get $0 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.1 + i32.const 1120 + i32.const 1168 + local.get $0 + f64.const 0 + f64.lt + select + local.set $1 + br $~lib/util/number/dtoa_impl|inlined.1 + end + global.get $~lib/memory/__stack_pointer + i32.const 1200 + local.get $0 i32.const 0 - global.set $~lib/rt/itcms/state + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 1200 + local.get $2 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/dtoa (param $0 f32) (result i32) + (local $1 f64) + (local $2 i32) + (local $3 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 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1056 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + i32.const 1088 + local.set $2 + local.get $1 + local.get $1 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 1120 + i32.const 1168 + local.get $1 + f64.const 0 + f64.lt + select + local.set $2 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + i32.const 1200 + local.get $1 + i32.const 1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 1200 + local.get $3 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3372 + i32.lt_s + if + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + i32.const 1 + i32.shl + local.set $3 + local.get $2 + i32.const 0 + local.get $2 i32.const 0 + i32.ge_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3152 + return + end + local.get $3 + i32.eqz + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $3 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2420,469 +2075,250 @@ i32.load offset=96 else i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 2592 - i32.const 2656 - i32.const 261 - 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$72 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$72 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $3 - local.get $0 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 2592 - i32.const 2928 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $4 - i32.const 256 - i32.ge_u - if (result i32) - local.get $4 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1 - i32.const 27 - local.get $4 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $4 - end - else - local.get $4 - end - i32.const 4 - local.get $3 - i32.load offset=1568 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 local.get $1 - i32.const 16 - i32.shl - i32.const 4 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select memory.grow i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 36144 + i32.const 0 + i32.store + i32.const 37712 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $2 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 36144 + i32.add i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if + i32.store offset=4 i32.const 0 - i32.const 2928 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 36144 + i32.add + i32.const 0 + i32.store 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 - local.get $4 + i32.const 36144 + i32.const 37716 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36144 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 2928 - i32.const 501 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $5 - local.get $4 - i32.const 4 + i32.const 19 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 2928 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $5 - i32.const -4 + i32.const -16 i32.and - local.get $4 + i32.const 4 i32.sub - local.tee $2 - i32.const 16 - i32.ge_u + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - local.get $1 - local.get $4 - local.get $5 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.get $4 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else local.get $1 - local.get $5 - i32.const -2 - i32.and - i32.store + i32.gt_u + if + i32.const 0 + i32.const 2928 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 local.get $1 - i32.const 4 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else + local.get $0 + i32.const 1572 i32.add local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + i32.gt_u + if + i32.const 0 + i32.const 2928 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - i32.const 2 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $1 local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 - local.get $2 local.get $1 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total local.get $1 - i32.load - i32.const -4 - i32.and i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f32) (result i32) - (local $2 f64) - (local $3 i32) - block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 3104 + call $~lib/rt/itcms/__visit + i32.const 3312 + call $~lib/rt/itcms/__visit + i32.const 2784 + call $~lib/rt/itcms/__visit + i32.const 2592 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 local.get $1 - f64.promote_f32 - local.tee $2 - f64.const 0 - f64.eq + i32.ne if local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - i32.const 48 - i32.store16 offset=4 + i32.load offset=4 i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.0 - end - local.get $2 - local.get $2 - f64.sub - f64.const 0 - f64.ne - if - local.get $2 - local.get $2 - f64.ne + i32.and + i32.const 3 + i32.ne if - local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 - i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.0 - else - local.get $2 - f64.const 0 - f64.lt - local.tee $3 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - local.get $3 - i32.const 8 - i32.add - br $~lib/util/number/dtoa_buffered_impl|inlined.0 + i32.const 0 + i32.const 2656 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - unreachable - end - local.get $0 - local.get $2 - i32.const 1 - call $~lib/util/number/dtoa_core - end - ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) - local.get $1 - f64.const 0 - f64.eq - if local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 + i32.const 20 + i32.add + call $~lib/rt/__visit_members local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.1 - end - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne - if - local.get $1 - local.get $1 - f64.ne - if - local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 - i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.1 - else - local.get $1 - f64.const 0 - f64.lt - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - local.get $2 - i32.const 8 - i32.add - br $~lib/util/number/dtoa_buffered_impl|inlined.1 - end - unreachable + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - local.get $0 - local.get $1 - i32.const 0 - call $~lib/util/number/dtoa_core end ) (func $~lib/array/Array~visit (param $0 i32) @@ -2906,49 +2342,14 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/array/Array - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - unreachable + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~start (local $0 i32) @@ -3326,526 +2727,1124 @@ local.get $4 i32.lt_s if - local.get $1 + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.const 3184 + local.get $5 + i32.const 1 + i32.shl + memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|01 + end + end + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray$144 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 3216 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3024 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 36160 + i32.const 36208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if local.get $0 - i32.const 1 - i32.shl + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 i32.add + local.tee $2 local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut local.get $2 - i32.const 3 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 i32.add - f64.load - call $~lib/util/number/dtoa_buffered + local.tee $0 + i32.const 101 + i32.store16 offset=2 local.get $0 + i32.const 4 i32.add - local.set $0 - local.get $5 + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 3184 - local.get $5 - i32.const 1 - i32.shl - memory.copy + i32.const 0 local.get $0 - local.get $5 - i32.add + i32.sub local.set $0 end - local.get $2 + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end i32.const 1 i32.add - local.set $2 - br $for-loop|01 + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 end - end - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $0 - i32.add - local.tee $0 - local.get $6 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinFloatArray$144 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 3216 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3024 - i32.const 8 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 36160 - i32.const 36208 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 2 + i32.add + end + end + end ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 + local.get $1 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3372 - i32.lt_s - if - i32.const 36160 - i32.const 36208 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $12 + i64.const 1 + i64.sub + local.tee $11 + local.get $2 + i64.and + local.set $8 + local.get $2 local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u + i32.const 10000000 + i32.lt_u if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $3 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100 + i32.div_u + local.set $6 + local.get $3 + i32.const 100 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10 + i32.div_u + local.set $6 + local.get $3 + i32.const 10 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + local.set $6 + i32.const 0 + local.set $3 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $5 + local.get $6 i32.or - else + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 i32.const 1 - end - i32.eqz - if - loop $do-loop|0 + i32.sub + local.set $7 + local.get $4 + local.get $3 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + local.tee $2 + i64.shl + local.get $8 + i64.add + local.tee $1 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 2128 + i32.add + i64.load32_u local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$82 - loop $while-continue|1 + i64.shl + local.set $2 local.get $0 - local.tee $3 + local.get $5 i32.const 1 i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|3 local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 + local.get $9 + i64.lt_u local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$82 - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + i64.sub + local.get $2 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $1 + local.get $2 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $1 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $2 + i64.add + local.set $1 + br $while-continue|3 + end end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + return end - i32.const 0 - local.set $3 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3372 - i32.lt_s - if - i32.const 36160 - i32.const 36208 - i32.const 1 + loop $while-continue|4 + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $8 + i64.const 10 + i64.mul + local.tee $1 + local.get $10 + i64.extend_i32_s + i64.shr_u + local.tee $2 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.and + local.tee $8 + local.get $4 + i64.ge_u + br_if $while-continue|4 end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 0 - local.get $1 + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $0 - i32.const 20 + local.get $7 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - i32.const 1 + i32.const 2 i32.shl - local.set $3 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.ge_s - select + i32.const 2128 + i32.add + i64.load32_u + i64.mul + local.set $1 + local.get $0 + local.get $5 i32.const 1 - i32.shl - local.tee $4 - local.get $3 i32.sub - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3152 - return - end - local.get $3 - i32.eqz - local.get $4 - local.get $1 i32.const 1 i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $3 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/util/number/dtoa (param $0 f32) (result i32) - (local $1 f64) - (local $2 i32) - (local $3 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 3372 - i32.lt_s - if - i32.const 36160 - i32.const 36208 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1056 - local.set $2 - block $~lib/util/number/dtoa_impl|inlined.0 - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.0 - local.get $1 + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|6 local.get $1 - f64.sub - f64.const 0 - f64.ne - if - i32.const 1088 - local.set $2 + local.get $8 + i64.gt_u + local.get $4 + local.get $8 + i64.sub + local.get $12 + i64.ge_u + i32.and + if (result i32) local.get $1 + local.get $8 + local.get $12 + i64.add + local.tee $2 + i64.gt_u local.get $1 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 1120 - i32.const 1168 + local.get $8 + i64.sub + local.get $2 local.get $1 - f64.const 0 - f64.lt - select - local.set $2 - br $~lib/util/number/dtoa_impl|inlined.0 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $12 + i64.add + local.set $8 + br $while-continue|6 + end + end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 36140 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.const 1200 - local.get $1 - i32.const 1 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 1200 - local.get $3 - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/number/dtoa (param $0 f64) (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 - global.get $~lib/memory/__stack_pointer - i32.const 3372 - i32.lt_s - if - i32.const 36160 - i32.const 36208 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1056 - local.set $1 - block $~lib/util/number/dtoa_impl|inlined.1 - local.get $0 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.1 - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 1088 - local.set $1 - local.get $0 local.get $0 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.1 - i32.const 1120 - i32.const 1168 + i32.load 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 2656 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - f64.const 0 - f64.lt - select - local.set $1 - br $~lib/util/number/dtoa_impl|inlined.1 + i32.const 36140 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 36140 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 2928 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - i32.const 1200 - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 1200 - local.get $2 - memory.copy + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 ) ) diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 5147bdfca1..7d72c4c009 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -44,63 +44,6 @@ (export "qux" (global $logical/qux)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $logical/b - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $logical/c - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -253,105 +196,335 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1440 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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 - else - i32.const 31 - i32.const 1073741820 + local.set $3 + local.get $1 local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u + i32.gt_s select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + local.get $1 + i32.load + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1440 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.load offset=8 - local.set $5 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load offset=4 + i32.load + 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 + local.get $1 + i32.const 32 + i32.add + local.tee $3 local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1440 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 i32.const 4 i32.shl local.get $3 @@ -645,119 +818,99 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $logical/C + block $logical/A + block $logical/B + block $logical/Obj + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $logical/Obj $logical/B $logical/A $logical/C $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + 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 offset=96 + else i32.const 0 - i32.const 1440 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -839,589 +992,292 @@ i32.const 34304 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 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 34292 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1440 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $logical/b + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $logical/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1168 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34292 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34292 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + (func $~lib/object/Object#constructor (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 1524 + i32.lt_s if - call $~lib/rt/tlsf/initialize + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 i32.eqz if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load 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 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $logical/Obj#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1524 + i32.lt_s if - i32.const 0 - i32.const 1440 - i32.const 501 - i32.const 14 + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $logical/A#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1524 + i32.lt_s if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub + i32.const 34320 + i32.const 34368 i32.const 1 - i32.or - i32.store - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 + call $~lib/object/Object#constructor local.tee $0 - i32.const 0 - i32.const 0 - memory.fill + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $logical/C - block $logical/A - block $logical/B - block $logical/Obj - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $logical/Obj $logical/B $logical/A $logical/C $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - return - end - return - end - unreachable - ) (func $~start (local $0 i32) block $__inlined_func$start:logical$1 @@ -1567,161 +1423,306 @@ local.get $0 global.get $logical/c local.get $0 - select + select + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 114 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $logical/b + local.tee $0 + i32.store + global.get $logical/c + global.get $logical/c + local.get $0 + local.get $0 + select + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 120 + 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:logical$1 + end + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34292 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1056 - i32.const 114 - i32.const 1 + i32.const 1168 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $logical/b - local.tee $0 - i32.store - global.get $logical/c - global.get $logical/c local.get $0 - local.get $0 - select - i32.ne + i32.const 34292 + i32.lt_u if + local.get $0 i32.const 0 - i32.const 1056 - i32.const 120 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34292 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:logical$1 + i32.const 10 + return end - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - ) - (func $logical/Obj#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $logical/A#constructor (param $0 i32) (result 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 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 - i64.const 0 - i64.store - 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 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/object/Object#constructor (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 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 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/loop-flow.release.wat b/tests/compiler/loop-flow.release.wat index f6a91f814e..808ecef87a 100644 --- a/tests/compiler/loop-flow.release.wat +++ b/tests/compiler/loop-flow.release.wat @@ -22,17 +22,12 @@ (export "doAny" (func $loop-flow/doAny)) (export "memory" (memory $0)) (start $~start) - (func $loop-flow/whileReturn (result i32) - i32.const 1 - ) (func $loop-flow/whileAny (param $0 i32) (result i32) loop $while-continue|0 (result i32) local.get $0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - else + i32.ne + if local.get $0 i32.const 2 i32.eq @@ -48,16 +43,17 @@ end unreachable end + i32.const 1 end + drop + i32.const 1 ) (func $loop-flow/forAny (param $0 i32) (result i32) loop $for-loop|0 (result i32) local.get $0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - else + i32.ne + if local.get $0 i32.const 2 i32.eq @@ -71,16 +67,17 @@ end br $for-loop|0 end + i32.const 1 end + drop + i32.const 1 ) (func $loop-flow/doAny (param $0 i32) (result i32) loop $do-loop|0 (result i32) local.get $0 i32.const 1 - i32.eq - if (result i32) - i32.const 1 - else + i32.ne + if local.get $0 i32.const 2 i32.eq @@ -94,7 +91,21 @@ end br $do-loop|0 end + i32.const 1 end + drop + i32.const 1 + ) + (func $~start + i32.const 1 + call $loop-flow/whileAny + drop + i32.const 1 + call $loop-flow/forAny + drop + i32.const 1 + call $loop-flow/doAny + drop ) (func $loop-flow/whileThrow (result i32) i32.const 1104 @@ -104,6 +115,9 @@ call $~lib/builtins/abort unreachable ) + (func $loop-flow/whileReturn (result i32) + i32.const 1 + ) (func $loop-flow/whileContinue (result i32) loop $while-continue|0 br $while-continue|0 @@ -126,15 +140,4 @@ call $~lib/builtins/abort unreachable ) - (func $~start - i32.const 1 - call $loop-flow/whileAny - drop - i32.const 1 - call $loop-flow/forAny - drop - i32.const 1 - call $loop-flow/doAny - drop - ) ) diff --git a/tests/compiler/loop-wrap.release.wat b/tests/compiler/loop-wrap.release.wat index aeb624f5ba..ccb4934d40 100644 --- a/tests/compiler/loop-wrap.release.wat +++ b/tests/compiler/loop-wrap.release.wat @@ -6,10 +6,11 @@ (export "testFirstWrapped" (func $loop-wrap/testFirstWrapped)) (export "testSubsequentWrapped" (func $loop-wrap/testSubsequentWrapped)) (export "memory" (memory $0)) - (func $loop-wrap/testAlwaysWrapped - (local $0 i32) + (func $loop-wrap/testSubsequentWrapped (param $0 i32) loop $do-loop|0 local.get $0 + i32.const 255 + i32.and i32.const 10 i32.ne if @@ -42,11 +43,10 @@ end end ) - (func $loop-wrap/testSubsequentWrapped (param $0 i32) + (func $loop-wrap/testAlwaysWrapped + (local $0 i32) loop $do-loop|0 local.get $0 - i32.const 255 - i32.and i32.const 10 i32.ne if diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 62f92354e5..99e4fafa6f 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1,8 +1,8 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (result i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -38,125 +38,435 @@ (data $11 (i32.const 1696) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $managed-cast/Cat#constructor (result i32) (local $0 i32) (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1724 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.ne + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1724 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1724 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end + i32.const 34512 + i32.const 34560 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/itcms/__visit (param $0 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load 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 offset=8 - local.tee $0 - i32.eqz - if + 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 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$137 - local.get $1 + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34492 - i32.lt_u - i32.and - i32.eqz + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$137 end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz + 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 offset=4 + i32.const -4 + i32.and + i32.eq if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34492 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34492 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34492 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$137 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34492 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$137 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort unreachable end local.get $0 @@ -627,459 +937,266 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $3 + 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 + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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.set $3 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add + local.get $2 local.get $1 - i32.gt_u + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.load + i32.const -4 + i32.and + i32.const 28 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end + local.get $2 local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add + i32.load local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u if - unreachable - end - i32.const 34496 - i32.const 0 - i32.store - i32.const 36064 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34496 - i32.add - i32.const 0 - i32.store 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 34496 - i32.add - i32.const 0 - i32.store 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 34496 - i32.const 36068 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34496 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34492 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34492 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34492 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $managed-cast/Animal + block $managed-cast/Cat + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $managed-cast/Cat $managed-cast/Animal $invalid + end + return + end + return end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end - i32.const 10 return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1138,265 +1255,277 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + memory.size local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 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 i32.const 0 i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34496 + i32.const 0 + i32.store + i32.const 36064 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - local.get $3 - memory.grow + local.get $0 + i32.const 2 + i32.shl + i32.const 34496 + i32.add i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if + i32.store offset=4 i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 34496 + i32.add + i32.const 0 + i32.store 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 34496 + i32.const 36068 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34496 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1392 - i32.const 501 + i32.const 382 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 - local.tee $3 - i32.const -4 + i32.const 19 + i32.add + i32.const -16 i32.and - i32.const 28 + i32.const 4 i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - local.get $1 local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - 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 - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else + i32.add local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const -2 - i32.and - i32.store local.get $1 - i32.const 4 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else + local.get $0 + i32.const 1572 i32.add local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 - local.get $0 local.get $1 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total local.get $1 - i32.load - i32.const -4 - i32.and i32.const 4 i32.add + local.get $3 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 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $managed-cast/Animal - block $managed-cast/Cat - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $managed-cast/Cat $managed-cast/Animal $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - return + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - return end - unreachable + ) + (func $managed-cast/testUpcastToNullable (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1724 + i32.lt_s + if + i32.const 34512 + i32.const 34560 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~start (local $0 i32) @@ -1534,22 +1663,15 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~instanceof|managed-cast/Cat$85 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$85 - drop - i32.const 1 - end - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.ne if i32.const 1648 i32.const 1584 @@ -1584,35 +1706,28 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $__inlined_func$~instanceof|managed-cast/Cat$88 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.eqz - if - i32.const 1456 - i32.const 1584 - i32.const 36 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.store offset=8 - i32.const 0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$88 - drop - i32.const 1 - end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.eqz + if + i32.const 1456 + i32.const 1584 + i32.const 36 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.ne if i32.const 1648 i32.const 1584 @@ -1648,22 +1763,15 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - block $__inlined_func$~instanceof|managed-cast/Cat$91 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.ne - br_if $__inlined_func$~instanceof|managed-cast/Cat$91 - drop - i32.const 1 - end - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.ne if i32.const 1648 i32.const 1584 @@ -1787,132 +1895,4 @@ call $~lib/builtins/abort unreachable ) - (func $managed-cast/Cat#constructor (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1724 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1724 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1724 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34512 - i32.const 34560 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $managed-cast/testUpcastToNullable (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1724 - i32.lt_s - if - i32.const 34512 - i32.const 34560 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/many-locals.release.wat b/tests/compiler/many-locals.release.wat index d6e24e0568..fc05e1dc8d 100644 --- a/tests/compiler/many-locals.release.wat +++ b/tests/compiler/many-locals.release.wat @@ -6,11 +6,11 @@ (export "testI32" (func $many-locals/testI32)) (export "testI8" (func $many-locals/testI8)) (export "memory" (memory $0)) - (func $many-locals/testI32 (param $0 i32) (result i32) - local.get $0 - ) (func $many-locals/testI8 (param $0 i32) (result i32) local.get $0 i32.extend8_s ) + (func $many-locals/testI32 (param $0 i32) (result i32) + local.get $0 + ) ) diff --git a/tests/compiler/memcpy.release.wat b/tests/compiler/memcpy.release.wat index b82c318426..1a27a0f799 100644 --- a/tests/compiler/memcpy.release.wat +++ b/tests/compiler/memcpy.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32) (result i32))) - (type $1 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32) (result i32))) (type $2 (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $memcpy/dest (mut i32) (i32.const 0)) diff --git a/tests/compiler/memmove.release.wat b/tests/compiler/memmove.release.wat index 9c569cc378..ae5857e2d3 100644 --- a/tests/compiler/memmove.release.wat +++ b/tests/compiler/memmove.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32) (result i32))) - (type $1 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32) (result i32))) (type $2 (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $memmove/dest (mut i32) (i32.const 0)) diff --git a/tests/compiler/memory.release.wat b/tests/compiler/memory.release.wat index b1afa82e8f..aafefd95ad 100644 --- a/tests/compiler/memory.release.wat +++ b/tests/compiler/memory.release.wat @@ -16,6 +16,9 @@ (data $24 (i32.const 1216) "\01") (export "memory" (memory $0)) (start $~start) + (func $~start + call $start:memory + ) (func $start:memory (local $0 i32) i32.const 1024 @@ -257,7 +260,4 @@ i32.const 1215 global.set $memory/ptr ) - (func $~start - call $start:memory - ) ) diff --git a/tests/compiler/memset.release.wat b/tests/compiler/memset.release.wat index 422cb7f274..4a0b59732f 100644 --- a/tests/compiler/memset.release.wat +++ b/tests/compiler/memset.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32 i32))) - (type $1 (func (param i32 i32 i32 i32))) + (type $0 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32))) (type $2 (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $memset/dest (mut i32) (i32.const 0)) @@ -206,7 +206,7 @@ i32.const 1 i32.const 16 call $memset/memset - global.get $memset/dest + i32.const 33852 i32.load8_u i32.const 1 i32.ne diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index af7e02c097..b952e13bf6 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (result i32))) - (type $1 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func (result i32))) (type $2 (func)) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) @@ -38,87 +38,6 @@ (data $8 (i32.const 1440) "\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 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $new/ref - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/gen - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/ref2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/genext - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/genext2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $new/genext3 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -271,92 +190,364 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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 - else - i32.const 31 - i32.const 1073741820 + local.set $3 + local.get $1 local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u + i32.gt_s select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + local.get $1 + i32.load + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.load offset=8 - local.set $5 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load offset=4 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub local.tee $4 - if + 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 + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 + ) + (func $new/Gen#constructor (param $0 i32) (result 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 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 + i64.const 0 + i64.store + 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 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if local.get $4 local.get $5 i32.store offset=8 @@ -663,157 +854,288 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $new/GenExt + block $new/ns.Ref + block $new/Gen + block $new/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $new/Ref $new/Gen $new/ns.Ref $new/GenExt $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return end + return end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + unreachable + ) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1476 + i32.lt_s if - return + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $1 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $new/ns.Ref#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $new/Ref#constructor (result i32) (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result 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 1476 + i32.lt_s + if + i32.const 34272 + i32.const 34320 i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $new/GenExt#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1476 + i32.lt_s if + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34256 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - i32.const 35824 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $new/Gen#constructor + local.tee $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34256 - i32.add - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34256 + i32.const 0 + i32.store + i32.const 35824 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34256 + i32.add + i32.const 0 i32.store offset=4 i32.const 0 local.set $1 @@ -857,879 +1179,558 @@ i32.const 34256 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 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 34244 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $new/ref + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/gen + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/ref2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $new/genext3 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34244 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34244 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end + ) + (func $~start + (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 + memory.size + 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 + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $new/Ref#constructor + global.set $new/ref + call $new/Ref#constructor + global.set $new/ref + call $new/Ref#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + global.set $new/ref + i32.const 0 + call $new/Gen#constructor + global.set $new/gen + i32.const 0 + call $new/Gen#constructor + global.set $new/gen i32.const 0 + call $new/Gen#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + global.set $new/gen + call $new/ns.Ref#constructor + global.set $new/ref2 + call $new/ns.Ref#constructor + global.set $new/ref2 + call $new/ns.Ref#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + global.set $new/ref2 + call $new/GenExt#constructor + global.set $new/genext + call $new/GenExt#constructor + global.set $new/genext2 + call $new/GenExt#constructor + global.set $new/genext3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if + 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 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$69 - i32.const 2048 + global.get $~lib/rt/itcms/white + i32.eqz 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 + global.get $~lib/rt/itcms/iter + i32.load 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 - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 - local.tee $1 - i32.const 4 - local.get $2 - i32.load 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 - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow i32.const 0 - i32.lt_s + 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 offset=4 + i32.const -4 + i32.and + i32.eq if - unreachable + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34244 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34244 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34244 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - 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 - 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 - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $new/GenExt - block $new/ns.Ref - block $new/Gen - block $new/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $new/Ref $new/Gen $new/ns.Ref $new/GenExt $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start - (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 - memory.size - 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 - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - call $new/Ref#constructor - global.set $new/ref - call $new/Ref#constructor - global.set $new/ref - call $new/Ref#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - global.set $new/ref - i32.const 0 - call $new/Gen#constructor - global.set $new/gen - i32.const 0 - call $new/Gen#constructor - global.set $new/gen - i32.const 0 - call $new/Gen#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - global.set $new/gen - call $new/ns.Ref#constructor - global.set $new/ref2 - call $new/ns.Ref#constructor - global.set $new/ref2 - call $new/ns.Ref#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - global.set $new/ref2 - call $new/GenExt#constructor - global.set $new/genext - call $new/GenExt#constructor - global.set $new/genext2 - call $new/GenExt#constructor - global.set $new/genext3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $new/Ref#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $new/Gen#constructor (param $0 i32) (result 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 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 - i64.const 0 - i64.store - 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 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $new/ns.Ref#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $new/GenExt#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $new/Gen#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/object/Object#constructor (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 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 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/number.release.wat b/tests/compiler/number.release.wat index 5fbdeb3b8b..71d88ecec9 100644 --- a/tests/compiler/number.release.wat +++ b/tests/compiler/number.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func)) (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32))) - (type $9 (func (param i64 i64 i32 i64) (result i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i64 i64 i32 i64) (result i32))) + (type $9 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $number/a (mut i32) (i32.const 1)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -79,1052 +79,959 @@ (data $31 (i32.const 4656) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 2080 - call $~lib/rt/itcms/__visit - i32.const 3136 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4676 + i32.lt_s if - return + i32.const 37472 + i32.const 37520 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + local.get $1 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$165 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 37444 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$165 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 4656 - i32.load - i32.gt_u - if - i32.const 1472 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 4660 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + i32.store local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) local.get $3 + local.tee $0 i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1616 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 + if (result i32) local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const 7 i32.and - local.set $3 local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 local.get $2 - i32.rotl - i32.and - i32.store + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$81 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$81 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + 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 4676 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 203 - i32.const 14 + i32.const 37472 + i32.const 37520 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$73 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1248 + local.set $0 + br $__inlined_func$~lib/util/number/itoa32$73 end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $1 + select + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.add + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 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 - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1616 - 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 1616 - 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 - 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 + call $~lib/util/number/utoa32_dec_lut + local.get $1 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.add + global.set $~lib/memory/__stack_pointer end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and + local.get $0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end + global.get $~lib/rt/itcms/white 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - local.get $3 local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 0 - i32.const 1616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter end - local.get $3 + block $__inlined_func$~lib/rt/itcms/Object#unlink$165 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 37444 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$165 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 4656 i32.load - local.set $4 - local.get $5 - local.set $1 + i32.gt_u + if + i32.const 1472 + i32.const 1536 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 4660 + i32.add + i32.load + i32.const 32 + i32.and end - else + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 local.get $0 - i32.const 1572 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 local.get $1 - i32.gt_u + i32.const 10000 + i32.ge_u if - i32.const 0 - i32.const 1616 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + i32.const 100 + i32.ge_u if - return + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 end local.get $1 - local.get $4 - i32.const 2 + i32.const 10 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 8 - i32.sub + i32.const -4 + i32.and local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1616 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end local.get $1 + local.get $0 + local.get $2 i32.const 4 - i32.add + i32.shl local.get $3 i32.add - local.tee $3 i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.add local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 37456 - i32.const 0 - i32.store - i32.const 39024 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if local.get $0 + local.get $2 i32.const 2 i32.shl - i32.const 37456 i32.add - i32.const 0 + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 i32.store 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 37456 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 37456 - i32.const 39028 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 37456 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if 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 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 37444 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end + i32.const 1616 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1616 + 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 1616 + 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 + 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 1616 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object local.get $0 - i32.load 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 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 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 1344 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 37444 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 37444 - 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.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.const 8 + i32.sub i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + return end + return end - i32.const 10 return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end - i32.const 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1254,6 +1161,249 @@ end end ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 37456 + i32.const 0 + i32.store + i32.const 39024 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 37456 + i32.add + i32.const 0 + i32.store 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 37456 + i32.add + i32.const 0 + i32.store 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 37456 + i32.const 39028 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 37456 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1616 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 2080 + call $~lib/rt/itcms/__visit + i32.const 3136 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) (func $~lib/rt/itcms/__new (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -1352,8 +1502,6 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 local.get $4 i32.const 256 i32.ge_u @@ -1381,7 +1529,8 @@ i32.const 4 local.get $3 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1395,7 +1544,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 i32.gt_s @@ -1567,228 +1718,329 @@ memory.fill local.get $1 ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (func $~start + call $start:number + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end local.get $1 - i32.const 100 - i32.ge_u + i32.eqz if local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 i32.const 1 i32.shl + i32.const 3456 i32.add - local.get $1 - i32.const 100 - i32.rem_u + i32.const 3145774 + i32.store + local.get $0 i32.const 2 - i32.shl - i32.const 1660 i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 + return end + local.get $0 local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 + i32.add + local.tee $2 + i32.const 21 + i32.le_s + local.get $0 + local.get $2 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + i32.const 3456 + i32.add + i32.const 48 + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end local.get $2 - i32.const 2 - i32.sub i32.const 1 i32.shl + i32.const 3456 i32.add - local.get $1 + i32.const 3145774 + i32.store + local.get $2 i32.const 2 - i32.shl - i32.const 1660 i32.add - i32.load - i32.store else - local.get $0 local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/number/I32#toString (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 4676 - i32.lt_s - if - i32.const 37472 - i32.const 37520 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1248 - local.set $0 - br $__inlined_func$~lib/util/number/itoa32$73 - end - global.get $~lib/memory/__stack_pointer + i32.const 21 + i32.le_s + local.get $2 i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $1 - select - local.tee $3 - i32.const 100000 - i32.lt_u + i32.gt_s + i32.and if (result i32) - local.get $3 - i32.const 100 - i32.lt_u + local.get $2 + i32.const 1 + i32.shl + i32.const 3456 + i32.add + local.tee $2 + i32.const 2 + i32.add + local.get $2 + i32.const 0 + local.get $1 + i32.sub + i32.const 1 + i32.shl + memory.copy + local.get $2 + i32.const 46 + i32.store16 + local.get $0 + i32.const 1 + i32.add + else + local.get $2 + i32.const 0 + i32.le_s + local.get $2 + i32.const -6 + i32.gt_s + i32.and if (result i32) - local.get $3 - i32.const 10 - i32.ge_u + i32.const 2 + local.get $2 + i32.sub + local.tee $2 i32.const 1 + i32.shl + i32.const 3456 i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 + i32.const 3456 + local.get $0 + i32.const 1 + i32.shl + memory.copy + i32.const 3456 + i32.const 3014704 + i32.store + i32.const 2 + local.set $1 + loop $for-loop|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + i32.const 3456 + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + local.get $2 i32.add else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u + local.get $0 + i32.const 1 + i32.eq + if + i32.const 3458 + i32.const 101 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $1 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + i32.const 3460 + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + i32.const 3460 + i32.const 45 + i32.const 43 + local.get $1 + select + i32.store16 + else + i32.const 3460 + i32.const 3458 + local.get $0 + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + i32.sub + memory.copy + i32.const 3458 + i32.const 46 + i32.store16 + local.get $1 + i32.const 3456 + i32.add + local.tee $1 + i32.const 101 + i32.store16 offset=2 + local.get $1 + i32.const 4 + i32.add + local.tee $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $0 + end + local.get $0 + i32.const 2 i32.add end end - local.tee $2 - i32.const 1 - i32.shl - local.get $1 - i32.add - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $1 - i32.add - local.get $3 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $1 - if - local.get $0 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end - local.get $0 ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) (local $4 i32) @@ -1868,9 +2120,9 @@ i32.add end end - local.set $6 + local.set $2 loop $while-continue|0 - local.get $6 + local.get $2 i32.const 0 i32.gt_s if @@ -1886,7 +2138,7 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $6 + local.get $2 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 @@ -1894,7 +2146,7 @@ local.get $5 i32.const 1000000000 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 1000000000 i32.rem_u @@ -1904,7 +2156,7 @@ local.get $5 i32.const 100000000 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 100000000 i32.rem_u @@ -1914,7 +2166,7 @@ local.get $5 i32.const 10000000 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 10000000 i32.rem_u @@ -1924,7 +2176,7 @@ local.get $5 i32.const 1000000 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 1000000 i32.rem_u @@ -1934,7 +2186,7 @@ local.get $5 i32.const 100000 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 100000 i32.rem_u @@ -1944,7 +2196,7 @@ local.get $5 i32.const 10000 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 10000 i32.rem_u @@ -1954,7 +2206,7 @@ local.get $5 i32.const 1000 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 1000 i32.rem_u @@ -1964,7 +2216,7 @@ local.get $5 i32.const 100 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 100 i32.rem_u @@ -1974,7 +2226,7 @@ local.get $5 i32.const 10 i32.div_u - local.set $2 + local.set $6 local.get $5 i32.const 10 i32.rem_u @@ -1982,16 +2234,16 @@ br $break|1 end local.get $5 - local.set $2 + local.set $6 i32.const 0 local.set $5 br $break|1 end i32.const 0 - local.set $2 + local.set $6 end - local.get $2 local.get $4 + local.get $6 i32.or if local.get $4 @@ -1999,7 +2251,7 @@ i32.shl i32.const 3456 i32.add - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const 48 @@ -2010,10 +2262,10 @@ i32.add local.set $4 end - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 local.get $3 local.get $5 i64.extend_i32_u @@ -2027,10 +2279,10 @@ i64.ge_u if global.get $~lib/util/number/_K - local.get $6 + local.get $2 i32.add global.set $~lib/util/number/_K - local.get $6 + local.get $2 i32.const 2 i32.shl i32.const 4384 @@ -2116,6 +2368,11 @@ i64.ne if local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 i32.const 1 i32.shl i32.const 3456 @@ -2127,15 +2384,11 @@ i32.const 48 i32.add i32.store16 - local.get $4 - i32.const 1 - i32.add - local.set $4 end - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 local.get $0 local.get $11 i64.and @@ -2145,12 +2398,12 @@ br_if $while-continue|4 end global.get $~lib/util/number/_K - local.get $6 + local.get $2 i32.add global.set $~lib/util/number/_K local.get $8 i32.const 0 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl @@ -2212,525 +2465,273 @@ i32.store16 local.get $4 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $1 - i32.eqz - if - local.get $0 - i32.const 1 - i32.shl - i32.const 3456 - i32.add - i32.const 3145774 - i32.store - local.get $0 - i32.const 2 - i32.add - return - end - local.get $0 - local.get $1 - i32.add - local.tee $2 - i32.const 21 - i32.le_s - local.get $0 - local.get $2 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.shl - i32.const 3456 - i32.add - i32.const 48 - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $2 - i32.const 1 - i32.shl - i32.const 3456 - i32.add - i32.const 3145774 - i32.store - local.get $2 - i32.const 2 - i32.add - else - local.get $2 - i32.const 21 - i32.le_s - local.get $2 - i32.const 0 - i32.gt_s - i32.and - if (result i32) - local.get $2 - i32.const 1 - i32.shl - i32.const 3456 - i32.add - local.tee $2 - i32.const 2 - i32.add - local.get $2 - i32.const 0 - local.get $1 - i32.sub - i32.const 1 - i32.shl - memory.copy - local.get $2 - i32.const 46 - i32.store16 - local.get $0 - i32.const 1 - i32.add - else - local.get $2 - i32.const 0 - i32.le_s - local.get $2 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - i32.const 2 - local.get $2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.const 3456 - i32.add - i32.const 3456 - local.get $0 - i32.const 1 - i32.shl - memory.copy - i32.const 3456 - i32.const 3014704 - i32.store - i32.const 2 - local.set $1 - loop $for-loop|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $1 - i32.const 1 - i32.shl - i32.const 3456 - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + 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 - local.get $0 - local.get $2 - i32.add - else - local.get $0 i32.const 1 - i32.eq - if - i32.const 3458 - i32.const 101 - i32.store16 - local.get $2 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $1 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - i32.const 3460 - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - i32.const 3460 - i32.const 45 - i32.const 43 - local.get $1 - select - i32.store16 - else - i32.const 3460 - i32.const 3458 - local.get $0 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - i32.sub - memory.copy - i32.const 3458 - i32.const 46 - i32.store16 - local.get $1 - i32.const 3456 - i32.add - local.tee $1 - i32.const 101 - i32.store16 offset=2 + 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 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 - i32.const 4 - i32.add - local.tee $3 - local.get $2 - i32.const 1 - i32.sub - local.tee $1 - i32.const 0 - i32.lt_s + local.get $0 + i32.load offset=4 local.tee $2 + i32.const 3 + i32.and + i32.ne if - i32.const 0 - local.get $1 - i32.sub - local.set $1 - end - local.get $1 - local.get $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else + local.get $0 + local.get $2 + i32.const -4 + i32.and local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.or + i32.store 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 - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 local.get $0 - local.get $1 - i32.add + i32.load offset=4 + i32.const -4 + i32.and local.set $0 + br $while-continue|1 end - local.get $0 - i32.const 2 - i32.add end - end - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object + 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 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 37444 + i32.lt_u + if local.get $0 - i32.const 8 - i32.sub i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + call $~lib/rt/itcms/__visit + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 end - return end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - call $start:number - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4676 - i32.lt_s - if - i32.const 37472 - i32.const 37520 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 + global.get $~lib/rt/itcms/iter + i32.load 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$81 - loop $while-continue|1 + local.get $0 + i32.const 37444 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 37444 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$81 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:number (local $0 i32) (local $1 i64) - (local $2 f64) + (local $2 i64) (local $3 i64) (local $4 i64) - (local $5 i64) - (local $6 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2813,41 +2814,49 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 + local.tee $2 i64.const 4294967295 i64.and - local.tee $4 + local.tee $3 i64.const 31 i64.shl - local.get $4 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add local.set $1 - local.get $3 + local.get $2 i64.const 32 i64.shr_u - local.tee $3 + local.tee $2 i64.const 31 i64.shl - local.get $4 + local.get $3 i64.const 31 i64.shl - local.tee $5 + local.get $3 + i64.const 10 + i64.shl i64.const 32 i64.shr_u i64.add - local.get $5 + local.tee $4 + i64.const 32 + i64.shr_u + i64.add + local.get $4 i64.const 4294967295 i64.and + local.get $2 + i64.const 10 + i64.shl + i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u i64.add - local.get $3 + i64.const 1 + i64.sub + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $2 i64.const 31 i64.shl local.get $1 @@ -2857,29 +2866,23 @@ local.get $1 i64.const 4294967295 i64.and - local.get $3 - i64.const 10 - i64.shl - i64.add i64.const 2147483647 i64.add i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub - local.tee $1 + local.get $4 global.get $~lib/util/number/_exp_pow i32.const 2 i32.add - local.get $1 - local.get $3 + local.get $4 + local.get $2 i64.const 2147483647 i64.mul - local.get $4 + local.get $3 i64.const 2147483647 i64.mul - local.get $4 + local.get $3 i64.const 4294966784 i64.mul i64.const 32 @@ -2889,7 +2892,7 @@ i64.const 32 i64.shr_u i64.add - local.get $3 + local.get $2 i64.const 4294966784 i64.mul local.get $1 @@ -2909,15 +2912,13 @@ call $~lib/util/number/prettify i32.const 1 i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.tee $5 call $~lib/rt/itcms/__new local.tee $0 i32.store local.get $0 i32.const 3456 - local.get $6 + local.get $5 memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index e1bb4a66e6..872f7b5c5f 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func (param i32))) - (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32) (result i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i64))) (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)) @@ -48,137 +48,29 @@ (data $15.1 (i32.const 1736) " ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.eqz if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1104 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$205 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34516 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1104 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$205 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1104 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1712 - i32.load - i32.gt_u - if - i32.const 1200 - i32.const 1264 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1716 - i32.add - i32.load - i32.const 32 - i32.and + return end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 local.get $0 - local.get $1 + i32.const 20 + i32.sub + local.tee $0 i32.load offset=4 i32.const 3 i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 @@ -234,710 +126,278 @@ end end ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1200 - call $~lib/rt/itcms/__visit - i32.const 1312 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1104 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s if - i32.const 0 - i32.const 1440 - i32.const 268 - i32.const 14 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - i32.const 0 - i32.const 1440 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + local.get $1 + i32.const 20 i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $3 - local.get $4 + local.tee $0 i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1440 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 + i32.ge_u + if (result i32) local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const 7 i32.and - local.set $3 local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 local.get $2 - i32.rotl - i32.and - i32.store + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$83 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$83 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (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 $1 - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1440 - i32.const 201 - i32.const 14 + i32.const 1312 + i32.const 1104 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - 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 + block $__inlined_func$~lib/rt/itcms/interrupt$68 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$68 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - 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 end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 16 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 + call $~lib/rt/tlsf/allocateBlock + local.tee $2 local.get $1 - i32.store + i32.store offset=12 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 offset=96 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 local.set $3 + local.get $2 local.get $1 - i32.const 0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $3 i32.store offset=8 local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 + local.get $3 i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl + i32.const 3 + i32.and i32.or i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add local.tee $1 i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34528 - i32.const 0 - i32.store - i32.const 36096 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34528 - i32.add - i32.const 0 - i32.store 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 34528 - i32.add - i32.const 0 - i32.store 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 34528 - i32.const 36100 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34528 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 34516 - 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 $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $1 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - i32.store + memory.fill local.get $1 - call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1155,51 +615,105 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u + (func $~lib/object/Object#constructor (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 1748 + i32.lt_s if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else i32.const 31 - local.get $1 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1210,1055 +724,1148 @@ if i32.const 0 i32.const 1440 - i32.const 334 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 local.get $2 - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (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.const 1073741820 - i32.gt_u + i32.eqz if - i32.const 1312 + i32.const 0 i32.const 1440 - i32.const 461 - i32.const 29 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end + i32.load local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 + i32.const 1 + i32.and i32.eqz if - memory.size - local.tee $1 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 256 - i32.ge_u - if (result i32) - local.get $3 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $3 - end - else - local.get $3 - end i32.const 4 - local.get $0 - i32.load offset=1568 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store local.get $1 - i32.const 16 - i32.shl i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 local.get $1 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock + i32.const 4 + i32.sub + i32.load local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and i32.eqz if i32.const 0 i32.const 1440 - i32.const 499 + 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 end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store local.get $3 - local.get $1 - i32.load i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1440 - i32.const 501 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock + local.get $4 local.get $1 - i32.load - local.set $4 - local.get $3 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1440 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - i32.const -4 - i32.and - local.get $3 + i32.const 4 i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 + local.get $1 + i32.store + 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 - i32.const 1 - i32.or - i32.store - local.get $0 + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $4 - i32.const -2 - i32.and - i32.store - local.get $1 i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store + i32.sub + i32.shr_u + i32.const 16 + i32.xor end - local.get $1 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u + 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 1312 - i32.const 1104 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1440 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 if - block $__inlined_func$~lib/rt/itcms/interrupt$68 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 16 + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 local.get $1 - i32.store offset=12 - local.get $2 + i32.store offset=96 local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 i32.load offset=4 - i32.const 3 - i32.and + i32.const 1 + local.get $2 + i32.shl i32.or i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size local.tee $1 i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $object-literal/OmittedFoo - block $object-literal/MixedOmitted - block $object-literal/OmittedTypes - block $object-literal/Managed - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $object-literal/Managed $object-literal/OmittedTypes $object-literal/MixedOmitted $object-literal/OmittedFoo $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34528 + i32.const 0 + i32.store + i32.const 36096 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34528 + i32.add + i32.const 0 + i32.store 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.load offset=4 - call $~lib/rt/itcms/__visit - return + i32.const 4 + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34528 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - return end local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - return + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=12 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=16 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=20 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=24 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=28 - call $~lib/rt/itcms/__visit - return end - unreachable - ) - (func $~start - call $start:object-literal + i32.const 34528 + i32.const 36100 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34528 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1104 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$205 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34516 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1104 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$205 + end local.get $0 + i32.load offset=8 + local.tee $2 i32.eqz + if + i32.const 0 + i32.const 1104 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer + else local.get $1 - i32.store - local.get $3 + i32.const 1712 + i32.load + i32.gt_u + if + i32.const 1200 + i32.const 1264 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 20 - i32.sub + i32.const 2 + i32.shl + i32.const 1716 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $object-literal/OmittedFoo + block $object-literal/MixedOmitted + block $object-literal/OmittedTypes + block $object-literal/Managed + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $object-literal/Managed $object-literal/OmittedTypes $object-literal/MixedOmitted $object-literal/OmittedFoo $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + return + end + return + end + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=8 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=12 + call $~lib/rt/itcms/__visit + local.get $0 i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__visit local.get $0 - i32.store + i32.load offset=20 + call $~lib/rt/itcms/__visit local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.load offset=24 + call $~lib/rt/itcms/__visit + local.get $0 + i32.load offset=28 + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if local.get $1 - i32.const 7 - i32.and - i32.or - else i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + local.set $1 end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$83 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$83 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $object-literal/testOmittedTypes (param $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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load + local.get $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 1504 - i32.const 57 - i32.const 3 + i32.const 1440 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add i32.load offset=4 - if - i32.const 0 - i32.const 1504 - i32.const 58 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i64.load offset=8 - i64.const 0 - i64.ne - if - i32.const 0 - i32.const 1504 - i32.const 59 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i64.load offset=16 - i64.const 0 - i64.ne - if - i32.const 0 - i32.const 1504 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - f32.load offset=24 - f32.const 0 - f32.ne - if - i32.const 0 - i32.const 1504 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - f64.load offset=32 - f64.const 0 - f64.ne - if - i32.const 0 - i32.const 1504 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load8_u offset=40 - if - i32.const 0 - i32.const 1504 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load8_u offset=41 - if - i32.const 0 - i32.const 1504 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load16_u offset=42 - if - i32.const 0 - i32.const 1504 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load16_u offset=44 - if - i32.const 0 - i32.const 1504 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=48 - if - i32.const 0 - i32.const 1504 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=52 - if - i32.const 0 - i32.const 1504 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - f64.load offset=56 - f64.const 0 - f64.ne - if - i32.const 0 - i32.const 1504 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load8_u offset=64 - if - i32.const 0 - i32.const 1504 - i32.const 70 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $object-literal/testOmittedFoo (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + i32.const 1312 + i32.const 1440 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - local.tee $1 - i32.store local.get $1 - i32.const 1664 - call $~lib/string/String.__eq + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 i32.eqz if + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) + local.get $3 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $3 + end + else + local.get $3 + end + i32.const 4 + local.get $0 + i32.load offset=1568 + memory.size + local.tee $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow i32.const 0 - i32.const 1504 - i32.const 107 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.lt_s + if + local.get $2 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $0 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.tee $1 - i32.store + local.get $3 local.get $1 - i32.const 1696 - call $~lib/string/String.__eq - i32.eqz + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 - i32.const 1504 - i32.const 108 - i32.const 3 + i32.const 1440 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - local.tee $1 - i32.store local.get $1 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $4 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and if i32.const 0 - i32.const 1504 - i32.const 109 - i32.const 3 + i32.const 1440 + i32.const 361 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=12 - local.tee $1 - i32.store + local.get $4 + i32.const -4 + i32.and + local.get $3 + i32.sub + local.tee $2 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + local.get $4 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $4 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store + end local.get $1 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 - i32.const 1504 - i32.const 110 - i32.const 3 + i32.const 1440 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + 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 offset=16 - local.tee $1 - i32.store + i32.load offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1504 - i32.const 111 - i32.const 3 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=20 - local.tee $1 + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store local.get $1 i32.const 0 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 112 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=24 - local.tee $1 - i32.store local.get $1 i32.const 0 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 113 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=1568 local.get $0 - i32.load offset=28 - local.tee $1 - i32.store local.get $1 - i32.const 0 - call $~lib/string/String.__eq + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.const 34516 + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 1504 - i32.const 114 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.store + i32.const 4 + i32.sub + local.set $1 local.get $0 - i32.load offset=32 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end if i32.const 0 - i32.const 1504 - i32.const 115 + i32.const 1440 + i32.const 562 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or i32.store - local.get $0 - i32.load offset=36 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 116 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1200 + call $~lib/rt/itcms/__visit + i32.const 1312 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1104 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:object-literal ) (func $start:object-literal (local $0 i32) @@ -3033,53 +2640,270 @@ 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $object-literal/testOmittedTypes (param $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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + if + i32.const 0 + i32.const 1504 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + if + i32.const 0 + i32.const 1504 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i64.load offset=8 + i64.const 0 + i64.ne + if + i32.const 0 + i32.const 1504 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i64.load offset=16 + i64.const 0 + i64.ne + if + i32.const 0 + i32.const 1504 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + f32.load offset=24 + f32.const 0 + f32.ne + if + i32.const 0 + i32.const 1504 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + f64.load offset=32 + f64.const 0 + f64.ne + if + i32.const 0 + i32.const 1504 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load8_u offset=40 + if + i32.const 0 + i32.const 1504 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load8_u offset=41 + if + i32.const 0 + i32.const 1504 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load16_u offset=42 + if + i32.const 0 + i32.const 1504 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load16_u offset=44 + if + i32.const 0 + i32.const 1504 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=48 + if + i32.const 0 + i32.const 1504 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=52 + if + i32.const 0 + i32.const 1504 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + f64.load offset=56 + f64.const 0 + f64.ne + if + i32.const 0 + i32.const 1504 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load8_u offset=64 + if + i32.const 0 + i32.const 1504 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/object/Object#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $object-literal/testOmittedFoo (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3094,22 +2918,199 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $1 + i32.store + local.get $1 + i32.const 1664 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 107 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $1 + i32.store + local.get $1 + i32.const 1696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 109 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=12 + local.tee $1 + i32.store + local.get $1 i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 110 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=16 + local.tee $1 i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 111 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=20 + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 112 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=24 + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq i32.eqz if - global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 1504 + i32.const 113 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=28 + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.const 1504 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store + local.get $0 + i32.load offset=32 + if + i32.const 0 + i32.const 1504 + i32.const 115 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=36 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/operator-overload-non-ambiguity.release.wat b/tests/compiler/operator-overload-non-ambiguity.release.wat index 177a9d0d5c..375613c57c 100644 --- a/tests/compiler/operator-overload-non-ambiguity.release.wat +++ b/tests/compiler/operator-overload-non-ambiguity.release.wat @@ -34,50 +34,235 @@ (data $9 (i32.const 1536) "\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 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace + (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$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne + local.get $3 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 501 + 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 + 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 + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -623,7 +808,181 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $operator-overload-non-ambiguity/T1 + block $operator-overload-non-ambiguity/P2 + block $operator-overload-non-ambiguity/Base + block $operator-overload-non-ambiguity/P1 + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $operator-overload-non-ambiguity/P1 $operator-overload-non-ambiguity/Base $operator-overload-non-ambiguity/P2 $operator-overload-non-ambiguity/T1 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return + end + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34352 + i32.const 0 + i32.store + i32.const 35920 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34352 + i32.add + i32.const 0 + i32.store 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 34352 + i32.add + i32.const 0 + i32.store 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 34352 + i32.const 35924 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34352 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -737,85 +1096,296 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34352 - i32.const 0 - i32.store - i32.const 35920 - i32.const 0 - i32.store - loop $for-loop|0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34352 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 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 34352 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34352 - i32.const 35924 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34352 - global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/object/Object#constructor (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 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 + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $operator-overload-non-ambiguity/T1#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $operator-overload-non-ambiguity/Base#constructor (param $0 i32) (result 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 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 + i64.const 0 + i64.store + 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 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 34340 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $operator-overload-non-ambiguity/Base#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $operator-overload-non-ambiguity/Base#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + call $operator-overload-non-ambiguity/T1#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + call $operator-overload-non-ambiguity/T1#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + 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 $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -967,683 +1537,114 @@ 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34340 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34340 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 - local.tee $1 - i32.const 4 - local.get $2 - i32.load 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 - i32.const 0 - i32.lt_s + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s + local.get $0 + i32.load 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 229 + i32.const 20 + call $~lib/builtins/abort unreachable end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - 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 - 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 - 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 - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $operator-overload-non-ambiguity/T1 - block $operator-overload-non-ambiguity/P2 - block $operator-overload-non-ambiguity/Base - block $operator-overload-non-ambiguity/P1 - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $operator-overload-non-ambiguity/P1 $operator-overload-non-ambiguity/Base $operator-overload-non-ambiguity/P2 $operator-overload-non-ambiguity/T1 $invalid - end - return - end - return - end - return - end - local.get $0 + local.get $0 + i32.const 34340 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34340 + 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.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 - call $~lib/rt/itcms/__visit - return + i32.const 1 + i32.and end - return + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - return end + i32.const 10 return end - return - end - unreachable - ) - (func $~start - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34340 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 - 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $operator-overload-non-ambiguity/Base#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $operator-overload-non-ambiguity/Base#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - call $operator-overload-non-ambiguity/T1#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - call $operator-overload-non-ambiguity/T1#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - 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 $operator-overload-non-ambiguity/Base#constructor (param $0 i32) (result 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 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 - i64.const 0 - i64.store - 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 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $operator-overload-non-ambiguity/T1#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/object/Object#constructor (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 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 - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) ) diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index 86224fcc4c..9dd537f30a 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func)) - (type $1 (func (param i32) (result i32))) + (type $0 (func (param i32) (result i32))) + (type $1 (func)) (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) @@ -36,75 +36,6 @@ (data $8 (i32.const 1440) "\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\02A\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $optional-typeparameters/tConcrete - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $optional-typeparameters/tDerived - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $optional-typeparameters/tMethodDerived - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $optional-typeparameters/tMethodDerived2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -257,90 +188,354 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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 - else - i32.const 31 - i32.const 1073741820 + local.set $3 + local.get $1 local.get $3 + local.get $1 local.get $3 - i32.const 1073741820 - i32.ge_u + i32.gt_s select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + local.get $1 + i32.load + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.load offset=8 - local.set $5 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.load offset=4 + i32.load + 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 + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 + ) + (func $~lib/object/Object#constructor (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 1480 + 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 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 local.tee $4 if local.get $4 @@ -649,119 +844,168 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + block $invalid + block $optional-typeparameters/TestMethodDerived2 + block $~lib/array/Array<~lib/string/String> + block $optional-typeparameters/TestMethodDerived<~lib/string/String> + block $"optional-typeparameters/TestDerived" + block $"optional-typeparameters/TestConcrete" + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"optional-typeparameters/TestConcrete" $"optional-typeparameters/TestDerived" $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + return + end + 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 1480 + 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.const 1392 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if return end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -843,903 +1087,660 @@ i32.const 34256 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if 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 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 34248 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $optional-typeparameters/tConcrete + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $optional-typeparameters/tDerived + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $optional-typeparameters/tMethodDerived + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $optional-typeparameters/tMethodDerived2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 - local.tee $1 - i32.const -4 + i32.const 3 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 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34248 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34248 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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.const 20 i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/__visit_members 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 offset=96 - else - i32.const 0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) - (func $~lib/rt/itcms/__new (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + (func $~start + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1480 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 i32.const 16 i32.shl - i32.const 4 + i32.const 34248 i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 + i32.const 1 i32.shr_u - local.tee $3 - local.get $1 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - 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 - 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 + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 i32.store - local.get $1 - i32.const 32 + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1480 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $3 - local.get $4 + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $optional-typeparameters/tConcrete + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tConcrete + i32.store + 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 1480 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $optional-typeparameters/tDerived + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tDerived + i32.store + 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 1480 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $optional-typeparameters/tMethodDerived + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tMethodDerived + i32.store + 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 1480 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $optional-typeparameters/tMethodDerived2 + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tMethodDerived2 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $optional-typeparameters/tMethodDerived + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - i32.const 1 - i32.or + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1480 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const -2 - i32.and + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + global.set $~lib/memory/__stack_pointer + return end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 - local.get $0 + i32.const 34272 + i32.const 34320 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - block $invalid - block $optional-typeparameters/TestMethodDerived2 - block $~lib/array/Array<~lib/string/String> - block $optional-typeparameters/TestMethodDerived<~lib/string/String> - block $"optional-typeparameters/TestDerived" - block $"optional-typeparameters/TestConcrete" - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $"optional-typeparameters/TestConcrete" $"optional-typeparameters/TestDerived" $optional-typeparameters/TestMethodDerived<~lib/string/String> $~lib/array/Array<~lib/string/String> $optional-typeparameters/TestMethodDerived2 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return + 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 - return - end - 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 1480 - i32.lt_s - if - i32.const 34272 - i32.const 34320 i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + global.get $~lib/rt/itcms/white + i32.eqz local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u + global.get $~lib/rt/itcms/iter + i32.load 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 - i32.load - local.tee $3 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne if - local.get $3 - call $~lib/rt/itcms/__visit + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34248 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $optional-typeparameters/tConcrete - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tConcrete - i32.store - 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 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $optional-typeparameters/tDerived - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tDerived - i32.store - 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 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $optional-typeparameters/tMethodDerived - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tMethodDerived - i32.store - 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 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $optional-typeparameters/tMethodDerived2 - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tMethodDerived2 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $optional-typeparameters/tMethodDerived + 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 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 34248 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34248 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34248 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1480 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/object/Object#constructor (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 1480 - i32.lt_s - if - i32.const 34272 - i32.const 34320 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/possibly-null.release.wat b/tests/compiler/possibly-null.release.wat index b681c5b383..a187c01fee 100644 --- a/tests/compiler/possibly-null.release.wat +++ b/tests/compiler/possibly-null.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32))) - (type $1 (func (param i32 i32))) + (type $0 (func (param i32 i32))) + (type $1 (func (param i32))) (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33792)) @@ -8,108 +8,23 @@ (export "memory" (memory $0)) (export "testTrue" (func $export:possibly-null/testTrue)) (export "testFalseElse" (func $export:possibly-null/testTrue)) - (export "testFalseContinuation" (func $export:possibly-null/testFalseContinuation)) + (export "testFalseContinuation" (func $export:possibly-null/testNotNeNullContinuation)) (export "testNeNull" (func $export:possibly-null/testTrue)) (export "testEqNullElse" (func $export:possibly-null/testTrue)) - (export "testEqNullContinuation" (func $export:possibly-null/testFalseContinuation)) + (export "testEqNullContinuation" (func $export:possibly-null/testNotNeNullContinuation)) (export "testNotEqNull" (func $export:possibly-null/testTrue)) (export "testNotNeNullElse" (func $export:possibly-null/testTrue)) - (export "testNotNeNullContinuation" (func $export:possibly-null/testFalseContinuation)) + (export "testNotNeNullContinuation" (func $export:possibly-null/testNotNeNullContinuation)) (export "testWhile" (func $export:possibly-null/testWhile)) (export "testWhile2" (func $export:possibly-null/testWhile2)) (export "testWhile3" (func $export:possibly-null/testWhile3)) - (export "testLogicalAnd" (func $export:possibly-null/testLogicalAnd)) - (export "testLogicalOr" (func $export:possibly-null/testLogicalAnd)) - (export "testLogicalAndMulti" (func $export:possibly-null/testLogicalAndMulti)) - (export "testLogicalOrMulti" (func $export:possibly-null/testLogicalAndMulti)) + (export "testLogicalAnd" (func $export:possibly-null/testLogicalOr)) + (export "testLogicalOr" (func $export:possibly-null/testLogicalOr)) + (export "testLogicalAndMulti" (func $export:possibly-null/testLogicalOrMulti)) + (export "testLogicalOrMulti" (func $export:possibly-null/testLogicalOrMulti)) (export "testAssign" (func $export:possibly-null/testAssign)) (export "testNeverNull" (func $export:possibly-null/testTrue)) - (func $export:possibly-null/testTrue (param $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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 33872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:possibly-null/testFalseContinuation (param $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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 33872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $__inlined_func$possibly-null/testFalseContinuation$12 - local.get $0 - i32.eqz - br_if $__inlined_func$possibly-null/testFalseContinuation$12 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:possibly-null/testWhile (param $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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 33872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - loop $while-continue|0 - local.get $0 - if - i32.const 0 - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $export:possibly-null/testWhile2 (param $0 i32) (param $1 i32) + (func $export:possibly-null/testWhile3 (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -139,10 +54,14 @@ loop $while-continue|0 local.get $0 if - global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $0 - i32.store + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.set $0 + end br $while-continue|0 end end @@ -163,7 +82,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:possibly-null/testWhile3 (param $0 i32) (param $1 i32) + (func $export:possibly-null/testWhile2 (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -193,14 +112,10 @@ loop $while-continue|0 local.get $0 if + global.get $~lib/memory/__stack_pointer local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.set $0 - end + local.tee $0 + i32.store br $while-continue|0 end end @@ -221,7 +136,119 @@ call $~lib/builtins/abort unreachable ) - (func $export:possibly-null/testLogicalAnd (param $0 i32) + (func $export:possibly-null/testWhile (param $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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + loop $while-continue|0 + local.get $0 + if + i32.const 0 + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:possibly-null/testTrue (param $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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:possibly-null/testNotNeNullContinuation (param $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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$possibly-null/testNotNeNullContinuation$24 + local.get $0 + i32.eqz + br_if $__inlined_func$possibly-null/testNotNeNullContinuation$24 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:possibly-null/testLogicalOrMulti (param $0 i32) (param $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 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $export:possibly-null/testLogicalOr (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -268,33 +295,6 @@ call $~lib/builtins/abort unreachable ) - (func $export:possibly-null/testLogicalAndMulti (param $0 i32) (param $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 1024 - i32.lt_s - if - i32.const 33824 - i32.const 33872 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $export:possibly-null/testAssign (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index a96b58bb2b..b6b81aebab 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -5,8 +5,8 @@ (type $3 (func (param i32 i32))) (type $4 (func (result i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $export/a i32 (i32.const 1)) (global $export/b i32 (i32.const 2)) @@ -51,67 +51,6 @@ (export "renamed_default" (func $export-default/theDefault)) (export "memory" (memory $0)) (start $~start) - (func $export/add (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $export/mul (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.mul - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $reexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -656,6 +595,176 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (func $export/mul (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.mul + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34288 + i32.const 0 + i32.store + i32.const 35856 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34288 + i32.add + i32.const 0 + i32.store 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 34288 + i32.add + i32.const 0 + i32.store 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 34288 + i32.const 35860 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34288 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -770,85 +879,189 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + global.get $reexport/car + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34288 - i32.const 0 - i32.store - i32.const 35856 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34288 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 160 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 34288 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34288 - i32.const 35860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34288 - global.set $~lib/rt/tlsf/ROOT + ) + (func $export/add (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $export-default/theDefault + ) + (func $~start + (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 1512 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34280 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1512 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + local.tee $0 + i32.store + 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 1512 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + 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 + return + end + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1110,63 +1323,6 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) (local $1 i32) @@ -1223,12 +1379,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1241,7 +1396,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1400,160 +1557,4 @@ local.get $1 i32.sub ) - (func $export-default/theDefault - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $exports/Car - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - (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 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34280 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - local.tee $0 - i32.store - 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 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 - return - end - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index f61fba72ac..30e4698072 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -47,69 +47,6 @@ (export "renamed_default" (func $export-default/theDefault)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $rereexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $rereexport/exportsNamespaceCar - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $reexport/car - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -654,145 +591,187 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $exports/Car + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid + end + return + end + return + end + return + end + local.get $0 i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__visit + return end + return end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 + unreachable + ) + (func $exports/Car#get:numDoors (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s if - return + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/initialize + (func $exports/Car#constructor (result i32) (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 + i32.lt_s if + i32.const 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34336 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $0 i32.store - i32.const 35904 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34336 + i32.const 0 + i32.store + i32.const 35904 + i32.const 0 i32.store loop $for-loop|0 local.get $0 @@ -848,6 +827,313 @@ i32.const 34336 global.set $~lib/rt/tlsf/ROOT ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $rereexport/car + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $rereexport/exportsNamespaceCar + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $reexport/car + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $export-default/theDefault + ) + (func $~start + (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 1560 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + 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 1560 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34328 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + 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 + local.get $0 + call $exports/Car#get:numDoors + 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 + local.get $0 + call $exports/Car#get:numDoors + 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 + local.get $0 + call $exports/Car#get:numDoors + 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 34352 + i32.const 34400 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) @@ -1087,83 +1373,26 @@ local.get $2 local.get $2 i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - 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 offset=96 - else - i32.const 0 + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end + i32.const 0 ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) @@ -1221,12 +1450,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1239,7 +1467,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1393,233 +1623,4 @@ i32.store align=1 local.get $0 ) - (func $export-default/theDefault - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $exports/Car - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $exports/Car $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - (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 1560 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 1560 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34328 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - 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 - local.get $0 - call $exports/Car#get:numDoors - 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 - local.get $0 - call $exports/Car#get:numDoors - 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 - local.get $0 - call $exports/Car#get:numDoors - 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 34352 - i32.const 34400 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $exports/Car#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1560 - 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $exports/Car#get:numDoors (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 1560 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index bc5cd261d7..427ef20e2d 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -2,11 +2,11 @@ (type $0 (func (result i32))) (type $1 (func (param i32))) (type $2 (func)) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) (type $8 (func (param i64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -52,187 +52,6 @@ (export "propertyAccess" (func $resolve-access/propertyAccess)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 2160 - call $~lib/rt/itcms/__visit - i32.const 3216 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$143 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 36096 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$143 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 3296 - i32.load - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 3300 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -257,330 +76,491 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1424 - i32.const 268 - i32.const 14 + i32.const 1088 + i32.const 1152 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1424 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize end - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1088 i32.const 1424 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1424 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1424 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $4 + local.tee $3 + local.get $3 i32.load - local.set $2 + i32.const -3 + i32.and + i32.store end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 local.get $3 - i32.const 2 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - if + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz + i32.const 10000 + i32.ge_u if - i32.const 0 - i32.const 1424 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end + end + local.get $1 + i32.const 100 + i32.ge_u + if local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1740 + i32.add + i32.load + i32.store local.get $1 - local.get $6 - i32.const 4 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl i32.add - local.get $3 - i32.const -4 - i32.and + local.get $1 + i32.const 2 + i32.shl + i32.const 1740 i32.add - local.tee $3 + i32.load i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.eqz if i32.const 0 i32.const 1424 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1424 - i32.const 234 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -588,520 +568,493 @@ if i32.const 0 i32.const 1424 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 + (local $6 i32) local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz if i32.const 0 i32.const 1424 - i32.const 382 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 19 - i32.add - i32.const -16 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 + i32.load + i32.const -4 + i32.and i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if local.get $1 - i32.gt_u + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1424 - i32.const 402 - i32.const 5 + 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 end + local.get $4 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1424 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1424 + 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 + 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 1424 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $0 + local.get $5 + i32.const 4 + i32.shl + local.get $2 i32.add - local.tee $3 i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store local.get $0 - local.get $3 - i32.store offset=1568 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - unreachable + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter end - i32.const 36096 - i32.const 0 - i32.store - i32.const 37664 - i32.const 0 - i32.store - loop $for-loop|0 + block $__inlined_func$~lib/rt/itcms/Object#unlink$143 local.get $0 - i32.const 23 - i32.lt_u + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if local.get $0 - i32.const 2 - i32.shl + i32.load offset=8 + i32.eqz + local.get $0 i32.const 36096 - i32.add - i32.const 0 - i32.store 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 36096 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + br $__inlined_func$~lib/rt/itcms/Object#unlink$143 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - i32.const 36096 - i32.const 37668 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36096 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 3296 + i32.load + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 3300 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $resolve-access/Container + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $resolve-access/Container $invalid + end + return + end + return + end return end local.get $0 - i32.load 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 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 36096 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end + i32.load + call $~lib/rt/itcms/__visit + return 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 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 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 1152 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array~visit + return end local.get $0 - i32.const 36096 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 36096 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 + call $~lib/array/Array~visit return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1182,471 +1135,297 @@ i32.const 4 i32.shl i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1088 - i32.const 1152 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1088 - i32.const 1424 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 + i32.const 2 + i32.shl i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if + i32.const 0 + i32.const 1424 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort unreachable end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else i32.const 0 - i32.const 1424 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable end end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow i32.const 0 - i32.const 1424 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort + i32.lt_s + else + i32.const 0 + end + if unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock + i32.const 36096 + i32.const 0 + i32.store + i32.const 37664 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 36096 + i32.add + i32.const 0 + i32.store 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 36096 + i32.add + i32.const 0 + i32.store 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 36096 + i32.const 37668 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36096 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1424 - i32.const 361 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 + local.get $1 + i32.const 19 + i32.add + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 local.tee $3 - i32.const 16 - i32.ge_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 4 + local.get $1 + i32.const 16 i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1424 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 2160 + call $~lib/rt/itcms/__visit + i32.const 3216 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 loop $while-continue|0 + local.get $0 local.get $1 - i32.const 10000 - i32.ge_u + i32.ne if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1740 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1740 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 br $while-continue|0 end end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1740 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 1740 - i32.add - i32.load - i32.store - else - local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end ) (func $~lib/number/U64#toString (param $0 i64) (result i32) (local $1 i32) @@ -1928,42 +1707,76 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-access/Container - block $~lib/array/Array - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $resolve-access/Container $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return + (func $resolve-access/Container#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 return end + i32.const 36128 + i32.const 36176 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable ) (func $~start @@ -2000,282 +1813,265 @@ i32.const 1376 global.set $~lib/rt/itcms/fromSpace ) - (func $resolve-access/arrayAccess (result i32) + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.const 1056 - i64.load align=1 - i64.store align=1 - local.get $4 - i32.store - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $3 - local.get $4 - i32.store - local.get $4 + (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 36096 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 $3 + local.get $0 + i32.load 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 1152 - i32.const 295 - i32.const 14 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.get $4 - i32.const 20 - i32.sub - local.tee $5 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + local.get $0 + i32.const 36096 + i32.lt_u if - local.get $3 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + 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 36096 + i32.ge_u if - local.get $5 - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $5 - call $~lib/rt/itcms/Object#makeGray + call $~lib/rt/tlsf/initialize end - end - end - end - local.get $3 - local.get $4 - i32.store offset=4 - local.get $3 - i32.const 8 - i32.store offset=8 - local.get $3 - i32.const 1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.load offset=12 - i32.eqz - if - i32.const 1280 - i32.const 1488 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.load offset=4 - i64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - call $~lib/number/U64#toString - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 36128 - i32.const 36176 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $resolve-access/Container#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 36128 - i32.const 36176 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $resolve-access/fieldAccess (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - if - i32.const 36128 - i32.const 36176 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/tlsf/ROOT + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - call $resolve-access/Container#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 1 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.load - call $~lib/number/U64#toString - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $resolve-access/propertyAccess (result i32) (local $0 i32) @@ -2428,4 +2224,209 @@ call $~lib/builtins/abort unreachable ) + (func $resolve-access/fieldAccess (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + if + i32.const 36128 + i32.const 36176 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + call $resolve-access/Container#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.load + call $~lib/number/U64#toString + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $resolve-access/arrayAccess (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.const 1056 + i64.load align=1 + i64.store align=1 + local.get $4 + i32.store + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $3 + local.get $4 + i32.store + local.get $4 + if + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $4 + i32.const 20 + i32.sub + local.tee $5 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $3 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $5 + 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 + local.get $5 + call $~lib/rt/itcms/Object#makeGray + end + end + end + end + local.get $3 + local.get $4 + i32.store offset=4 + local.get $3 + i32.const 8 + i32.store offset=8 + local.get $3 + i32.const 1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=12 + i32.eqz + if + i32.const 1280 + i32.const 1488 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.load offset=4 + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $~lib/number/U64#toString + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 36128 + i32.const 36176 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) ) diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index d7685c983c..73db3a219c 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -1,13 +1,13 @@ (module - (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) + (type $0 (func (param i32 i32) (result i32))) + (type $1 (func)) (type $2 (func (result i32))) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32) (result i32))) + (type $3 (func (param i32) (result i32))) + (type $4 (func (param i32))) + (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i64))) (type $9 (func (param i64 i64 i32 i64) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $resolve-binary/a (mut i32) (i32.const 0)) @@ -237,114 +237,323 @@ (data $45 (i32.const 11216) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $resolve-binary/foo - local.tee $0 + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 11248 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 44048 + i32.const 44096 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $resolve-binary/bar - local.tee $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - local.get $0 - call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - global.get $resolve-binary/bar2 - local.tee $0 - if + block $folding-inner0 + local.get $1 + i32.eqz local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-binary/baz - local.tee $0 - if + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1600 - call $~lib/rt/itcms/__visit - i32.const 1408 - call $~lib/rt/itcms/__visit - i32.const 2208 - call $~lib/rt/itcms/__visit - i32.const 3264 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + i32.store local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1472 - i32.const 160 - 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 offset=4 - i32.const -4 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$81 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$81 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/itcms/__visit (param $0 i32) + (func $~lib/number/I32#toString (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 11248 + i32.lt_s if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 44048 + i32.const 44096 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$74 + local.get $0 + i32.eqz if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1376 + local.set $0 + br $__inlined_func$~lib/util/number/itoa32$74 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $1 + select + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + i32.add + local.get $3 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + local.get $1 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1472 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $0 global.set $~lib/rt/itcms/iter end @@ -462,330 +671,491 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1744 - i32.const 268 - i32.const 14 + i32.const 1408 + i32.const 1472 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1408 i32.const 1744 - i32.const 270 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + local.get $4 + local.get $2 + i32.const 12 + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and i32.const 4 i32.sub - i32.shr_u - i32.const 16 - i32.xor end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz - if - i32.const 0 - i32.const 1744 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1744 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1744 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 i32.const 4 i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else local.get $2 - i32.const -4 + local.get $6 + i32.const -2 i32.and - i32.add - local.tee $3 i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $4 + local.tee $3 + local.get $3 i32.load - local.set $2 + i32.const -3 + i32.and + i32.store end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u if - i32.const 0 - i32.const 1744 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1788 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1788 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end + end + local.get $1 + i32.const 100 + i32.ge_u + if local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1788 + i32.add + i32.load + i32.store local.get $1 - local.get $6 - i32.const 4 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl i32.add - local.get $3 - i32.const -4 - i32.and + local.get $1 + i32.const 2 + i32.shl + i32.const 1788 i32.add - local.tee $3 + i32.load i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.eqz if i32.const 0 i32.const 1744 - i32.const 233 + i32.const 268 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 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1744 - i32.const 234 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -793,2318 +1163,1983 @@ if i32.const 0 i32.const 1744 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 + local.get $2 i32.const 4 i32.shl - local.get $2 + local.get $3 i32.add i32.const 2 i32.shl i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 + (local $6 i32) local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz if i32.const 0 i32.const 1744 - i32.const 382 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 19 - i32.add - i32.const -16 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1744 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 + i32.load + i32.const -4 + i32.and i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if local.get $1 - i32.gt_u + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1744 - i32.const 402 - i32.const 5 + 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 end + local.get $4 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1744 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 i32.const 4 i32.add - local.get $3 + local.get $2 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.ne if + i32.const 0 + i32.const 1744 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 44016 - i32.const 0 - i32.store - i32.const 45584 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 44016 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u - if + 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 1744 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $resolve-binary/Baz + block $resolve-binary/Bar + block $resolve-binary/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-binary/Foo $resolve-binary/Bar $resolve-binary/Baz $invalid + end + return + end + return + end + return + end local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 44016 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.load + call $~lib/rt/itcms/__visit + return end + return end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + return end + return end - i32.const 44016 - i32.const 45588 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 44016 - global.set $~lib/rt/tlsf/ROOT + unreachable ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/object/Object#constructor (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 11248 + i32.lt_s + if + i32.const 44048 + i32.const 44096 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/number/F64#toString (result i32) + (local $0 i64) (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 44016 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1472 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 44016 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 44016 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1744 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1744 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1744 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1408 - i32.const 1472 - i32.const 261 - 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$70 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1408 - i32.const 1744 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1744 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u + (local $3 i64) + (local $4 i64) + (local $5 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 11248 + i32.lt_s if - i32.const 0 - i32.const 1744 - i32.const 501 - i32.const 14 + i32.const 44048 + i32.const 44096 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 10136 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 10568 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $3 + i64.const 4294967295 + i64.and + local.tee $0 + i64.const 31 + i64.shl + local.set $4 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 + i64.const 31 + i64.shl + local.get $0 + i64.const 31 + i64.shl + local.get $0 + i64.const 10 + i64.shl + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + i64.const 4294967295 + i64.and + local.get $3 + i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i64.const 31 + i64.shl local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 + i64.const 32 + i64.shr_u + i64.add + local.get $4 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add local.get $5 - i32.const 4 + global.get $~lib/util/number/_exp_pow + i32.const 3 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1744 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u + local.get $3 + i64.const 2147483647 + i64.mul + local.get $0 + i64.const 2147483647 + i64.mul + local.get $0 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $0 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + i64.const 4294966784 + i64.mul + local.get $0 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 9728 + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 + local.get $1 i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 + local.tee $2 i32.const 4 - i32.add + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 7 + i32.sub + local.set $2 end - local.get $2 local.get $1 - i32.store offset=12 + 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 1744 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + i32.const 2 + i32.shl + i32.add i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i32.const -1 local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 + i32.shl i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 + if (result i32) + local.get $0 local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + 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.const 10000 - i32.div_u - local.set $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end local.get $0 local.get $2 + i32.ctz + local.get $1 i32.const 4 - i32.sub - local.tee $2 - i32.const 1 i32.shl i32.add - local.get $3 - i32.const 100 - i32.div_u i32.const 2 i32.shl - i32.const 1788 i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 44016 + i32.const 0 + i32.store + i32.const 45584 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 i32.const 2 i32.shl - i32.const 1788 + i32.const 44016 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.const 0 + i32.store 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 44016 + i32.add + i32.const 0 + i32.store 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 44016 + i32.const 45588 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 44016 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1744 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 100 - i32.ge_u + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl + local.get $3 + i32.const 4 i32.add local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1788 - i32.add - i32.load - i32.store + i32.gt_u + if + i32.const 0 + i32.const 1744 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 + i32.const 16 i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 1788 - i32.add - i32.load - i32.store + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl + i32.const 1572 i32.add local.get $1 - i32.const 48 - i32.add - i32.store16 + i32.gt_u + if + i32.const 0 + i32.const 1744 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/number/I32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 11248 - i32.lt_s + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 44048 - i32.const 44096 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 i32.store - block $__inlined_func$~lib/util/number/itoa32$74 + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $resolve-binary/foo + local.tee $0 + if local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1376 - local.set $0 - br $__inlined_func$~lib/util/number/itoa32$74 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-binary/bar + local.tee $0 + if local.get $0 - i32.sub + call $~lib/rt/itcms/__visit + end + global.get $resolve-binary/bar2 + local.tee $0 + if local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $resolve-binary/baz + local.tee $0 + if local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $1 - select - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $2 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + call $~lib/rt/itcms/__visit + end + i32.const 1600 + call $~lib/rt/itcms/__visit + i32.const 1408 + call $~lib/rt/itcms/__visit + i32.const 2208 + call $~lib/rt/itcms/__visit + i32.const 3264 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 local.get $1 - i32.add - local.get $3 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $1 + i32.ne if local.get $0 - i32.const 45 - i32.store16 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1472 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end - local.get $0 ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 - local.get $0 - i64.sub - local.set $9 - i64.const 1 - i32.const 0 - local.get $2 + (func $resolve-binary/Bar#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $11 - i64.extend_i32_s + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 11248 + i32.lt_s + if + i32.const 44048 + i32.const 44096 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new local.tee $0 - i64.shl - local.tee $10 - i64.const 1 - i64.sub - local.tee $12 - local.get $1 - i64.and - local.set $8 - local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $5 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $5 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $7 - loop $while-continue|0 - local.get $7 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $7 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $2 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $2 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $2 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $2 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $2 - i32.const 0 - local.set $5 - br $break|1 - end - i32.const 0 - local.set $2 - end + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + call $start:resolve-binary + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + local.get $0 + i32.const 1 + i32.shl + i32.const 9728 + i32.add + i32.const 3145774 + i32.store + local.get $0 + i32.const 2 + i32.add + return + end + local.get $0 + local.get $1 + i32.add + local.tee $2 + i32.const 21 + i32.le_s + local.get $0 + local.get $2 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $0 local.get $2 - local.get $4 - i32.or + i32.lt_s if - local.get $4 - local.tee $6 - i32.const 1 - i32.add - local.set $4 - local.get $6 + local.get $0 i32.const 1 i32.shl i32.const 9728 i32.add - local.get $2 - i32.const 65535 - i32.and i32.const 48 - i32.add i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $7 + end + local.get $2 + i32.const 1 + i32.shl + i32.const 9728 + i32.add + i32.const 3145774 + i32.store + local.get $2 + i32.const 2 + i32.add + else + local.get $2 + i32.const 21 + i32.le_s + local.get $2 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $2 i32.const 1 + i32.shl + i32.const 9728 + i32.add + local.tee $2 + i32.const 2 + i32.add + local.get $2 + i32.const 0 + local.get $1 i32.sub - local.set $7 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $8 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $7 + i32.const 1 + i32.shl + memory.copy + local.get $2 + i32.const 46 + i32.store16 + local.get $0 + i32.const 1 + i32.add + else + local.get $2 + i32.const 0 + i32.le_s + local.get $2 + i32.const -6 + i32.gt_s + i32.and + if (result i32) i32.const 2 + local.get $2 + i32.sub + local.tee $2 + i32.const 1 i32.shl - i32.const 10656 + i32.const 9728 i32.add - i64.load32_u - local.get $1 - i64.shl - local.set $1 - local.get $4 + i32.const 9728 + local.get $0 i32.const 1 i32.shl - i32.const 9726 + memory.copy + i32.const 9728 + i32.const 3014704 + i32.store + i32.const 2 + local.set $1 + loop $for-loop|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + i32.const 9728 + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end + local.get $0 + local.get $2 i32.add - local.tee $5 - i32.load16_u - local.set $2 - loop $while-continue|3 + else + local.get $0 + i32.const 1 + i32.eq + if + i32.const 9730 + i32.const 101 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $1 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + i32.const 9732 local.get $0 - local.get $9 - i64.lt_u - local.get $3 local.get $0 - i64.sub + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + i32.const 9732 + i32.const 45 + i32.const 43 + local.get $1 + select + i32.store16 + else + i32.const 9732 + i32.const 9730 + local.get $0 + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + i32.sub + memory.copy + i32.const 9730 + i32.const 46 + i32.store16 local.get $1 - i64.ge_u - i32.and + i32.const 9728 + i32.add + local.tee $1 + i32.const 101 + i32.store16 offset=2 + local.get $1 + i32.const 4 + i32.add + local.tee $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $1 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u if (result i32) - local.get $0 local.get $1 - i64.add - local.tee $8 - local.get $9 - i64.lt_u - local.get $9 - local.get $0 - i64.sub - local.get $8 - local.get $9 - i64.sub - i64.gt_u - i32.or + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end else - i32.const 0 - end - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 local.get $1 - i64.add - local.set $0 - br $while-continue|3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end end - end - local.get $5 - local.get $2 - i32.store16 - local.get $4 - return - end - br $while-continue|0 - end - end - loop $while-continue|4 - local.get $3 - i64.const 10 - i64.mul - local.set $3 - local.get $8 - i64.const 10 - i64.mul - local.tee $0 - local.get $11 - i64.extend_i32_s - i64.shr_u - local.tee $1 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - local.get $1 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $0 - local.get $12 - i64.and - local.tee $8 - local.get $3 - i64.ge_u - br_if $while-continue|4 - end - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $9 - i32.const 0 - local.get $7 - i32.sub - i32.const 2 - i32.shl - i32.const 10656 - i32.add - i64.load32_u - i64.mul - local.set $0 - local.get $4 - i32.const 1 - i32.shl - i32.const 9726 - i32.add - local.tee $5 - i32.load16_u - local.set $2 - loop $while-continue|6 - local.get $0 - local.get $8 - i64.gt_u - local.get $3 - local.get $8 - i64.sub - local.get $10 - i64.ge_u - i32.and - if (result i32) - local.get $8 - local.get $10 - i64.add - local.tee $1 - local.get $0 - i64.lt_u - local.get $0 - local.get $8 - i64.sub - local.get $1 - local.get $0 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $8 - local.get $10 - i64.add - local.set $8 - br $while-continue|6 - end - end - local.get $5 - local.get $2 - i32.store16 - local.get $4 - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i32.eqz - if - local.get $0 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - i32.const 3145774 - i32.store - local.get $0 - i32.const 2 - i32.add - return + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $0 + end + local.get $0 + i32.const 2 + i32.add + end + end end - local.get $0 + ) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) local.get $1 - i32.add - local.tee $2 - i32.const 21 - i32.le_s local.get $0 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 local.get $2 - i32.le_s - i32.and + i32.sub + local.tee $11 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + local.get $1 + i64.and + local.set $8 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $5 + i32.const 100000 + i32.lt_u if (result i32) - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - i32.const 48 - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $2 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - i32.const 3145774 - i32.store - local.get $2 - i32.const 2 - i32.add - else - local.get $2 - i32.const 21 - i32.le_s - local.get $2 - i32.const 0 - i32.gt_s - i32.and + local.get $5 + i32.const 100 + i32.lt_u if (result i32) - local.get $2 + local.get $5 + i32.const 10 + i32.ge_u i32.const 1 - i32.shl - i32.const 9728 i32.add - local.tee $2 - i32.const 2 + else + local.get $5 + i32.const 10000 + i32.ge_u + i32.const 3 i32.add - local.get $2 - i32.const 0 - local.get $1 - i32.sub - i32.const 1 - i32.shl - memory.copy - local.get $2 - i32.const 46 - i32.store16 - local.get $0 - i32.const 1 + local.get $5 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $5 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1000000 + i32.ge_u + i32.const 6 i32.add else - local.get $2 - i32.const 0 - i32.le_s - local.get $2 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - i32.const 2 - local.get $2 - i32.sub - local.tee $2 + local.get $5 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $5 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $2 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $5 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 100000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100000 + i32.div_u + local.set $6 + local.get $5 + i32.const 100000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 1000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10 + i32.div_u + local.set $6 + local.get $5 + i32.const 10 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + local.set $6 + i32.const 0 + local.set $5 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $4 + local.get $6 + i32.or + if + local.get $4 + local.tee $7 i32.const 1 - i32.shl - i32.const 9728 i32.add - i32.const 9728 - local.get $0 + local.set $4 + local.get $7 i32.const 1 i32.shl - memory.copy i32.const 9728 - i32.const 3014704 - i32.store - i32.const 2 - local.set $1 - loop $for-loop|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $1 - i32.const 1 - i32.shl - i32.const 9728 - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $5 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $8 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K local.get $2 i32.add - else - local.get $0 + global.set $~lib/util/number/_K + local.get $2 + i32.const 2 + i32.shl + i32.const 10656 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 i32.const 1 - i32.eq - if - i32.const 9730 - i32.const 101 - i32.store16 - local.get $2 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $1 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - i32.const 9732 + i32.shl + i32.const 9726 + i32.add + local.tee $5 + i32.load16_u + local.set $2 + loop $while-continue|3 local.get $0 + local.get $9 + i64.lt_u + local.get $3 local.get $0 - i32.const 100000 - i32.lt_u + i64.sub + local.get $1 + i64.ge_u + i32.and if (result i32) local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else + local.get $1 + i64.add + local.tee $8 + local.get $9 + i64.lt_u + local.get $9 local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - i32.const 9732 - i32.const 45 - i32.const 43 - local.get $1 - select - i32.store16 - else - i32.const 9732 - i32.const 9730 - local.get $0 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - i32.sub - memory.copy - i32.const 9730 - i32.const 46 - i32.store16 - local.get $1 - i32.const 9728 - i32.add - local.tee $1 - i32.const 101 - i32.store16 offset=2 - local.get $1 - i32.const 4 - i32.add - local.tee $3 - local.get $2 - i32.const 1 - i32.sub - local.tee $1 - i32.const 0 - i32.lt_s - local.tee $2 - if + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else i32.const 0 - local.get $1 - i32.sub - local.set $1 end - local.get $1 - local.get $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 end - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 - i32.add - local.set $0 end - local.get $0 - i32.const 2 - i32.add + local.get $5 + local.get $2 + i32.store16 + local.get $4 + return end + br $while-continue|0 end end - ) - (func $~lib/number/F64#toString (result i32) - (local $0 i64) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 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 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 + loop $while-continue|4 + local.get $3 + i64.const 10 + i64.mul + local.set $3 + local.get $8 + i64.const 10 + i64.mul + local.tee $0 + local.get $11 + i64.extend_i32_s + i64.shr_u + local.tee $1 + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 1 + i32.shl + i32.const 9728 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $2 + local.get $0 + local.get $12 + i64.and + local.tee $8 + local.get $3 + i64.ge_u + br_if $while-continue|4 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -4 + global.get $~lib/util/number/_K + local.get $2 + i32.add global.set $~lib/util/number/_K - i32.const 10136 - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 10568 - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 4294967295 - i64.and - local.tee $0 - i64.const 31 - i64.shl - local.set $4 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - i64.const 31 - i64.shl - local.get $0 - i64.const 31 - i64.shl - local.get $0 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - i64.const 4294967295 - i64.and - local.get $3 - i64.const 10 - i64.shl - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.set $5 - local.get $3 - i64.const 31 - i64.shl - local.get $4 - i64.const 32 - i64.shr_u - i64.add - local.get $4 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $5 - global.get $~lib/util/number/_exp_pow - i32.const 3 + local.get $9 + i32.const 0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.const 10656 i32.add - local.get $5 - local.get $3 - i64.const 2147483647 - i64.mul - local.get $0 - i64.const 2147483647 - i64.mul - local.get $0 - i64.const 4294966784 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $0 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294966784 + i64.load32_u i64.mul - local.get $0 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - call $~lib/util/number/genDigits - global.get $~lib/util/number/_K - call $~lib/util/number/prettify + local.set $0 + local.get $4 i32.const 1 i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 9728 - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 9726 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $5 + i32.load16_u + local.set $2 + loop $while-continue|6 + local.get $0 + local.get $8 + i64.gt_u + local.get $3 + local.get $8 + i64.sub + local.get $10 + i64.ge_u + i32.and + if (result i32) + local.get $8 + local.get $10 + i64.add + local.tee $1 + local.get $0 + i64.lt_u + local.get $0 + local.get $8 + i64.sub + local.get $1 + local.get $0 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $8 + local.get $10 + i64.add + local.set $8 + br $while-continue|6 + end + end + local.get $5 local.get $2 + i32.store16 + local.get $4 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-binary/Baz - block $resolve-binary/Bar - block $resolve-binary/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-binary/Foo $resolve-binary/Bar $resolve-binary/Baz $invalid - end - return - end - return - end + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 - call $~lib/rt/itcms/__visit - return + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 end - return end - return - end - return - end - unreachable - ) - (func $~start - call $start:resolve-binary - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 + 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 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 44016 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1472 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$81 - loop $while-continue|1 + local.get $0 + i32.const 44016 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 44016 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$81 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1744 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $resolve-binary/Bar#constructor (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:resolve-binary (local $0 i32) @@ -4284,39 +4319,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (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 11248 - i32.lt_s - if - i32.const 44048 - i32.const 44096 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index bc80e8c9b3..8a6fc68b91 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -5,15 +5,15 @@ (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i64 i64 i32 i64 i32) (result i32))) - (type $9 (func (param i32 i32 i32) (result i32))) - (type $10 (func (param f64) (result i32))) - (type $11 (func (param f32) (result i32))) - (type $12 (func (param i32) (result i32))) - (type $13 (func (param i32 i32 f32))) - (type $14 (func (param i32 i32) (result f32))) + (type $6 (func (param i32 i32) (result f32))) + (type $7 (func (param i32 i32 f32))) + (type $8 (func (param i32) (result i32))) + (type $9 (func (param f32) (result i32))) + (type $10 (func (param i32 i32 i64))) + (type $11 (func (param i32 i32 i32) (result i32))) + (type $12 (func (param i64 i64 i32 i64 i32) (result i32))) + (type $13 (func (param f64) (result i32))) + (type $14 (func (result i32))) (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)) @@ -90,201 +90,6 @@ (data $32 (i32.const 4800) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\01\19\00\00A\00\00\00A") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $resolve-elementaccess/arr - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $resolve-elementaccess/buf - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1168 - call $~lib/rt/itcms/__visit - i32.const 3568 - call $~lib/rt/itcms/__visit - i32.const 4624 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1232 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$153 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 37600 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$153 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 4800 - i32.load - i32.gt_u - if - i32.const 1360 - i32.const 1424 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 4804 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -309,897 +114,849 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 268 - i32.const 14 + i32.const 1168 + i32.const 1232 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 + 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 1168 i32.const 1504 - i32.const 284 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $5 + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 local.get $3 - i32.eqz + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + unreachable end end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/rt/tlsf/insertBlock (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 + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 i32.const 1504 - i32.const 201 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - local.tee $3 - i32.const 1 + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 i32.and - i32.eqz if i32.const 0 i32.const 1504 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1504 - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1504 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + i32.or + i32.store offset=4 local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 i32.add - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 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 4832 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 234 - i32.const 14 + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 251 - i32.const 14 + i32.const 1360 + i32.const 1568 + i32.const 167 + i32.const 45 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 i32.add - i32.const 2 - i32.shl + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 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 4832 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add + i32.store local.get $1 - i32.store offset=96 local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store local.get $0 - local.get $5 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + f32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + 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 4832 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 382 - i32.const 14 + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.load offset=1568 - local.tee $3 + local.get $1 + i32.eq if - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1504 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $3 local.get $1 - i32.const 16 + i32.const 20 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1572 - i32.add + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.gt_u + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$97 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$97 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end i32.const 0 - i32.const 1504 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $3 end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz return end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 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 4832 + i32.lt_s + if + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 178 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 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 4832 + i32.lt_s if + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 37600 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 39168 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 1315 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u i32.const 2 i32.shl - i32.const 37600 + i32.const 2744 i32.add - i32.const 0 - i32.store 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 37600 - i32.add - i32.const 0 - i32.store 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 + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2744 i32.add - local.set $0 - br $for-loop|0 + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - i32.const 37600 - i32.const 39172 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 37600 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 37600 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1232 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 37600 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 37600 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1504 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 - i32.const 256 - i32.lt_u + i32.const 100 + i32.ge_u if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add local.get $1 - i32.const 4 - i32.shr_u + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2744 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u local.set $1 - else + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end + i32.const 2 + i32.shl + i32.const 2744 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add local.get $1 + i32.const 48 + i32.add + i32.store16 + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else i32.const 31 - local.get $1 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1210,1660 +967,1062 @@ if i32.const 0 i32.const 1504 - i32.const 334 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 local.get $2 - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 i32.eqz if - i32.const 0 - i32.const 1504 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 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 + local.get $1 + i32.eqz if - i32.const 1168 - i32.const 1232 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1504 + i32.const 201 + i32.const 14 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1504 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $0 - i32.const 16 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and i32.add + local.tee $4 + i32.load local.tee $2 - i32.const 1073741820 - i32.gt_u + i32.const 1 + i32.and if - i32.const 1168 - i32.const 1504 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 + local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 i32.add - i32.const -16 + local.get $2 + i32.const -4 i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.sub + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + local.get $3 + i32.const 2 + i32.and if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl + local.get $1 i32.const 4 i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 i32.eqz if i32.const 0 i32.const 1504 - i32.const 499 + 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 end - local.get $5 + local.get $4 local.get $2 - i32.load + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1504 - i32.const 501 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1504 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + i32.shr_u else + i32.const 31 + i32.const 1073741820 local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add local.get $2 - i32.load - i32.const -4 - i32.and - i32.add + 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.load - i32.const -3 - i32.and - i32.store + 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 1504 + 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 offset=96 + local.set $3 local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + if + local.get $3 + local.get $1 + i32.store 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 - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl i32.add - local.tee $1 - i32.const 0 + local.tee $0 local.get $0 - memory.fill - local.get $1 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 - local.get $1 - i32.store - local.get $1 + global.get $~lib/rt/itcms/iter + i32.eq if local.get $0 + i32.load offset=8 + local.tee $1 i32.eqz if i32.const 0 i32.const 1232 - i32.const 295 - i32.const 14 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white local.get $1 - i32.const 20 - i32.sub - local.tee $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$153 + local.get $0 i32.load offset=4 - i32.const 3 + i32.const -4 i32.and - i32.eq + local.tee $1 + i32.eqz if local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 37600 + i32.lt_u 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 + i32.const 0 + i32.const 1232 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$153 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $0 - i64.sub - local.set $10 - i64.const 1 - i32.const 0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 4800 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 4804 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 local.get $2 - i32.sub - local.tee $11 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $7 - i64.const 1 - i64.sub - local.tee $12 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 local.get $1 - i64.and - local.set $9 + i32.store offset=8 local.get $1 local.get $0 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $5 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $5 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $8 - loop $while-continue|0 - local.get $8 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $8 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $6 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $6 - i32.const 0 - local.set $5 - br $break|1 - end - i32.const 0 - local.set $6 - end - local.get $4 - local.get $6 - i32.or - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 1776 - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $9 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $8 - i32.const 2 - i32.shl - i32.const 2704 - i32.add - i64.load32_u - local.get $1 - i64.shl - local.set $7 - local.get $4 - i32.const 1 - i32.shl - i32.const 1774 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|3 - local.get $0 - local.get $10 - i64.lt_u - local.get $3 - local.get $0 - i64.sub - local.get $7 - i64.ge_u - i32.and - if (result i32) - local.get $10 - local.get $0 - local.get $7 - i64.add - local.tee $1 - i64.gt_u - local.get $10 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object local.get $0 - i64.sub - local.get $1 - local.get $10 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 + i32.const 8 i32.sub - local.set $6 - local.get $0 - local.get $7 - i64.add - local.set $0 - br $while-continue|3 + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid end + return end - local.get $2 - local.get $6 - i32.store16 - local.get $4 return end - br $while-continue|0 + return end + unreachable end - loop $while-continue|4 - local.get $3 - i64.const 10 - i64.mul - local.set $3 - local.get $9 - i64.const 10 - i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u - local.tee $0 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 1776 - i32.add - local.get $0 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - end - local.get $8 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~lib/number/U8#toString (param $0 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 + global.get $~lib/memory/__stack_pointer + i32.const 4832 + i32.lt_s + if + i32.const 37632 + i32.const 37680 i32.const 1 - i32.sub - local.set $8 - local.get $1 - local.get $12 - i64.and - local.tee $9 - local.get $3 - i64.ge_u - br_if $while-continue|4 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $10 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $8 - i32.sub - i32.const 2 - i32.shl - i32.const 2704 - i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $4 - i32.const 1 - i32.shl - i32.const 1774 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|6 - local.get $1 - local.get $9 - i64.gt_u - local.get $3 - local.get $9 - i64.sub - local.get $7 - i64.ge_u + i32.store + block $__inlined_func$~lib/util/number/utoa32$79 + local.get $0 + i32.const 255 i32.and - if (result i32) - local.get $1 - local.get $7 - local.get $9 - i64.add - local.tee $0 - i64.gt_u - local.get $1 - local.get $9 - i64.sub - local.get $0 - local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $7 - local.get $9 - i64.add - local.set $9 - br $while-continue|6 - end - end - local.get $2 - local.get $6 - i32.store16 - local.get $4 - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u + local.tee $1 + i32.eqz if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 2744 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 2744 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + i32.const 3536 + local.set $0 + br $__inlined_func$~lib/util/number/utoa32$79 end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add + global.get $~lib/memory/__stack_pointer + i32.const 3 local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 2744 + i32.const 10 + i32.ge_u + i32.const 1 i32.add - i32.load - i32.store local.get $1 i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub + i32.ge_u + select + local.tee $2 i32.const 1 i32.shl - i32.add - local.get $1 i32.const 2 - i32.shl - i32.const 2744 - i32.add - i32.load + call $~lib/rt/itcms/__new + local.tee $0 i32.store - else local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add local.get $1 - i32.const 48 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.store16 + global.set $~lib/memory/__stack_pointer end + local.get $0 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/number/F32#toString (param $0 f32) (result i32) + (local $1 f64) + (local $2 i32) (local $3 i32) - (local $4 i32) - local.get $2 - i32.eqz + 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 4832 + i32.lt_s if + i32.const 37632 + i32.const 37680 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1632 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.0 local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store local.get $1 - i32.const 2 - i32.add - return - end + f64.sub + f64.const 0 + f64.ne + if + i32.const 1664 + local.set $2 + local.get $1 + local.get $1 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 1696 + i32.const 1744 + local.get $1 + f64.const 0 + f64.lt + select + local.set $2 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $3 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 1776 + local.get $3 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end local.get $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 1504 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 local.get $2 + i32.const 2 + i32.shl i32.add - local.tee $3 - i32.const 21 - i32.le_s + i32.load offset=4 + i32.const -1 local.get $1 - local.get $3 - i32.le_s + i32.shl i32.and + local.tee $1 if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end local.get $0 - local.get $3 - i32.const 1 + local.get $1 + i32.ctz + local.get $2 + i32.const 4 i32.shl i32.add - i32.const 3145774 - i32.store - local.get $3 i32.const 2 + i32.shl i32.add + i32.load offset=96 else - local.get $3 - i32.const 21 - i32.le_s - local.get $3 - i32.const 0 - i32.gt_s + local.get $0 + i32.load + 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 $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 + local.get $1 + i32.ctz + local.tee $1 i32.const 2 + i32.shl i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 0 local.get $2 - i32.sub - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 46 - i32.store16 + i32.ctz local.get $1 - i32.const 1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl i32.add + i32.load offset=96 else - local.get $3 i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 - i32.shl - i32.add - local.get $0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 37600 + i32.const 0 + i32.store + i32.const 39168 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 37600 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 - local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq + i32.const 16 + i32.lt_u if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else local.get $0 i32.const 4 + i32.shl + local.get $1 i32.add - local.get $0 i32.const 2 - i32.add - local.get $1 - i32.const 1 i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 + i32.const 37600 i32.add - local.tee $4 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 + i32.store offset=96 local.get $1 + i32.const 1 i32.add local.set $1 + br $for-loop|1 end - local.get $1 - i32.const 2 - i32.add end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end end + i32.const 37600 + i32.const 39172 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 37600 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - local.get $0 - f64.const 0 - f64.lt - local.tee $2 - if (result f64) - i32.const 1776 - i32.const 45 - i32.store16 - local.get $0 - f64.neg - else - local.get $0 - end - f32.demote_f64 - i32.reinterpret_f32 - local.tee $7 - i32.const 2139095040 - i32.and - i32.const 23 - i32.shr_u - local.tee $8 - i32.const 1 - local.get $8 - select - i32.const 150 - i32.sub - local.tee $9 - i32.const 1 - i32.sub - local.get $7 - i32.const 8388607 - i32.and - i64.extend_i32_u - local.get $8 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 23 - i64.shl - i64.add - local.tee $1 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $3 - i64.clz - i32.wrap_i64 - local.tee $7 - i32.sub - local.set $8 - local.get $3 - local.get $7 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 382 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i64.const 8388608 - i64.eq - i32.const 1 + i32.const 19 i32.add - local.tee $7 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $9 - local.get $7 - i32.sub - local.get $8 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $8 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp + i32.const -16 + i32.and + i32.const 4 i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.tee $0 - i32.trunc_sat_f64_s - local.tee $7 - local.get $7 - f64.convert_i32_s + local.set $1 local.get $0 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.tee $7 - i32.const 3 - i32.shl - local.tee $8 - i32.sub - global.set $~lib/util/number/_K - local.get $8 - i32.const 1832 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $7 - i32.const 1 - i32.shl - i32.const 2528 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $1 + i32.load offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1504 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i64.clz - i64.shl - local.tee $1 - i64.const 4294967295 - i64.and - local.set $4 - global.get $~lib/util/number/_frc_pow - local.tee $10 - i64.const 4294967295 - i64.and - local.tee $11 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - i64.const 32 - i64.shr_u - local.tee $1 - i64.mul local.get $4 - local.get $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $5 - global.get $~lib/util/number/_frc_plus - local.tee $3 - i64.const 4294967295 - i64.and - local.set $12 + i32.const 2 + i32.and local.get $3 - i64.const 32 - i64.shr_u + i32.const 8 + i32.sub local.tee $3 - local.get $11 - i64.mul - local.get $11 - local.get $12 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $6 - global.get $~lib/util/number/_frc_minus - local.tee $13 - i64.const 4294967295 - i64.and - local.set $14 - local.get $13 - i64.const 32 - i64.shr_u - local.tee $13 - local.get $11 - i64.mul - local.get $11 - local.get $14 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $11 - local.get $2 i32.const 1 - i32.shl - i32.const 1776 - i32.add + i32.or + i32.or + i32.store local.get $1 - local.get $10 - i64.const 32 - i64.shr_u - local.tee $1 - i64.mul - local.get $5 - i64.const 32 - i64.shr_u - i64.add + i32.const 0 + i32.store offset=4 local.get $1 - local.get $4 - i64.mul - local.get $5 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add + i32.const 0 + i32.store offset=8 local.get $1 + i32.const 4 + i32.add local.get $3 - i64.mul - local.get $6 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $12 - i64.mul - local.get $6 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $3 - global.get $~lib/util/number/_exp_pow - global.get $~lib/util/number/_exp i32.add - i32.const -64 - i32.sub + local.tee $3 + i32.const 2 + i32.store + local.get $0 local.get $3 + i32.store offset=1568 + local.get $0 local.get $1 - local.get $13 - i64.mul - local.get $11 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $14 - i64.mul - local.get $11 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - local.get $2 - call $~lib/util/number/genDigits - local.get $2 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $2 - i32.add + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/number/F32#toString (param $0 f32) (result i32) - (local $1 f64) - (local $2 i32) - (local $3 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 4832 - i32.lt_s + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $resolve-elementaccess/arr + local.tee $0 if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1632 - local.set $2 - block $~lib/util/number/dtoa_impl|inlined.0 + global.get $resolve-elementaccess/buf + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 3568 + call $~lib/rt/itcms/__visit + i32.const 4624 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.0 - local.get $1 local.get $1 - f64.sub - f64.const 0 - f64.ne + i32.ne if - i32.const 1664 - local.set $2 - local.get $1 - local.get $1 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 1696 - i32.const 1744 - local.get $1 - f64.const 0 - f64.lt - select - local.set $2 - br $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $1 + if + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable end + global.get $~lib/rt/itcms/white local.get $1 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 1776 - local.get $3 - memory.copy + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/number/U8#toString (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2878,116 +2037,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$79 - local.get $0 - i32.const 255 - i32.and - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3536 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$79 - end - global.get $~lib/memory/__stack_pointer - i32.const 3 - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - local.get $1 - i32.const 100 - i32.ge_u - select - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - call $start:resolve-elementaccess - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - 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 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#set:buffer global.get $~lib/memory/__stack_pointer @@ -3051,366 +2119,1298 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 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 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 1315 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 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 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + (func $~start + call $start:resolve-elementaccess ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4832 - i32.lt_s + local.get $2 + i32.eqz if - i32.const 37632 - i32.const 37680 - i32.const 1 + local.get $0 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 return end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.shl + i32.add + i32.const 3145774 i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 local.get $2 - i32.const 7 + i32.sub + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 + end + local.get $1 + i32.const 2 + i32.add + end + end + end + ) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + local.get $1 + local.get $0 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 + local.get $2 + i32.sub + local.tee $11 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + local.get $1 + i64.and + local.set $8 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $2 + i32.const 1000000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100 + i32.div_u + local.set $5 + local.get $2 + i32.const 100 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $5 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $5 + end + local.get $4 + local.get $5 + i32.or + if + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 + i32.const 1 + i32.shl + i32.const 1776 + i32.add + local.get $5 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $3 + local.get $2 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $8 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 2704 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 + i32.const 1 + i32.shl + i32.const 1774 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $0 + local.get $9 + i64.lt_u + local.get $3 + local.get $0 + i64.sub + local.get $1 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $0 + local.get $1 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $0 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + local.get $3 + i64.const 10 + i64.mul + local.set $3 + local.get $8 + i64.const 10 + i64.mul + local.tee $0 + local.get $11 + i64.extend_i32_s + i64.shr_u + local.tee $1 + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 + i32.const 1 + i32.shl + i32.const 1776 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.get $12 + i64.and + local.tee $8 + local.get $3 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 2704 + i32.add + i64.load32_u + i64.mul + local.set $0 + local.get $4 + i32.const 1 + i32.shl + i32.const 1774 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $0 + local.get $8 + i64.gt_u + local.get $3 + local.get $8 + i64.sub + local.get $10 + i64.ge_u + i32.and + if (result i32) + local.get $0 + local.get $8 + local.get $10 + i64.add + local.tee $1 + i64.gt_u + local.get $0 + local.get $8 + i64.sub + local.get $1 + local.get $0 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $10 + i64.add + local.set $8 + br $while-continue|6 + end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + ) + (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) + (local $1 i64) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + local.get $0 + f64.const 0 + f64.lt + local.tee $2 + if (result f64) + i32.const 1776 + i32.const 45 + i32.store16 + local.get $0 + f64.neg + else + local.get $0 + end + f32.demote_f64 + i32.reinterpret_f32 + local.tee $4 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.tee $8 + i32.const 1 + local.get $8 + select + i32.const 150 + i32.sub + local.tee $9 + i32.const 1 + i32.sub + local.get $4 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $8 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add + local.tee $1 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $3 + i64.clz + i32.wrap_i64 + local.tee $8 + i32.sub + local.set $4 + local.get $3 + local.get $8 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $1 + local.get $1 + i64.const 8388608 + i64.eq + i32.const 1 + i32.add + local.tee $8 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $9 + local.get $8 + i32.sub + local.get $4 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $4 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $0 + i32.trunc_sat_f64_s + local.tee $4 + local.get $4 + f64.convert_i32_s + local.get $0 + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.tee $8 + i32.sub + global.set $~lib/util/number/_K + local.get $8 + i32.const 1832 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $4 + i32.const 1 + i32.shl + i32.const 2528 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $1 + local.get $1 + i64.clz + i64.shl + local.tee $1 + i64.const 4294967295 + i64.and + local.set $5 + global.get $~lib/util/number/_frc_pow + local.tee $10 + i64.const 4294967295 + i64.and + local.tee $11 + local.get $1 + i64.const 32 + i64.shr_u + local.tee $1 + i64.mul + local.get $5 + local.get $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $6 + global.get $~lib/util/number/_frc_plus + local.tee $3 + i64.const 4294967295 + i64.and + local.set $12 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 + local.get $11 + i64.mul + local.get $11 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $7 + global.get $~lib/util/number/_frc_minus + local.tee $13 + i64.const 4294967295 + i64.and + local.set $14 + local.get $13 + i64.const 32 + i64.shr_u + local.tee $13 + local.get $11 + i64.mul + local.get $11 + local.get $14 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $11 + local.get $2 + i32.const 1 + i32.shl + i32.const 1776 + i32.add + local.get $1 + local.get $10 + i64.const 32 + i64.shr_u + local.tee $1 + i64.mul + local.get $6 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $5 + i64.mul + local.get $6 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $3 + i64.mul + local.get $7 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $12 + i64.mul + local.get $7 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $3 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $3 + local.get $1 + local.get $13 + i64.mul + local.get $11 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $14 + i64.mul + local.get $11 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $2 + call $~lib/util/number/genDigits + local.get $2 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $2 + i32.add + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 37600 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$97 - loop $while-continue|1 + local.get $0 + i32.const 37600 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 37600 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$97 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 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 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 178 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 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 4832 - i32.lt_s - if - i32.const 37632 - i32.const 37680 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1568 - i32.const 167 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $start:resolve-elementaccess (local $0 i32) diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index 82fe5bde30..6837fffa79 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -4,9 +4,9 @@ (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (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)) @@ -56,70 +56,6 @@ (elem $0 (i32.const 1) $start:resolve-function-expression~anonymous|0 $start:resolve-function-expression~anonymous|1 $start:resolve-function-expression~anonymous|2) (export "memory" (memory $0)) (start $~start) - (func $start:resolve-function-expression~anonymous|0 (param $0 i32) (result i32) - local.get $0 - i32.const 40 - i32.add - ) - (func $start:resolve-function-expression~anonymous|1 (param $0 i32) (result i32) - local.get $0 - i32.const 41 - i32.add - ) - (func $start:resolve-function-expression~anonymous|2 (param $0 i32) (result i32) - local.get $0 - i32.const 42 - i32.add - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1648 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 2256 - call $~lib/rt/itcms/__visit - i32.const 3312 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1520 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -664,119 +600,189 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + 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 3448 + i32.lt_s + if + i32.const 36240 + i32.const 36288 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1792 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) 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 offset=1568 - local.tee $3 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1792 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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.set $1 end - local.get $3 local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1792 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1792 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -858,1225 +864,1220 @@ i32.const 36224 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1792 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1792 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1792 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots (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 1648 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 2256 + call $~lib/rt/itcms/__visit + i32.const 3312 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if 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 + i32.const 1520 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + br $while-continue|0 + end + end + ) + (func $~start + (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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 3448 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 2 + i32.const 1056 + i32.load + call_indirect (type $0) + i32.const 42 + i32.ne + if 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 offset=4 - i32.const -4 - i32.and + i32.const 1088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 1168 + i32.load + call_indirect (type $0) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 6 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 36216 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/pinSpace + i32.const 1604 + i32.const 1600 + i32.store + i32.const 1608 + i32.const 1600 + i32.store + i32.const 1600 + global.set $~lib/rt/itcms/toSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + i32.const 1200 + i32.load + call_indirect (type $0) + call $~lib/number/I32#toString + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + block $__inlined_func$~lib/string/String.__eq$1 (result 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 3448 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $5 + i32.const 3408 i32.eq if global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 36216 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + br $__inlined_func$~lib/string/String.__eq$1 + end + block $folding-inner0 + local.get $5 + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store + local.get $1 + i32.const 3404 + i32.load + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + i32.const 3408 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=4 + i32.const 1 + local.get $5 + i32.const 7 + i32.and + local.get $1 + i32.const 4 + i32.lt_u + select + i32.eqz + if + loop $do-loop|0 + local.get $5 + i64.load + local.get $3 + i64.load + i64.eq + if + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end end end - global.get $~lib/rt/itcms/iter - i32.load 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 + block $__inlined_func$~lib/util/string/compareImpl$80 + loop $while-continue|1 local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne if + local.get $5 + i32.load16_u + local.tee $2 + local.get $3 + i32.load16_u + local.tee $0 + i32.sub + local.set $4 local.get $0 local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$80 + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $3 + i32.const 2 + i32.add + local.set $3 + br $while-continue|1 end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 end + i32.const 0 + local.set $4 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.eqz + br $__inlined_func$~lib/string/String.__eq$1 end - global.get $~lib/rt/itcms/visitCount - return + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + i32.eqz if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter + i32.const 0 + i32.const 1088 + i32.const 11 + 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 36240 + i32.const 36288 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/step (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.get $1 - i32.const 3 + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 i32.and - i32.ne - if - i32.const 0 - i32.const 1520 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36216 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + local.set $0 + loop $while-continue|1 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 36216 - i32.ge_u + global.get $~lib/rt/itcms/toSpace + i32.ne if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 - i32.const 15 + i32.load offset=4 + local.tee $2 + i32.const 3 i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else + i32.ne + if + local.get $0 local.get $2 - i32.load - i32.const 1 + i32.const -4 i32.and - end - if + local.get $1 + i32.or + i32.store offset=4 i32.const 0 - i32.const 1792 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 end end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1792 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add + 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 offset=4 - local.tee $2 - i32.eqz + i32.const -4 + i32.and + i32.eq if - i32.const 0 - i32.const 1792 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/number/I32#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 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 3448 - i32.lt_s - if - i32.const 36240 - i32.const 36288 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1424 - local.set $2 - br $__inlined_func$~lib/util/number/itoa32$73 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - select - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 36216 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white local.get $0 - i32.const 1000 - i32.ge_u - i32.add + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - else + 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.const 10000000 + i32.load 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 1520 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 36216 i32.lt_u - if (result i32) + if local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 + i32.load + i32.const -4 + i32.and + i32.const 4 i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - i32.const 100000000 - i32.ge_u + i32.const 4 i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $3 - i32.add - local.tee $6 - i32.const 1073741804 - i32.ge_u - if - i32.const 1456 - i32.const 1520 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state + local.tee $0 + i32.const 36216 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT i32.eqz if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 + call $~lib/rt/tlsf/initialize end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $7 - local.get $6 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1792 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $8 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $8 - i32.const 256 - i32.ge_u - if (result i32) - local.get $8 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $8 - i32.const 1 - i32.const 27 - local.get $8 - i32.clz + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - i32.shl - i32.add + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - i32.sub - else - local.get $8 - end - else - local.get $8 - end - i32.const 4 - local.get $7 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $4 - local.get $2 - local.get $4 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $4 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1792 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - local.get $7 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $7 - local.get $8 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1792 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $8 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1792 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $7 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $9 - local.get $8 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1792 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.const 10 + return end - local.get $9 - i32.const -4 - i32.and - local.get $8 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 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 3448 + i32.lt_s + if + i32.const 36240 + i32.const 36288 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$73 + local.get $0 + i32.eqz if - local.get $2 - local.get $8 - local.get $9 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $8 - i32.add - local.tee $8 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $7 - local.get $8 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $9 - i32.const -2 - i32.and - i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - local.get $4 - i32.load - i32.const -3 - i32.and - i32.store + global.set $~lib/memory/__stack_pointer + i32.const 1424 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 end - local.get $2 - i32.const 2 - i32.store offset=12 - local.get $2 - local.get $6 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $4 - i32.load offset=8 - local.set $7 - local.get $2 - local.get $4 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - local.get $7 - local.get $2 - local.get $7 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $4 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $6 - memory.fill - local.get $2 - i32.store - local.get $2 - local.get $3 - i32.add - local.set $4 - loop $while-continue|0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + select + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) local.get $0 - i32.const 10000 - i32.ge_u - if + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else local.get $0 i32.const 10000 - i32.rem_u - local.set $5 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) local.get $0 - i32.const 10000 - i32.div_u - local.set $0 - local.get $4 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl + i32.const 1000000 + i32.ge_u + i32.const 6 i32.add - local.get $5 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1836 + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 i32.add - i64.load32_u - local.get $5 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1836 + local.get $0 + i32.const 100000000 + i32.ge_u i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 end end - local.get $0 - i32.const 100 + local.tee $1 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.tee $6 + i32.const 1073741804 i32.ge_u if - local.get $4 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1836 - i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 + i32.const 1456 + i32.const 1520 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 10 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold i32.ge_u if - local.get $4 - local.get $1 - i32.const 2 - i32.sub - i32.const 1 - i32.shl + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $7 + local.get $6 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1792 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 i32.add - local.get $0 - i32.const 2 + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $8 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $8 + i32.const 256 + i32.ge_u + if (result i32) + local.get $8 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $8 + i32.const 1 + i32.const 27 + local.get $8 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $8 + end + else + local.get $8 + end + i32.const 4 + local.get $7 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 i32.shl - i32.const 1836 - i32.add - i32.load - i32.store - else - local.get $4 - local.get $1 - i32.const 1 + i32.const 4 i32.sub - i32.const 1 + i32.ne i32.shl i32.add - local.get $0 - i32.const 48 + i32.const 65535 i32.add - i32.store16 - end - local.get $3 - if + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $4 local.get $2 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $2 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/function/Function<%28i32%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $invalid - end - return - end - return + local.get $4 + local.get $2 + local.get $4 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $4 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable end - return end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return + local.get $7 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $7 + local.get $8 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1792 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - 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 3448 - i32.lt_s + local.get $8 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if - i32.const 36240 - i32.const 36288 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1792 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer + local.get $7 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $9 + local.get $8 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - ) - (func $~start - (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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 3448 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 2 - i32.const 1056 - i32.load - call_indirect (type $0) - i32.const 42 - i32.ne + i32.const 15 + i32.and if i32.const 0 - i32.const 1088 - i32.const 1 - i32.const 1 + i32.const 1792 + i32.const 361 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 1168 - i32.load - call_indirect (type $0) - i32.const 42 - i32.ne + local.get $9 + i32.const -4 + i32.and + local.get $8 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u if - i32.const 0 - i32.const 1088 - i32.const 6 + local.get $2 + local.get $8 + local.get $9 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $8 + i32.add + local.tee $8 + local.get $4 + i32.const 4 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $7 + local.get $8 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $9 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + local.get $4 + i32.load + i32.const -3 + i32.and + i32.store end - memory.size - i32.const 16 - i32.shl - i32.const 36216 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/pinSpace - i32.const 1604 - i32.const 1600 - i32.store - i32.const 1608 - i32.const 1600 - i32.store - i32.const 1600 - global.set $~lib/rt/itcms/toSpace - i32.const 1748 - i32.const 1744 - i32.store - i32.const 1752 - i32.const 1744 - i32.store - i32.const 1744 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - i32.const 1200 + local.get $2 + i32.const 2 + i32.store offset=12 + local.get $2 + local.get $6 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $4 + i32.load offset=8 + local.set $7 + local.get $2 + local.get $4 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $7 + i32.store offset=8 + local.get $7 + local.get $2 + local.get $7 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $4 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 i32.load - call_indirect (type $0) - call $~lib/number/I32#toString - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - block $__inlined_func$~lib/string/String.__eq$1 (result 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 3448 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $5 - i32.const 3408 - i32.eq + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $2 + i32.const 0 + local.get $6 + memory.fill + local.get $2 + i32.store + local.get $2 + local.get $3 + i32.add + local.set $4 + loop $while-continue|0 + local.get $0 + i32.const 10000 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - br $__inlined_func$~lib/string/String.__eq$1 - end - block $folding-inner0 - local.get $5 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store + local.get $0 + i32.const 10000 + i32.rem_u + local.set $5 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $4 local.get $1 - i32.const 3404 - i32.load + i32.const 4 + i32.sub + local.tee $1 i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.shl + i32.add local.get $5 - i32.store - i32.const 3408 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=4 - i32.const 1 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i64.load32_u local.get $5 - i32.const 7 - i32.and - local.get $1 - i32.const 4 - i32.lt_u - select - i32.eqz - if - loop $do-loop|0 - local.get $5 - i64.load - local.get $3 - i64.load - i64.eq - if - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$80 - loop $while-continue|1 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - if - local.get $5 - i32.load16_u - local.tee $2 - local.get $3 - i32.load16_u - local.tee $0 - i32.sub - local.set $4 - local.get $0 - local.get $2 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$80 - local.get $5 - i32.const 2 - i32.add - local.set $5 - local.get $3 - i32.const 2 - i32.add - local.set $3 - br $while-continue|1 - end - end - i32.const 0 - local.set $4 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1836 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.eqz - br $__inlined_func$~lib/string/String.__eq$1 + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 + end + local.get $0 + i32.const 100 + i32.ge_u + if + local.get $4 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 end - i32.eqz + local.get $0 + i32.const 10 + i32.ge_u if - i32.const 0 - i32.const 1088 - i32.const 11 + local.get $4 + local.get $1 + i32.const 2 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $0 + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i32.load + i32.store + else + local.get $4 + local.get $1 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 + end + local.get $3 + if + local.get $2 + i32.const 45 + i32.store16 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - return end - i32.const 36240 - i32.const 36288 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $2 + ) + (func $start:resolve-function-expression~anonymous|2 (param $0 i32) (result i32) + local.get $0 + i32.const 42 + i32.add + ) + (func $start:resolve-function-expression~anonymous|1 (param $0 i32) (result i32) + local.get $0 + i32.const 41 + i32.add + ) + (func $start:resolve-function-expression~anonymous|0 (param $0 i32) (result i32) + local.get $0 + i32.const 40 + i32.add ) ) diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index 2a19017969..ac44b8fd07 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -2,8 +2,8 @@ (type $0 (func)) (type $1 (func (param i32))) (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) - (type $4 (func (param i32) (result i32))) + (type $3 (func (param i32) (result i32))) + (type $4 (func (result i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -33,57 +33,6 @@ (data $8 (i32.const 1440) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $resolve-new/foo - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -628,6 +577,171 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $resolve-new/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-new/Foo $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34240 + i32.const 0 + i32.store + i32.const 35808 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34240 + i32.add + i32.const 0 + i32.store 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 34240 + i32.add + i32.const 0 + i32.store 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 34240 + i32.const 35812 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34240 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -742,435 +856,89 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + global.get $resolve-new/foo + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34240 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 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 34240 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34240 - i32.const 35812 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34240 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result 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 $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$69 + i32.const 2048 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34232 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34232 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34232 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 + i32.gt_s + br_if $do-loop|0 end global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/total @@ -1195,12 +963,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1213,7 +980,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1368,103 +1137,11 @@ memory.fill local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-new/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-new/Foo $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start + (func $resolve-new/Foo#constructor (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 1464 - i32.lt_s - if - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 34232 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $resolve-new/Foo#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1524,4 +1201,328 @@ call $~lib/builtins/abort unreachable ) + (func $~start + (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 1464 + i32.lt_s + if + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 34232 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + 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 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34232 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34232 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34232 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) ) diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index 9ac4eb9778..fc8a3c80bd 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -4,9 +4,9 @@ (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32) (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (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)) @@ -70,531 +70,608 @@ (data $27 (i32.const 3680) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 2080 - call $~lib/rt/itcms/__visit - i32.const 3136 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3704 + i32.lt_s if - return + i32.const 36496 + i32.const 36544 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + local.get $1 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$126 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 36472 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$126 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 3680 - i32.load - i32.gt_u - if - i32.const 1472 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 3684 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + i32.store local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) local.get $3 + local.tee $0 i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1616 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 + if (result i32) local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const 7 i32.and - local.set $3 local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 local.get $2 - i32.rotl - i32.and - i32.store + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$77 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$77 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3704 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 203 - i32.const 14 + i32.const 36496 + i32.const 36544 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$73 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1248 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 i32.sub - i32.load + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + select + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end local.tee $1 - i32.load - local.tee $6 i32.const 1 - i32.and - i32.eqz + i32.shl + local.get $3 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $3 + i32.add + local.set $5 + loop $while-continue|0 + local.get $0 + i32.const 10000 + i32.ge_u + if + local.get $0 + i32.const 10000 + i32.rem_u + local.set $4 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + i32.const 100 + i32.ge_u if - i32.const 0 - i32.const 1616 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 end local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add + i32.const 10 + i32.ge_u + if + local.get $5 + local.get $1 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + else + local.get $5 + local.get $1 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 + end local.get $3 - i32.const -4 - i32.and + if + local.get $2 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - i32.store + global.set $~lib/memory/__stack_pointer end - local.get $4 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $4 + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$126 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 36472 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$126 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1344 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 3680 + i32.load + i32.gt_u + if + i32.const 1472 + i32.const 1536 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 3684 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1616 - i32.const 234 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -602,520 +679,665 @@ if i32.const 0 i32.const 1616 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 + (local $6 i32) local.get $1 - i64.extend_i32_u - i64.lt_u + i32.eqz if i32.const 0 i32.const 1616 - i32.const 382 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 19 - i32.add - i32.const -16 + i32.load + local.tee $3 + i32.const 1 i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 + i32.load + i32.const -4 + i32.and i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if local.get $1 - i32.gt_u + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1616 - i32.const 402 - i32.const 5 + 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 end + local.get $4 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1616 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 i32.const 4 i32.add - local.get $3 + local.get $2 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.ne if + i32.const 0 + i32.const 1616 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 36480 - i32.const 0 - i32.store - i32.const 38048 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 36480 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u + 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 1616 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/__new (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 1280 + i32.const 1344 + i32.const 261 + 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$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 36480 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 + global.get $~lib/rt/itcms/total i32.const 1 + i32.shl + i32.const 1024 i32.add - local.set $1 - br $for-loop|1 + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 1 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl i32.add - local.set $0 - br $for-loop|0 + global.set $~lib/rt/itcms/threshold end end - i32.const 36480 - i32.const 38052 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36480 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + 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 1280 + i32.const 1616 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 36472 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 end - global.get $~lib/rt/itcms/visitCount - return + else + local.get $5 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - i32.load 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 + local.get $3 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1344 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 36472 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 36472 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1616 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $resolve-propertyaccess/Class + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-propertyaccess/Class $invalid + end + return end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + return end + return end - i32.const 10 + local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1171,805 +1393,584 @@ i32.eqz if i32.const 0 - i32.const 1616 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1280 - i32.const 1344 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1280 - i32.const 1616 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 + i32.const 1616 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 16 - i32.shl i32.const 4 - i32.sub - i32.ne i32.shl i32.add - i32.const 65535 + i32.const 2 + i32.shl i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if + i32.const 0 + i32.const 1616 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort unreachable end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else i32.const 0 - i32.const 1616 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable end end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow i32.const 0 - i32.const 1616 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort + i32.lt_s + else + i32.const 0 + end + if unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock + i32.const 36480 + i32.const 0 + i32.store + i32.const 38048 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 36480 + i32.add + i32.const 0 + i32.store 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 36480 + i32.add + i32.const 0 + i32.store 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 36480 + i32.const 38052 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36480 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1616 - i32.const 361 + i32.const 382 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 + local.get $1 + i32.const 19 + i32.add + i32.const -16 i32.and - local.get $5 + i32.const 4 i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 local.tee $3 - i32.const 16 - i32.ge_u if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $5 - i32.add - local.tee $5 + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $0 + i32.const 1572 i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 local.get $1 - local.get $2 + i32.const 0 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $1 i32.const 4 i32.add + local.get $3 i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 local.get $0 - memory.fill local.get $1 - ) - (func $~lib/number/I32#toString (param $0 i32) (result i32) - (local $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 3704 - i32.lt_s - if - i32.const 36496 - i32.const 36544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1248 - local.set $2 - br $__inlined_func$~lib/util/number/itoa32$73 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - select - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $3 - i32.add - local.set $5 - loop $while-continue|0 - local.get $0 - i32.const 10000 - i32.ge_u - if - local.get $0 - i32.const 10000 - i32.rem_u - local.set $4 - local.get $0 - i32.const 10000 - i32.div_u - local.set $0 - local.get $5 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 2080 + call $~lib/rt/itcms/__visit + i32.const 3136 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 100 - i32.ge_u + local.get $1 + i32.ne if - local.get $5 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i32.load - i32.store local.get $0 - i32.const 100 - i32.div_u - local.set $0 - end - local.get $0 - i32.const 10 - i32.ge_u - if - local.get $5 - local.get $1 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i32.load - i32.store - else - local.get $5 - local.get $1 - i32.const 1 - i32.sub - i32.const 1 - i32.shl + i32.const 20 i32.add + call $~lib/rt/__visit_members local.get $0 - i32.const 48 - i32.add - i32.store16 - end - local.get $3 - if - local.get $2 - i32.const 45 - i32.store16 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end - local.get $2 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $resolve-propertyaccess/Class - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object + (func $~start + call $start:resolve-propertyaccess + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 36472 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-propertyaccess/Class $invalid + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members end - return + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end - return end - return + 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 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/visitCount return end - return - end - unreachable - ) - (func $~start - call $start:resolve-propertyaccess - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3704 - i32.lt_s - if - i32.const 36496 - i32.const 36544 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 + global.get $~lib/rt/itcms/iter local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$77 - loop $while-continue|1 + local.get $0 + i32.const 36472 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 36472 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$77 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:resolve-propertyaccess diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 91b5b3d064..d6ff759cbd 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32))) - (type $9 (func (param i64 i64 i32 i64) (result i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (param i64 i64 i32 i64) (result i32))) + (type $9 (func (result i32))) (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)) @@ -76,55 +76,6 @@ (elem $0 (i32.const 1) $start:resolve-ternary~anonymous|0 $start:resolve-ternary~anonymous|1 $resolve-ternary/g1 $resolve-ternary/g2) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 2080 - call $~lib/rt/itcms/__visit - i32.const 3136 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -277,6 +228,110 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -669,461 +724,225 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28i32%29=>i32> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + 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 4632 + i32.lt_s + if + i32.const 37424 + i32.const 37472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + 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 4632 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 382 - i32.const 14 + i32.const 37424 + i32.const 37472 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.load offset=1568 - local.tee $3 + local.get $1 + i32.eq if - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $3 local.get $1 - i32.const 16 + i32.const 20 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1572 - i32.add + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 37408 - i32.const 0 - i32.store - i32.const 38976 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + i32.eqz if - local.get $0 - i32.const 2 - i32.shl - i32.const 37408 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + loop $do-loop|0 + local.get $2 + i64.load local.get $1 - i32.const 16 - i32.lt_u + i64.load + i64.eq if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 local.get $0 i32.const 4 - i32.shl + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$84 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 local.get $1 - i32.add + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$84 + local.get $2 i32.const 2 - i32.shl - i32.const 37408 i32.add - i32.const 0 - i32.store offset=96 + local.set $2 local.get $1 - i32.const 1 + i32.const 2 i32.add local.set $1 - br $for-loop|1 + br $while-continue|1 end end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end - i32.const 37408 - i32.const 38980 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 37408 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 37400 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1344 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 37400 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 37400 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 256 @@ -1251,12 +1070,255 @@ end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 37408 + i32.const 0 + i32.store + i32.const 38976 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 37408 + i32.add + i32.const 0 + i32.store 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 37408 + i32.add + i32.const 0 + i32.store 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 37408 + i32.const 38980 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 37408 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1616 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 2080 + call $~lib/rt/itcms/__visit + i32.const 3136 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $0 i32.const 1073741804 i32.ge_u @@ -1349,8 +1411,6 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 local.get $4 i32.const 256 i32.ge_u @@ -1378,7 +1438,8 @@ i32.const 4 local.get $3 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1392,7 +1453,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 i32.gt_s @@ -1564,531 +1627,295 @@ memory.fill local.get $1 ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 + (func $~start + (local $0 i64) + (local $1 i32) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 37400 i32.sub - local.tee $2 i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i32.load + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 2 - i32.shl - i32.const 1660 - i32.add - i32.load + call $~lib/rt/itcms/__new + local.tee $1 i32.store - else - local.get $0 - local.get $2 + local.get $1 i32.const 1 - i32.sub i32.const 1 - i32.shl + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - local.get $1 - local.get $0 - i64.sub - local.set $8 - i64.const 1 - i32.const 0 - local.get $2 - i32.sub - local.tee $10 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $9 - i64.const 1 - i64.sub - local.tee $11 - local.get $1 - i64.and - local.set $7 - local.get $1 - local.get $0 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u + i32.store + local.get $1 + i32.const 3232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 5 i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $5 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $5 - i32.const 100000000 - i32.ge_u - i32.add + call $~lib/builtins/abort + unreachable end - end - local.set $6 - loop $while-continue|0 - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $6 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $2 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $2 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $2 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $2 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $2 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $2 - i32.const 0 - local.set $5 - br $break|1 - end - i32.const 0 - local.set $2 - end - local.get $2 - local.get $4 - i32.or - if - local.get $4 - i32.const 1 - i32.shl - i32.const 3472 - i32.add - local.get $2 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $4 - i32.const 1 - i32.add - local.set $4 - end - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $7 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $6 - i32.add - global.set $~lib/util/number/_K - local.get $6 - i32.const 2 - i32.shl - i32.const 4400 - i32.add - i64.load32_u - local.get $1 - i64.shl - local.set $1 - local.get $4 - i32.const 1 - i32.shl - i32.const 3470 - i32.add - local.tee $5 - i32.load16_u - local.set $2 - loop $while-continue|3 - local.get $0 - local.get $8 - i64.lt_u - local.get $3 - local.get $0 - i64.sub - local.get $1 - i64.ge_u - i32.and - if (result i32) - local.get $8 - local.get $0 - local.get $1 - i64.add - local.tee $7 - i64.gt_u - local.get $8 - local.get $0 - i64.sub - local.get $7 - local.get $8 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.get $1 - i64.add - local.set $0 - br $while-continue|3 - end - end - local.get $5 - local.get $2 - i32.store16 - local.get $4 - return - end - br $while-continue|0 - end - end - loop $while-continue|4 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 3880 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 4312 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $2 + i64.const 4294967295 + i64.and + local.tee $3 + i64.const 31 + i64.shl + local.set $0 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 + i64.const 31 + i64.shl + local.get $3 + i64.const 31 + i64.shl local.get $3 i64.const 10 - i64.mul - local.set $3 - local.get $7 + i64.shl + i64.const 32 + i64.shr_u + i64.add + local.tee $4 + i64.const 32 + i64.shr_u + i64.add + local.get $4 + i64.const 4294967295 + i64.and + local.get $2 i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 31 + i64.shl + local.get $0 + i64.const 32 + i64.shr_u + i64.add + local.get $0 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $4 + global.get $~lib/util/number/_exp_pow + i32.const 1 + i32.add + local.get $4 + local.get $2 + i64.const 2147483647 + i64.mul + local.get $3 + i64.const 2147483647 i64.mul + local.get $3 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add local.tee $0 - local.get $10 - i64.extend_i32_s + i64.const 32 i64.shr_u + i64.add + local.get $2 + i64.const 4294966784 + i64.mul + local.get $0 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + i32.const 1 + i32.shl + local.tee $5 + call $~lib/rt/itcms/__new local.tee $1 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne + i32.store + local.get $1 + i32.const 3472 + local.get $5 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 4464 + call $~lib/string/String.__eq + i32.eqz if - local.get $4 + i32.const 0 + i32.const 3264 + i32.const 13 i32.const 1 - i32.shl - i32.const 3472 - i32.add - local.get $1 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $4 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4496 + i32.load + call_indirect (type $0) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 24 i32.const 1 - i32.add - local.set $4 + call $~lib/builtins/abort + unreachable end - local.get $6 i32.const 1 - i32.sub - local.set $6 - local.get $0 - local.get $11 - i64.and - local.tee $7 - local.get $3 - i64.ge_u - br_if $while-continue|4 - end - global.get $~lib/util/number/_K - local.get $6 - i32.add - global.set $~lib/util/number/_K - local.get $8 - i32.const 0 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.const 4400 - i32.add - i64.load32_u - i64.mul - local.set $0 - local.get $4 - i32.const 1 - i32.shl - i32.const 3470 - i32.add - local.tee $5 - i32.load16_u - local.set $2 - loop $while-continue|6 - local.get $0 - local.get $7 - i64.gt_u - local.get $3 - local.get $7 - i64.sub - local.get $9 - i64.ge_u - i32.and - if (result i32) - local.get $0 - local.get $7 - i64.sub - local.get $7 - local.get $9 - i64.add - local.tee $1 - local.get $0 - i64.sub - i64.gt_u - local.get $0 - local.get $1 - i64.gt_u - i32.or - else + i32.const 4560 + i32.load + call_indirect (type $0) + i32.const 4 + i32.ne + if i32.const 0 + i32.const 3264 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 1 + i32.const 4528 + i32.load + call_indirect (type $0) + i32.const 3 + i32.ne if - local.get $2 + i32.const 0 + i32.const 3264 + i32.const 43 i32.const 1 - i32.sub - local.set $2 - local.get $7 - local.get $9 - i64.add - local.set $7 - br $while-continue|6 + 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 - local.get $5 - local.get $2 - i32.store16 - local.get $4 + i32.const 37424 + i32.const 37472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2411,525 +2238,699 @@ end end ) - (func $start:resolve-ternary~anonymous|0 (param $0 i32) (result i32) - i32.const 2 - ) - (func $start:resolve-ternary~anonymous|1 (param $0 i32) (result i32) - i32.const 3 - ) - (func $resolve-ternary/g1 (param $0 i32) (result i32) - i32.const 4 - ) - (func $resolve-ternary/g2 (param $0 i32) (result i32) - i32.const 5 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/function/Function<%28i32%29=>i32> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28i32%29=>i32> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 4632 - i32.lt_s - if - i32.const 37424 - i32.const 37472 - i32.const 1 + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + local.get $1 + local.get $0 + i64.sub + local.set $8 + i64.const 1 + i32.const 0 + local.get $2 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $9 + i64.const 1 + i64.sub + local.tee $11 + local.get $1 + i64.and + local.set $7 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $5 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 100 + i32.lt_u + if (result i32) + local.get $5 + i32.const 10 + i32.ge_u i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + else + local.get $5 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $5 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $5 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $5 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $5 + i32.const 100000000 + i32.ge_u + i32.add end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 i64) - (local $2 f64) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 37400 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/toSpace - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - 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 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + local.set $2 + loop $while-continue|0 + local.get $2 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/util/number/utoa32_dec_lut - 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 - local.get $0 - i32.const 3232 - call $~lib/string/String.__eq - i32.eqz + i32.gt_s if - i32.const 0 - i32.const 3264 - i32.const 5 + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $2 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $5 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 100000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100000 + i32.div_u + local.set $6 + local.get $5 + i32.const 100000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10000 + i32.div_u + local.set $6 + local.get $5 + i32.const 10000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 1000 + i32.div_u + local.set $6 + local.get $5 + i32.const 1000 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 100 + i32.div_u + local.set $6 + local.get $5 + i32.const 100 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + i32.const 10 + i32.div_u + local.set $6 + local.get $5 + i32.const 10 + i32.rem_u + local.set $5 + br $break|1 + end + local.get $5 + local.set $6 + i32.const 0 + local.set $5 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $4 + local.get $6 + i32.or + if + local.get $4 + i32.const 1 + i32.shl + i32.const 3472 + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $4 + i32.const 1 + i32.add + local.set $4 + end + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $2 + local.get $3 + local.get $5 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $7 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $2 + i32.add + global.set $~lib/util/number/_K + local.get $2 + i32.const 2 + i32.shl + i32.const 4400 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 + i32.const 1 + i32.shl + i32.const 3470 + i32.add + local.tee $5 + i32.load16_u + local.set $2 + loop $while-continue|3 + local.get $0 + local.get $8 + i64.lt_u + local.get $3 + local.get $0 + i64.sub + local.get $1 + i64.ge_u + i32.and + if (result i32) + local.get $8 + local.get $0 + local.get $1 + i64.add + local.tee $7 + i64.gt_u + local.get $8 + local.get $0 + i64.sub + local.get $7 + local.get $8 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $5 + local.get $2 + i32.store16 + local.get $4 + return + end + br $while-continue|0 end - 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 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -4 - global.set $~lib/util/number/_K - i32.const 3880 - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 4312 - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 4294967295 - i64.and - local.tee $4 - i64.const 31 - i64.shl - local.get $4 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add - local.set $1 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - i64.const 31 - i64.shl - local.get $4 - i64.const 31 - i64.shl - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 31 - i64.shl - local.get $1 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - i64.const 4294967295 - i64.and + end + loop $while-continue|4 local.get $3 i64.const 10 - i64.shl - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $1 - global.get $~lib/util/number/_exp_pow - i32.const 1 - i32.add - local.get $1 - local.get $3 - i64.const 2147483647 i64.mul - local.get $4 - i64.const 2147483647 - i64.mul - local.get $4 - i64.const 4294966784 + local.set $3 + local.get $7 + i64.const 10 i64.mul - i64.const 32 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - i64.add local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294966784 - i64.mul - local.get $1 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - call $~lib/util/number/genDigits - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 3472 - local.get $6 - memory.copy - 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 - local.get $0 - i32.const 4464 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 13 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4496 - i32.load - call_indirect (type $0) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4560 - i32.load - call_indirect (type $0) - i32.const 4 - i32.ne + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - i32.const 0 - i32.const 3264 - i32.const 35 + local.get $4 + local.tee $5 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4528 - i32.load - call_indirect (type $0) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 43 + i32.add + local.set $4 + local.get $5 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.const 3472 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 37424 - i32.const 37472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - if - i32.const 37424 - i32.const 37472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + local.get $2 i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + local.set $2 local.get $0 - i32.store + local.get $11 + i64.and + local.tee $7 + local.get $3 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $2 + i32.add + global.set $~lib/util/number/_K + local.get $8 + i32.const 0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.const 4400 + i32.add + i64.load32_u + i64.mul + local.set $0 + local.get $4 + i32.const 1 + i32.shl + i32.const 3470 + i32.add + local.tee $5 + i32.load16_u + local.set $2 + loop $while-continue|6 local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $7 + i64.gt_u local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u + local.get $7 + i64.sub + local.get $9 + i64.ge_u + i32.and if (result i32) + local.get $0 + local.get $7 + i64.sub + local.get $7 + local.get $9 + i64.add + local.tee $1 + local.get $0 + i64.sub + i64.gt_u + local.get $0 + local.get $1 + i64.gt_u + i32.or + else + i32.const 0 + end + if local.get $2 - i32.const 7 + i32.const 1 + i32.sub + local.set $2 + local.get $7 + local.get $9 + i64.add + local.set $7 + br $while-continue|6 + end + end + local.get $5 + local.get $2 + i32.store16 + local.get $4 + ) + (func $~lib/rt/itcms/step (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 offset=4 + i32.const -4 i32.and - local.get $1 - i32.const 7 + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 offset=4 + i32.const -4 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + i32.const 37400 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - block $__inlined_func$~lib/util/string/compareImpl$84 - loop $while-continue|1 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 1344 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 37400 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 37400 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$84 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) + (func $start:resolve-ternary~anonymous|1 (param $0 i32) (result i32) + i32.const 3 + ) + (func $start:resolve-ternary~anonymous|0 (param $0 i32) (result i32) + i32.const 2 + ) + (func $resolve-ternary/g2 (param $0 i32) (result i32) + i32.const 5 + ) + (func $resolve-ternary/g1 (param $0 i32) (result i32) + i32.const 4 + ) ) diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index b2115a2271..a407109355 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -2,8 +2,8 @@ (type $0 (func)) (type $1 (func (param i32 i32) (result i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32) (result i32))) + (type $3 (func (param i32) (result i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) (type $7 (func (result i32))) @@ -84,66 +84,167 @@ (data $32 (i32.const 3840) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $resolve-unary/foo - local.tee $0 + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 36672 + i32.const 36720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $resolve-unary/bar - local.tee $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - local.get $0 - call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 2080 - call $~lib/rt/itcms/__visit - i32.const 3136 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 160 - 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 offset=4 - i32.const -4 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$79 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$79 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -297,897 +398,605 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + 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 3872 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 268 - i32.const 14 + i32.const 36672 + i32.const 36720 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$73 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1248 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 + end + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1616 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else + local.get $0 + i32.sub + local.get $0 + local.get $0 i32.const 31 - i32.const 1073741820 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + select + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl local.get $3 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $3 - i32.const 1073741820 + i32.add + local.set $5 + loop $while-continue|0 + local.get $0 + i32.const 10000 + i32.ge_u + if + local.get $0 + i32.const 10000 + i32.rem_u + local.set $4 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + i32.const 100 i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 + if + local.get $5 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + local.get $0 + i32.const 100 + i32.div_u + local.set $0 + end + local.get $0 + i32.const 10 + i32.ge_u + if + local.get $5 + local.get $1 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 2 + i32.shl + i32.const 1660 + i32.add + i32.load + i32.store + else + local.get $5 + local.get $1 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 + end local.get $3 - local.get $4 + if + local.get $2 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.add + global.set $~lib/memory/__stack_pointer end - local.tee $3 - i32.const 16 - i32.lt_u local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (func $~lib/rt/itcms/__new (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 0 - i32.const 1616 - i32.const 284 - i32.const 14 + i32.const 1280 + i32.const 1344 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 local.get $2 - i32.rotl - i32.and - i32.store + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + 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 0 + i32.const 1280 i32.const 1616 - i32.const 203 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 + i32.const 19 i32.add - local.get $1 - i32.load - i32.const -4 + i32.const -16 i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 4 + i32.sub end - local.get $3 - i32.const 2 - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $1 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if i32.const 0 i32.const 1616 - i32.const 221 + i32.const 499 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 end - local.get $4 + local.get $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1616 - i32.const 233 + i32.const 501 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 1616 - 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 - 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 1616 - 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1616 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 36640 - i32.const 0 - i32.store - i32.const 38208 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 36640 - i32.add - i32.const 0 - i32.store 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 36640 - i32.add - i32.const 0 - i32.store 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 36640 - i32.const 38212 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36640 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 36640 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1344 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 36640 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 36640 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 + unreachable + end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and + if i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1616 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 i32.const 0 + local.get $0 + memory.fill + local.get $1 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - i32.const 256 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 i32.lt_u if - local.get $1 + i32.const 0 + i32.const 1616 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 i32.const 4 i32.shr_u - local.set $1 else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 i32.const 31 - local.get $1 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1198,685 +1007,772 @@ if i32.const 0 i32.const 1616 - i32.const 334 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 local.get $2 - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 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 + local.get $1 + i32.eqz if - i32.const 1280 - i32.const 1344 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1616 + i32.const 201 + i32.const 14 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if - 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 1280 + i32.const 0 i32.const 1616 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load local.tee $2 - i32.eqz + i32.const 1 + i32.and if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 + local.get $0 local.get $4 - i32.load offset=1568 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add local.get $2 - i32.const 16 - i32.shl + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.const -65536 + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 i32.eqz if i32.const 0 i32.const 1616 - i32.const 499 + 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 end - local.get $5 + local.get $4 local.get $2 - i32.load + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1616 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store + 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.add - local.get $5 - i32.add - local.tee $5 + 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 1616 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/function/Function<%28%29=>void> + block $resolve-unary/Bar + block $resolve-unary/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-unary/Foo $resolve-unary/Bar $~lib/function/Function<%28%29=>void> $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - i32.const 1 - i32.or + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.lt_s + if + i32.const 36672 + i32.const 36720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 i32.const 4 - i32.add + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 7 + i32.sub + local.set $2 end - local.get $2 local.get $1 - i32.store offset=12 + 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 1616 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 local.get $2 - local.get $3 + i32.const 2 + i32.shl + i32.add i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i32.const -1 local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 + i32.shl i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/number/I32#toString (param $0 i32) (result i32) - (local $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 3872 - i32.lt_s - if - i32.const 36672 - i32.const 36720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1248 - local.set $2 - br $__inlined_func$~lib/util/number/itoa32$73 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 + if (result i32) local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - select - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 + local.get $1 + i32.ctz + local.get $2 + i32.const 4 i32.shl - local.get $3 i32.add i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 local.get $2 - local.get $3 + i32.const 1 i32.add - local.set $5 - loop $while-continue|0 + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.const 10000 - i32.ge_u + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if - local.get $0 - i32.const 10000 - i32.rem_u - local.set $4 - local.get $0 - i32.const 10000 - i32.div_u - local.set $0 - local.get $5 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1660 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - i32.const 100 - i32.ge_u - if - local.get $5 + i32.const 0 + i32.const 1616 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 + i32.const 4 i32.shl i32.add - local.get $0 - i32.const 100 - i32.rem_u i32.const 2 i32.shl - i32.const 1660 i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 + i32.load offset=96 + else + i32.const 0 end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 36640 + i32.const 0 + i32.store + i32.const 38208 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - i32.const 10 - i32.ge_u + i32.const 23 + i32.lt_u if - local.get $5 - local.get $1 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add local.get $0 i32.const 2 i32.shl - i32.const 1660 - i32.add - i32.load - i32.store - else - local.get $5 - local.get $1 - i32.const 1 - i32.sub - i32.const 1 - i32.shl + i32.const 36640 i32.add + i32.const 0 + i32.store 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 36640 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end local.get $0 - i32.const 48 + i32.const 1 i32.add - i32.store16 + local.set $0 + br $for-loop|0 end + end + i32.const 36640 + i32.const 38212 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36640 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 382 + 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 offset=1568 + local.tee $3 + if local.get $3 - if - local.get $2 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $2 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/function/Function<%28%29=>void> - block $resolve-unary/Bar - block $resolve-unary/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $resolve-unary/Foo $resolve-unary/Bar $~lib/function/Function<%28%29=>void> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 + local.get $1 + i32.const 16 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.lt_s + local.tee $5 + i32.eq if - i32.const 36672 - i32.const 36720 - i32.const 1 - i32.const 1 + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1616 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $resolve-unary/foo + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $resolve-unary/bar + local.tee $0 + if local.get $0 - i32.load offset=4 call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable - ) - (func $~start - call $start:resolve-unary + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 2080 + call $~lib/rt/itcms/__visit + i32.const 3136 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/object/Object#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1891,145 +1787,285 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $0 - local.get $1 - i32.eq + i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~start + call $start:resolve-unary + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 36640 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 7 + i32.const 3 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/util/string/compareImpl$79 - loop $while-continue|1 + local.get $0 + i32.const 36640 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 36640 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$79 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:resolve-unary @@ -2597,39 +2633,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/object/Object#constructor (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 3872 - i32.lt_s - if - i32.const 36672 - i32.const 36720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index df64ee697c..85d8930589 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) + (type $0 (func (param i32))) + (type $1 (func (param i32 i32))) + (type $2 (func)) (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -38,185 +38,6 @@ (export "test" (func $return-unreachable/test)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$121 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34328 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$121 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1536 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1540 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -633,585 +454,560 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 382 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 + i32.const 1216 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$121 local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - i32.const 0 - i32.const 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34328 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$121 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1536 + i32.load + i32.gt_u + if + i32.const 1344 + i32.const 1408 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1540 + i32.add + i32.load + i32.const 32 + i32.and end - local.get $1 - local.get $4 + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 local.get $1 - i32.const 0 i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - memory.grow - i32.const 0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1560 i32.lt_s - else + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - unreachable - end - i32.const 34336 - i32.const 0 - i32.store - i32.const 35904 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 i32.lt_u if - local.get $0 - i32.const 2 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl - i32.const 34336 i32.add - i32.const 0 - i32.store 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 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 + i32.sub + local.set $1 end - end - i32.const 34336 - i32.const 35908 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34336 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34328 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1488 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.load 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34328 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34328 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - i32.const 10 - return + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 local.get $1 - i32.const 4 - i32.shr_u - local.set $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s else - local.get $1 - i32.const 536870910 + i32.const 0 + end + if + unreachable + end + i32.const 34336 + i32.const 0 + i32.store + i32.const 35904 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 i32.lt_u if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub + local.get $0 + i32.const 2 i32.shl + i32.const 34336 i32.add - i32.const 1 - i32.sub + i32.const 0 + i32.store 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 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 - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 - i32.const 16 - i32.lt_u + i32.const 34336 + i32.const 35908 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34336 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1488 - i32.const 334 + i32.const 382 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1488 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1488 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 i32.const 2 - i32.shl + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1344 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1152 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 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 offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $2 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1488 - i32.const 347 - i32.const 18 + i32.const 1216 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1313,8 +1109,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1342,7 +1136,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1356,7 +1151,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1544,44 +1341,338 @@ 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 offset=4 - i32.const 3 - i32.and - i32.eq + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load 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 $~start + memory.size + i32.const 16 + i32.shl + i32.const 34328 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34328 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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.const 20 - i32.sub i32.load offset=4 - i32.const 3 + local.tee $1 + i32.const -4 i32.and - local.tee $0 + global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - i32.eq + local.get $1 + i32.const 3 + i32.and + i32.ne if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1216 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34328 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq + global.get $~lib/rt/itcms/total local.get $0 - i32.const 3 - i32.eq + i32.load + 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 34328 + i32.ge_u if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1488 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end + i32.const 0 ) (func $return-unreachable/test (param $0 i32) (result i32) (local $1 i32) @@ -1691,94 +1782,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 1560 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34328 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/return.release.wat b/tests/compiler/return.release.wat index 4509ebf226..6bc1ea50aa 100644 --- a/tests/compiler/return.release.wat +++ b/tests/compiler/return.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (param i32))) (type $3 (func (param i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) @@ -14,10 +14,6 @@ (export "memory" (memory $0)) (export "testVoidReturnFunction" (func $export:return/testVoidReturnFunction)) (start $~start) - (func $start:return~anonymous|0 - ) - (func $return/testVoidReturn (param $0 i32) - ) (func $~start global.get $~lib/memory/__stack_pointer i32.const 4 @@ -48,6 +44,10 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $start:return~anonymous|0 + ) + (func $return/testVoidReturn (param $0 i32) + ) (func $export:return/testVoidReturnFunction (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/rt/alloc-large-memory.release.wat b/tests/compiler/rt/alloc-large-memory.release.wat index 7430833f99..05d01619c0 100644 --- a/tests/compiler/rt/alloc-large-memory.release.wat +++ b/tests/compiler/rt/alloc-large-memory.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func (param i32 i32))) (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32 i32 i64))) - (type $3 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32 i64))) (type $4 (func (param i32))) (type $5 (func)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -160,6 +160,134 @@ end end ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1056 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1056 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -520,134 +648,6 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1056 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1056 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) (func $~lib/memory/heap.alloc (param $0 i32) (local $1 i32) (local $2 i32) @@ -766,8 +766,6 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 local.get $0 i32.const 256 i32.ge_u @@ -795,7 +793,8 @@ i32.const 4 local.get $3 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -809,7 +808,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 i32.gt_s diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index 5d8331afd3..8dbd26236c 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32 i32))) (type $3 (func (param i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $rt/finalize/expect (mut i32) (i32.const 0)) (global $rt/finalize/ran (mut i32) (i32.const 0)) @@ -37,133 +37,363 @@ (data $9 (i32.const 1488) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + (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 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load 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 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$112 - local.get $1 + 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 offset=4 i32.const -4 i32.and - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34280 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 offset=4 + i32.const -4 i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end end - br $__inlined_func$~lib/rt/itcms/Object#unlink$112 + 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 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - local.get $1 - i32.load offset=8 - local.tee $2 + 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 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 132 - i32.const 16 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 + i32.const 34280 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + global.get $rt/finalize/expect + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1392 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $rt/finalize/ran + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34280 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$112 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34280 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$112 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 i32.load offset=4 i32.const 3 i32.and @@ -626,119 +856,90 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $rt/finalize/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/finalize/Ref $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) + local.get $0 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + 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 offset=96 + else i32.const 0 - i32.const 1440 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -788,367 +989,194 @@ local.get $0 i32.const 4 i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34288 - i32.add - i32.const 0 - i32.store 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 34288 - i32.const 35860 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34288 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34280 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34280 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - global.get $rt/finalize/expect - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $rt/finalize/ran - local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 34280 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34288 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.add + local.set $1 + br $for-loop|1 end end - i32.const 10 - return + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 + end + i32.const 34288 + i32.const 35860 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34288 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1440 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 local.get $0 local.get $1 - i32.ctz - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -2 - i32.and - local.tee $1 - if (result i32) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1208,12 +1236,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1226,7 +1253,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1381,34 +1410,6 @@ memory.fill local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $rt/finalize/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/finalize/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) (func $~start (local $0 i32) (local $1 i32) diff --git a/tests/compiler/rt/flags.release.wat b/tests/compiler/rt/flags.release.wat index c0b2f9cf66..5935c9e5e9 100644 --- a/tests/compiler/rt/flags.release.wat +++ b/tests/compiler/rt/flags.release.wat @@ -1,7 +1,7 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32) (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (memory $0 1) (data $0 (i32.const 1036) "<") @@ -33,6 +33,9 @@ i32.add i32.load ) + (func $~start + call $start:rt/flags + ) (func $start:rt/flags block $folding-inner0 i32.const 4 @@ -284,7 +287,4 @@ call $~lib/builtins/abort unreachable ) - (func $~start - call $start:rt/flags - ) ) diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index 0665cfc0ef..82735386cb 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -34,132 +34,347 @@ (data $9 (i32.const 1504) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + (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 - i32.const 1120 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load 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 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$119 - local.get $1 + 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 offset=4 i32.const -4 i32.and - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34296 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34296 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 offset=4 + i32.const -4 i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end end - br $__inlined_func$~lib/rt/itcms/Object#unlink$119 + 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 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - local.get $1 - i32.load offset=8 - local.tee $2 + 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 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 132 - i32.const 16 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 + i32.const 34296 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34296 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$119 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34296 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$119 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 local.get $2 i32.load offset=4 i32.const 3 @@ -623,459 +838,105 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $rt/issue-2719/issue2719_T + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/issue-2719/issue2719_T $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 + unreachable + ) + (func $rt/issue-2719/issue2719_T#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1528 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1528 i32.lt_s - else + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - end - if - unreachable - end - i32.const 34304 - i32.const 0 - i32.store - i32.const 35872 - i32.const 0 - i32.store - loop $for-loop|0 + i32.store local.get $0 - i32.const 23 - i32.lt_u + i32.eqz if - local.get $0 - i32.const 2 - i32.shl - i32.const 34304 - i32.add + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store 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 34304 - i32.add - i32.const 0 - i32.store 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 34304 - i32.const 35876 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34304 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34296 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34296 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34296 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 + local.get $0 i32.const 0 - global.set $~lib/rt/itcms/state + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - i32.const 0 + i32.const 34320 + i32.const 34368 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1104,104 +965,343 @@ i32.sub local.set $1 end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34304 + i32.const 0 + i32.store + i32.const 35872 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34304 + i32.add + i32.const 0 + i32.store 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 34304 + i32.add + i32.const 0 + i32.store 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 34304 + i32.const 35876 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34304 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - i32.const 16 - i32.lt_u local.get $2 - i32.const 23 - i32.lt_u + i32.wrap_i64 + i32.const -16 i32.and - i32.eqz + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $0 - local.get $2 + local.get $1 + local.get $4 i32.const 2 - i32.shl + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 i32.add - i32.load offset=4 - i32.const -1 + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 local.get $1 - i32.shl - i32.and + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace local.tee $1 - if (result i32) + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 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 offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $2 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1303,8 +1403,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1332,7 +1430,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1346,7 +1445,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1518,34 +1619,6 @@ memory.fill local.get $1 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $rt/issue-2719/issue2719_T - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $rt/issue-2719/issue2719_T $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) (func $~start (local $0 i32) (local $1 i32) @@ -1702,76 +1775,4 @@ call $~lib/builtins/abort unreachable ) - (func $rt/issue-2719/issue2719_T#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1528 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34320 - i32.const 34368 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index 605d4f43c8..422cd0bc5a 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32 i32))) (type $3 (func (param i32 i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) + (type $5 (func (result i32))) + (type $6 (func (param i32 i32 i64))) (type $7 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -42,190 +42,6 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 1520 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34356 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/toSpace - local.set $1 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $2 - i32.const 1568 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 2 - i32.shl - i32.const 1572 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -250,76 +66,336 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - 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 $3 - i32.const -4 - i32.and - local.tee $3 - 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 $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 offset=4 + i32.const -4 + i32.and + i32.eq + if + i32.const 34356 + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34356 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34356 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34356 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and i32.eqz if i32.const 0 @@ -642,119 +718,209 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (func $~lib/rt/itcms/Object#unlink (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34356 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.tee $0 + i32.eqz if i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 + i32.const 1120 + i32.const 132 + i32.const 16 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 offset=1568 - local.tee $3 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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.set $1 end - local.get $3 local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -814,415 +980,418 @@ i32.store 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 - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34368 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 offset=4 - i32.const -4 - i32.and - i32.eq - if - i32.const 34356 - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34356 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end + i32.add + local.set $1 + br $for-loop|1 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 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 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + i32.const 34368 + i32.const 35940 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34368 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 1520 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if - i32.const 0 - i32.const 1120 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34356 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34356 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end + i32.const 0 + i32.const 1120 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - i32.const 10 - return + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 4 - i32.shr_u - local.set $1 + global.set $~lib/rt/itcms/iter + end + local.get $0 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/toSpace + local.set $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 else - local.get $1 - i32.const 536870910 - i32.lt_u + local.get $2 + i32.const 1568 + i32.load + i32.gt_u if - 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.set $1 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 local.get $2 - i32.const 7 - i32.sub - local.set $2 + i32.const 2 + i32.shl + i32.const 1572 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 local.get $1 - i32.const 16 - i32.lt_u + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $1 + i32.or + i32.store offset=4 + local.get $0 local.get $2 - i32.const 23 - i32.lt_u + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34356 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + ) + (func $~lib/rt/itcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add + i32.const 20 + i32.sub + local.tee $1 i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl + i32.const 3 i32.and - local.tee $1 - if (result i32) + i32.const 3 + i32.ne + if + i32.const 1520 + i32.const 1120 + i32.const 352 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + end + ) + (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + if local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq + if + i32.const 1456 + i32.const 1120 + i32.const 338 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/itcms/Object#unlink + global.get $~lib/rt/itcms/pinSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $3 + i32.const 3 + i32.or + i32.store offset=4 local.get $1 - i32.ctz local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 + i32.store offset=8 local.get $2 - i32.const 1 - i32.add - i32.shl + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end + i32.or + i32.store offset=4 + local.get $3 + local.get $1 + i32.store offset=8 end + local.get $0 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1322,8 +1491,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1351,7 +1518,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1365,7 +1533,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1537,116 +1707,6 @@ memory.fill local.get $1 ) - (func $~lib/rt/itcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 1456 - i32.const 1120 - i32.const 338 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/itcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 1520 - i32.const 1120 - i32.const 352 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - local.get $1 - call $~lib/rt/itcms/Object#unlink - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) (func $~lib/rt/itcms/__collect global.get $~lib/rt/itcms/state i32.const 0 @@ -1682,63 +1742,4 @@ i32.add global.set $~lib/rt/itcms/threshold ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34356 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - ) ) diff --git a/tests/compiler/rt/runtime-minimal-export.release.wat b/tests/compiler/rt/runtime-minimal-export.release.wat index bbaf5cc296..dbea43d114 100644 --- a/tests/compiler/rt/runtime-minimal-export.release.wat +++ b/tests/compiler/rt/runtime-minimal-export.release.wat @@ -33,6 +33,52 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) + (func $~lib/rt/tcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/tcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $1 + call $~lib/rt/tcms/Object#unlink + global.get $~lib/rt/tcms/toSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/tcms/white + i32.eqz + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + end + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -425,134 +471,199 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (func $~lib/rt/tcms/Object#unlink (param $0 i32) + (local $1 i32) + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 1476 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 101 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + return + end + local.get $0 + i32.load offset=8 + local.tee $0 + i32.eqz if i32.const 0 - i32.const 1184 - i32.const 382 - i32.const 14 + i32.const 1120 + i32.const 105 + i32.const 16 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 offset=1568 - local.tee $3 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - local.get $3 + local.get $1 i32.const 4 - i32.add + i32.shr_u + local.set $1 + else local.get $1 - i32.gt_u + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1184 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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.set $1 end - local.get $3 local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1184 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $2 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1184 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.shl i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.load offset=4 + i32.const -1 local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.and local.tee $1 - i32.const 0 - i32.le_s if (result i32) - i32.const 1 + local.get $0 local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1184 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s else i32.const 0 end @@ -619,133 +730,272 @@ i32.const 1488 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i32.const 256 - i32.lt_u + i64.extend_i32_u + i64.lt_u if - local.get $1 + i32.const 0 + i32.const 1184 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 i32.const 4 - i32.shr_u - local.set $1 - else + i32.add local.get $1 - i32.const 536870910 - i32.lt_u + i32.gt_u if - 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.set $1 + i32.const 0 + i32.const 1184 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $3 local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 i32.sub - local.set $2 + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1184 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - i32.const 16 - i32.lt_u local.get $2 - i32.const 23 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/tcms/__visit + return + end + unreachable + ) + (func $~start + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/tcms/fromSpace + i32.const 1332 + i32.const 1328 + i32.store + i32.const 1336 + i32.const 1328 + i32.store + i32.const 1328 + global.set $~lib/rt/tcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/tcms/toSpace + ) + (func $~lib/rt/tcms/__unpin (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1184 - i32.const 334 - i32.const 14 + return + end + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 1376 + i32.const 1120 + i32.const 195 + i32.const 5 call $~lib/builtins/abort unreachable end + local.get $1 + call $~lib/rt/tcms/Object#unlink + global.get $~lib/rt/tcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 local.get $0 + global.get $~lib/rt/tcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + local.get $2 + i32.load offset=4 + i32.const 3 i32.and - local.tee $1 - if (result i32) + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/rt/tcms/__pin (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + if local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.eq + if + i32.const 1280 + i32.const 1120 + i32.const 181 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tcms/Object#unlink + global.get $~lib/rt/tcms/pinSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $3 + i32.const 3 + i32.or + i32.store offset=4 local.get $1 - i32.ctz local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 + i32.store offset=8 local.get $2 - i32.const 1 - i32.add - i32.shl + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1184 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end + i32.or + i32.store offset=4 + local.get $3 + local.get $1 + i32.store offset=8 end + local.get $0 ) (func $~lib/rt/tcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -805,8 +1055,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -834,7 +1082,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -848,7 +1097,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1015,159 +1266,6 @@ i32.const 20 i32.add ) - (func $~lib/rt/tcms/Object#unlink (param $0 i32) - (local $1 i32) - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 1476 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 101 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 105 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tcms/__pin (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - if - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.eq - if - i32.const 1280 - i32.const 1120 - i32.const 181 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/tcms/Object#unlink - global.get $~lib/rt/tcms/pinSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $3 - i32.const 3 - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $3 - local.get $1 - i32.store offset=8 - end - local.get $0 - ) - (func $~lib/rt/tcms/__unpin (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 1376 - i32.const 1120 - i32.const 195 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/tcms/Object#unlink - global.get $~lib/rt/tcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/tcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - ) (func $~lib/rt/tcms/__collect (local $0 i32) (local $1 i32) @@ -1374,101 +1472,4 @@ local.get $3 global.set $~lib/rt/tcms/white ) - (func $~lib/rt/tcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/tcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - call $~lib/rt/tcms/Object#unlink - global.get $~lib/rt/tcms/toSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/tcms/white - i32.eqz - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/tcms/__visit - return - end - unreachable - ) - (func $~start - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/tcms/fromSpace - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/tcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/tcms/toSpace - ) ) diff --git a/tests/compiler/rt/runtime-stub-export.release.wat b/tests/compiler/rt/runtime-stub-export.release.wat index 49d2915a10..639ae34c0b 100644 --- a/tests/compiler/rt/runtime-stub-export.release.wat +++ b/tests/compiler/rt/runtime-stub-export.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func)) (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32 i32) (result i32))) + (type $2 (func (param i32))) (type $3 (func (param i32) (result i32))) - (type $4 (func (param i32))) + (type $4 (func (param i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/stub/offset (mut i32) (i32.const 0)) (global $~lib/rt/__rtti_base i32 (i32.const 1168)) @@ -20,13 +20,21 @@ (export "__rtti_base" (global $~lib/rt/__rtti_base)) (export "memory" (memory $0)) (start $~start) + (func $~start + i32.const 1196 + global.set $~lib/rt/stub/offset + ) + (func $~lib/rt/stub/__unpin (param $0 i32) + ) + (func $~lib/rt/stub/__pin (param $0 i32) (result i32) + local.get $0 + ) (func $~lib/rt/stub/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) local.get $0 i32.const 1073741804 i32.gt_u @@ -41,7 +49,7 @@ local.get $0 i32.const 16 i32.add - local.tee $4 + local.tee $3 i32.const 1073741820 i32.gt_u if @@ -53,34 +61,33 @@ unreachable end global.get $~lib/rt/stub/offset - global.get $~lib/rt/stub/offset i32.const 4 i32.add local.tee $2 - local.get $4 + local.get $3 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.tee $4 + local.tee $3 i32.add - local.tee $5 + local.tee $4 memory.size - local.tee $6 + local.tee $5 i32.const 16 i32.shl i32.const 15 i32.add i32.const -16 i32.and - local.tee $7 + local.tee $6 i32.gt_u if - local.get $6 local.get $5 - local.get $7 + local.get $4 + local.get $6 i32.sub i32.const 65535 i32.add @@ -88,16 +95,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $7 + local.tee $6 + local.get $5 local.get $6 - local.get $7 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $7 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -106,9 +113,10 @@ end end end - local.get $5 - global.set $~lib/rt/stub/offset + global.get $~lib/rt/stub/offset local.get $4 + global.set $~lib/rt/stub/offset + local.get $3 i32.store local.get $2 i32.const 4 @@ -129,15 +137,6 @@ i32.const 16 i32.add ) - (func $~lib/rt/stub/__pin (param $0 i32) (result i32) - local.get $0 - ) - (func $~lib/rt/stub/__unpin (param $0 i32) - ) (func $~lib/rt/stub/__collect ) - (func $~start - i32.const 1196 - global.set $~lib/rt/stub/offset - ) ) diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index a554a20ba2..4194c78220 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -2,22 +2,22 @@ (type $0 (func (param i32))) (type $1 (func)) (type $2 (func (param i32 i32 i32) (result v128))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $3 (func (param i32 i32) (result i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32) (result i32))) - (type $9 (func (param v128) (result v128))) - (type $10 (func (param i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) - (type $11 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) + (type $7 (func (param i32) (result i32))) + (type $8 (func (result i32))) + (type $9 (func (param i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) + (type $10 (func (param i64) (result v128))) + (type $11 (func (param i64 i64) (result v128))) (type $12 (func (param i32 i32 i32 i32) (result v128))) - (type $13 (func (param i64) (result v128))) - (type $14 (func (param i64 i64) (result v128))) - (type $15 (func (param f32 f32 f32) (result v128))) - (type $16 (func (param f32 f32 f32 f32) (result v128))) - (type $17 (func (param f64) (result v128))) - (type $18 (func (param f64 f64) (result v128))) + (type $13 (func (param i32 i32 i32 i32 i32 i32 i32 i32) (result v128))) + (type $14 (func (param f64) (result v128))) + (type $15 (func (param f64 f64) (result v128))) + (type $16 (func (param f32 f32 f32) (result v128))) + (type $17 (func (param f32 f32 f32 f32) (result v128))) + (type $18 (func (param v128) (result v128))) (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)) @@ -65,182 +65,341 @@ (export "vec" (global $simd/vec)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $~lib/rt/tlsf/initialize (local $0 i32) (local $1 i32) - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace + memory.size local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 local.get $1 - i32.ne + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34384 + i32.const 0 + i32.store + i32.const 35952 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 160 + i32.const 2 + i32.shl + i32.const 34384 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 i32.const 16 - call $~lib/builtins/abort - unreachable + i32.lt_u + if + local.get $0 + i32.const 4 + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34384 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end end local.get $0 - i32.const 20 + i32.const 1 i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and local.set $0 - br $while-continue|0 + br $for-loop|0 end end + i32.const 34384 + i32.const 35956 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34384 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end + i32.const 1104 + i32.const 1440 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else local.get $1 - global.set $~lib/rt/itcms/iter + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub end - block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) + local.get $3 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $3 + end + else + local.get $3 + end + i32.const 4 local.get $0 - i32.load offset=4 - i32.const -4 - i32.and + i32.load offset=1568 + memory.size local.tee $1 - i32.eqz + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34380 - i32.lt_u - i32.and - i32.eqz + local.get $2 + memory.grow + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$132 end local.get $0 - i32.load offset=8 - local.tee $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 i32.eqz if i32.const 0 - i32.const 1168 - i32.const 132 + i32.const 1440 + i32.const 499 i32.const 16 call $~lib/builtins/abort unreachable end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 + local.get $3 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $4 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1440 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const -4 + i32.and + local.get $3 + i32.sub + local.tee $2 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + local.get $4 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $3 + call $~lib/rt/tlsf/insertBlock else local.get $1 - i32.const 1584 - i32.load - i32.gt_u - if - i32.const 1296 - i32.const 1360 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end + local.get $4 + i32.const -2 + i32.and + i32.store local.get $1 - i32.const 2 - i32.shl - i32.const 1588 + i32.const 4 i32.add + local.get $1 i32.load - i32.const 32 + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 i32.and + i32.store end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 + local.get $1 + ) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - global.get $~lib/rt/itcms/white + i32.const 34380 + i32.lt_u + if + return + end + global.get $~lib/rt/tlsf/ROOT i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 + i32.const 4 + i32.sub + local.set $1 local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 + i32.const 15 i32.and - i32.or - i32.store offset=4 - local.get $2 + i32.const 1 local.get $0 - i32.store offset=8 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 @@ -658,909 +817,1315 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 382 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 + i32.const 1168 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34380 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$132 end - else local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u + i32.load offset=8 + local.tee $2 + i32.eqz if i32.const 0 - i32.const 1440 - i32.const 402 - i32.const 5 + i32.const 1168 + i32.const 132 + i32.const 16 call $~lib/builtins/abort unreachable end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1584 + i32.load + i32.gt_u + if + i32.const 1296 + i32.const 1360 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1588 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + select + local.get $2 i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 + local.get $0 local.get $1 - i32.const 0 i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34384 - i32.const 0 - i32.store - i32.const 35952 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34384 - i32.add - i32.const 0 - i32.store 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 34384 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/array/Array + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $invalid + end + return + end + return + end + return end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + call $~lib/array/Array~visit + return end + local.get $0 + call $~lib/array/Array~visit + return end - i32.const 34384 - i32.const 35956 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34384 - global.set $~lib/rt/tlsf/ROOT + unreachable ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.const 34380 + local.get $1 + i32.const 256 i32.lt_u if - return + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and i32.eqz if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1440 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $1 local.get $0 - i32.const 15 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl i32.and - i32.const 1 - local.get $0 - select + local.tee $1 if (result i32) - i32.const 1 - else + 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 offset=96 + else + local.get $0 i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end end + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 i32.const 1440 - i32.const 562 - i32.const 3 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 - i32.load + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 i32.const 1 i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/itcms/step (result i32) + (func $~lib/rt/itcms/visitRoots (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 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if 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 + i32.const 1168 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 i32.load 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 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$68 + 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 - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34380 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$68 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 34380 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 - call $~lib/rt/tlsf/__free - end i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 + global.set $~lib/rt/itcms/threshold end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 1440 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end + global.get $~lib/rt/tlsf/ROOT + i32.const 32 + call $~lib/rt/tlsf/allocateBlock + local.tee $1 local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 + i32.store offset=12 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + i32.const 16 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $2 + i32.load offset=8 + local.set $0 local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1104 - i32.const 1440 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end + local.get $2 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 local.get $0 local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $3 - i32.const 256 - i32.ge_u - if (result i32) - local.get $3 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $3 - end - else - local.get $3 - end - i32.const 4 - local.get $0 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $0 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $3 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total local.get $1 i32.load i32.const -4 i32.and - i32.gt_u + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $1 + i32.const 20 + i32.add + local.tee $0 + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + v128.store align=1 + local.get $0 + ) + (func $~lib/array/Array~visit (param $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 1612 + i32.lt_s if - i32.const 0 - i32.const 1440 - i32.const 501 - i32.const 14 + i32.const 34400 + i32.const 34448 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 i32.load - local.set $4 - local.get $3 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1440 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const -4 - i32.and - local.get $3 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or + global.set $~lib/memory/__stack_pointer + ) + (func $~start + (local $0 i32) + (local $1 i32) + (local $2 v128) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1612 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 34380 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 i32.store - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - local.get $2 + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - i32.const 1 - i32.or + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1612 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.const 1056 + v128.load align=1 + v128.store align=1 local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $4 - i32.const -2 - i32.and i32.store - local.get $1 i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and + call $~lib/rt/itcms/__new + local.tee $4 + local.get $3 i32.store - end - local.get $1 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt$68 - i32.const 2048 - local.set $1 - loop $do-loop|0 - local.get $1 - call $~lib/rt/itcms/step + local.get $3 + if + local.get $4 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $3 + i32.const 20 + i32.sub + local.tee $5 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $4 + i32.const 20 i32.sub - local.set $1 - global.get $~lib/rt/itcms/state + i32.load offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white i32.eqz + i32.eq if - global.get $~lib/rt/itcms/total + local.get $5 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 + i32.eq + local.get $1 + i32.const 3 + i32.eq + i32.and + if + local.get $5 + call $~lib/rt/itcms/Object#makeGray + end end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 - i32.const 32 - call $~lib/rt/tlsf/allocateBlock - local.tee $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 16 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $0 - local.get $1 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - v128.store align=1 - local.get $0 - ) - (func $simd/test_v128 - (local $0 i32) - (local $1 v128) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 64 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + local.get $4 + local.get $3 + i32.store offset=4 + local.get $4 + i32.const 16 + i32.store offset=8 + local.get $4 + i32.const 1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1612 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=12 + i32.eqz + if + i32.const 1296 + i32.const 1504 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=4 + v128.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32x4.extract_lane 0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + v128.const i32x4 0x00000001 0x00000001 0x00000001 0x00000001 + global.set $simd/vec + call $simd/test_v128 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 1 + i32.store8 + local.get $0 + i32.const 2 + i32.store8 offset=1 + local.get $0 + i32.const 3 + i32.store8 offset=2 + local.get $0 + i32.const 4 + i32.store8 offset=3 + local.get $0 + i32.const 5 + i32.store8 offset=4 + local.get $0 + i32.const 6 + i32.store8 offset=5 + local.get $0 + i32.const 7 + i32.store8 offset=6 + local.get $0 + i32.const 255 + i32.store8 offset=7 + local.get $0 + v128.load8x8_s align=1 + v128.const i32x4 0x00020001 0x00040003 0x00060005 0xffff0007 + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 609 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + v128.load8x8_u align=1 + v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00ff0007 + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 614 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 1 + i32.store16 + local.get $0 + i32.const 2 + i32.store16 offset=2 + local.get $0 + i32.const 3 + i32.store16 offset=4 + local.get $0 + i32.const 65535 + i32.store16 offset=6 + local.get $0 + v128.load16x4_s align=2 + v128.const i32x4 0x00000001 0x00000002 0x00000003 0xffffffff + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 790 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + v128.load16x4_u align=2 + v128.const i32x4 0x00000001 0x00000002 0x00000003 0x0000ffff + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 795 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 1 + i32.store + local.get $0 + i32.const -1 + i32.store offset=4 + local.get $0 + v128.load32x2_s align=4 + v128.const i32x4 0x00000001 0x00000000 0xffffffff 0xffffffff + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 862 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + v128.load32x2_u align=4 + v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 867 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34400 + i32.const 34448 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34380 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34380 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 + call $~lib/rt/tlsf/__free + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $simd/test_vars_i8x16_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) + v128.const i32x4 0x03000100 0x07000504 0x0b0a0908 0x000e0d0c + local.get $0 + i8x16.replace_lane 2 + local.get $1 + i8x16.replace_lane 6 + local.get $2 + i8x16.replace_lane 15 + ) + (func $simd/test_vars_i8x16_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (param $13 i32) (param $14 i32) (param $15 i32) (result v128) + local.get $0 + i8x16.splat + local.get $1 + i8x16.replace_lane 1 + local.get $2 + i8x16.replace_lane 2 + local.get $3 + i8x16.replace_lane 3 + local.get $4 + i8x16.replace_lane 4 + local.get $5 + i8x16.replace_lane 5 + local.get $6 + i8x16.replace_lane 6 + local.get $7 + i8x16.replace_lane 7 + local.get $8 + i8x16.replace_lane 8 + local.get $9 + i8x16.replace_lane 9 + local.get $10 + i8x16.replace_lane 10 + local.get $11 + i8x16.replace_lane 11 + local.get $12 + i8x16.replace_lane 12 + local.get $13 + i8x16.replace_lane 13 + local.get $14 + i8x16.replace_lane 14 + local.get $15 + i8x16.replace_lane 15 + ) + (func $simd/test_vars_i64x2_partial (param $0 i64) (result v128) + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + local.get $0 + i64x2.replace_lane 1 + ) + (func $simd/test_vars_i64x2_full (param $0 i64) (param $1 i64) (result v128) + local.get $0 + i64x2.splat + local.get $1 + i64x2.replace_lane 1 + ) + (func $simd/test_vars_i32x4_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + local.get $0 + i32x4.replace_lane 1 + local.get $1 + i32x4.replace_lane 2 + local.get $2 + i32x4.replace_lane 3 + ) + (func $simd/test_vars_i32x4_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result v128) + local.get $0 + i32x4.splat + local.get $1 + i32x4.replace_lane 1 + local.get $2 + i32x4.replace_lane 2 + local.get $3 + i32x4.replace_lane 3 + ) + (func $simd/test_vars_i16x8_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) + v128.const i32x4 0x00010000 0x00030000 0x00050000 0x00000006 + local.get $0 + i16x8.replace_lane 2 + local.get $1 + i16x8.replace_lane 4 + local.get $2 + i16x8.replace_lane 7 + ) + (func $simd/test_vars_i16x8_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (result v128) + local.get $0 + i16x8.splat + local.get $1 + i16x8.replace_lane 1 + local.get $2 + i16x8.replace_lane 2 + local.get $3 + i16x8.replace_lane 3 + local.get $4 + i16x8.replace_lane 4 + local.get $5 + i16x8.replace_lane 5 + local.get $6 + i16x8.replace_lane 6 + local.get $7 + i16x8.replace_lane 7 + ) + (func $simd/test_vars_f64x2_partial (param $0 f64) (result v128) + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + local.get $0 + f64x2.replace_lane 1 + ) + (func $simd/test_vars_f64x2_full (param $0 f64) (param $1 f64) (result v128) + local.get $0 + f64x2.splat + local.get $1 + f64x2.replace_lane 1 + ) + (func $simd/test_vars_f32x4_partial (param $0 f32) (param $1 f32) (param $2 f32) (result v128) + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + local.get $0 + f32x4.replace_lane 1 + local.get $1 + f32x4.replace_lane 2 + local.get $2 + f32x4.replace_lane 3 + ) + (func $simd/test_vars_f32x4_full (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result v128) + local.get $0 + f32x4.splat + local.get $1 + f32x4.replace_lane 1 + local.get $2 + f32x4.replace_lane 2 + local.get $3 + f32x4.replace_lane 3 + ) + (func $simd/test_v128 + (local $0 i32) + (local $1 v128) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 64 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 local.get $0 v128.load offset=16 @@ -1697,160 +2262,7 @@ i32.const 42 i32.store local.get $0 - v128.load32_zero - v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 111 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i64.const 42 - i64.store - local.get $0 - v128.load64_zero - v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 121 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 42 - i32.store - local.get $0 - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - v128.load32_lane 0 - v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 192 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 42 - i32.store - local.get $0 - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - v128.load32_lane 0 - local.tee $1 - v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 200 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - v128.load8_lane 0 - local.tee $1 - v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 202 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - v128.load16_lane 0 - local.tee $1 - v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 204 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - v128.load32_lane 0 - local.tee $1 - v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 206 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - v128.load64_lane 0 + v128.load32_zero v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 i8x16.eq i8x16.all_true @@ -1858,7 +2270,7 @@ if i32.const 0 i32.const 1552 - i32.const 208 + i32.const 111 i32.const 5 call $~lib/builtins/abort unreachable @@ -1876,650 +2288,239 @@ i32.const 4 i32.add local.tee $0 - v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 - v128.store32_lane 0 + i64.const 42 + i64.store local.get $0 - i32.load - i32.const 42 - i32.ne + v128.load64_zero + v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz if i32.const 0 i32.const 1552 - i32.const 215 + i32.const 121 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 - v128.store8_lane 4 + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 42 + i32.store local.get $0 - i32.load8_s - i32.const 43 - i32.ne + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + v128.load32_lane 0 + v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz if i32.const 0 i32.const 1552 - i32.const 217 + i32.const 192 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 - v128.store16_lane 4 + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 + i32.const 42 + i32.store local.get $0 - i32.load16_s - i32.const 44 - i32.ne + v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 + v128.load32_lane 0 + local.tee $1 + v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz if i32.const 0 i32.const 1552 - i32.const 219 + i32.const 200 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 - v128.store32_lane 1 - local.get $0 - i32.load - i32.const 43 - i32.ne + local.get $1 + v128.load8_lane 0 + local.tee $1 + v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz if i32.const 0 i32.const 1552 - i32.const 221 + i32.const 202 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 - v128.store64_lane offset=1 1 - local.get $0 - i64.load offset=1 - i64.const 44 - i64.ne + local.get $1 + v128.load16_lane 0 + local.tee $1 + v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz if i32.const 0 i32.const 1552 - i32.const 223 + i32.const 204 i32.const 5 call $~lib/builtins/abort unreachable end local.get $0 - call $~lib/rt/tlsf/__free - ) - (func $simd/reexport (param $0 v128) (result v128) - local.get $0 - local.get $0 - i32x4.mul - ) - (func $simd/test_vars_i8x16_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) - v128.const i32x4 0x03000100 0x07000504 0x0b0a0908 0x000e0d0c - local.get $0 - i8x16.replace_lane 2 - local.get $1 - i8x16.replace_lane 6 - local.get $2 - i8x16.replace_lane 15 - ) - (func $simd/test_vars_i8x16_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (param $8 i32) (param $9 i32) (param $10 i32) (param $11 i32) (param $12 i32) (param $13 i32) (param $14 i32) (param $15 i32) (result v128) - local.get $0 - i8x16.splat - local.get $1 - i8x16.replace_lane 1 - local.get $2 - i8x16.replace_lane 2 - local.get $3 - i8x16.replace_lane 3 - local.get $4 - i8x16.replace_lane 4 - local.get $5 - i8x16.replace_lane 5 - local.get $6 - i8x16.replace_lane 6 - local.get $7 - i8x16.replace_lane 7 - local.get $8 - i8x16.replace_lane 8 - local.get $9 - i8x16.replace_lane 9 - local.get $10 - i8x16.replace_lane 10 - local.get $11 - i8x16.replace_lane 11 - local.get $12 - i8x16.replace_lane 12 - local.get $13 - i8x16.replace_lane 13 - local.get $14 - i8x16.replace_lane 14 - local.get $15 - i8x16.replace_lane 15 - ) - (func $simd/test_vars_i16x8_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) - v128.const i32x4 0x00010000 0x00030000 0x00050000 0x00000006 - local.get $0 - i16x8.replace_lane 2 - local.get $1 - i16x8.replace_lane 4 - local.get $2 - i16x8.replace_lane 7 - ) - (func $simd/test_vars_i16x8_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (param $7 i32) (result v128) - local.get $0 - i16x8.splat - local.get $1 - i16x8.replace_lane 1 - local.get $2 - i16x8.replace_lane 2 - local.get $3 - i16x8.replace_lane 3 - local.get $4 - i16x8.replace_lane 4 - local.get $5 - i16x8.replace_lane 5 - local.get $6 - i16x8.replace_lane 6 - local.get $7 - i16x8.replace_lane 7 - ) - (func $simd/test_vars_i32x4_partial (param $0 i32) (param $1 i32) (param $2 i32) (result v128) - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - local.get $0 - i32x4.replace_lane 1 - local.get $1 - i32x4.replace_lane 2 - local.get $2 - i32x4.replace_lane 3 - ) - (func $simd/test_vars_i32x4_full (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result v128) - local.get $0 - i32x4.splat - local.get $1 - i32x4.replace_lane 1 - local.get $2 - i32x4.replace_lane 2 - local.get $3 - i32x4.replace_lane 3 - ) - (func $simd/test_vars_i64x2_partial (param $0 i64) (result v128) - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - local.get $0 - i64x2.replace_lane 1 - ) - (func $simd/test_vars_i64x2_full (param $0 i64) (param $1 i64) (result v128) - local.get $0 - i64x2.splat - local.get $1 - i64x2.replace_lane 1 - ) - (func $simd/test_vars_f32x4_partial (param $0 f32) (param $1 f32) (param $2 f32) (result v128) - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - local.get $0 - f32x4.replace_lane 1 - local.get $1 - f32x4.replace_lane 2 - local.get $2 - f32x4.replace_lane 3 - ) - (func $simd/test_vars_f32x4_full (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result v128) - local.get $0 - f32x4.splat - local.get $1 - f32x4.replace_lane 1 - local.get $2 - f32x4.replace_lane 2 - local.get $3 - f32x4.replace_lane 3 - ) - (func $simd/test_vars_f64x2_partial (param $0 f64) (result v128) - v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000 - local.get $0 - f64x2.replace_lane 1 - ) - (func $simd/test_vars_f64x2_full (param $0 f64) (param $1 f64) (result v128) - local.get $0 - f64x2.splat local.get $1 - f64x2.replace_lane 1 - ) - (func $~lib/array/Array~visit (param $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 1612 - i32.lt_s + v128.load32_lane 0 + local.tee $1 + v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz if - i32.const 34400 - i32.const 34448 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1552 + i32.const 206 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $1 + v128.load64_lane 0 + v128.const i32x4 0x0000002a 0x00000000 0x00000000 0x00000000 + i8x16.eq + i8x16.all_true + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 208 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer + call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 16 + call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/array/Array - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - call $~lib/array/Array~visit - return - end - local.get $0 - call $~lib/array/Array~visit - return + local.tee $0 + v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 + v128.store32_lane 0 + local.get $0 + i32.load + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 215 + i32.const 5 + call $~lib/builtins/abort + unreachable end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 i32) - (local $2 v128) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34380 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + local.get $0 + v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 + v128.store8_lane 4 + local.get $0 + i32.load8_s + i32.const 43 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.const 1056 - v128.load align=1 - v128.store align=1 - local.get $3 - i32.store - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $4 - local.get $3 - i32.store - local.get $3 - if - local.get $4 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $3 - i32.const 20 - i32.sub - local.tee $5 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $4 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $5 - 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 - local.get $5 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - local.get $4 - local.get $3 - i32.store offset=4 - local.get $4 - i32.const 16 - i32.store offset=8 - local.get $4 - i32.const 1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.const 1552 + i32.const 217 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 + v128.store16_lane 4 + local.get $0 + i32.load16_s + i32.const 44 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=12 - i32.eqz - if - i32.const 1296 - i32.const 1504 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - v128.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32x4.extract_lane 0 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 5 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - v128.const i32x4 0x00000001 0x00000001 0x00000001 0x00000001 - global.set $simd/vec - call $simd/test_v128 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.store8 - local.get $0 - i32.const 2 - i32.store8 offset=1 - local.get $0 - i32.const 3 - i32.store8 offset=2 - local.get $0 - i32.const 4 - i32.store8 offset=3 - local.get $0 + i32.const 1552 + i32.const 219 i32.const 5 - i32.store8 offset=4 - local.get $0 - i32.const 6 - i32.store8 offset=5 - local.get $0 - i32.const 7 - i32.store8 offset=6 - local.get $0 - i32.const 255 - i32.store8 offset=7 - local.get $0 - v128.load8x8_s align=1 - v128.const i32x4 0x00020001 0x00040003 0x00060005 0xffff0007 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 609 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - v128.load8x8_u align=1 - v128.const i32x4 0x00020001 0x00040003 0x00060005 0x00ff0007 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 614 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.store16 - local.get $0 - i32.const 2 - i32.store16 offset=2 - local.get $0 - i32.const 3 - i32.store16 offset=4 - local.get $0 - i32.const 65535 - i32.store16 offset=6 - local.get $0 - v128.load16x4_s align=2 - v128.const i32x4 0x00000001 0x00000002 0x00000003 0xffffffff - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 790 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - v128.load16x4_u align=2 - v128.const i32x4 0x00000001 0x00000002 0x00000003 0x0000ffff - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 795 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.store - local.get $0 - i32.const -1 - i32.store offset=4 - local.get $0 - v128.load32x2_s align=4 - v128.const i32x4 0x00000001 0x00000000 0xffffffff 0xffffffff - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 862 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - v128.load32x2_u align=4 - v128.const i32x4 0x00000001 0x00000000 0xffffffff 0x00000000 - i8x16.eq - i8x16.all_true - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 867 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $~lib/builtins/abort + unreachable end - i32.const 34400 - i32.const 34448 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 + v128.store32_lane 1 + local.get $0 + i32.load + i32.const 43 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 221 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + v128.const i32x4 0x0000002a 0x0000002b 0x0000002c 0x00000000 + v128.store64_lane offset=1 1 + local.get $0 + i64.load offset=1 + i64.const 44 + i64.ne + if + i32.const 0 + i32.const 1552 + i32.const 223 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + call $~lib/rt/tlsf/__free + ) + (func $simd/reexport (param $0 v128) (result v128) + local.get $0 + local.get $0 + i32x4.mul ) ) diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index d9ec8e7386..b24b426a6e 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -221,7 +221,7 @@ local.get $2 i32.eqz ) - (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) + (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -255,42 +255,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - 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 1308 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=12 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.le_u - if - i32.const 1056 - i32.const 1120 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.shr_u global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -308,7 +278,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) + (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -343,11 +313,7 @@ local.get $0 i32.store local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + call $~lib/string/String#startsWith global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -365,7 +331,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) + (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -379,7 +345,7 @@ local.get $0 i32.store 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 @@ -390,19 +356,33 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/array/Array>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - call $~lib/string/String#startsWith + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -418,7 +398,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) + (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -463,11 +443,7 @@ local.get $0 i32.store local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + call $~lib/string/String#startsWith global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -485,7 +461,7 @@ call $~lib/builtins/abort unreachable ) - (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) + (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -499,7 +475,7 @@ local.get $0 i32.store 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 @@ -510,29 +486,53 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.const 0 call $~lib/array/Array<~lib/array/Array>#__get local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + 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 1308 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.load offset=12 i32.const 1 - call $~lib/array/Array<~lib/array/Array>#__get - local.set $0 + i32.le_u + if + i32.const 1056 + i32.const 1120 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/string/String#startsWith + i32.load offset=4 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index d53285989a..0f52e76640 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32))) (type $1 (func (param i32 i32 i32))) - (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func)) (type $4 (func (result i32))) (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32) (result i32))) - (type $9 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32) (result i32))) + (type $8 (func (param i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 1424)) (global $std/array-literal/i (mut i32) (i32.const 0)) @@ -59,219 +59,6 @@ (data $17 (i32.const 1840) "\n\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00B\08\00\00\02\t\00\00 \00\00\00\02A\00\00 \00\00\00\02A") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1344 - call $~lib/rt/itcms/__visit - global.get $std/array-literal/emptyArrayI32 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array-literal/dynamicArrayI8 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array-literal/dynamicArrayI32 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array-literal/dynamicArrayRef - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/array-literal/dynamicArrayRefWithCtor - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1200 - call $~lib/rt/itcms/__visit - i32.const 1808 - call $~lib/rt/itcms/__visit - i32.const 1472 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1536 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$154 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34652 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$154 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1840 - i32.load - i32.gt_u - if - i32.const 1200 - i32.const 1664 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1844 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -296,591 +83,571 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + 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 1884 + i32.lt_s if - i32.const 0 - i32.const 1744 - i32.const 268 - i32.const 14 + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if + local.get $1 i32.const 0 - i32.const 1744 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select + i32.lt_s + if + i32.const 1200 + i32.const 1264 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 + i32.const 2 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1744 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.store offset=12 end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store local.get $0 local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl i32.add - local.tee $1 - i32.load offset=96 - i32.eq + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#get:length (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 1884 + i32.lt_s if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (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 $1 - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1744 - i32.const 201 - i32.const 14 + i32.const 1472 + i32.const 1536 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - i32.const 0 - i32.const 1744 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 i32.add - local.tee $4 - i32.load local.tee $2 - i32.const 1 - i32.and + i32.const 1073741820 + i32.gt_u if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 - i32.const 4 - i32.add + i32.const 1472 + i32.const 1744 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 + i32.const 19 i32.add - local.get $1 - i32.load - i32.const -4 + i32.const -16 i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 4 + i32.sub end - local.get $3 - i32.const 2 - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $1 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if i32.const 0 i32.const 1744 - i32.const 221 + i32.const 499 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 end - local.get $4 + local.get $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1744 - i32.const 233 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $1 - i32.const 4 - i32.add local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 i32.add - i32.ne + i32.const 15 + i32.and if i32.const 0 i32.const 1744 - i32.const 234 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store local.get $2 i32.const 4 - i32.shr_u + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - i32.const 31 - i32.const 1073741820 local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store 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 + i32.const 4 + i32.add local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 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 1744 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.load + i32.const -3 + i32.and + i32.store 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 local.get $3 i32.store offset=8 local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 + local.get $3 i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl + i32.const 3 + i32.and i32.or i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill local.get $1 - i64.extend_i32_u - i64.lt_u + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1884 + i32.lt_s if - i32.const 0 - i32.const 1744 - i32.const 382 - i32.const 14 + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store 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 offset=1568 - local.tee $3 + i32.load offset=12 + i32.ge_u if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1744 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1744 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 1200 + i32.const 1264 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1884 + i32.lt_s if - return + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 + i32.store local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + local.get $0 + i32.load offset=12 + i32.ge_u if + i32.const 1200 + i32.const 1264 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort unreachable end - i32.const 34656 - i32.const 0 - i32.store - i32.const 36224 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34656 - i32.add - i32.const 0 - i32.store 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 34656 - i32.add - i32.const 0 - i32.store 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 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 1884 + i32.lt_s + if + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 34656 - i32.const 36228 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34656 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.shl + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $3 + i32.store + local.get $2 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $3 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1142,51 +909,136 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $std/array-literal/Ref#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1884 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1884 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - i32.const 256 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1744 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 i32.lt_u if - local.get $1 + i32.const 0 + i32.const 1744 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 i32.const 4 i32.shr_u - local.set $1 else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 i32.const 31 - local.get $1 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1197,410 +1049,342 @@ if i32.const 0 i32.const 1744 - i32.const 334 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 local.get $2 - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 i32.eqz if - i32.const 0 - i32.const 1744 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 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 + local.get $1 + i32.eqz if - i32.const 1472 - i32.const 1536 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1744 + i32.const 201 + i32.const 14 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if - 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 1472 + i32.const 0 i32.const 1744 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load local.tee $2 - i32.eqz + i32.const 1 + i32.and if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 + local.get $0 local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 i32.add - i32.const -65536 + local.get $2 + i32.const -4 i32.and - i32.const 16 - i32.shr_u + i32.add local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and i32.eqz if i32.const 0 i32.const 1744 - i32.const 499 + 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 end - local.get $5 + local.get $4 local.get $2 - i32.load + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1744 - i32.const 501 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1744 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + i32.shr_u else + i32.const 31 + i32.const 1073741820 local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add local.get $2 - i32.load - i32.const -4 - i32.and - i32.add + 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.load - i32.const -3 - i32.and - i32.store + 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 1744 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 + local.get $5 + i32.const 4 + i32.shl local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 - global.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $0 + local.get $5 i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total + i32.shl local.get $2 - i32.const 20 i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + i32.const 2 + i32.shl + i32.add local.get $1 - i32.eqz - if - return - end + i32.store offset=96 local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white local.get $1 i32.const 20 i32.sub @@ -1642,103 +1426,137 @@ end end ) - (func $~lib/array/Array~visit (param $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 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array~visit (param $0 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 1884 - i32.lt_s + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 + block $__inlined_func$~lib/rt/itcms/Object#unlink$154 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34652 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$154 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $0 i32.load offset=12 + local.tee $1 i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 + i32.le_u + if (result i32) + i32.const 1 + else local.get $1 - local.get $2 - i32.lt_u + i32.const 1840 + i32.load + i32.gt_u if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 + i32.const 1200 + i32.const 1664 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 1844 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 local.get $0 - i32.store + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -1791,10 +1609,9 @@ end unreachable ) - (func $~start - call $start:std/array-literal - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1816,16 +1633,119 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.load offset=8 + local.tee $3 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 1808 + i32.const 1264 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$149 + i32.const 1073741820 + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + local.get $2 + i32.shl + local.tee $1 + local.get $1 + local.get $3 + i32.lt_u + select + local.tee $3 + local.get $0 + i32.load + local.tee $1 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $4 + local.get $3 + i32.store offset=16 + local.get $1 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$149 + end + local.get $3 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $1 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_u + select + memory.copy + end + local.get $1 + local.get $2 + i32.ne + if + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $3 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1850,12 +1770,30 @@ i32.load offset=12 i32.ge_u if - i32.const 1200 - i32.const 1264 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1200 + i32.const 1264 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -1864,13 +1802,15 @@ local.get $0 i32.load offset=4 i32.add - i32.load8_s + local.get $2 + i32.store8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1897,12 +1837,30 @@ i32.load offset=12 i32.ge_u if - i32.const 1200 - i32.const 1264 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1200 + i32.const 1264 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -1913,15 +1871,15 @@ i32.const 2 i32.shl i32.add - i32.load + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $std/array-literal/RefWithCtor#constructor (result i32) + (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1941,320 +1899,423 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - local.tee $3 - local.get $2 - i32.shr_u - i32.gt_u + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if local.get $1 - i32.const 1073741820 - local.get $2 + i32.const 4 i32.shr_u - i32.gt_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u if - i32.const 1808 - i32.const 1264 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$149 - i32.const 1073741820 - local.get $3 - i32.const 1 - i32.shl - local.tee $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.const 8 local.get $1 + i32.const 1 + i32.const 27 local.get $1 - i32.const 8 - i32.le_u - select - local.get $2 + i32.clz + i32.sub i32.shl - local.tee $1 - local.get $1 - local.get $3 - i32.lt_u - select - local.tee $3 + i32.add + i32.const 1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1744 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.load + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.tee $2 - i32.const 20 - i32.sub - local.tee $4 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.eqz if - local.get $4 - local.get $3 - i32.store offset=16 - local.get $2 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$149 + i32.const 0 + i32.const 1744 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.get $4 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 local.get $2 - local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_u - select - memory.copy + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 local.get $1 - local.get $2 - i32.ne + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34656 + i32.const 0 + i32.store + i32.const 36224 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 + i32.const 2 + i32.shl + i32.const 34656 + i32.add + i32.const 0 i32.store offset=4 - local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link + 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 34656 + i32.add + i32.const 0 + i32.store 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 - local.get $0 - local.get $3 - i32.store offset=8 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34656 + i32.const 36228 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34656 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 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 1884 - i32.lt_s + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1744 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store 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 offset=12 - i32.ge_u + i32.load offset=1568 + local.tee $3 if + local.get $3 + i32.const 4 + i32.add local.get $1 - i32.const 0 - i32.lt_s + i32.gt_u if - i32.const 1200 - i32.const 1264 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1744 + i32.const 389 + i32.const 16 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 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 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if + i32.const 1572 + i32.add local.get $1 - i32.const 0 - i32.lt_s + i32.gt_u if - i32.const 1200 - i32.const 1264 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1744 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end local.get $1 + local.get $4 i32.const 2 - i32.shl - i32.add - local.get $2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $std/array-literal/Ref#constructor (result i32) + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1884 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1344 + call $~lib/rt/itcms/__visit + global.get $std/array-literal/emptyArrayI32 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayI8 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayI32 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayRef + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array-literal/dynamicArrayRefWithCtor + local.tee $0 + if local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1884 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + call $~lib/rt/itcms/__visit + end + i32.const 1200 + call $~lib/rt/itcms/__visit + i32.const 1808 + call $~lib/rt/itcms/__visit + i32.const 1472 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.eqz + local.get $1 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array~visit (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2277,56 +2338,82 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 local.get $0 i32.load offset=12 - i32.ge_u - if + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 local.get $1 - i32.const 0 - i32.lt_s + local.get $2 + i32.lt_u if - i32.const 1200 - i32.const 1264 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 end global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.get $2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array~visit (param $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 1884 + i32.lt_s + if + i32.const 34672 + i32.const 34720 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link + i32.load + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + call $start:std/array-literal + ) (func $start:std/array-literal (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -2844,90 +2931,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.shl - local.tee $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 - i32.store - local.get $2 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/array-literal/RefWithCtor#constructor (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 1884 - i32.lt_s - if - i32.const 34672 - i32.const 34720 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 45106a414b..51cb4b38f6 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32) (result i32))) (type $3 (func (param i32 i32 i32))) (type $4 (func (param i32 i32 i32 i32) (result i32))) - (type $5 (func (param f32 f32) (result i32))) - (type $6 (func (param f64 f64) (result i32))) + (type $5 (func (param f64 f64) (result i32))) + (type $6 (func (param f32 f32) (result i32))) (type $7 (func (param i32 i32))) (type $8 (func (param i32))) (type $9 (func (param i32 i32 i32 i32))) @@ -14,19 +14,19 @@ (type $12 (func (result f64))) (type $13 (func (param i32 i32 i32 i32 i32 i32))) (type $14 (func (result i32))) - (type $15 (func (param i32 i32 i32) (result f32))) + (type $15 (func (param i32 i64) (result i32))) (type $16 (func (param i32 f64) (result i32))) - (type $17 (func (param i32 i64) (result i32))) - (type $18 (func (param i32 i32 i64))) - (type $19 (func (param i32 i64 i64 i32 i64 i32) (result i32))) + (type $17 (func (param i32 i32 i32) (result f32))) + (type $18 (func (param i32 i32) (result f32))) + (type $19 (func (param i32 i32) (result f64))) (type $20 (func (param i32 i64 i32))) - (type $21 (func (param i32 f32 i32 i32))) - (type $22 (func (param i32 i32) (result f32))) - (type $23 (func (param i32 f32 i32))) - (type $24 (func (param i32 i32) (result f64))) + (type $21 (func (param i32 f32 i32))) + (type $22 (func (param i32 f32 i32 i32))) + (type $23 (func (param i32 i32 i64))) + (type $24 (func (param i32 i64 i64 i32 i64 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (result f64))) (import "env" "seed" (func $~lib/builtins/seed (result f64))) + (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (result f64))) (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)) @@ -660,1259 +660,1385 @@ (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|20 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|34 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|34 $start:std/array~anonymous|40 $start:std/array~anonymous|34 $start:std/array~anonymous|34 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|34 $start:std/array~anonymous|40 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|49 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|49 $start:std/array~anonymous|52 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $start:std/array~anonymous|54) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $std/array/arr - local.tee $0 + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 16192 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 10032 - call $~lib/rt/itcms/__visit - global.get $std/array/inputStabArr - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $1 + local.get $3 if - local.get $0 - call $~lib/rt/itcms/__visit + local.get $1 + local.get $3 + local.get $5 + memory.copy end - global.get $std/array/outputStabArr - local.tee $0 + local.get $1 + i32.store + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $1 + i32.store + local.get $2 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#get:length (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 16192 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 2640 - call $~lib/rt/itcms/__visit - i32.const 6416 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 8144 - call $~lib/rt/itcms/__visit - i32.const 9200 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz + local.get $1 + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 + i32.const 1344 + i32.const 1104 + i32.const 130 + i32.const 22 call $~lib/builtins/abort unreachable end + local.get $0 local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$731 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 48960 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$731 - end + i32.store local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + local.get $3 + i32.store offset=12 end - global.get $~lib/rt/itcms/toSpace - local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 16000 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 16004 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 + i32.store local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz + i32.load offset=4 + local.get $1 i32.const 2 - local.get $3 - select + i32.shl + i32.add local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 + i32.store local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 local.get $2 - local.get $0 - i32.store offset=8 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result 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 16192 + i32.lt_s if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $folding-inner1 + block $folding-inner0 + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + end + loop $for-loop|0 + local.get $2 + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $3 + call $~lib/array/Array#__get + local.get $4 + i32.ne + br_if $folding-inner0 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 return end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount + i32.const 48992 + i32.const 49040 i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 1 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/rt/tlsf/removeBlock (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 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + local.get $0 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#pop (param $0 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 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 0 + i32.le_s if - i32.const 0 - i32.const 1488 - i32.const 284 - i32.const 14 + i32.const 2640 + i32.const 1104 + i32.const 271 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add + i32.const 1 + i32.sub + local.tee $1 i32.const 2 i32.shl i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (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 $1 - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 201 - i32.const 14 + i32.const 1152 + i32.const 1216 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$68 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$68 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $1 - i32.const 4 + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 16 i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 i32.load i32.const -4 i32.and + i32.const 4 i32.add - local.tee $4 - i32.load - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - 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 - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $1 - i32.const 4 i32.add + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 i32.add - i32.ne - if - i32.const 0 - i32.const 1488 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.get $1 - i32.store - 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 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 251 - i32.const 14 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl + i32.store + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end + local.tee $3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl + i32.store + local.get $0 + i32.load offset=4 local.get $2 - i32.add i32.const 2 i32.shl i32.add local.get $1 - i32.store offset=96 - local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store local.get $0 - local.get $5 - i32.const 2 - i32.shl + local.get $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.load offset=1568 - local.tee $3 + local.get $1 + i32.eq if - local.get $3 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if + global.set $~lib/memory/__stack_pointer + i32.const 1 return end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store + local.get $2 + local.get $1 + i32.const 20 i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 48960 - i32.const 0 - i32.store - i32.const 50528 - i32.const 0 - i32.store - loop $for-loop|0 + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 48960 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/util/string/compareImpl$1 (result i32) + local.get $2 + i32.const 4 + i32.ge_u + if (result i32) + local.get $0 + i32.const 7 + i32.and local.get $1 - i32.const 16 - i32.lt_u + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $0 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $2 + local.tee $3 + i32.const 1 + i32.sub + local.set $2 + local.get $3 if local.get $0 - i32.const 4 - i32.shl + i32.load16_u + local.tee $3 local.get $1 - i32.add + i32.load16_u + local.tee $4 + i32.ne + if + local.get $3 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl$1 + end + local.get $0 i32.const 2 - i32.shl - i32.const 48960 i32.add - i32.const 0 - i32.store offset=96 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.set $1 - br $for-loop|1 + br $while-continue|1 end end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 end + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 48960 - i32.const 50532 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 48960 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/tlsf/__free (param $0 i32) + (func $std/array/Dim#constructor (result i32) + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 48960 - i32.lt_u - if - return + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/rt/tlsf/ROOT + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 i32.eqz if - call $~lib/rt/tlsf/initialize + return end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $1 - i32.load - i32.const 1 - i32.and - end + i32.eqz if i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 + i32.const 1216 + i32.const 295 + i32.const 14 call $~lib/builtins/abort unreachable end + global.get $~lib/rt/itcms/white local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - i32.store - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result 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 offset=4 - i32.const -4 + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$736 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 offset=4 - i32.const -4 - i32.and - i32.eq + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz if global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 48960 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + br $__inlined_func$~lib/string/String#concat$736 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 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load 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 1216 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 local.get $0 - i32.const 48960 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 - call $~lib/rt/tlsf/__free - end - i32.const 10 - return + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - i32.const 0 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 local.get $1 - i32.const 536870910 - i32.lt_u + i32.const 10000 + i32.ge_u if local.get $1 - i32.const 1 - i32.const 27 + i32.const 10000 + i32.rem_u + local.set $3 local.get $1 - i32.clz + i32.const 10000 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 4 i32.sub + local.tee $2 + i32.const 1 i32.shl i32.add - i32.const 1 - i32.sub - local.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 7724 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 7724 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 i32.sub local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 7724 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.const 10 + i32.ge_u if - i32.const 0 - i32.const 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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.const 2 + i32.sub + i32.const 1 i32.shl i32.add + local.get $1 i32.const 2 i32.shl + i32.const 7724 i32.add - i32.load offset=96 + i32.load + i32.store else local.get $0 - i32.load - i32.const -1 local.get $2 i32.const 1 - i32.add + i32.sub + i32.const 1 i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u + (func $std/array/internalCapacity (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - i32.const 1152 - i32.const 1488 - i32.const 461 - i32.const 29 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_s + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 12 - i32.le_u + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s if (result i32) - i32.const 12 - else + i32.const 1 local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 end - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz if - memory.size - local.tee $1 - local.get $3 - i32.const 256 - i32.ge_u - if (result i32) - local.get $3 + unreachable + end + i32.const 48960 + i32.const 0 + i32.store + i32.const 50528 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 48960 + i32.add + i32.const 0 + i32.store 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 48960 + i32.add + i32.const 0 + i32.store 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 48960 + i32.const 50532 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 48960 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $0 + i32.load offset=12 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $4 + i32.sub + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $5 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.tee $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + local.get $5 + i32.const 2 + i32.shl + memory.copy + local.get $4 + local.get $5 + i32.add + local.tee $4 + local.get $3 + i32.ne + if + local.get $6 + local.get $2 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $3 + local.get $4 + i32.sub + i32.const 2 + i32.shl + memory.copy + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + local.get $5 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1152 + i32.const 1488 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) + local.get $3 i32.const 536870910 i32.lt_u if (result i32) @@ -1935,7 +2061,8 @@ i32.const 4 local.get $0 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1949,7 +2076,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 i32.gt_s @@ -2076,4443 +2205,4308 @@ end local.get $1 ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 - i32.const 1073741804 - i32.ge_u + i32.const 48960 + i32.lt_u if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt$68 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 + i32.const 4 + i32.sub + local.set $1 local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 + i32.const 15 i32.and - i32.or - i32.store offset=4 + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1488 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill + i32.const 1 + i32.or + i32.store local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - local.get $1 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - return + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $3 i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + local.get $2 + i32.const 0 + i32.lt_s if + local.get $2 + local.get $3 + i32.add + local.tee $2 i32.const 0 - i32.const 1216 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s if local.get $0 - local.get $1 local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 i32.eq - i32.and if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 ) - (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.eqz - ) - (func $start:std/array~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 1 - i32.eq - ) - (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 100 - i32.eq - ) - (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 0 - i32.ge_s - ) - (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $1 i32.const 0 - i32.le_s - ) - (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 10 - i32.lt_s - ) - (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 3 - i32.ge_s - ) - (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 + local.get $1 i32.const 0 - i32.lt_s - ) - (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 10 i32.gt_s - ) - (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) - global.get $std/array/i + select + local.tee $2 local.get $0 - i32.add - global.set $std/array/i - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 7724 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 7724 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 local.get $1 - i32.const 100 - i32.ge_u + local.get $2 + i32.gt_s + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + i32.const 1 + i32.shl + local.set $3 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.ge_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + i32.sub + local.tee $2 + i32.eqz if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 7724 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return end + local.get $3 + i32.eqz + local.get $4 local.get $1 - i32.const 10 - i32.ge_u + i32.const 1 + i32.shl + i32.eq + i32.and if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 7724 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - i32.store - else + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 + return end - ) - (func $start:std/array~anonymous|25 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - call $~lib/util/number/itoa32 - ) - (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) - local.get $0 - f32.convert_i32_s - ) - (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - local.get $0 - ) - (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 2 - i32.ge_s - ) - (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - global.get $std/array/i + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 local.get $0 + local.get $3 i32.add - global.set $std/array/i - local.get $0 - i32.const 2 - i32.ge_s + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $start:std/array~anonymous|34 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 local.get $1 + local.get $2 + call $~lib/array/Array#indexOf + i32.const 0 + i32.ge_s + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - i32.const 1 - local.get $1 - i32.const 2 - i32.gt_s + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - select - ) - (func $start:std/array~anonymous|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - i32.const 1 + i32.store local.get $1 - i32.const 100 - i32.gt_s local.get $0 - select - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 f32) - (local $6 f32) - (local $7 i32) - (local $8 f32) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 local.get $1 - i32.sub - i32.const 1 + i32.const 2 + i32.shl i32.add - local.tee $7 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $7 - i32.const 1 - i32.and - local.get $3 - select + i32.load + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load offset=4 - local.tee $8 - local.set $6 - local.get $3 - f32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $8 - local.get $4 - i32.load - call_indirect (type $5) - i32.const 0 - i32.le_s - if - local.get $5 - local.set $6 - local.get $8 - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $9 - f32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $5) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $9 - local.get $8 - f32.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 - end - end - end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $5 - f32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $9 - f32.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $4 - i32.load - call_indirect (type $5) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $9 - local.get $5 - f32.store offset=4 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - end - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.get $6 - f32.store offset=4 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end - end + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 f32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - local.get $2 - i32.eq + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $1 - return + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=4 local.get $1 i32.const 2 i32.shl i32.add - f32.load - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 i32.load - call_indirect (type $5) - i32.const 0 - i32.gt_s + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz if - loop $while-continue|0 - local.get $2 + i32.const 6416 + i32.const 1104 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f32) + (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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $folding-inner1 + block $folding-inner0 + local.get $1 + call $~lib/array/Array#get:length local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $6 - f32.load offset=4 - local.get $6 - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $5) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 + i32.ne + br_if $folding-inner0 + local.get $0 local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - f32.store + i32.eq + br_if $folding-inner1 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - f32.load offset=4 - local.get $1 - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $5) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f32.ne + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 + local.get $3 + f32.ne + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + f64.promote_f32 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + f64.promote_f32 + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i32.wrap_i64 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $3 + f32.ne + br_if $folding-inner0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 f32) - (local $8 f32) - (local $9 i32) - (local $10 i32) - local.get $2 - i32.const 1 + (func $std/array/assertSortedDefault (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $6 - local.get $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11120 + i32.store offset=4 + local.get $0 + i32.const 11120 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $9 - local.get $6 - i32.const 1 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#toString (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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 11856 + call $~lib/array/Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $3 loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.const 0 + i32.ge_s if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $3 i32.const 2 i32.shl - local.tee $10 - local.get $4 i32.add + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $10 - i32.add - f32.load - f32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if + i32.store + i32.const 4 + global.set $~argumentsLength + local.get $2 local.get $4 - local.get $9 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.add + local.get $3 local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - f32.store - local.get $6 + local.get $1 + i32.load + call_indirect (type $4) + local.set $2 + local.get $3 i32.const 1 - i32.add - local.set $6 - br $for-loop|1 + i32.sub + local.set $3 + br $for-loop|0 end end - loop $for-loop|2 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/array/Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $3 - i32.le_s + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 - local.get $4 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $3 i32.const 2 i32.shl i32.add - f32.load - local.set $8 - i32.const 2 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 4 global.set $~argumentsLength - local.get $7 - local.get $8 + local.get $2 local.get $5 + local.get $3 + local.get $0 + local.get $1 i32.load - call_indirect (type $5) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - f32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 + call_indirect (type $4) + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $3 + br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - local.get $2 - i32.xor - local.tee $2 - local.get $1 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $3 - i32.xor - local.tee $3 - i32.gt_s - local.get $2 + local.get $0 + i32.load offset=12 + local.tee $5 local.get $3 + local.get $5 i32.lt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 f64) - (local $5 f64) - (local $6 i32) - (local $7 f64) - (local $8 i32) + select + local.set $3 + local.get $4 local.get $1 - local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $5 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $5 + local.get $1 + local.get $5 + i32.lt_s + select + end + local.tee $1 + i32.const 2 + i32.shl + i32.add + local.get $4 local.get $2 - local.get $1 - i32.sub - i32.const 1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $5 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $5 + local.get $2 + local.get $5 + i32.lt_s + select + end + local.tee $2 + i32.const 2 + i32.shl i32.add - local.tee $6 local.get $3 + i32.const 0 + i32.lt_s + if (result i32) + local.get $3 + local.get $5 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $3 + local.get $5 + local.get $3 + local.get $5 + i32.lt_s + select + end + local.get $2 i32.sub - i32.const 1 - i32.and + local.tee $2 + local.get $5 + local.get $1 i32.sub - local.get $6 - i32.const 1 - i32.and - local.get $3 + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s select + i32.const 2 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $6 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.ge_s + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s if - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - local.tee $3 - f64.load offset=8 - local.tee $7 - local.set $5 - local.get $3 - f64.load - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $7 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.le_s - if - local.get $4 - local.set $5 - local.get $7 - local.set $4 - end - local.get $6 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $8 - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $4 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $7 - f64.store offset=16 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 - end - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store offset=16 - loop $while-continue|2 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $8 - f64.load - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $4 - local.get $5 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $8 - local.get $4 - f64.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store offset=8 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $for-loop|0 + i32.const 1344 + i32.const 1104 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 end - ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 f64) - (local $5 f64) - (local $6 i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + i32.const 2 + i32.shl + i32.add local.get $2 - i32.eq + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 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 16192 + i32.lt_s if - local.get $1 - return + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.gt_s + f32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/isArraysEqual (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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - loop $while-continue|0 - local.get $2 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $folding-inner1 + block $folding-inner0 + local.get $1 + call $~lib/array/Array#get:length local.get $3 - i32.gt_s - if (result i32) - local.get $0 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + loop $for-loop|0 + local.get $2 local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $6 - f64.load offset=8 - local.get $6 - f64.load - i32.const 2 - global.set $~argumentsLength - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|0 - end - end - local.get $3 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $6 - f64.load - local.set $4 - local.get $6 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $6 - f64.load - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $4 - f64.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $1 - f64.load offset=8 - local.get $1 - f64.load - i32.const 2 - global.set $~argumentsLength - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $4 + i32.ne + br_if $folding-inner0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return end - local.get $3 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 f64) - (local $7 f64) - (local $8 i32) - (local $9 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $5 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $8 - local.get $5 + global.set $~lib/memory/__stack_pointer i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 + ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $1 - local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 3 - i32.shl - local.tee $9 - local.get $4 - i32.add - local.get $0 - local.get $9 - i32.add - f64.load - f64.store - br $for-loop|0 - end + select end - loop $for-loop|1 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 local.get $3 - local.get $5 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 i32.gt_s - if - local.get $4 - local.get $8 - local.get $5 - i32.sub - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - f64.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 + select + else + local.get $2 local.get $3 - i32.le_s - if - local.get $4 - local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $6 - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $6 - f64.store - local.get $5 - i32.const 1 - i32.sub - local.set $5 - else - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 - end + local.get $2 + local.get $3 + i32.lt_s + select end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - local.get $0 - i64.reinterpret_f64 + local.get $1 + i32.sub local.tee $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u + i32.const 0 local.get $2 - i64.xor + i32.const 0 + i32.gt_s + select local.tee $2 - local.get $1 - i64.reinterpret_f64 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray local.tee $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $3 - i64.xor - local.tee $3 - i64.gt_s - local.get $2 + i32.store local.get $3 - i64.lt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - local.get $3 + i32.const 2 + i32.shl + i32.add local.get $2 - local.get $1 - i32.sub - i32.const 1 + i32.const 2 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $5 + global.set $~lib/memory/__stack_pointer local.get $3 + ) + (func $~lib/array/Array#findIndex (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 - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $7 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - local.get $7 - i32.ge_s + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add - local.tee $3 - i32.load offset=4 - local.tee $6 - local.set $5 - local.get $3 i32.load - local.set $3 - i32.const 2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 + local.get $2 + local.get $0 + local.get $1 i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + call_indirect (type $1) if - local.get $3 - local.set $5 - local.get $6 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end - local.get $7 + local.get $2 i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store offset=8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.add - local.set $7 + local.set $2 br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 2 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 local.get $2 - i32.eq + local.get $3 + call $~lib/array/Array#copyWithin + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 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 16192 + i32.lt_s if - local.get $1 - return + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - i32.const 2 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 i32.shl i32.add - i32.load + f64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/array/isArraysEqual (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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + call $~lib/array/Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store + block $folding-inner1 + block $folding-inner0 + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.eq + br_if $folding-inner1 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $4 + i32.ne + br_if $folding-inner0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 1 + ) + (func $start:std/array~anonymous|34 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 i32.add + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 local.tee $4 i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.shr_u + i32.gt_u if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load offset=4 - local.get $5 - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable end - local.get $4 - local.set $2 - loop $while-continue|1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $3 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.set $1 + local.get $2 + if + i32.const 1073741820 + local.get $4 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + local.get $1 local.get $1 local.get $2 - i32.lt_s + i32.lt_u + select + local.set $1 + end + block $__inlined_func$~lib/rt/itcms/__renew$653 + local.get $3 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store + local.get $4 local.get $1 - i32.const 1 - i32.add - local.set $1 + i32.store offset=16 local.get $3 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub local.set $2 - br $while-continue|1 + br $__inlined_func$~lib/rt/itcms/__renew$653 end - end - else - loop $while-continue|2 - local.get $2 + local.get $1 local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - local.get $1 - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end - end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub + i32.load offset=12 + call $~lib/rt/itcms/__new local.tee $2 - i32.const 2 - i32.shl - local.tee $8 + local.get $3 + local.get $1 local.get $4 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load - i32.store - br $for-loop|0 + i32.load offset=16 + local.tee $4 + local.get $1 + local.get $4 + i32.lt_u + select + memory.copy end - end - loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.ne if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.add local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 + local.get $2 i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $4 + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.get $8 - i32.store - local.get $2 + global.set $~lib/memory/__stack_pointer i32.const 1 - i32.add - local.set $2 + return end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $2 + br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 + (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - local.get $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end local.get $2 - local.get $1 - i32.sub - i32.const 1 + local.get $3 i32.add - local.tee $4 local.get $3 - i32.sub i32.const 1 - i32.and i32.sub - local.get $4 - i32.const 1 - i32.and + local.get $2 + local.get $2 local.get $3 + i32.ge_s select - i32.add - local.set $6 - loop $for-loop|0 + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - local.get $6 + i32.const 0 i32.ge_s if local.get $0 - local.get $6 + local.get $2 i32.const 2 i32.shl i32.add - local.tee $3 - i32.load offset=4 - local.tee $5 - local.set $4 - local.get $3 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $5 - i32.const 10848 i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + local.get $1 + i32.eq if - local.get $3 - local.set $4 - local.get $5 - local.set $3 - end - local.get $6 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|1 - local.get $1 - local.get $5 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $3 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $7 - i32.store offset=8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|1 - end - end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + ) + (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $5 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $4 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $7 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - end + i32.store offset=4 local.get $0 - local.get $5 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add - local.get $4 - i32.store offset=4 - local.get $6 - i32.const 2 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $3) + local.get $2 + i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $1 - local.get $2 - i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - local.get $1 - return + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load + i32.store local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load offset=4 - local.get $4 - i32.load - i32.const 2 - global.set $~argumentsLength - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|0 - end - end + i32.load offset=12 + local.set $3 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 local.get $3 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - local.set $5 - local.get $4 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $4 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - local.get $1 - i32.load - i32.const 2 - global.set $~argumentsLength - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|2 - end - end - end - local.get $3 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $5 - local.get $3 - i32.add - local.set $6 - local.get $5 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 + local.get $0 + i32.load offset=12 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_s + select i32.lt_s if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $7 - local.get $4 - i32.add + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $4 - local.get $6 - local.get $5 - i32.sub - i32.const 2 - i32.shl - i32.add + i32.store offset=4 local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $4 local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 - i32.const 2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $7 - i32.const 10848 + local.get $2 + local.get $0 + local.get $1 i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s + call_indirect (type $1) + i32.eqz if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $5 - i32.const 1 - i32.sub - local.set $5 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer + i32.const 0 + return end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + local.set $2 + br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub - ) - (func $~lib/math/NativeMath.random (result f64) - (local $0 i64) - (local $1 i64) - global.get $~lib/math/random_seeded - i32.eqz + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - i64.const -7046029254386353131 - call $~lib/builtins/seed - i64.reinterpret_f64 - local.tee $0 - local.get $0 - i64.eqz - select - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - global.set $~lib/math/random_state1_64 + i32.const 48992 + i32.const 49040 i32.const 1 - global.set $~lib/math/random_seeded + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/math/random_state0_64 - local.set $1 - global.get $~lib/math/random_state1_64 - local.tee $0 - global.set $~lib/math/random_state0_64 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 local.get $1 - i64.const 23 - i64.shl - i64.xor - local.tee $1 + i32.const 0 + i32.store local.get $1 - i64.const 17 - i64.shr_u - i64.xor - local.get $0 - i64.xor - local.get $0 - i64.const 26 - i64.shr_u - i64.xor - global.set $~lib/math/random_state1_64 - local.get $0 - i64.const 12 - i64.shr_u - i64.const 4607182418800017408 - i64.or - f64.reinterpret_i64 - f64.const -1 - f64.add - ) - (func $start:std/array~anonymous|49 (param $0 i32) (param $1 i32) (result i32) + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.sub - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + i32.store offset=4 local.get $1 i32.const 0 - i32.lt_s - local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435455 + i32.gt_u if - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + i32.const 1056 + i32.const 1104 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 8 local.get $0 - local.get $2 - i32.const 1 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 2 i32.shl - i32.add - local.set $0 + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $1 - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return - end - local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 local.get $1 + local.get $2 + i32.store local.get $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $0 local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 10 - i32.lt_u - if + ) + (func $std/array/assertSorted (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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#get:length + local.set $3 + block $__inlined_func$std/array/isSorted$658 (result i32) + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#__get + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isSorted$658 + end + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1080 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer return end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 + i32.sub + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + if + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 7724 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 7724 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 7724 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 7724 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 local.get $1 + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/itoa32 (param $0 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 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7712 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $0 + select + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut + local.tee $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store local.get $0 - ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - local.get $2 - local.get $1 - i64.sub - local.set $9 - i64.const 1 - i32.const 0 local.get $3 - i32.sub - local.tee $10 - i64.extend_i32_s - local.tee $1 - i64.shl - local.tee $12 - i64.const 1 - i64.sub - local.tee $11 - local.get $2 - i64.and - local.set $8 + i32.add local.get $2 local.get $1 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else + call $~lib/util/number/utoa32_dec_lut + local.get $0 + if local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.const 45 + i32.store16 end - local.set $7 - loop $while-continue|0 - local.get $7 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $7 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $3 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100 - i32.div_u - local.set $6 - local.get $3 - i32.const 100 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10 - i32.div_u - local.set $6 - local.get $3 - i32.const 10 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - local.set $6 - i32.const 0 - local.set $3 - br $break|1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/rt/itcms/step (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 - local.set $6 + 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 - local.get $5 - local.get $6 - i32.or - if + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $4 - local.get $3 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - local.tee $2 - i64.shl - local.get $8 - i64.add - local.tee $1 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $7 - i32.const 2 - i32.shl - i32.const 13392 - i32.add - i64.load32_u - local.get $2 - i64.shl - local.set $2 - local.get $0 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|3 - local.get $1 - local.get $9 - i64.lt_u - local.get $4 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - i64.sub - local.get $2 - i64.ge_u + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 i32.and - if (result i32) - local.get $9 - local.get $1 + i32.ne + if + local.get $0 local.get $2 - i64.add - local.tee $8 - i64.gt_u - local.get $9 + i32.const -4 + i32.and local.get $1 - i64.sub - local.get $8 - local.get $9 - i64.sub - i64.gt_u i32.or - else + i32.store 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 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 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 48960 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 $7 - i32.const 1 - i32.sub - local.set $7 local.get $1 - local.get $2 - i64.add - local.set $1 - br $while-continue|3 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 - local.get $7 - i32.store16 - local.get $5 - return + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - br $while-continue|0 + global.get $~lib/rt/itcms/visitCount + return end - end - loop $while-continue|4 - local.get $4 - i64.const 10 - i64.mul - local.set $4 - local.get $8 - i64.const 10 - i64.mul - local.tee $1 - local.get $10 - i64.extend_i32_s - i64.shr_u - local.tee $2 - local.get $5 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.wrap_i64 - i32.const 65535 + i32.load offset=4 + local.tee $1 + i32.const -4 i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $11 - i64.and - local.tee $8 - local.get $4 - i64.ge_u - br_if $while-continue|4 - end - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $9 - i32.const 0 - local.get $7 - i32.sub - i32.const 2 - i32.shl - i32.const 13392 - i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $0 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|6 - local.get $1 - local.get $8 - i64.gt_u - local.get $4 - local.get $8 - i64.sub - local.get $12 - i64.ge_u - i32.and - if (result i32) - local.get $1 - local.get $8 - local.get $12 - i64.add - local.tee $2 - i64.gt_u - local.get $1 - local.get $8 - i64.sub - local.get $2 + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $8 - local.get $12 - i64.add - local.set $8 - br $while-continue|6 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 48960 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 + call $~lib/rt/tlsf/__free + end + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - local.get $0 - local.get $7 - i32.store16 - local.get $5 + i32.const 0 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) - local.get $2 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - local.get $0 - local.get $1 + i32.const 48992 + i32.const 49040 i32.const 1 - i32.shl + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.tee $0 + local.get $2 + i32.add + local.get $2 + local.get $0 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.tee $2 + local.get $0 + local.get $3 + i32.add + local.get $3 + local.get $0 + local.get $0 + local.get $3 + i32.gt_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.tee $0 + i32.lt_s + if + local.get $2 + local.get $4 i32.add - i32.const 3145774 - i32.store local.get $1 - i32.const 2 - i32.add - return + local.get $0 + local.get $2 + i32.sub + memory.fill end - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 + local.get $0 + i32.load offset=12 + local.tee $0 i32.add - local.tee $3 - i32.const 21 - i32.le_s - local.get $1 + local.get $2 + local.get $0 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 local.get $3 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s + i32.add + local.get $3 + local.get $0 + local.get $0 + local.get $3 + i32.gt_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $0 + block $__inlined_func$~lib/util/bytes/FILL$139 + local.get $1 + i32.eqz + local.get $1 + i32.const -1 + i32.eq + i32.or + if + local.get $0 + local.get $2 + i32.gt_s if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + memory.fill + end + br $__inlined_func$~lib/util/bytes/FILL$139 + end + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add local.get $1 + i32.store + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $0 - local.get $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $3 - i32.const 2 - i32.add - else - local.get $3 - i32.const 21 - i32.le_s - local.get $3 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#splice + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#slice + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 i32.const 0 - i32.gt_s - i32.and - if (result i32) + i32.ge_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $2 i32.const 2 + i32.shl i32.add + i32.load + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 0 + i32.store + i32.const 3 + global.set $~argumentsLength local.get $2 - i32.sub - i32.const 1 - i32.shl - memory.copy local.get $0 - i32.const 46 - i32.store16 local.get $1 - i32.const 1 - i32.add - else - local.get $3 - i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 - local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $4 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $1 - i32.const 2 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 end end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) + (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) - (local $4 i64) + (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 i32) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - local.get $1 - f64.const 0 - f64.lt + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray local.tee $3 - if (result f64) + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + local.set $4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 45 - i32.store16 - local.get $1 - f64.neg - else - local.get $1 + i32.store offset=4 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $5 + call $~lib/array/Array#push + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end - i64.reinterpret_f64 - local.tee $2 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 1 - local.get $5 - select - i32.const 1075 - i32.sub - local.tee $9 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.get $2 - i64.const 4503599627370495 - i64.and - local.get $5 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=12 local.tee $2 - i64.const 1 - i64.shl - i64.const 1 - i64.add + local.get $3 + i32.add local.tee $4 - i64.clz - i32.wrap_i64 - local.tee $10 - i32.sub - local.set $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 224 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $4 - local.get $10 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $2 - local.get $2 - i64.const 4503599627370496 - i64.eq - i32.const 1 - i32.add - local.tee $10 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $9 - local.get $10 - i32.sub - local.get $5 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $5 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.tee $1 - i32.trunc_sat_f64_s - local.tee $5 + i32.const 2 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $5 - f64.convert_i32_s + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + local.tee $0 + memory.copy + global.get $~lib/memory/__stack_pointer local.get $1 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 + i32.store + local.get $0 + local.get $5 i32.add - local.tee $5 - i32.const 3 + local.get $1 + i32.load offset=4 + local.get $2 + i32.const 2 i32.shl - local.tee $9 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - global.set $~lib/util/number/_K - local.get $9 - i32.const 12520 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $5 - i32.const 1 + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 143 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 i32.shl - i32.const 13216 i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $2 - i64.const 4294967295 - i64.and - local.set $6 - global.get $~lib/util/number/_frc_pow - local.tee $11 - i64.const 4294967295 - i64.and - local.tee $12 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 - i64.mul - local.get $6 - local.get $12 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $7 - global.get $~lib/util/number/_frc_plus - local.tee $4 - i64.const 4294967295 - i64.and - local.set $13 - local.get $4 - i64.const 32 - i64.shr_u - local.tee $4 - local.get $12 - i64.mul - local.get $12 - local.get $13 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $8 - global.get $~lib/util/number/_frc_minus - local.tee $14 - i64.const 4294967295 - i64.and - local.set $15 - local.get $14 - i64.const 32 - i64.shr_u - local.tee $14 - local.get $12 - i64.mul - local.get $12 - local.get $15 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $12 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 f32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 local.get $3 - i32.const 1 - i32.shl + call $~lib/array/Array#fill + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#fill (param $0 i32) (param $1 f32) (param $2 i32) (param $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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - local.get $11 - i64.const 32 - i64.shr_u - local.tee $2 - i64.mul - local.get $7 - i64.const 32 - i64.shr_u - i64.add + local.get $0 + i32.load offset=12 + local.tee $0 + i32.add local.get $2 - local.get $6 - i64.mul - local.get $7 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add + local.get $0 + local.get $0 local.get $2 - local.get $4 - i64.mul - local.get $8 - i64.const 32 - i64.shr_u - i64.add + i32.gt_s + select local.get $2 - local.get $13 - i64.mul - local.get $8 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $4 - global.get $~lib/util/number/_exp_pow - global.get $~lib/util/number/_exp + i32.const 0 + i32.lt_s + select + local.set $2 + local.get $0 + local.get $3 i32.add - i32.const -64 - i32.sub - local.get $4 - local.get $2 - local.get $14 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $15 - i64.mul - local.get $12 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub local.get $3 - call $~lib/util/number/genDigits + local.get $0 + local.get $0 local.get $3 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify + i32.gt_s + select local.get $3 - i32.add - ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + i32.const 0 + i32.lt_s + select + local.set $0 + block $__inlined_func$~lib/util/bytes/FILL$148 local.get $1 - f64.const 0 - f64.eq + i32.reinterpret_f32 + i32.eqz if local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.0 - end - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne - if - local.get $1 - local.get $1 - f64.ne + local.get $2 + i32.gt_s if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.const 0 local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 - i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.0 - else + local.get $2 + i32.sub + i32.const 2 + i32.shl + memory.fill + end + br $__inlined_func$~lib/util/bytes/FILL$148 + end + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add local.get $1 - f64.const 0 - f64.lt - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 + f32.store local.get $2 - i32.const 8 + i32.const 1 i32.add - br $~lib/util/number/dtoa_buffered_impl|inlined.0 + local.set $2 + br $for-loop|0 end - unreachable end - local.get $0 - local.get $1 - call $~lib/util/number/dtoa_core end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - local.get $1 - i32.extend8_s - local.tee $3 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 i32.lt_s - local.tee $2 if - local.get $3 - i32.const -128 - i32.eq - if - local.get $0 - i64.const 15762813447372845 - i64.store - i32.const 4 - return - end - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $1 - i32.extend8_s - local.tee $3 - i32.const 10 - i32.lt_u - if + call $~lib/array/Array#constructor + local.tee $2 + i32.store + loop $for-loop|0 local.get $0 - local.get $3 - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return - end - local.get $1 - i32.extend8_s - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) local.get $1 - i32.const 100 - i32.lt_u - if (result i32) + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 local.get $1 - i32.const 10 - i32.ge_u + local.get $0 i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else + i32.sub local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add + i32.sub + call $~lib/array/Array#__set local.get $1 - i32.const 100000000 - i32.ge_u + i32.const 1 i32.add + local.set $1 + br $for-loop|0 end end - local.set $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $1 local.get $3 - call $~lib/util/number/utoa32_dec_lut local.get $2 - local.get $3 - i32.add - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 - i32.const 65535 + i32.sub + i32.const 1 + i32.add + local.tee $4 + local.get $3 + i32.sub + i32.const 1 i32.and - local.tee $2 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 65535 - i32.and - local.set $1 - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - local.set $2 - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i32.extend16_s - local.tee $3 - i32.const 0 - i32.lt_s - local.tee $2 - if - local.get $3 - i32.const -32768 - i32.eq - if - local.get $0 - i64.const 15481338470793261 - i64.store - local.get $0 - i32.const 3670070 - i32.store offset=8 - i32.const 6 - return - end - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 - end - local.get $0 - local.get $2 + i32.sub + local.get $4 i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $1 - i32.extend16_s - local.tee $3 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $3 - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return - end - local.get $1 - i32.extend16_s - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $3 - local.get $0 - local.get $1 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - local.get $2 + i32.and local.get $3 + select i32.add - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.ge_s if local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 + local.get $6 + i32.const 2 i32.shl i32.add - local.get $1 - local.get $1 - i64.const 100000000 - i64.div_u - local.tee $1 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u + i32.load offset=4 + local.tee $5 + local.set $4 + local.get $3 + i32.load + local.set $3 i32.const 2 - i32.shl - i32.const 7724 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u + global.set $~argumentsLength + local.get $3 + local.get $5 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $4 + local.get $5 + local.set $3 + end + local.get $6 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $3 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $7 + i32.store offset=8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + end + local.get $0 + local.get $5 i32.const 2 i32.shl - i32.const 7724 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl i32.add local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $5 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $4 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $7 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + end + local.get $0 + local.get $5 i32.const 2 i32.shl - i32.const 7724 i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u + local.get $4 + i32.store offset=4 + local.get $6 i32.const 2 - i32.shl - i32.const 7724 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + local.set $6 + br $for-loop|0 end end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.set $2 - local.get $1 - i64.const 10 - i64.lt_u + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $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 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s if - local.get $0 - local.get $1 - i64.const 48 - i64.or - i64.store16 + i32.const 48992 + i32.const 49040 i32.const 1 - return + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $8 + loop $for-loop|0 + local.get $2 + local.get $8 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load offset=4 + local.tee $5 + i32.store offset=4 + local.get $5 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 100000000 - i32.ge_u - i32.add + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + local.tee $3 + i32.store offset=12 end - end - local.set $0 - local.get $2 - local.get $3 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $2 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else + local.get $8 + i32.const 1 + i32.sub + local.set $9 + loop $while-continue|1 local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add + local.get $9 + i32.le_s + if + block $while-break|1 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=20 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $5 + local.get $7 + i32.store offset=8 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + br $while-continue|1 + end + end end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + local.get $9 + i32.le_s + if + block $while-break|2 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $5 + local.get $3 + i32.store offset=4 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + br $while-continue|2 + end + end end + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.add + local.set $8 + br $for-loop|0 end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut end - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 - i64.const 0 - i64.lt_s - local.tee $3 - if - local.get $0 - i32.const 45 - i32.store16 - i64.const 0 - local.get $1 - i64.sub - local.set $1 - end - local.get $0 local.get $3 + local.get $2 + local.get $1 + i32.sub i32.const 1 - i32.shl i32.add - local.set $4 - local.get $1 - i64.const 10 - i64.lt_u - if - local.get $4 - local.get $1 - i64.const 48 - i64.or - i64.store16 - local.get $3 - i32.const 1 - i32.add - return - end - local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $0 - local.get $4 + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 local.get $2 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $4 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut end - local.get $0 - local.get $3 - i32.add ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 255 - i32.and - local.tee $2 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 f64) + (local $8 i32) local.get $1 - i32.const 255 - i32.and - local.set $1 - i32.const 3 + local.get $3 + local.get $2 local.get $1 - i32.const 10 - i32.ge_u + i32.sub i32.const 1 i32.add - local.get $1 - i32.const 100 - i32.ge_u + local.tee $6 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $6 + i32.const 1 + i32.and + local.get $3 select - local.set $2 - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $std/array/Proxy - block $std/array/Dim - block $~lib/typedarray/Uint8Array - block $std/array/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $std/array/Ref $~lib/typedarray/Uint8Array $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $std/array/Dim $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - unreachable + i32.add + local.set $6 + loop $for-loop|0 + local.get $2 + local.get $6 + i32.ge_s + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + local.tee $3 + f64.load offset=8 + local.tee $7 + local.set $5 + local.get $3 + f64.load + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $7 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.le_s + if + local.get $4 + local.set $5 + local.get $7 + local.set $4 + end + local.get $6 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $8 + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $4 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $7 + f64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner4 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store offset=16 + loop $while-continue|2 local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl i32.add - local.set $1 - br $while-continue|0 + local.tee $8 + f64.load + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $8 + local.get $4 + f64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 end end - br $folding-inner4 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $5 + f64.store offset=8 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~start - global.get $~started - if - return - end + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) + (local $8 f32) + (local $9 i32) + local.get $1 + local.get $3 + local.get $2 + local.get $1 + i32.sub i32.const 1 - global.set $~started - call $start:std/array - ) - (func $~lib/array/Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.add + local.tee $7 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $0 - local.get $0 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + select i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load offset=4 + local.tee $8 + local.set $6 + local.get $3 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect (type $6) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $9 + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $6) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $9 + local.get $8 + f32.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $9 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect (type $6) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $9 + local.get $5 + f32.store offset=4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $6 + f32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end ) - (func $std/array/Ref#constructor (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6527,747 +6521,742 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7712 + return + end global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 i32.store + local.get $1 local.get $0 - i32.load offset=12 - local.tee $0 - local.get $2 - i32.add - local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.gt_s - select local.get $2 - i32.const 0 - i32.lt_s - select - local.tee $2 - local.get $0 - local.get $3 - i32.add - local.get $3 - local.get $0 - local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.tee $0 - i32.lt_s - if - local.get $2 - local.get $4 - i32.add - local.get $1 - local.get $0 - local.get $2 - i32.sub - memory.fill - end + call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/array/Array#get:length (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 16192 - i32.lt_s + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 268 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 16192 - i32.lt_s + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 270 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1488 + i32.const 284 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - local.get $0 + i32.load offset=8 + local.set $5 + local.get $1 i32.load offset=4 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/array/isArraysEqual (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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + local.tee $4 if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - br_if $folding-inner0 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 local.get $1 - i32.eq - br_if $folding-inner1 - loop $for-loop|0 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.get $4 - i32.ne - br_if $folding-inner0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.rotl + i32.and + i32.store end - br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 ) - (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $2 - end - i32.const 2147483647 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#fill - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $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 16192 - i32.lt_s + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=12 - local.tee $0 + local.get $1 + i32.const 4 i32.add - local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.gt_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $0 - local.get $3 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - local.get $3 - local.get $0 - local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$139 - local.get $1 - i32.eqz - local.get $1 - i32.const -1 - i32.eq - i32.or - if - local.get $0 - local.get $2 - i32.gt_s - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $0 - local.get $2 - i32.sub - i32.const 2 - i32.shl - memory.fill - end - br $__inlined_func$~lib/util/bytes/FILL$139 - end - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 16192 - i32.lt_s + local.get $3 + i32.const 2 + i32.and if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + 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 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + local.get $2 + i32.const 2 + i32.or i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1488 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + local.get $4 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1488 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + local.get $1 + i32.store + 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 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - call $~lib/array/Array#get:length + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 local.set $3 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - block $folding-inner1 - block $folding-inner0 - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner1 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.get $4 - i32.ne - br_if $folding-inner0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - ) - (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $2 - end - i32.const 2147483647 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.store offset=4 local.get $1 - local.get $2 local.get $3 - call $~lib/array/Array#fill - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#fill (param $0 i32) (param $1 f32) (param $2 i32) (param $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 16192 - i32.lt_s + i32.store offset=8 + local.get $3 if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $5 + i32.const 4 + i32.shl local.get $2 - local.get $0 - i32.load offset=12 - local.tee $0 i32.add - local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 local.get $0 local.get $0 - local.get $2 - i32.gt_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store local.get $0 - local.get $3 + local.get $5 + i32.const 2 + i32.shl i32.add - local.get $3 + local.tee $0 local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$148 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.reinterpret_f32 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$731 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 i32.eqz if local.get $0 - local.get $2 - i32.gt_s - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.const 0 - local.get $0 - local.get $2 - i32.sub - i32.const 2 - i32.shl - memory.fill - end - br $__inlined_func$~lib/util/bytes/FILL$148 - end - loop $for-loop|0 + i32.load offset=8 + i32.eqz local.get $0 - local.get $2 - i32.gt_s + i32.const 48960 + i32.lt_u + i32.and + i32.eqz if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.const 0 + i32.const 1216 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$731 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $1 + i32.const 16000 + i32.load + i32.gt_u + if + i32.const 1344 + i32.const 1408 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 16004 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 local.get $0 - i32.store + local.get $1 + i32.store offset=8 local.get $1 local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $std/array/Proxy + block $std/array/Dim + block $~lib/typedarray/Uint8Array + block $std/array/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $std/array/Ref $~lib/typedarray/Uint8Array $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $std/array/Dim $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner4 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + br $folding-inner4 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end @@ -7275,156 +7264,334 @@ local.get $0 i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load + i32.load + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f32) - (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 16192 - i32.lt_s + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 + i64.const -7046029254386353131 + call $~lib/builtins/seed + i64.reinterpret_f64 + local.tee $0 + local.get $0 + i64.eqz + select + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 i32.const 1 - call $~lib/builtins/abort - unreachable + global.set $~lib/math/random_seeded end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + global.get $~lib/math/random_state0_64 + local.set $1 + global.get $~lib/math/random_state1_64 + local.tee $0 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $1 + i64.const 23 + i64.shl + i64.xor + local.tee $1 + local.get $1 + i64.const 17 + i64.shr_u + i64.xor local.get $0 - i32.store + i64.xor local.get $0 - call $~lib/array/Array#get:length - local.set $4 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + local.get $0 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const -1 + f64.add + ) + (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result 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 - local.get $1 - i32.store + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 (result 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 16192 + i32.lt_s br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + local.get $0 + i32.const 1 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/array/Array#toString + else + i32.const 11568 + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 + end + i32.const 11568 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11568 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.set $2 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $1 + local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.tee $3 local.get $3 - f32.ne - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.tee $3 - local.get $3 - f32.ne - else - i32.const 0 - end - i32.eqz + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store + local.get $6 if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/array/Array#__get - f64.promote_f32 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - f64.promote_f32 - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.ne - br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $~lib/array/Array#toString + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 local.get $0 - i32.store + local.get $6 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end + local.get $2 + if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.get $3 - f32.ne - br_if $folding-inner0 + i32.const 11856 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 11856 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end - br $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + call $~lib/array/Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 48992 + i32.const 49040 + i32.const 1 i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 f32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result 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 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7439,383 +7606,341 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $4 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + if (result i32) + local.get $5 + i32.load offset=12 + else + i32.const 0 end - i32.const 0 + local.get $2 + i32.add local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const 2147483647 - local.set $3 end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 local.get $2 - local.get $3 - call $~lib/array/Array#fill + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 16 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/array/internalCapacity (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 local.get $0 - i32.load - local.tee $0 + local.get $5 + i32.store offset=8 + local.get $0 + local.get $6 i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $6 i32.store local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_s - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $6 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $4 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.set $1 + call $~lib/rt/itcms/__link + i32.const 0 + local.set $2 + loop $for-loop|1 local.get $2 + local.get $4 + i32.lt_s if - i32.const 1073741820 - local.get $4 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $1 - end - block $__inlined_func$~lib/rt/itcms/__renew$653 local.get $3 - i32.const 20 - i32.sub - local.tee $4 + local.get $2 + i32.const 2 + i32.shl + i32.add i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u + local.tee $5 if - local.get $4 local.get $1 - i32.store offset=16 - local.get $3 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$653 + local.get $6 + i32.add + local.get $5 + i32.load offset=4 + local.get $5 + i32.load offset=12 + i32.const 2 + i32.shl + local.tee $5 + memory.copy + local.get $1 + local.get $5 + i32.add + local.set $1 end - local.get $1 - local.get $4 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 - local.get $1 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $1 - local.get $4 - i32.lt_u - select - memory.copy - end - local.get $2 - local.get $3 - i32.ne - if - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - local.get $0 - local.get $1 - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#push (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#pop (param $0 i32) (result i32) + (func $~lib/array/Array#toString (param $0 i32) (result 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.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 0 - i32.le_s - if - i32.const 2640 - i32.const 1104 - i32.const 271 - i32.const 18 - call $~lib/builtins/abort - unreachable + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$743 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$743 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$743 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + 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.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 + i32.const 48992 + i32.const 49040 i32.const 1 - i32.sub - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7837,58 +7962,148 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.load offset=12 - i32.ge_u + local.tee $5 + i32.const 1 + i32.gt_u if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1344 - i32.const 1104 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 + local.get $5 i32.const 1 - i32.add - local.tee $3 + i32.shr_u + local.set $4 + local.get $5 + i32.const 8 + i32.sub + local.set $6 + loop $while-continue|0 + local.get $1 + i32.const 7 + i32.add + local.get $4 + i32.lt_u + if + local.get $1 + local.get $2 + i32.add + local.tee $7 + i64.load + local.tee $3 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $3 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.set $3 + local.get $7 + local.get $2 + local.get $6 + i32.add + local.get $1 + i32.sub + local.tee $7 + i64.load + local.tee $8 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $8 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $8 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $8 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $7 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $5 i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 + i32.sub + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $1 + local.get $2 + i32.add + local.tee $6 + i32.load8_u + local.set $7 + local.get $6 + local.get $2 + local.get $5 + local.get $1 + i32.sub + i32.add + local.tee $6 + i32.load8_u + i32.store8 + local.get $6 + local.get $7 + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|1 + end + end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7907,52 +8122,70 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 0 local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 local.get $2 - i32.ge_u + local.get $3 + call $~lib/array/Array#fill + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#toString (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 16192 + i32.lt_s if - i32.const 1344 - i32.const 1104 - i32.const 143 - i32.const 33 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load + i32.const 11856 + call $~lib/array/Array#join global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7967,79 +8200,46 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=12 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 - i32.load offset=12 - local.tee $2 + local.get $2 local.get $3 - i32.add - local.tee $4 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 224 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $5 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - local.tee $0 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $5 - i32.add - local.get $1 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 + call $~lib/array/Array#fill + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 ) - (func $~lib/array/Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8063,114 +8263,110 @@ i32.store local.get $0 i32.load offset=4 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 - local.tee $5 - local.get $3 - local.get $5 - i32.lt_s - select - local.set $3 - local.get $4 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $5 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $5 - local.get $1 - local.get $5 - i32.lt_s - select - end - local.tee $1 - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $5 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $5 - local.get $2 - local.get $5 - i32.lt_s - select - end - local.tee $2 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $5 - i32.add - local.tee $3 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - else - local.get $3 - local.get $5 - local.get $3 - local.get $5 - i32.lt_s - select + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 2 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $1 + i32.const 1 + i32.add + local.get $3 + i32.lt_u + if + local.get $2 + local.get $5 + local.get $1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + local.set $7 + local.get $6 + local.get $2 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $6 + local.get $7 + i32.store + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $2 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u + local.set $6 + local.get $5 + local.get $2 + local.get $4 + local.get $1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u + i32.store16 + local.get $5 + local.get $6 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|1 + end + end end - local.get $2 - i32.sub - local.tee $2 - local.get $5 - local.get $1 - i32.sub - local.tee $1 - local.get $1 - local.get $2 - i32.gt_s - select - i32.const 2 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -8189,125 +8385,41 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 2 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 2147483647 - local.set $3 - end global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 local.get $1 - local.get $2 - local.get $3 - call $~lib/array/Array#copyWithin - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result 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 16192 - i32.lt_s + local.get $0 + i32.load offset=12 + i32.ge_u if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store - block $folding-inner1 - block $folding-inner0 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $2 - i32.ne - br_if $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner1 - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $3 - call $~lib/array/Array#__get - local.get $4 - i32.ne - br_if $folding-inner0 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1 ) - (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 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 @@ -8322,53 +8434,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 - call $~lib/array/ensureCapacity + i32.load offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 - local.tee $3 - i32.const 4 - i32.add - local.get $3 - local.get $2 - i32.const 1 - i32.sub - i32.const 2 - i32.shl - memory.copy - local.get $3 - local.get $1 - i32.store + i32.load offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 - local.get $2 - i32.store offset=12 + local.get $1 + call $~lib/util/sort/SORT 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/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#map (param $0 i32) (param $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 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8386,321 +8482,278 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=12 - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 + local.tee $3 i32.const 2 i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store - local.get $0 + local.get $4 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.const 2 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 + local.set $4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $3 + local.get $0 + i32.load offset=12 + local.tee $5 + local.get $3 + local.get $5 + i32.lt_s + select + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + i32.const 2 + i32.shl + local.tee $5 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $5 + i32.add + local.get $6 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - i32.const 2147483647 - local.set $2 end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#slice - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#reverse (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $4 - local.get $5 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - local.set $6 - loop $while-continue|0 - local.get $1 - i32.const 7 - i32.add - local.get $4 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$738 + local.get $0 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s if - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $7 - i64.load - local.tee $3 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $3 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.set $3 - local.get $7 - local.get $2 + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 + end + local.get $7 + i32.eqz + if local.get $6 - i32.add - local.get $1 - i32.sub - local.tee $7 - i64.load - local.tee $8 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $8 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $8 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $8 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store - local.get $7 - local.get $3 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $3 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store - local.get $1 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add - local.set $1 - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|1 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $4 - i32.lt_u - if - local.get $1 - local.get $2 - i32.add - local.tee $6 - i32.load8_u - local.set $7 - local.get $6 - local.get $2 - local.get $5 - local.get $1 - i32.sub - i32.add - local.tee $6 - i32.load8_u - i32.store8 - local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 11 + i32.add + local.get $7 + i32.mul + i32.const 11 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $4 local.get $7 - i32.store8 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $1 - br $while-continue|1 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) 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 @@ -8715,263 +8768,317 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/array/Array#constructor + local.tee $1 i32.store - local.get $0 - i32.load offset=12 - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $3 - local.get $4 - i32.const 2 - i32.sub - local.set $5 - loop $while-continue|0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 + local.get $2 + call $~lib/math/NativeMath.random + local.get $0 + f64.convert_i32_s + f64.mul + i32.trunc_sat_f64_s + call $~lib/array/Array#__set + local.get $2 i32.const 1 i32.add - local.get $3 - i32.lt_u - if - local.get $2 - local.get $5 - local.get $1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $6 - i32.load - i32.const 16 - i32.rotr - local.set $7 - local.get $6 - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $6 - i32.load - i32.const 16 - i32.rotr - i32.store - local.get $6 - local.get $7 - i32.store - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|1 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u - local.set $6 - local.get $5 - local.get $2 - local.get $4 - local.get $1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u - i32.store16 - local.get $5 - local.get $6 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|1 - end + local.set $2 + br $for-loop|0 end end 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/array/Array#__get (param $0 i32) (param $1 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/assertSorted<~lib/array/Array> (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.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/array/Array#sort + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + local.get $1 + local.set $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - if + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $5 + i32.store + local.get $5 + call $~lib/array/Array#get:length + local.set $4 + block $__inlined_func$std/array/isSorted<~lib/array/Array>$660 (result i32) + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + local.get $1 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $5 + local.get $1 + call $~lib/array/Array#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + local.get $3 + local.get $0 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isSorted<~lib/array/Array>$660 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + end + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1080 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 return end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $start:std/array~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 100 + i32.eq + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $2 + i32.const 1 + i32.sub + local.tee $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 local.get $2 - local.get $3 i32.lt_s if - local.get $0 local.get $2 + i32.const 1 + i32.sub + local.tee $2 i32.const 2 i32.shl + local.tee $7 + local.get $4 + i32.add + local.get $0 + local.get $7 i32.add i32.load - local.get $1 - i32.eq + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $4 + local.get $6 + local.get $5 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $7 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store local.get $2 - return + i32.const 1 + i32.add + local.set $2 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $1 + br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 ) - (func $~lib/array/Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8986,875 +9093,667 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - local.get $2 - local.get $3 - i32.add + i64.const 0 + i64.store offset=8 local.get $3 + local.get $2 i32.const 1 i32.sub + local.tee $2 + i32.add + local.set $7 local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $6 + i32.const 1 + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 local.get $2 - i32.const 0 - i32.ge_s + local.get $3 + i32.lt_s if + local.get $4 + local.get $7 + local.get $2 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 local.get $2 i32.const 2 i32.shl i32.add - i32.load - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - end + i32.load offset=4 + i32.store local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - ) - (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#indexOf - i32.const 0 - i32.ge_s - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + (local $7 i32) + (local $8 i32) local.get $2 - local.get $0 - i32.load offset=12 - local.tee $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.tee $4 + i32.const 1 i32.sub - local.tee $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $5 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.tee $2 - local.get $4 - i32.const 2 - i32.shl - i32.add local.tee $6 - local.get $5 - i32.const 2 - i32.shl - memory.copy - local.get $4 - local.get $5 - i32.add - local.tee $4 local.get $3 - i32.ne - if - local.get $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 local.get $2 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.get $3 - local.get $4 - i32.sub - i32.const 2 - i32.shl - memory.copy + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - local.get $5 - i32.sub - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/array/Array#splice@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 i32.const 1 i32.sub - br_table $0of1 $1of1 $outOfRange + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 end - unreachable + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - i32.const 2147483647 - local.set $2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#splice - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $0 - i32.load offset=12 - local.tee $2 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - end - local.tee $4 + (local $6 f64) + (local $7 f64) + (local $8 i32) + (local $9 i32) + local.get $2 + i32.const 1 i32.sub - local.tee $1 - local.get $1 - i32.const 2 - i32.gt_s - select - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $1 - i32.const 2 - i32.const 10 - i32.const 0 - call $~lib/rt/__newArray local.tee $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.tee $3 - local.get $4 - i32.const 2 - i32.shl + local.get $3 i32.add - local.tee $6 - local.get $1 - i32.const 2 - i32.shl - memory.copy - local.get $2 - local.get $1 - local.get $4 + local.set $8 + local.get $5 + i32.const 1 i32.add - local.tee $4 - i32.ne - if - local.get $6 - local.get $3 - local.get $4 - i32.const 2 - i32.shl - i32.add + local.set $2 + loop $for-loop|0 + local.get $1 local.get $2 - local.get $4 - i32.sub - i32.const 2 - i32.shl - memory.copy + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $9 + local.get $4 + i32.add + local.get $0 + local.get $9 + i32.add + f64.load + f64.store + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - i32.sub - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $4 + local.get $8 + local.get $5 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 6416 - i32.const 1104 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $5 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $6 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $7 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $6 + f64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl + local.tee $6 + local.get $3 i32.add - i32.load - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.set $9 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if + local.set $2 + loop $for-loop|0 local.get $1 - i32.const 0 + local.get $2 i32.lt_s if - i32.const 1344 - i32.const 1104 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $10 + local.get $4 + i32.add + local.get $0 + local.get $10 + i32.add + f32.load + f32.store + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $3 - local.get $0 - i32.load offset=12 - local.tee $4 + loop $for-loop|1 local.get $3 - local.get $4 - i32.lt_s - select - i32.lt_s + local.get $6 + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - i32.load offset=4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $7 + local.get $4 local.get $2 i32.const 2 i32.shl i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 + f32.load + local.set $8 + i32.const 2 global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 + local.get $7 + local.get $8 + local.get $5 i32.load - call_indirect (type $1) + call_indirect (type $6) + i32.const 0 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $7 + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store local.get $2 - return + i32.const 1 + i32.add + local.set $2 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $1 + br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 ) - (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 100 i32.eq - ) - (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.load local.get $0 - i32.const 100 - i32.eq - ) - (func $~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 + local.get $1 i32.const 1 - i32.sub - local.set $2 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength + i32.add + local.tee $3 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 - local.get $0 + local.get $3 + i32.gt_s + if (result i32) + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + local.get $4 + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $3 + local.set $2 + loop $while-continue|1 local.get $1 - i32.load - call_indirect (type $1) + local.get $2 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $4 + i32.load + local.set $5 + local.get $4 + local.get $0 local.get $2 - return + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $4 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end + end + else + loop $while-continue|2 local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 + local.get $3 + i32.gt_s + if (result i32) + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|2 + end end end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $3 ) - (func $~lib/array/Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) + (local $5 i32) + (local $6 i32) 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 @@ -9872,596 +9771,608 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $3 - local.get $0 - i32.load offset=12 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_s - select - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - ) - (func $start:std/array~anonymous|12 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.load + local.tee $5 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 10 - i32.lt_s - ) - (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load + local.tee $5 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $5 + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.tee $5 + i32.store offset=8 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $1 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $1 + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 3 - i32.lt_s + local.get $4 ) - (func $~lib/array/Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $3 - local.get $0 - i32.load offset=12 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_s - select - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 - local.get $0 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 local.get $1 - i32.load - call_indirect (type $1) + local.get $2 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 i32.const 1 - return + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end + end + else + loop $while-continue|2 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $4 ) - (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + local.get $1 local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 10 - i32.gt_s - ) - (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s + i32.eq if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $1 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + f64.load local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 i32.gt_s - ) - (func $~lib/array/Array#forEach (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $3 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $3 - local.get $0 - i32.load offset=12 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_s - select - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $3) + loop $while-continue|0 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.eqz - if - loop $for-loop|0 local.get $3 - i32.const 4 - i32.lt_s + i32.gt_s + if (result i32) + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $6 + f64.load offset=8 + local.get $6 + f64.load + i32.const 2 + global.set $~argumentsLength + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 31 + i32.shr_u + else + i32.const 0 + end if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop local.get $3 i32.const 1 i32.add local.set $3 - br $for-loop|0 + br $while-continue|0 end end - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - i32.const 100 + local.get $3 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $6 + f64.load + local.set $4 + local.get $6 + local.get $0 local.get $2 - local.get $3 - i32.const 100 + i32.const 3 + i32.shl i32.add - call $~lib/array/Array#push - local.get $3 + local.tee $6 + f64.load + f64.store + local.get $1 i32.const 1 i32.add - local.set $3 - br $for-loop|1 + local.set $1 + local.get $6 + local.get $4 + f64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end end - i32.const 0 - local.set $3 - loop $for-loop|2 + else + loop $while-continue|2 + local.get $2 local.get $3 - i32.const 100 - i32.lt_s + i32.gt_s + if (result i32) + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load offset=8 + local.get $1 + f64.load + i32.const 2 + global.set $~argumentsLength + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.ge_s + else + i32.const 0 + end if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop local.get $3 i32.const 1 i32.add local.set $3 - br $for-loop|2 - end - end - i32.const 0 - local.set $3 - loop $for-loop|3 - local.get $3 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $3 - i32.const 200 - i32.add - call $~lib/array/Array#push - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|3 + br $while-continue|2 end end end + local.get $3 + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) local.get $1 - i32.const 2 + local.get $2 i32.eq - local.get $0 - i32.const 202 - i32.ne - i32.and if - i32.const 0 - i32.const 1552 - i32.const 767 - i32.const 7 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $1 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $std/array/i + f32.load local.get $0 + local.get $1 + i32.const 1 i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $6) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + f32.load offset=4 + local.get $6 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $6) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + f32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load offset=4 + local.get $1 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $6) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 ) - (func $~lib/array/Array#map (param $0 i32) (param $1 i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10478,3198 +10389,1612 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=12 - local.tee $3 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - local.set $4 - loop $for-loop|0 + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + local.get $0 + local.get $1 + i32.eq + i32.or + i32.or + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 - local.get $3 local.get $0 - i32.load offset=12 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.tee $5 - local.get $3 - local.get $5 - i32.lt_s - select - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - local.get $0 - i32.load offset=4 + local.get $4 + i32.or + i32.eqz + br_if $folding-inner0 + local.get $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - local.set $6 + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + local.get $5 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $5 + i32.const 8 i32.add - local.get $6 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.store - local.get $2 + global.set $~lib/memory/__stack_pointer i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $4 + local.get $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.tee $2 + i32.const 4 + i32.ge_u + if (result i32) + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $0 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $2 + local.tee $3 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + if + local.get $0 + i32.load16_u + local.tee $3 + local.get $1 + i32.load16_u + local.tee $6 + i32.ne + if + local.get $3 + local.get $6 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + local.get $5 + i32.sub + local.get $0 + select + return end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 255 + i32.and + local.tee $2 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#pop - drop - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 255 + i32.and + local.set $1 + i32.const 3 + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 100 + i32.ge_u + select + local.set $2 local.get $0 + local.get $1 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + local.get $2 ) - (func $~lib/array/Array#filter (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + local.get $1 + i64.const 10 + i64.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - if - global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) local.get $3 - i32.store offset=4 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else local.get $3 - local.get $5 - call $~lib/array/Array#push + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $0 + local.get $2 + local.get $3 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $2 + local.get $1 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $0 ) - (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 100 - call $~lib/array/Array#push - global.get $std/array/i local.get $0 - i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut local.get $0 - i32.const 2 - i32.ge_s ) - (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 65535 + i32.and + local.tee $2 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 i32.const 1 + return + end + local.get $1 + i32.const 65535 + i32.and + local.set $1 + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $0 + local.get $1 local.get $2 - i32.store + call $~lib/util/number/utoa32_dec_lut local.get $2 - call $~lib/array/Array#pop - drop - global.get $std/array/i - local.get $0 - i32.add - global.set $std/array/i - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.ge_s ) - (func $~lib/array/Array#reduce (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 + local.get $1 + i32.extend8_s + local.tee $3 + i32.const 0 i32.lt_s + local.tee $2 if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $3 - local.get $4 - local.get $0 - i32.load offset=12 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.lt_s + i32.const -128 + i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i64.const 15762813447372845 + i64.store i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $5 - local.get $3 - local.get $0 - local.get $1 - i32.load - call_indirect (type $4) - local.set $2 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + return end + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 local.get $2 - ) - (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 i32.const 1 - call $~lib/array/Array#push - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + local.set $0 local.get $1 - i32.add - ) - (func $start:std/array~anonymous|40 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 16192 - i32.lt_s + i32.extend8_s + local.tee $3 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $3 + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array#pop - drop - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 - i32.add - ) - (func $~lib/array/Array#reduceRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $3 - loop $for-loop|0 - local.get $3 - i32.const 0 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 4 - global.set $~argumentsLength - local.get $2 - local.get $4 - local.get $3 - local.get $0 + i32.extend8_s + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) local.get $1 - i32.load - call_indirect (type $4) - local.set $2 - local.get $3 + i32.const 10 + i32.ge_u i32.const 1 - i32.sub - local.set $3 - br $for-loop|0 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add end end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/util/number/utoa32_dec_lut local.get $2 + local.get $3 + i32.add ) - (func $std/array/Dim#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i64.const 0 + i64.lt_s + local.tee $3 + if local.get $0 - return + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 end - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i32) - (local $17 f32) - (local $18 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 16192 - i32.lt_s + i32.shl + i32.add + local.set $4 + local.get $1 + i64.const 10 + i64.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $4 + local.get $1 + i64.const 48 + i64.or + i64.store16 + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 + local.get $1 + i64.const 4294967295 + i64.le_u + if local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $5) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - f32.load offset=8 - local.set $18 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $18 - local.get $9 - local.get $17 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $18 - local.get $2 - i32.load - call_indirect (type $5) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store offset=4 - local.get $0 - local.get $9 - local.get $18 - local.get $1 - select - f32.store offset=8 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) local.get $2 - i32.load - call_indirect (type $5) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - f32.store offset=4 - br $folding-inner0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 + else local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $4 + i32.const 10000000 i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u i32.add - local.set $3 - br $for-loop|1 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 - global.get $~lib/memory/__stack_pointer + local.set $0 + local.get $4 local.get $2 - i32.store local.get $0 - i32.const 0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $4 local.get $1 - i32.const 1 - i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 + local.get $1 + i64.const 10000000000 + i64.ge_u i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $14 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $14 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $15 - local.get $11 - i32.add - local.tee $16 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $15 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $16 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $11 + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 i32.add - local.get $3 - i32.store local.get $1 - local.get $12 + i64.const 10000000000000 + i64.ge_u i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 end - end - loop $for-loop|4 + else local.get $1 - if + i64.const 100000000000000000 + i64.lt_u + if (result i32) local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - end + else local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add end end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#sort@varargs (param $0 i32) - (local $1 i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 10256 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 10256 - i32.store - end - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.lt_s + local.tee $2 + if local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 45 + i32.store16 + i32.const 0 local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT - 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.add - global.set $~lib/memory/__stack_pointer - return + local.set $1 end - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f64) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i64) - (local $14 i32) - (local $15 i32) - (local $16 f64) - (local $17 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 16192 - i32.lt_s + i32.shl + i32.add + local.set $0 + local.get $1 + i32.const 10 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 + local.get $0 + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) local.get $1 - i32.const 48 - i32.le_s - if + i32.const 100 + i32.lt_u + if (result i32) local.get $1 + i32.const 10 + i32.ge_u i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - f64.load - local.set $16 - local.get $0 - f64.load offset=8 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $16 - local.get $16 - local.get $17 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store - local.get $0 - f64.load offset=16 - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $16 - local.get $17 - local.get $1 - select - local.tee $16 - local.get $8 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.gt_s - local.set $1 - local.get $0 - local.get $8 - local.get $16 - local.get $1 - select - f64.store offset=8 - local.get $0 - local.get $16 - local.get $8 - local.get $1 - select - f64.store offset=16 - end - local.get $0 - f64.load - local.set $8 - local.get $0 - f64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $8 - local.get $8 - local.get $16 - i32.const 10544 - i32.load - call_indirect (type $6) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store - local.get $0 - local.get $8 - local.get $16 - local.get $1 - select - f64.store offset=8 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - i32.const 0 + i32.add + else local.get $1 - i32.const 1 - i32.sub - i32.const 0 - call $~lib/util/sort/insertionSort - br $folding-inner0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add end - i32.const 33 + else local.get $1 - i32.clz - i32.sub - local.tee $3 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + local.get $2 + i32.add + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.extend16_s + local.tee $3 + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $3 + i32.const -32768 + i32.eq if - call $~lib/rt/tlsf/initialize + local.get $0 + i64.const 15481338470793261 + i64.store + local.get $0 + i32.const 3670070 + i32.store offset=8 + i32.const 6 + return end - local.get $4 - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_u - if - local.get $10 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 3 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store local.get $0 + i32.const 45 + i32.store16 i32.const 0 local.get $1 - i32.const 1 i32.sub - local.tee $9 - call $~lib/util/sort/extendRunRight - local.tee $3 + local.set $1 + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.set $0 + local.get $1 + i32.extend16_s + local.tee $3 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $3 + i32.const 48 + i32.or + i32.store16 + local.get $2 i32.const 1 i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $3 + return + end + local.get $1 + i32.extend16_s + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) local.get $1 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - loop $while-continue|2 - local.get $3 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - local.get $3 - i32.const 1 - i32.add - local.tee $5 - local.get $9 - call $~lib/util/sort/extendRunRight - local.tee $4 - local.get $5 - i32.sub - i32.const 1 - i32.add - local.tee $6 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - local.get $5 - local.get $9 - local.get $5 - i32.const 31 - i32.add - local.tee $4 - local.get $4 - local.get $9 - i32.gt_s - select - local.tee $4 - local.get $6 - call $~lib/util/sort/insertionSort - end - local.get $2 - local.get $5 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $4 - local.get $5 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $6 - loop $for-loop|3 - local.get $1 - local.get $6 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $7 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - local.get $7 - local.get $2 - local.get $3 - local.get $12 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $7 - local.set $2 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $6 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $2 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $5 - local.set $2 - local.get $4 - local.set $3 - local.get $6 - local.set $1 - br $while-continue|2 - end + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add end - loop $for-loop|4 + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $2 - local.get $10 - i32.add - i32.load - local.tee $3 - i32.const -1 - i32.ne - if - local.get $2 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 10544 - i32.store - local.get $0 - local.get $3 - local.get $2 - local.get $9 - local.get $12 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $2 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1344 - i32.const 1104 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.set $3 local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) (local $3 i32) - (local $4 i32) + (local $4 i64) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (local $6 i64) + (local $7 i64) + (local $8 i64) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) + (local $11 i64) + (local $12 i64) (local $13 i64) - (local $14 i32) - (local $15 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + (local $14 i64) + (local $15 i64) + local.get $1 + f64.const 0 + f64.lt + local.tee $3 + if (result f64) + local.get $0 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + else + local.get $1 end - global.get $~lib/memory/__stack_pointer + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $5 + i32.const 1 + local.get $5 + select + i32.const 1075 + i32.sub + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $5 i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store - local.get $0 - i32.load offset=8 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store offset=4 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store offset=8 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $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 i64) - (local $13 i32) - (local $14 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $2 - local.get $1 - local.get $1 - local.get $2 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store - local.get $0 - i32.load offset=8 - local.set $4 - i32.const 2 - global.set $~argumentsLength - local.get $1 - local.get $2 - local.get $3 - select - local.tee $1 - local.get $4 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.set $2 - local.get $0 - local.get $4 - local.get $1 - local.get $2 - select - i32.store offset=4 - local.get $0 - local.get $1 - local.get $4 - local.get $2 - select - i32.store offset=8 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $2 - local.get $1 - local.get $1 - local.get $2 - i32.const 10848 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store - local.get $0 - local.get $1 - local.get $2 - local.get $3 - select - i32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $3 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $4 - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $9 - i32.add - local.set $10 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_u - if - local.get $9 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $8 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $8 - local.get $8 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $2 - loop $while-continue|2 - local.get $4 - local.get $8 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $5 - local.get $8 - call $~lib/util/sort/extendRunRight - local.tee $3 - local.get $5 - i32.sub - i32.const 1 - i32.add - local.tee $6 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - local.get $5 - local.get $8 - local.get $5 - i32.const 31 - i32.add - local.tee $3 - local.get $3 - local.get $8 - i32.gt_s - select - local.tee $3 - local.get $6 - call $~lib/util/sort/insertionSort - end - local.get $2 - local.get $5 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $8 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $12 - i64.div_u - local.get $3 - local.get $5 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $12 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $6 - loop $for-loop|3 - local.get $1 - local.get $6 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $13 - local.get $9 - i32.add - local.tee $14 - i32.load - local.tee $7 - i32.const -1 - i32.ne - if - local.get $10 - local.get $13 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - local.get $7 - local.get $2 - local.get $4 - local.get $11 - call $~lib/util/sort/mergeRuns - local.get $14 - i32.const -1 - i32.store - local.get $7 - local.set $2 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $6 - i32.const 2 - i32.shl - local.tee $1 - local.get $9 - i32.add - local.get $2 - i32.store - local.get $1 - local.get $10 - i32.add - local.get $4 - i32.store - local.get $5 - local.set $2 - local.get $3 - local.set $4 - local.get $6 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $2 - local.get $9 - i32.add - i32.load - local.tee $3 - i32.const -1 - i32.ne - if - local.get $2 - local.get $10 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 10848 - i32.store - local.get $0 - local.get $3 - local.get $2 - local.get $8 - local.get $11 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $11 - call $~lib/rt/tlsf/__free - local.get $9 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.tee $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $4 + i64.clz + i32.wrap_i64 + local.tee $10 + i32.sub + local.set $5 + local.get $4 + local.get $10 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $2 + local.get $2 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + local.tee $10 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $9 + local.get $10 + i32.sub + local.get $5 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $5 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $1 + i32.trunc_sat_f64_s + local.tee $5 + local.get $5 + f64.convert_i32_s + local.get $1 + f64.ne i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/array/createReverseOrderedArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $5 + i32.const 3 + i32.shl + local.tee $9 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/array/Array#constructor + global.set $~lib/util/number/_K + local.get $9 + i32.const 12520 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $5 + i32.const 1 + i32.shl + i32.const 13216 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl local.tee $2 - i32.store - loop $for-loop|0 - local.get $0 - local.get $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - local.get $0 - i32.const 1 - i32.sub - local.get $1 - i32.sub - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 + i64.const 4294967295 + i64.and + local.set $6 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $12 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 + i64.mul + local.get $6 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $7 + global.get $~lib/util/number/_frc_plus + local.tee $4 + i64.const 4294967295 + i64.and + local.set $13 + local.get $4 + i64.const 32 + i64.shr_u + local.tee $4 + local.get $12 + i64.mul + local.get $12 + local.get $13 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $8 + global.get $~lib/util/number/_frc_minus + local.tee $14 + i64.const 4294967295 + i64.and + local.set $15 + local.get $14 + i64.const 32 + i64.shr_u + local.tee $14 + local.get $12 + i64.mul + local.get $12 + local.get $15 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 + local.get $0 + local.get $3 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 local.get $2 - ) - (func $std/array/createRandomOrderedArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $11 + i64.const 32 + i64.shr_u + local.tee $2 + i64.mul + local.get $7 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $6 + i64.mul + local.get $7 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $4 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $13 + i64.mul + local.get $8 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $4 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp + i32.add + i32.const -64 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/array/Array#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/math/NativeMath.random - local.get $0 - f64.convert_i32_s - f64.mul - i32.trunc_sat_f64_s - call $~lib/array/Array#__set - 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 8 + local.get $4 + local.get $2 + local.get $14 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $15 + i64.mul + local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $3 + call $~lib/util/number/genDigits + local.get $3 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 ) - (func $std/array/assertSorted (param $0 i32) (param $1 i32) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - block $__inlined_func$std/array/isSorted$658 (result i32) - global.get $~lib/memory/__stack_pointer + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) + local.get $1 + f64.const 0 + f64.eq + if local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if local.get $1 - call $~lib/array/Array#sort - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/array/Array#get:length - local.set $3 - loop $for-loop|0 + f64.ne + if local.get $0 - local.get $3 - i32.lt_s + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 local.get $0 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 + i32.const 45 + i32.store16 local.get $0 - call $~lib/array/Array#__get i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$std/array/isSorted$658 - end - local.get $0 - i32.const 1 i32.add local.set $0 - br $for-loop|0 end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1080 - i32.const 3 - call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $std/array/assertSortedDefault (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11120 - i32.store offset=4 - local.get $0 - i32.const 11120 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 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 16192 - i32.lt_s + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 - i32.load - i32.sub - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - local.get $1 - local.get $3 + local.get $0 local.get $2 - local.get $1 - i32.sub - i32.const 1 + i32.const 2 + i32.shl i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl i32.and - local.get $3 - select - i32.add - local.set $8 - loop $for-loop|0 + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz local.get $2 - local.get $8 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + 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 $8 + local.get $1 + i32.ctz + local.tee $1 i32.const 2 i32.shl i32.add - local.tee $5 - i32.load - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 i32.load offset=4 - local.tee $5 - i32.store offset=4 - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + local.tee $2 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $3 - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - local.tee $3 - i32.store offset=12 - end - local.get $8 - i32.const 1 - i32.sub - local.set $9 - loop $while-continue|1 - local.get $1 - local.get $9 - i32.le_s - if - block $while-break|1 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $5 - local.get $7 - i32.store offset=8 - local.get $9 - i32.const 1 - i32.sub - local.set $9 - br $while-continue|1 - end - end - end - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $9 - i32.le_s - if - block $while-break|2 - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $5 - local.get $3 - i32.store offset=4 - local.get $9 - i32.const 1 - i32.sub - local.set $9 - br $while-continue|2 - end - end + i32.const 0 + i32.const 1488 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end local.get $0 - local.get $9 - i32.const 2 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 i32.shl i32.add - local.get $6 - i32.store offset=4 - local.get $8 i32.const 2 + i32.shl i32.add - local.set $8 - br $for-loop|0 + i32.load offset=96 + else + i32.const 0 end end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1488 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 local.get $1 - local.get $2 - i32.eq + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1488 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else + local.get $0 + i32.const 1572 i32.add - global.set $~lib/memory/__stack_pointer local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1488 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if return end - global.get $~lib/memory/__stack_pointer - local.get $0 local.get $1 + local.get $4 i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 local.get $1 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 i32.add - local.tee $4 - i32.const 2 - i32.shl + local.get $3 i32.add - i32.load - local.tee $6 - i32.store offset=4 + local.tee $3 i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 + i32.store + local.get $0 local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $std/array/arr + local.tee $0 if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load offset=4 - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load - local.tee $5 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $5 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 10032 + call $~lib/rt/itcms/__visit + global.get $std/array/inputStabArr + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array/outputStabArr + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1344 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 2640 + call $~lib/rt/itcms/__visit + i32.const 6416 + call $~lib/rt/itcms/__visit + i32.const 1152 + call $~lib/rt/itcms/__visit + i32.const 8144 + call $~lib/rt/itcms/__visit + i32.const 9200 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.tee $5 - i32.store offset=8 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $1 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $1 - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else i32.const 0 + i32.const 1216 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end + ) + (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 11856 + call $~lib/array/Array<~lib/string/String|null>#join + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13684,161 +12009,223 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $3 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.add - local.set $7 - local.get $2 - i32.const 1 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $6 - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 i32.lt_s - if - local.get $6 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$739 + local.get $0 i32.const 1 i32.sub - local.tee $6 - i32.const 2 - i32.shl - local.tee $8 - local.get $4 - i32.add - local.get $0 - local.get $8 + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 + end + local.get $7 + i32.eqz + if + local.get $6 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$739 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $4 local.get $7 - local.get $2 - i32.sub - i32.const 2 - i32.shl + i32.mul + i32.const 10 i32.add - local.get $0 - local.get $2 - i32.const 2 + local.tee $3 + i32.const 1 i32.shl - i32.add - i32.load offset=4 - i32.store + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $0 local.get $2 i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $2 - i32.const 2 i32.shl i32.add - i32.load - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 local.get $6 + local.get $7 i32.const 2 i32.shl i32.add i32.load - local.tee $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - else local.get $0 local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - local.get $6 - i32.const 1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $6 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$739 end - local.get $1 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $1 - br $for-loop|2 + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -13854,441 +12241,626 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1344 + i32.const 1104 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $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 block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + block $__inlined_func$~lib/util/string/joinReferenceArray$4 (result 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 16192 + i32.lt_s br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $4 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + local.get $0 + i32.const 1 + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + br $__inlined_func$~lib/util/string/joinReferenceArray$4 + end + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.tee $3 i32.store offset=4 + i32.const 13632 + else + i32.const 11568 + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray$4 + end + i32.const 11568 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11568 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 + local.get $5 + local.get $1 i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $4 - local.get $4 - local.get $3 - local.get $2 + i32.shl + i32.add i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $1 - select - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $3 - local.get $1 - select - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $4 - local.get $4 + i32.store local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $1 - select - i32.store offset=4 - local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 13632 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 13632 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end local.get $4 - local.get $3 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 11856 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end local.get $1 - select - i32.store offset=8 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.tee $3 - i32.store offset=20 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 + local.get $1 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 13632 i32.store offset=12 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $4 - local.get $4 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $1 - select - i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 - local.get $3 - local.get $1 - select - i32.store offset=4 - br $folding-inner0 + i32.const 13632 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $5 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - i32.shl - local.set $3 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 end - local.get $4 - global.get $~lib/rt/tlsf/ROOT - local.get $3 - call $~lib/rt/tlsf/allocateBlock + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.tee $13 + global.set $~lib/memory/__stack_pointer + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 i32.add - local.set $12 - loop $for-loop|1 - local.get $5 - local.get $7 - i32.gt_u - if - local.get $13 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|1 - 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 $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $4 + i32.sub + local.tee $1 + local.get $1 + i32.const 2 + i32.gt_s + select + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $1 + i32.const 2 + i32.const 10 + i32.const 0 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.tee $3 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + local.get $1 + i32.const 2 + i32.shl + memory.copy + local.get $2 + local.get $1 + local.get $4 + i32.add + local.tee $4 + i32.ne + if + local.get $6 + local.get $3 + local.get $4 i32.const 2 i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 i32.add - local.set $11 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 + local.get $4 i32.sub - local.tee $14 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 + i32.const 2 + i32.shl + memory.copy + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + i32.sub + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/array/Array#toString (param $0 i32) (result 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.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 31 - local.get $14 - local.get $14 - i32.const 31 - i32.ge_s - select - local.tee $5 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $1 - loop $while-continue|2 - local.get $5 - local.get $14 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$740 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - local.get $5 - i32.const 1 + i32.const 8 i32.add - local.tee $4 - local.get $14 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 - i32.sub - i32.const 1 + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $8 - i32.const 32 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $0 - local.get $4 - local.get $14 - local.get $4 - i32.const 31 + local.get $1 + i32.const 1 + i32.shl i32.add - local.tee $3 - local.get $3 - local.get $14 - i32.gt_s - select - local.tee $6 - local.get $8 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $1 - local.get $4 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $14 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $10 - i64.div_u - local.get $4 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $3 - loop $for-loop|3 local.get $3 - local.get $7 - i32.lt_u + local.get $5 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $7 - i32.const 2 + local.get $0 + local.get $1 + i32.const 1 i32.shl - local.tee $9 - local.get $13 i32.add - local.tee $8 - i32.load - local.tee $15 - i32.const -1 - i32.ne - if - local.get $9 - local.get $12 - i32.add - i32.load - i32.const 1 - i32.add - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - local.get $15 - local.get $1 - local.get $5 - local.get $11 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $8 - i32.const -1 - i32.store - local.get $15 - local.set $1 - end - local.get $7 + i32.const 11856 + local.get $4 i32.const 1 - i32.sub - local.set $7 - br $for-loop|3 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 end - end - local.get $3 - i32.const 2 - i32.shl - local.tee $7 - local.get $13 - i32.add - local.get $1 - i32.store - local.get $7 - local.get $12 - i32.add - local.get $5 - i32.store - local.get $4 - local.set $1 - local.get $6 - local.set $5 - local.get $3 - local.set $7 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $7 - if - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $13 - i32.add - i32.load - local.tee $3 - i32.const -1 - i32.ne - if - local.get $1 - local.get $12 - i32.add - i32.load + local.get $3 i32.const 1 i32.add - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - local.get $3 - local.get $1 - local.get $14 - local.get $11 - local.get $2 - call $~lib/util/sort/mergeRuns + local.set $3 + br $for-loop|0 end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $for-loop|4 end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $11 - call $~lib/rt/tlsf/__free - local.get $13 - call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 24 + 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 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#unshift (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.tee $3 + i32.const 4 + i32.add + local.get $3 + local.get $2 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + memory.copy + local.get $3 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer @@ -14323,14 +12895,15 @@ local.get $1 i32.store local.get $1 - call $~lib/util/sort/SORT + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $start:std/array~anonymous|52 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14349,31 +12922,40 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 0 - call $~lib/array/Array#__get - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.sub + local.get $2 + call $~lib/array/Array#lastIndexOf global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) + (func $~lib/array/Array#sort@varargs (param $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 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -14385,117 +12967,60 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - block $__inlined_func$std/array/isSorted<~lib/array/Array>$660 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - call $~lib/array/Array#sort - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - local.get $1 - local.set $0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 1 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/array/Array#get:length - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $1 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $5 - local.get $1 - call $~lib/array/Array#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $2 - local.get $3 - local.get $0 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/array/Array>$660 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + i32.const 0 + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange end + unreachable end + i32.const 10256 + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1080 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 10256 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + 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.add global.set $~lib/memory/__stack_pointer return @@ -14507,14 +13032,9 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14529,176 +13049,176 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - local.get $0 - local.get $1 - i32.eq - i32.or - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + i32.sub + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|5 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 i32.const 1 - i32.shr_u - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u - local.tee $5 - local.get $4 - i32.or - i32.eqz - br_if $folding-inner0 - local.get $4 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - local.get $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $4 - local.get $5 - local.get $4 - local.get $5 - i32.lt_s - select - local.tee $2 - i32.const 4 - i32.ge_u - if (result i32) - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $0 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $2 - local.tee $3 - i32.const 1 - i32.sub - local.set $2 - local.get $3 - if - local.get $0 - i32.load16_u - local.tee $3 - local.get $1 - i32.load16_u - local.tee $6 - i32.ne - if - local.get $3 - local.get $6 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - local.get $5 - i32.sub - local.get $0 - select - return + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 100 + i32.eq + ) + (func $start:std/array~anonymous|49 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $start:std/array~anonymous|40 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 i32.add + ) + (func $start:std/array~anonymous|38 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 1 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.add ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $start:std/array~anonymous|37 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 1 + local.get $1 + i32.const 100 + i32.gt_s + local.get $0 + select + ) + (func $start:std/array~anonymous|36 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + i32.const 1 + local.get $1 + i32.const 2 + i32.gt_s + local.get $0 + select + ) + (func $start:std/array~anonymous|20 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + ) + (func $start:std/array~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.eq + ) + (func $start:std/array~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.eqz + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/array + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14713,960 +13233,1635 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 11568 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 + local.get $4 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $3 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + i32.const 0 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $5 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=12 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=4 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 + i32.shl + memory.copy + local.get $4 + local.get $7 + i32.add + local.set $4 + end + local.get $1 + if + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $4 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 local.get $0 - local.get $1 - i32.eq if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.store offset=8 + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add local.get $0 - i32.store local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - block $__inlined_func$~lib/util/string/compareImpl$1 (result i32) - local.get $2 - i32.const 4 - i32.ge_u - if (result i32) - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 + i32.const -2 + i32.and + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return end + local.get $7 i32.eqz if - loop $do-loop|0 - local.get $0 - i64.load - local.get $1 - i64.load - i64.eq + local.get $0 + i64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64$485 + local.get $3 + i64.eqz if - local.get $0 - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $0 + global.set $~lib/memory/__stack_pointer + i32.const 7712 + local.set $1 + br $__inlined_func$~lib/util/number/utoa64$485 + end + local.get $3 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.wrap_i64 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $3 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $3 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $3 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $3 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $3 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $3 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $0 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + local.get $3 + local.get $0 + call $~lib/util/number/utoa64_dec_lut end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end + br $folding-inner1 end - loop $while-continue|1 - local.get $2 - local.tee $3 - i32.const 1 - i32.sub - local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 20 + i32.add + local.get $7 + i32.mul + i32.const 20 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add local.get $0 - i32.load16_u - local.tee $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 local.get $1 - i32.load16_u - local.tee $4 - i32.ne if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl$1 + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 end - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $1 - i32.const 2 + local.get $4 + i32.const 1 i32.add - local.set $1 - br $while-continue|1 + local.set $4 + br $for-loop|0 end end - i32.const 0 + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/string/String#substring + local.set $1 + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$736 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $1 - i32.const 20 + i32.const 1 i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return + end + local.get $7 i32.eqz if + local.get $0 + f64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 12320 + local.set $0 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + i32.const 12352 + local.set $0 + local.get $3 + local.get $3 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 12384 + i32.const 12432 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12464 + local.get $3 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 12464 + local.get $1 + memory.copy + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $0 - br $__inlined_func$~lib/string/String#concat$736 + br $folding-inner1 end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 12288 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12284 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 28 + i32.add + local.get $7 + i32.mul + i32.const 28 + i32.add + local.tee $5 + i32.const 1 + i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.store offset=4 - local.get $0 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $1 + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 12288 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $6 local.get $2 - local.get $3 - memory.copy + i32.const 1 + i32.shl + i32.add local.get $0 - local.get $3 + local.get $7 + i32.const 3 + i32.shl i32.add - local.get $1 - local.get $4 - memory.copy + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.tee $0 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner1 + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if i32.const 48992 i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - i32.const 1 - i32.shl - local.set $3 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.ge_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $3 - i32.sub - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $3 - i32.eqz - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $3 - i32.add - local.get $2 - memory.copy + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $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 i64) + (local $13 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $2 + local.get $1 + local.get $1 + local.get $2 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $2 + local.get $3 + select + local.tee $1 + local.get $4 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.set $2 + local.get $0 + local.get $4 + local.get $1 + local.get $2 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $2 + local.get $1 + local.get $1 + local.get $2 + i32.const 10848 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + select + i32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $3 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $4 + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + i32.add + local.set $10 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $9 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 10848 i32.store local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.const 0 local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 + local.tee $8 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$738 + if + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store local.get $0 - i32.const 1 - i32.sub - local.tee $7 i32.const 0 + i32.const 31 + local.get $8 + local.get $8 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + loop $while-continue|2 + local.get $4 + local.get $8 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 10848 + i32.store + local.get $0 + local.get $4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$738 - end - local.get $7 - i32.eqz - if - local.get $6 - i32.load - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.tee $5 + local.get $8 + call $~lib/util/sort/extendRunRight + local.tee $3 + local.get $5 + i32.sub + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$738 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 11 - i32.add - local.get $7 - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $7 + local.tee $6 + i32.const 32 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store local.get $0 - local.get $2 - i32.const 1 - i32.shl + local.get $5 + local.get $8 + local.get $5 + i32.const 31 i32.add + local.tee $3 + local.get $3 + local.get $8 + i32.gt_s + select + local.tee $3 local.get $6 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $5 + call $~lib/util/sort/insertionSort + end + local.get $2 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $3 + local.get $5 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $6 + loop $for-loop|3 + local.get $1 + local.get $6 + i32.gt_u if - local.get $0 - local.get $2 - i32.const 1 + local.get $1 + i32.const 2 i32.shl + local.tee $13 + local.get $9 i32.add + local.tee $14 + i32.load + local.tee $7 + i32.const -1 + i32.ne + if + local.get $10 + local.get $13 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store + local.get $0 + local.get $7 + local.get $2 + local.get $4 + local.get $11 + call $~lib/util/sort/mergeRuns + local.get $14 + i32.const -1 + i32.store + local.get $7 + local.set $2 + end local.get $1 - local.get $5 i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 + i32.sub + local.set $1 + br $for-loop|3 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 end - end - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $1 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 + i32.const 2 + i32.shl + local.tee $1 + local.get $9 + i32.add + local.get $2 i32.store - local.get $0 local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $10 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$738 + local.get $4 + i32.store + local.get $5 + local.set $2 + local.get $3 + local.set $4 + local.get $6 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + local.get $9 + i32.add + i32.load + local.tee $3 + i32.const -1 + i32.ne + if + local.get $2 + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store + local.get $0 + local.get $3 + local.get $2 + local.get $8 + local.get $11 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$739 - local.get $0 - i32.const 1 - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$739 - end - local.get $7 - i32.eqz - if - local.get $6 - i32.load - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$739 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 48 + i32.le_s + if local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - local.get $7 - i32.mul - i32.const 10 - i32.add - local.tee $3 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $7 - i32.lt_s - if + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $6 + i32.load + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $4 + local.get $4 + local.get $3 local.get $2 - i32.add - local.set $2 - local.get $5 - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $1 + select + i32.store + global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $1 - local.get $3 - i32.lt_s - if + local.get $3 + local.get $1 + select + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $4 + local.get $4 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $1 + select + i32.store offset=4 + local.get $0 + local.get $4 + local.get $3 + local.get $1 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $3 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + i32.const 2 + global.set $~argumentsLength local.get $0 + local.get $3 + local.get $4 + local.get $4 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $1 + select i32.store local.get $0 + local.get $4 + local.get $3 local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$739 + select + i32.store offset=4 + br $folding-inner0 end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $7 i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $5 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + i32.shl + local.set $3 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $4 + global.get $~lib/rt/tlsf/ROOT + local.get $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + i32.add + local.set $12 + loop $for-loop|1 + local.get $5 local.get $7 - i32.eqz + i32.gt_u if - local.get $0 - f64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $13 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.const -1 i32.store - i32.const 12320 - local.set $0 - block $~lib/util/number/dtoa_impl|inlined.0 - local.get $3 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.ne - if - i32.const 12352 - local.set $0 - local.get $3 - local.get $3 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 12384 - i32.const 12432 - local.get $3 - f64.const 0 - f64.lt - select - local.set $0 - br $~lib/util/number/dtoa_impl|inlined.0 - end - i32.const 12464 - local.get $3 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 12464 - local.get $1 - memory.copy - end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $14 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.const 31 + local.get $14 + local.get $14 + i32.const 31 + i32.ge_s + select + local.tee $5 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $7 + i32.const 0 + local.set $1 + loop $while-continue|2 + local.get $5 + local.get $14 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.store offset=8 + local.get $0 + local.get $5 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 12288 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12284 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 28 - i32.add - local.get $7 - i32.mul - i32.const 28 - i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 + local.tee $4 + local.get $14 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $6 local.get $4 - local.get $7 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 32 i32.lt_s if - local.get $6 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 1 - i32.shl - i32.add + i32.store offset=8 local.get $0 local.get $4 - i32.const 3 - i32.shl + local.get $14 + local.get $4 + i32.const 31 i32.add - f64.load - call $~lib/util/number/dtoa_buffered + local.tee $3 + local.get $3 + local.get $14 + i32.gt_s + select + local.tee $6 + local.get $8 local.get $2 - i32.add - local.set $2 - local.get $1 + call $~lib/util/sort/insertionSort + end + local.get $1 + local.get $4 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $14 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $10 + i64.div_u + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $3 + loop $for-loop|3 + local.get $3 + local.get $7 + i32.lt_u if - local.get $6 - local.get $2 - i32.const 1 + local.get $7 + i32.const 2 i32.shl + local.tee $9 + local.get $13 i32.add - i32.const 12288 - local.get $1 + local.tee $8 + i32.load + local.tee $15 + i32.const -1 + i32.ne + if + local.get $9 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + local.get $15 + local.get $1 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $8 + i32.const -1 + i32.store + local.get $15 + local.set $1 + end + local.get $7 i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.set $2 + i32.sub + local.set $7 + br $for-loop|3 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 end + local.get $3 + i32.const 2 + i32.shl + local.tee $7 + local.get $13 + i32.add + local.get $1 + i32.store + local.get $7 + local.get $12 + i32.add + local.get $5 + i32.store + local.get $4 + local.set $1 + local.get $6 + local.set $5 + local.get $3 + local.set $7 + br $while-continue|2 end - local.get $5 - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 + end + loop $for-loop|4 local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner1 + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $13 + i32.add + i32.load + local.tee $3 + i32.const -1 + i32.ne + if + local.get $1 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + local.get $3 + local.get $1 + local.get $14 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $11 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15681,204 +14876,426 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $5 i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 11568 - local.get $0 - select - return - end - loop $for-loop|0 + i32.store + block $folding-inner0 local.get $1 - local.get $4 - i32.gt_s + i32.const 48 + i32.le_s if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store offset=4 - local.get $6 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store local.get $3 - local.get $6 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u i32.add - local.set $3 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - i32.const 0 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $5 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $5 + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 i32.lt_s if global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $7 - i32.store offset=4 - local.get $7 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 + local.get $2 + i32.store + local.get $0 local.get $4 i32.const 1 - i32.shl i32.add - local.get $7 - local.get $7 - i32.const 20 + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u + i32.add local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 i32.const 1 - i32.shl - memory.copy - local.get $4 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 end + end + loop $for-loop|4 local.get $1 if - local.get $6 - local.get $4 - i32.const 1 + local.get $1 + i32.const 2 i32.shl + local.tee $3 + local.get $10 i32.add - local.get $2 + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end local.get $1 i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $4 + i32.sub + local.set $1 + br $for-loop|4 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - if + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $6 - local.get $4 - i32.const 1 - i32.shl + i32.const 4 i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 ) - (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) + (local $16 f64) + (local $17 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -15897,223 +15314,418 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/string/joinStringArray - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#join (param $0 i32) (result i32) - (local $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 block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $16 + local.get $0 + f64.load offset=8 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $16 + local.get $16 + local.get $17 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + f64.load offset=16 + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $16 + local.get $17 + local.get $1 + select + local.tee $16 + local.get $8 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.gt_s + local.set $1 + local.get $0 + local.get $8 + local.get $16 + local.get $1 + select + f64.store offset=8 + local.get $0 + local.get $16 + local.get $8 + local.get $1 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $8 + local.get $0 + f64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $8 + local.get $8 + local.get $16 + i32.const 10544 + i32.load + call_indirect (type $5) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + local.get $8 + local.get $16 + local.get $1 + select + f64.store offset=8 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $3 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + i32.shl local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $4 + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $10 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11856 + i32.const 10544 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray$4 (result 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 16192 - i32.lt_s - br_if $folding-inner0 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + call $~lib/util/sort/extendRunRight + local.tee $3 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + i32.const 10544 + i32.store local.get $0 - i32.const 1 - i32.sub - local.tee $2 i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $3 + local.get $1 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $2 + loop $while-continue|2 + local.get $3 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray$4 - end - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load - local.tee $0 + i32.const 10544 i32.store local.get $0 - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 13632 - else - i32.const 11568 - end - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $3 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray$4 - end - i32.const 11568 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $2 + local.tee $5 + local.get $9 + call $~lib/util/sort/extendRunRight + local.tee $4 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $6 + i32.const 32 i32.lt_s if global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store + local.get $0 local.get $5 - local.get $1 - i32.const 2 - i32.shl + local.get $9 + local.get $5 + i32.const 31 i32.add - i32.load - local.tee $3 - i32.store - local.get $3 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 13632 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 13632 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end + local.tee $4 local.get $4 + local.get $9 + i32.gt_s + select + local.tee $4 + local.get $6 + call $~lib/util/sort/insertionSort + end + local.get $2 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $4 + local.get $5 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $6 + loop $for-loop|3 + local.get $1 + local.get $6 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 11856 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $7 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store + local.get $0 + local.get $7 + local.get $2 + local.get $3 + local.get $12 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $7 + local.set $2 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 end - local.get $1 + end + local.get $6 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $2 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $5 + local.set $2 + local.get $4 + local.set $3 + local.get $6 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + local.get $10 + i32.add + i32.load + local.tee $3 + i32.const -1 + i32.ne + if + local.get $2 + local.get $11 + i32.add + i32.load i32.const 1 i32.add - local.set $1 - br $for-loop|0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store + local.get $0 + local.get $3 + local.get $2 + local.get $9 + local.get $12 + call $~lib/util/sort/mergeRuns end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 13632 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 13632 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i32) + (local $17 f32) + (local $18 f32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16132,519 +15744,1380 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 11856 - call $~lib/array/Array#join - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#toString (param $0 i32) (result 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.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $9 + local.get $0 + f32.load offset=4 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $6) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + f32.load offset=8 + local.set $18 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $18 + local.get $9 + local.get $17 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $18 + local.get $2 + i32.load + call_indirect (type $6) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store offset=4 + local.get $0 + local.get $9 + local.get $18 + local.get $1 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $9 + local.get $0 + f32.load offset=4 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $6) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + f32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $11 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 + i32.add + local.set $13 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 0 + local.get $1 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 + local.tee $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$740 + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $0 - i32.const 1 - i32.sub - local.tee $6 i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$740 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$740 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $0 - local.get $1 - i32.const 1 - i32.shl + local.get $6 + local.get $10 + local.get $6 + i32.const 31 i32.add - local.get $3 + local.tee $5 local.get $5 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $14 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $14 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 local.get $1 - i32.add - local.set $1 - local.get $4 + local.get $7 + i32.gt_u if - local.get $0 local.get $1 - i32.const 1 + i32.const 2 i32.shl + local.tee $15 + local.get $11 i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy + local.tee $16 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $15 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $16 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end local.get $1 - local.get $4 - i32.add + i32.const 1 + i32.sub local.set $1 + br $for-loop|3 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered + end + loop $for-loop|4 local.get $1 - i32.add - local.tee $1 - local.get $2 - i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$740 + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer end + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free 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.add - global.set $~lib/memory/__stack_pointer - local.get $0 return end - i32.const 48992 - i32.const 49040 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $2 + i64.xor + local.tee $2 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $3 + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 31 + i32.shr_s i32.const 1 + i32.shr_u + local.get $2 + i32.xor + local.tee $2 + local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_s i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s + i32.sub ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 i32.sub - local.tee $7 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - return - end - local.get $7 - i32.eqz - if + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) local.get $0 - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 i32.store - block $__inlined_func$~lib/util/number/utoa64$485 + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 local.get $3 - i64.eqz + i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $2 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7712 - local.set $1 - br $__inlined_func$~lib/util/number/utoa64$485 + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 local.get $3 - i64.const 4294967295 - i64.le_u + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.wrap_i64 - local.tee $0 - i32.const 100000 + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 i32.lt_u if (result i32) local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end + i32.const 10 + i32.ge_u + i32.const 1 + i32.add else local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add end - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) local.get $0 - local.get $2 - call $~lib/util/number/utoa32_dec_lut + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end else - global.get $~lib/memory/__stack_pointer - local.get $3 - i64.const 1000000000000000 - i64.lt_u + local.get $0 + i32.const 10000000 + i32.lt_u if (result i32) - local.get $3 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $3 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $3 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $3 - i64.const 10000000000000 - i64.ge_u - i32.add - end + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add else - local.get $3 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 + end + local.get $1 + i32.const 2 + i32.add + end + end + end + ) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 + local.get $1 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 + local.get $3 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $12 + i64.const 1 + i64.sub + local.tee $11 + local.get $2 + i64.and + local.set $8 + local.get $2 + local.get $1 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $3 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000 + i32.rem_u + local.set $3 + br $break|1 + end local.get $3 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + i32.const 1000 + i32.div_u + local.set $6 local.get $3 - i64.const 1000000000000000000 - i64.ge_u - i32.add + i32.const 1000 + i32.rem_u + local.set $3 + br $break|1 end + local.get $3 + i32.const 100 + i32.div_u + local.set $6 + local.get $3 + i32.const 100 + i32.rem_u + local.set $3 + br $break|1 end - local.tee $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 local.get $3 - local.get $0 - call $~lib/util/number/utoa64_dec_lut + i32.const 10 + i32.div_u + local.set $6 + local.get $3 + i32.const 10 + i32.rem_u + local.set $3 + br $break|1 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + local.set $6 + i32.const 0 + local.set $3 + br $break|1 end - br $folding-inner1 + i32.const 0 + local.set $6 + end + local.get $5 + local.get $6 + i32.or + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 20 - i32.add local.get $7 - i32.mul - i32.const 20 - i32.add - local.tee $5 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 - local.get $4 + i32.sub + local.set $7 + local.get $4 + local.get $3 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + local.tee $2 + i64.shl + local.get $8 + i64.add + local.tee $1 + i64.ge_u + if + global.get $~lib/util/number/_K local.get $7 - i32.lt_s - if - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 13392 + i32.add + i64.load32_u + local.get $2 + i64.shl + local.set $2 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $1 + local.get $9 + i64.lt_u local.get $4 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 local.get $1 - if - local.get $6 + i64.sub + local.get $2 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $1 local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 11856 + i64.add + local.tee $8 + i64.gt_u + local.get $9 local.get $1 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 i32.const 1 - i32.shl - memory.copy + i32.sub + local.set $7 local.get $1 local.get $2 - i32.add - local.set $2 + i64.add + local.set $1 + br $while-continue|3 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + return end + br $while-continue|0 + end + end + loop $while-continue|4 + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $8 + i64.const 10 + i64.mul + local.tee $1 + local.get $10 + i64.extend_i32_s + i64.shr_u + local.tee $2 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 local.get $5 - local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.and + local.tee $8 + local.get $4 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 13392 + i32.add + i64.load32_u + i64.mul + local.set $1 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $1 + local.get $8 + i64.gt_u + local.get $4 + local.get $8 + i64.sub + local.get $12 + i64.ge_u + i32.and + if (result i32) + local.get $1 + local.get $8 + local.get $12 + i64.add + local.tee $2 + i64.gt_u + local.get $1 + local.get $8 + i64.sub local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 + local.get $1 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $12 + i64.add + local.set $8 + br $while-continue|6 end + end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + ) + (func $start:std/array~anonymous|54 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1267 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1269 + 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 $0 + ) + (func $start:std/array~anonymous|52 (param $0 i32) (param $1 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|33 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|31 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s + if i32.const 48992 i32.const 49040 i32.const 1 @@ -16653,12 +17126,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.const 2 + i32.ge_s ) - (func $~lib/array/Array<~lib/string/String|null>#toString (param $0 i32) (result i32) + (func $start:std/array~anonymous|30 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/array~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16678,221 +17171,62 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 - i32.const 11856 - call $~lib/array/Array<~lib/string/String|null>#join + local.get $2 + i32.const 100 + call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 100 + i32.eq ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $start:std/array~anonymous|29 (param $0 i32) (param $1 i32) (param $2 i32) (result 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 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$743 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$743 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$743 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$743 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/array/Array#toString (param $0 i32) (result i32) + (func $start:std/array~anonymous|28 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + global.get $std/array/i + local.get $0 + i32.add + global.set $std/array/i + local.get $0 + ) + (func $start:std/array~anonymous|27 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -16912,247 +17246,158 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $std/array/i local.get $0 - i32.const 11856 - call $~lib/array/Array#join + i32.add + global.set $std/array/i global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $start:std/array~anonymous|26 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + local.get $0 + f32.convert_i32_s + ) + (func $start:std/array~anonymous|25 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + call $~lib/util/number/itoa32 + ) + (func $start:std/array~anonymous|24 (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 (result 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 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - local.get $0 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.eqz + if + loop $for-loop|0 + local.get $3 + i32.const 4 i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 + local.set $3 + br $for-loop|0 end - local.get $4 - i32.eqz + end + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load - local.tee $0 + local.get $2 i32.store - local.get $0 - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/array/Array#toString - else - i32.const 11568 - end - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $2 + local.get $3 + i32.const 100 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$5 - end - i32.const 11568 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store - local.get $6 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - call $~lib/array/Array#toString - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end - local.get $2 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 11856 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end + call $~lib/array/Array#push + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $3 + loop $for-loop|2 + local.get $3 + i32.const 100 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - call $~lib/array/Array#toString - local.set $1 + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + i32.const 0 + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 100 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 + local.get $2 + i32.store + local.get $2 + local.get $3 + i32.const 200 + i32.add + call $~lib/array/Array#push + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 2 + i32.eq + local.get $0 + i32.const 202 + i32.ne + i32.and + if + i32.const 0 + i32.const 1552 + i32.const 767 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $start:std/array~anonymous|23 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17167,129 +17412,96 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - local.get $0 - i32.load offset=4 - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $std/array/i local.get $0 - i32.load offset=12 - local.set $4 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 - if (result i32) - local.get $5 - i32.load offset=12 - else - i32.const 0 - end - local.get $2 - i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i32.add + global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|21 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=8 - local.get $0 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=4 - local.get $0 - local.get $6 i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $std/array/i local.get $0 - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 - if - local.get $1 - local.get $6 - i32.add - local.get $5 - i32.load offset=4 - local.get $5 - i32.load offset=12 - i32.const 2 - i32.shl - local.tee $5 - memory.copy - local.get $1 - local.get $5 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end + i32.add + global.set $std/array/i + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|19 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 + i32.const 3 + i32.gt_s ) - (func $start:std/array~anonymous|54 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|18 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|17 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -17309,63 +17521,125 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.ne + i32.const 10 + i32.gt_s + ) + (func $start:std/array~anonymous|16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.lt_s + ) + (func $start:std/array~anonymous|15 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.ge_s + ) + (func $start:std/array~anonymous|14 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s if - i32.const 0 - i32.const 1552 - i32.const 1267 - i32.const 5 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - local.get $0 - i32.const 3 - call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 + call $~lib/array/Array#pop + drop + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#get:length - i32.const 2 - i32.ne + i32.const 3 + i32.lt_s + ) + (func $start:std/array~anonymous|13 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 10 + i32.lt_s + ) + (func $start:std/array~anonymous|12 (param $0 i32) (param $1 i32) (param $2 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 16192 + i32.lt_s if - i32.const 0 - i32.const 1552 - i32.const 1269 - i32.const 5 + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 100 + call $~lib/array/Array#push + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 + i32.const 10 + i32.lt_s + ) + (func $start:std/array~anonymous|11 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.le_s + ) + (func $start:std/array~anonymous|10 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 0 + i32.ge_s ) (func $start:std/array (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) - (local $5 i64) - (local $6 f64) - (local $7 f32) + (local $5 f64) + (local $6 f32) + (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 444 i32.sub @@ -17416,9 +17690,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17435,11 +17709,11 @@ i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -17455,87 +17729,87 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=12 - local.get $2 - local.get $9 + local.get $1 + local.get $8 i32.store - local.get $2 - local.get $9 + local.get $1 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - local.get $9 + local.get $1 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -17551,30 +17825,30 @@ i32.const 7 i32.const 1696 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1728 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17586,28 +17860,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1760 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17619,27 +17893,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1792 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17651,28 +17925,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1824 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17684,27 +17958,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1856 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17716,28 +17990,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17754,30 +18028,30 @@ i32.const 8 i32.const 1920 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 1968 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17789,28 +18063,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2016 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17822,27 +18096,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2064 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17854,28 +18128,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2112 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17887,27 +18161,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2160 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17919,28 +18193,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2208 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17957,30 +18231,30 @@ i32.const 9 i32.const 2256 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2304 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -17992,28 +18266,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -18025,27 +18299,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2400 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -18057,28 +18331,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2448 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -18090,27 +18364,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2496 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -18122,28 +18396,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2544 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -18155,28 +18429,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 f32.const -0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2592 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $std/array/isArraysEqual i32.eqz if @@ -18189,9 +18463,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -18203,9 +18477,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18219,16 +18493,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 42 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -18243,9 +18517,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18259,9 +18533,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18275,9 +18549,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -18291,9 +18565,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -18305,9 +18579,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18321,16 +18595,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18344,9 +18618,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18360,9 +18634,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18377,16 +18651,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -18400,9 +18674,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18416,9 +18690,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18433,9 +18707,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18450,16 +18724,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 45 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18473,9 +18747,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18489,9 +18763,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18506,9 +18780,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18523,9 +18797,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18545,22 +18819,22 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $7 i32.store offset=20 - local.get $8 + local.get $7 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $8 + local.get $7 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18573,14 +18847,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $8 + local.get $7 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18588,9 +18862,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 call $~lib/array/Array#get:length if i32.const 0 @@ -18606,12 +18880,12 @@ i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -18625,9 +18899,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -18641,9 +18915,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -18657,9 +18931,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -18675,26 +18949,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $2 + local.tee $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $7 + local.get $1 call $~lib/array/Array#concat - local.tee $8 + local.tee $7 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $9 + local.tee $8 i32.store - local.get $9 + local.get $8 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18708,9 +18982,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $9 + local.tee $8 i32.store - local.get $9 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18723,9 +18997,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18738,26 +19012,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=8 + local.get $7 local.get $8 - local.get $9 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $9 + local.tee $8 i32.store - local.get $9 + local.get $8 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18770,9 +19044,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18786,9 +19060,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18802,9 +19076,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18818,35 +19092,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 46 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 47 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $7 + local.get $1 call $~lib/array/Array#concat - local.tee $8 + local.tee $7 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $9 + local.tee $8 i32.store - local.get $9 + local.get $8 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18859,9 +19133,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -18874,9 +19148,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -18889,9 +19163,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18905,9 +19179,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18921,9 +19195,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18937,9 +19211,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -18953,9 +19227,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -18969,15 +19243,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -18995,12 +19269,12 @@ i32.const 4 i32.const 2768 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -19011,22 +19285,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $8 + local.get $1 + local.get $7 call $~lib/array/Array#concat - local.tee $8 + local.tee $7 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19039,9 +19313,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -19057,32 +19331,32 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2848 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19100,32 +19374,32 @@ i32.const 4 i32.const 2896 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 1 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2944 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19143,32 +19417,32 @@ i32.const 4 i32.const 2992 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3040 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $2 - local.get $8 + local.get $7 + i32.store offset=8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19186,32 +19460,32 @@ i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 2 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3136 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19229,31 +19503,31 @@ i32.const 4 i32.const 3184 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 - local.get $2 + local.get $1 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3232 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19271,31 +19545,31 @@ i32.const 4 i32.const 3280 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 - local.get $2 + local.get $1 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3328 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19313,31 +19587,31 @@ i32.const 4 i32.const 3376 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 - local.get $2 + local.get $1 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3424 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19355,32 +19629,32 @@ i32.const 4 i32.const 3472 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 0 i32.const -2 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3520 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19398,31 +19672,31 @@ i32.const 4 i32.const 3568 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 - local.get $2 + local.get $1 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3616 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19440,31 +19714,31 @@ i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 - local.get $2 + local.get $1 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3712 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19482,31 +19756,31 @@ i32.const 4 i32.const 3760 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 - local.get $2 + local.get $1 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3808 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19524,32 +19798,32 @@ i32.const 4 i32.const 3856 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const -4 i32.const -3 call $~lib/array/Array#copyWithin@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3904 call $~lib/rt/__newArray - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19563,16 +19837,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 42 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19586,9 +19860,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19602,9 +19876,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -19619,9 +19893,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -19636,9 +19910,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -19653,9 +19927,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -19670,16 +19944,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 41 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19693,9 +19967,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19709,9 +19983,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -19726,9 +20000,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -19743,9 +20017,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -19760,9 +20034,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -19777,9 +20051,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -19794,7 +20068,7 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19808,11 +20082,11 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=12 - local.tee $8 + local.tee $7 i32.const 0 i32.le_s if @@ -19824,34 +20098,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 - local.tee $9 + local.tee $8 i32.load - local.get $9 - local.get $9 + local.get $8 + local.get $8 i32.const 4 i32.add - local.get $8 + local.get $7 i32.const 1 i32.sub - local.tee $8 + local.tee $7 i32.const 2 i32.shl - local.tee $11 + local.tee $10 memory.copy - local.get $9 - local.get $11 + local.get $8 + local.get $10 i32.add i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19871,9 +20145,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19887,9 +20161,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19903,9 +20177,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -19920,9 +20194,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -19937,9 +20211,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -19954,9 +20228,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -19971,9 +20245,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -19989,9 +20263,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20005,9 +20279,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20021,9 +20295,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20038,9 +20312,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20055,9 +20329,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20076,33 +20350,33 @@ i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#slice@varargs - local.tee $8 + local.tee $7 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4000 call $~lib/rt/__newArray - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=8 + local.get $7 local.get $8 - local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20115,29 +20389,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $8 + local.tee $7 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=8 + local.get $7 local.get $8 - local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20150,29 +20424,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $8 + local.tee $7 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store i32.const 4 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=8 + local.get $7 local.get $8 - local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20185,24 +20459,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $8 + local.tee $7 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $8 - local.get $2 + local.get $7 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20215,30 +20489,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const -2 call $~lib/array/Array#slice@varargs - local.tee $8 + local.tee $7 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4112 call $~lib/rt/__newArray - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=8 + local.get $7 local.get $8 - local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20251,29 +20525,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $8 + local.tee $7 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=8 + local.get $7 local.get $8 - local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20286,29 +20560,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $8 + local.tee $7 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=8 + local.get $7 local.get $8 - local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20321,17 +20595,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 call $~lib/array/Array#get:length if i32.const 0 @@ -20342,18 +20616,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.const 10 call $~lib/array/Array#slice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -20365,7 +20639,7 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20379,54 +20653,54 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.gt_u if - local.get $2 + local.get $1 i32.const 1 i32.shr_u - local.set $9 - local.get $2 + local.set $8 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $1 loop $while-continue|0 local.get $4 - local.get $9 + local.get $8 i32.lt_u if - local.get $8 + local.get $7 local.get $4 i32.const 2 i32.shl i32.add - local.tee $10 + local.tee $9 i32.load - local.set $11 - local.get $10 - local.get $8 - local.get $2 + local.set $10 + local.get $9 + local.get $7 + local.get $1 local.get $4 i32.sub i32.const 2 i32.shl i32.add - local.tee $10 + local.tee $9 i32.load i32.store + local.get $9 local.get $10 - local.get $11 i32.store local.get $4 i32.const 1 @@ -20442,9 +20716,9 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20458,9 +20732,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20474,9 +20748,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -20491,9 +20765,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20508,9 +20782,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -20525,16 +20799,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer @@ -20549,12 +20823,12 @@ i32.store local.get $4 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $4 loop $for-loop|0 @@ -20563,15 +20837,15 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20599,20 +20873,20 @@ i32.const 7 i32.const 4240 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=64 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $4 loop $for-loop|1 @@ -20621,15 +20895,15 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20657,20 +20931,20 @@ i32.const 7 i32.const 4272 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=68 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $4 loop $for-loop|2 @@ -20679,15 +20953,15 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20715,20 +20989,20 @@ i32.const 11 i32.const 4320 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=72 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $4 loop $for-loop|3 @@ -20737,15 +21011,15 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20773,20 +21047,20 @@ i32.const 11 i32.const 4368 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=76 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $4 loop $for-loop|4 @@ -20795,15 +21069,15 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20831,20 +21105,20 @@ i32.const 11 i32.const 4416 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#reverse - local.tee $2 + local.tee $1 i32.store offset=80 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $4 loop $for-loop|5 @@ -20853,15 +21127,15 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21086,9 +21360,9 @@ i32.const 9 i32.const 4464 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 local.set $0 @@ -21104,10 +21378,10 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store block $__inlined_func$~lib/array/Array#indexOf$714 - local.get $2 + local.get $1 i32.load offset=12 local.tee $4 i32.eqz @@ -21125,17 +21399,17 @@ br $__inlined_func$~lib/array/Array#indexOf$714 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 - local.set $2 + local.set $1 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $2 + local.get $1 local.get $0 i32.const 2 i32.shl @@ -21180,9 +21454,9 @@ i32.const 12 i32.const 4496 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 local.set $0 @@ -21198,10 +21472,10 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store block $__inlined_func$~lib/array/Array#indexOf$715 - local.get $2 + local.get $1 i32.load offset=12 local.tee $4 i32.eqz @@ -21219,17 +21493,17 @@ br $__inlined_func$~lib/array/Array#indexOf$715 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 - local.set $2 + local.set $1 loop $while-continue|07 local.get $0 local.get $4 i32.lt_s if - local.get $2 + local.get $1 local.get $0 i32.const 3 i32.shl @@ -21553,33 +21827,33 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 2 + i32.const 9 + i32.const 4576 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store block $__inlined_func$~lib/array/Array#includes$716 (result i32) - i32.const 1 - i32.const 2 - i32.const 9 - i32.const 4576 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 + local.get $1 i32.load offset=12 local.tee $4 i32.eqz @@ -21596,24 +21870,24 @@ br $__inlined_func$~lib/array/Array#includes$716 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 - local.set $2 + local.set $1 loop $while-continue|09 local.get $0 local.get $4 i32.lt_s if - local.get $2 + local.get $1 local.get $0 i32.const 2 i32.shl i32.add f32.load - local.tee $7 - local.get $7 + local.tee $6 + local.get $6 f32.ne if global.get $~lib/memory/__stack_pointer @@ -21645,33 +21919,33 @@ call $~lib/builtins/abort unreachable end + i32.const 1 + i32.const 3 + i32.const 12 + i32.const 4608 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store block $__inlined_func$~lib/array/Array#includes$717 (result i32) - i32.const 1 - i32.const 3 - i32.const 12 - i32.const 4608 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 + local.get $1 i32.load offset=12 local.tee $4 i32.eqz @@ -21688,24 +21962,24 @@ br $__inlined_func$~lib/array/Array#includes$717 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 - local.set $2 + local.set $1 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $2 + local.get $1 local.get $0 i32.const 3 i32.shl i32.add f64.load - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 f64.ne if global.get $~lib/memory/__stack_pointer @@ -21828,9 +22102,9 @@ local.get $0 i32.const 0 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 @@ -21841,7 +22115,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -21862,12 +22136,12 @@ i32.const 4 i32.const 4736 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21894,9 +22168,9 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -21907,7 +22181,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -21928,12 +22202,12 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21961,9 +22235,9 @@ local.get $0 i32.const 2 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 3 i32.const 2 @@ -21974,7 +22248,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -21995,12 +22269,12 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22027,9 +22301,9 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 i32.const 2 @@ -22040,7 +22314,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22061,12 +22335,12 @@ i32.const 4 i32.const 5088 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22093,9 +22367,9 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 @@ -22106,7 +22380,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22127,12 +22401,12 @@ i32.const 4 i32.const 5200 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22160,9 +22434,9 @@ local.get $0 i32.const -1 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 @@ -22173,7 +22447,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22194,12 +22468,12 @@ i32.const 4 i32.const 5328 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22227,9 +22501,9 @@ local.get $0 i32.const -2 call $~lib/array/Array#splice@varargs - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 2 i32.const 2 @@ -22240,7 +22514,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22261,12 +22535,12 @@ i32.const 4 i32.const 5456 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22293,9 +22567,9 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 @@ -22306,7 +22580,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22327,12 +22601,12 @@ i32.const 4 i32.const 5568 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22359,9 +22633,9 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 1 i32.const 2 @@ -22372,7 +22646,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22393,12 +22667,12 @@ i32.const 4 i32.const 5696 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22425,9 +22699,9 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -22438,7 +22712,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22459,12 +22733,12 @@ i32.const 4 i32.const 5824 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22491,9 +22765,9 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -22504,7 +22778,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22525,12 +22799,12 @@ i32.const 4 i32.const 5952 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22557,9 +22831,9 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -22570,7 +22844,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22591,12 +22865,12 @@ i32.const 4 i32.const 6080 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22623,9 +22897,9 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -22636,7 +22910,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22657,12 +22931,12 @@ i32.const 4 i32.const 6208 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22689,9 +22963,9 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 0 i32.const 2 @@ -22702,7 +22976,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 - local.get $2 + local.get $1 local.get $4 i32.const 0 call $std/array/isArraysEqual @@ -22723,12 +22997,12 @@ i32.const 4 i32.const 6336 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22755,12 +23029,12 @@ local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $2 + local.tee $1 i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length if i32.const 0 @@ -22790,40 +23064,40 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=100 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#splice local.tee $0 @@ -22888,9 +23162,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -22903,9 +23177,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get local.set $0 @@ -22925,9 +23199,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get local.set $0 @@ -22947,9 +23221,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get local.set $0 @@ -22975,27 +23249,27 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=104 - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 + local.get $1 i32.store offset=108 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23009,9 +23283,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=12 local.tee $4 i32.const 0 @@ -23019,88 +23293,88 @@ i32.const 0 i32.le_s select - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 1 local.get $4 - local.get $8 + local.get $7 i32.sub - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 i32.const 1 i32.gt_s select - local.tee $9 + local.tee $8 i32.const 0 - local.get $9 + local.get $8 i32.const 0 i32.gt_s select - local.tee $9 + local.tee $8 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $10 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store - local.get $10 + local.get $9 i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 - local.tee $11 - local.get $8 + local.tee $10 + local.get $7 i32.const 2 i32.shl i32.add - local.tee $12 - local.get $9 + local.tee $11 + local.get $8 i32.const 2 i32.shl memory.copy + local.get $7 local.get $8 - local.get $9 i32.add - local.tee $8 + local.tee $7 local.get $4 i32.ne if - local.get $12 local.get $11 - local.get $8 + local.get $10 + local.get $7 i32.const 2 i32.shl i32.add local.get $4 - local.get $8 + local.get $7 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 local.get $4 - local.get $9 + local.get $8 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store offset=112 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store - local.get $10 + local.get $9 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -23113,10 +23387,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -23147,9 +23421,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -23162,9 +23436,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get if @@ -23176,10 +23450,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get local.tee $0 @@ -24074,9 +24348,9 @@ if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#pop drop local.get $0 @@ -24117,7 +24391,7 @@ global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 9296 @@ -24137,74 +24411,74 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=12 - local.tee $8 + local.tee $7 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store - local.get $9 + local.get $8 i32.load offset=4 - local.set $10 + local.set $9 i32.const 0 local.set $4 loop $for-loop|012 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $4 - local.get $8 - local.get $2 + local.get $7 + local.get $1 i32.load offset=12 - local.tee $11 - local.get $8 - local.get $11 + local.tee $10 + local.get $7 + local.get $10 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $4 i32.const 2 i32.shl - local.tee $11 - local.get $2 + local.tee $10 + local.get $1 i32.load offset=4 i32.add i32.load - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 3 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $11 local.get $4 - local.get $2 + local.get $1 i32.const 9296 i32.load call_indirect (type $1) - local.tee $12 + local.tee $11 i32.store offset=12 + local.get $9 local.get $10 - local.get $11 i32.add - local.get $12 + local.get $11 i32.store - local.get $9 - local.get $12 + local.get $8 + local.get $11 i32.const 1 call $~lib/rt/itcms/__link local.get $4 @@ -24218,12 +24492,12 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=128 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 9328 @@ -24243,67 +24517,67 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=12 - local.tee $8 + local.tee $7 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store - local.get $9 + local.get $8 i32.load offset=4 - local.set $10 + local.set $9 i32.const 0 local.set $4 loop $for-loop|013 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store local.get $4 - local.get $8 - local.get $2 + local.get $7 + local.get $1 i32.load offset=12 - local.tee $11 - local.get $8 - local.get $11 + local.tee $10 + local.get $7 + local.get $10 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $4 i32.const 2 i32.shl - local.tee $11 - local.get $2 + local.tee $10 + local.get $1 i32.load offset=4 i32.add i32.load - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 3 global.set $~argumentsLength + local.get $9 local.get $10 - local.get $11 i32.add - local.get $12 + local.get $11 local.get $4 - local.get $2 + local.get $1 i32.const 9328 i32.load - call_indirect (type $15) + call_indirect (type $17) f32.store local.get $4 i32.const 1 @@ -24316,12 +24590,12 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store - local.get $9 + local.get $8 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -24334,9 +24608,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store - local.get $9 + local.get $8 i32.const 0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer @@ -25144,26 +25418,26 @@ i64.const -7046029254386353131 call $~lib/bindings/dom/Math.random i64.reinterpret_f64 - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i64.eqz select - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor @@ -25171,22 +25445,22 @@ global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i64.const 33 i64.shr_u i64.xor @@ -25203,243 +25477,243 @@ i32.store offset=140 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 80 i32.store offset=4 local.get $0 i32.const 0 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=148 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 90 i32.store offset=4 local.get $0 i32.const 1 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=152 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 95 i32.store offset=4 local.get $0 i32.const 2 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store offset=4 local.get $0 i32.const 3 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 110 i32.store offset=4 local.get $0 i32.const 4 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=164 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 115 i32.store offset=4 local.get $0 i32.const 5 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=168 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 120 i32.store offset=4 local.get $0 i32.const 6 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=172 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 125 i32.store offset=4 local.get $0 i32.const 7 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=176 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 130 i32.store offset=4 local.get $0 i32.const 8 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=180 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 135 i32.store offset=4 local.get $0 i32.const 9 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=184 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 140 i32.store offset=4 local.get $0 i32.const 10 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=188 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 140 i32.store offset=4 local.get $0 i32.const 11 - local.get $2 + local.get $1 call $~lib/array/Array#__set local.get $0 global.set $std/array/inputStabArr @@ -25453,243 +25727,243 @@ i32.store offset=192 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=196 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 95 i32.store offset=4 local.get $0 i32.const 0 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=200 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 125 i32.store offset=4 local.get $0 i32.const 1 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=204 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 130 i32.store offset=4 local.get $0 i32.const 2 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=208 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 140 i32.store offset=4 local.get $0 i32.const 3 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=212 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 140 i32.store offset=4 local.get $0 i32.const 4 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=216 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 110 i32.store offset=4 local.get $0 i32.const 5 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=220 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 90 i32.store offset=4 local.get $0 i32.const 6 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=224 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 80 i32.store offset=4 local.get $0 i32.const 7 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=228 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store offset=4 local.get $0 i32.const 8 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=232 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 120 i32.store offset=4 local.get $0 i32.const 9 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=236 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 135 i32.store offset=4 local.get $0 i32.const 10 - local.get $2 + local.get $1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $2 + local.tee $1 i32.store offset=240 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 i32.const 115 i32.store offset=4 local.get $0 i32.const 11 - local.get $2 + local.get $1 call $~lib/array/Array#__set local.get $0 global.set $std/array/outputStabArr @@ -25716,12 +25990,12 @@ i32.const 9 i32.const 10288 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -25755,12 +26029,12 @@ i32.const 9 i32.const 10384 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -25777,10 +26051,10 @@ i32.const 12 i32.const 10448 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=252 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 0 global.set $~argumentsLength @@ -25802,7 +26076,7 @@ i32.const 10544 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10544 @@ -25819,14 +26093,14 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=12 global.get $~lib/memory/__stack_pointer i32.const 10544 @@ -25841,20 +26115,20 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 8 i32.const 3 i32.const 12 i32.const 10576 call $~lib/rt/__newArray - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual$7 (result i32) i32.const 0 - local.set $0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25867,48 +26141,48 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $~lib/array/Array#get:length - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store block $folding-inner1 block $folding-inner01 - local.get $4 + local.get $1 call $~lib/array/Array#get:length - local.get $8 + local.get $7 i32.ne br_if $folding-inner01 - local.get $2 - local.get $4 + local.get $0 + local.get $1 i32.eq br_if $folding-inner1 loop $for-loop|02 - local.get $0 - local.get $8 + local.get $4 + local.get $7 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $4 call $~lib/array/Array#__get - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 f64.ne if (result i32) global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store + local.get $1 local.get $4 - local.get $0 call $~lib/array/Array#__get - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 f64.ne else i32.const 0 @@ -25916,20 +26190,20 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $4 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store + local.get $1 local.get $4 - local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 @@ -25938,26 +26212,26 @@ i32.ne br_if $folding-inner01 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $4 call $~lib/array/Array#__get - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store + local.get $1 local.get $4 - local.get $0 call $~lib/array/Array#__get - local.get $6 + local.get $5 f64.ne br_if $folding-inner01 end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|02 end end @@ -26037,12 +26311,12 @@ i32.const 4 i32.const 10752 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26131,12 +26405,12 @@ i32.const 8 i32.const 10880 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -26153,7 +26427,7 @@ i32.const 4 i32.const 10928 call $~lib/rt/__newArray - local.tee $4 + local.tee $1 i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26161,7 +26435,7 @@ i32.const 4 i32.const 10960 call $~lib/rt/__newArray - local.tee $8 + local.tee $4 i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -26169,7 +26443,7 @@ i32.const 4 i32.const 10992 call $~lib/rt/__newArray - local.tee $9 + local.tee $7 i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26177,7 +26451,7 @@ i32.const 4 i32.const 11024 call $~lib/rt/__newArray - local.tee $10 + local.tee $8 i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26185,57 +26459,57 @@ i32.const 4 i32.const 11072 call $~lib/rt/__newArray - local.tee $11 + local.tee $9 i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $10 i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $13 + local.tee $11 i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $14 + local.tee $12 i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $0 + local.tee $13 i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $2 + local.tee $0 i32.store offset=300 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store - local.get $4 + local.get $1 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store - local.get $8 + local.get $4 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 11152 call $~lib/rt/__newArray - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=8 - local.get $8 local.get $4 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26248,24 +26522,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store - local.get $9 + local.get $7 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 11184 call $~lib/rt/__newArray - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=8 - local.get $9 - local.get $4 + local.get $7 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26278,18 +26552,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $8 i32.store - local.get $10 + local.get $8 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 - local.get $10 - local.get $11 + local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26302,18 +26576,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $10 i32.store - local.get $12 + local.get $10 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 - local.get $12 - local.get $11 + local.get $10 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26326,18 +26600,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $11 i32.store - local.get $13 + local.get $11 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 - local.get $13 local.get $11 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26350,18 +26624,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $12 i32.store - local.get $14 + local.get $12 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $12 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 - local.get $14 - local.get $11 + local.get $12 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26374,18 +26648,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $13 i32.store - local.get $0 + local.get $13 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $13 i32.store global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $9 i32.store offset=8 - local.get $0 - local.get $11 + local.get $13 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26398,9 +26672,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer i32.const 24 @@ -26457,10 +26731,10 @@ i32.const 0 i32.le_s select - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $4 - local.get $8 + local.get $7 i32.sub local.tee $4 i32.const 0 @@ -26473,24 +26747,24 @@ i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store - local.get $9 + local.get $8 i32.load offset=4 - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.get $8 + local.get $7 i32.const 2 i32.shl i32.add - local.set $8 + local.set $7 i32.const 0 local.set $0 local.get $4 @@ -26503,16 +26777,16 @@ i32.lt_u if local.get $0 - local.get $10 + local.get $9 i32.add local.get $0 - local.get $8 + local.get $7 i32.add i32.load - local.tee $11 + local.tee $10 i32.store - local.get $9 - local.get $11 + local.get $8 + local.get $10 i32.const 1 call $~lib/rt/itcms/__link local.get $0 @@ -26531,12 +26805,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer i32.const 11216 i32.store offset=4 - local.get $9 + local.get $8 i32.const 11216 call $~lib/array/Array#sort local.tee $0 @@ -26545,15 +26819,15 @@ local.set $4 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length - local.set $2 + local.set $1 loop $for-loop|014 local.get $1 local.get $2 - i32.lt_s + i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer @@ -26561,43 +26835,43 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.tee $8 + local.tee $7 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $9 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#__get - local.tee $9 + local.tee $8 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.load global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store - local.get $9 + local.get $8 i32.load i32.ne if (result i32) i32.const 1 else global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store - local.get $9 + local.get $8 i32.load offset=4 i32.ne end @@ -26606,10 +26880,10 @@ local.set $4 br $for-break0 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|014 end end @@ -26942,9 +27216,9 @@ local.get $2 i32.store i32.const 0 - local.set $0 + local.set $4 loop $for-loop|06 - local.get $0 + local.get $4 i32.const 512 i32.lt_s if @@ -26966,14 +27240,14 @@ i32.const 4 i32.const 31 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 511 - local.get $0 + local.get $4 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -26981,16 +27255,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 local.get $4 + local.get $1 call $~lib/array/Array#__set - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|06 end end @@ -27023,7 +27297,7 @@ i32.const 34 i32.const 11648 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 @@ -27045,16 +27319,46 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 11696 + i32.const 11696 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11696 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11696 + i32.store offset=12 + local.get $0 + i32.const 11696 + call $~lib/array/Array#sort + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 11696 - i32.store offset=8 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -27065,78 +27369,48 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 + i32.const 1 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + call $~lib/array/Array#get:length + local.set $7 block $__inlined_func$std/array/isSorted<~lib/string/String|null>$662 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 11696 - i32.store offset=12 - local.get $0 - i32.const 11696 - call $~lib/array/Array#sort - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11696 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 1 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array#get:length - local.set $8 loop $for-loop|07 - local.get $1 - local.get $8 + local.get $2 + local.get $7 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - local.get $1 + local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=8 local.get $4 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.store offset=4 i32.const 2 global.set $~argumentsLength + local.get $8 local.get $9 - local.get $10 i32.const 11696 i32.load call_indirect (type $0) @@ -27150,10 +27424,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null>$662 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|07 end end @@ -27180,37 +27454,37 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.get $4 i32.ne @@ -27223,7 +27497,7 @@ br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end local.get $0 - local.get $2 + local.get $1 i32.eq if global.get $~lib/memory/__stack_pointer @@ -27234,9 +27508,9 @@ br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|08 - local.get $1 + local.get $2 local.get $4 i32.lt_s if @@ -27244,21 +27518,21 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 local.get $1 + local.get $2 call $~lib/array/Array#__get - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27272,13 +27546,13 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 + local.get $7 local.get $8 - local.get $9 call $~lib/string/String.__eq i32.eqz global.get $~lib/memory/__stack_pointer @@ -27293,10 +27567,10 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|08 end end @@ -27349,34 +27623,34 @@ i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 - local.get $9 + local.get $8 i32.const 0 i32.store - local.get $9 + local.get $8 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 - local.get $9 + local.get $8 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 - local.get $9 + local.get $8 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 - local.get $9 + local.get $8 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -27386,41 +27660,41 @@ local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $9 + local.get $8 local.get $1 i32.store - local.get $9 + local.get $8 local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 - local.get $9 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 - local.get $9 + local.get $8 i32.const 1600 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 - local.get $9 + local.get $8 i32.const 400 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store i32.const 0 local.set $4 @@ -27430,13 +27704,13 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_sat_f64_s - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27457,10 +27731,10 @@ i32.const 11568 i32.store i32.const 0 - local.set $1 + local.set $2 loop $for-loop|00 - local.get $1 - local.get $10 + local.get $2 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -27476,7 +27750,7 @@ f64.mul f64.floor i32.trunc_sat_f64_s - local.set $12 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -27492,7 +27766,7 @@ i32.const 10032 i32.store block $__inlined_func$~lib/string/String#charAt$737 - local.get $12 + local.get $11 i32.const 10028 i32.load i32.const 1 @@ -27504,17 +27778,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $2 + local.set $1 br $__inlined_func$~lib/string/String#charAt$737 end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 - local.get $12 + local.get $1 + local.get $11 i32.const 1 i32.shl i32.const 10032 @@ -27527,17 +27801,17 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $~lib/string/String.__concat local.tee $0 i32.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|00 end end @@ -27548,7 +27822,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $9 + local.get $8 local.get $4 local.get $0 call $~lib/array/Array#__set @@ -27563,10 +27837,10 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=328 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store i32.const 1 global.set $~argumentsLength @@ -27588,12 +27862,12 @@ i32.const 11728 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store offset=8 - local.get $9 + local.get $8 i32.const 11728 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27625,7 +27899,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27636,7 +27910,7 @@ i32.const 11856 i32.store i32.const 0 - local.set $1 + local.set $2 i32.const 0 local.set $4 global.get $~lib/memory/__stack_pointer @@ -27654,7 +27928,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $7 i32.const 0 i32.lt_s if @@ -27663,19 +27937,19 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $2 + local.set $0 br $__inlined_func$~lib/util/string/joinBooleanArray$12 end block $folding-inner07 - local.get $0 + local.get $7 i32.eqz if i32.const 11792 i32.const 11824 - local.get $8 + local.get $1 i32.load8_u select - local.set $2 + local.set $0 br $folding-inner07 end global.get $~lib/memory/__stack_pointer @@ -27686,67 +27960,67 @@ i32.load i32.const 1 i32.shr_u - local.tee $9 + local.tee $8 i32.const 5 i32.add - local.get $0 + local.get $7 i32.mul i32.const 5 i32.add - local.tee $10 + local.tee $9 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store offset=4 loop $for-loop|18 - local.get $0 local.get $4 - i32.gt_s + local.get $7 + i32.lt_s if + local.get $1 local.get $4 - local.get $8 i32.add i32.load8_u - local.tee $11 + local.tee $10 i32.eqz i32.const 4 i32.add - local.set $12 + local.set $11 + local.get $0 local.get $2 - local.get $1 i32.const 1 i32.shl i32.add i32.const 11792 i32.const 11824 - local.get $11 + local.get $10 select - local.get $12 + local.get $11 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $12 + local.get $2 + local.get $11 i32.add - local.set $1 - local.get $9 + local.set $2 + local.get $8 if + local.get $0 local.get $2 - local.get $1 i32.const 1 i32.shl i32.add i32.const 11856 - local.get $9 + local.get $8 i32.const 1 i32.shl memory.copy - local.get $1 - local.get $9 + local.get $2 + local.get $8 i32.add - local.set $1 + local.set $2 end local.get $4 i32.const 1 @@ -27755,42 +28029,42 @@ br $for-loop|18 end end - local.get $0 - local.get $8 + local.get $1 + local.get $7 i32.add i32.load8_u - local.tee $0 + local.tee $1 i32.eqz i32.const 4 i32.add local.set $4 + local.get $0 local.get $2 - local.get $1 i32.const 1 i32.shl i32.add i32.const 11792 i32.const 11824 - local.get $0 + local.get $1 select local.get $4 i32.const 1 i32.shl memory.copy - local.get $1 + local.get $2 local.get $4 i32.add - local.tee $0 - local.get $10 + local.tee $1 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/string/String#substring - local.set $2 + local.set $0 br $folding-inner07 end global.get $~lib/memory/__stack_pointer @@ -27809,9 +28083,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 11888 call $~lib/string/String.__eq i32.eqz @@ -28252,12 +28526,14 @@ i32.const 11 i32.const 14256 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 + i32.const 0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28270,7 +28546,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -28284,17 +28560,17 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store @@ -28310,10 +28586,10 @@ i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinIntegerArray$741 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $1 + local.tee $7 i32.const 0 i32.lt_s if @@ -28322,16 +28598,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $2 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray$741 end - local.get $1 + local.get $7 i32.eqz if - local.get $4 + local.get $2 i32.load16_u call $~lib/util/number/utoa32 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -28349,7 +28625,7 @@ local.tee $8 i32.const 10 i32.add - local.get $1 + local.get $7 i32.mul i32.const 10 i32.add @@ -28358,32 +28634,32 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store offset=4 loop $for-loop|03 - local.get $1 - local.get $3 - i32.gt_s + local.get $4 + local.get $7 + i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add + local.get $2 local.get $4 - local.get $3 i32.const 1 i32.shl i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $8 if - local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -28392,43 +28668,43 @@ i32.const 1 i32.shl memory.copy - local.get $0 + local.get $1 local.get $8 i32.add - local.set $0 + local.set $1 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|03 end end - local.get $9 - local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $4 - local.get $1 + local.get $2 + local.get $7 i32.const 1 i32.shl i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 - i32.gt_s + local.tee $1 + local.get $9 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/string/String#substring - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -28449,9 +28725,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 14288 call $~lib/string/String.__eq i32.eqz @@ -28468,14 +28744,14 @@ i32.const 39 i32.const 14336 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28488,7 +28764,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -28502,17 +28778,17 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store @@ -28528,10 +28804,10 @@ i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinIntegerArray$742 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $1 + local.tee $7 i32.const 0 i32.lt_s if @@ -28540,16 +28816,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $2 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray$742 end - local.get $1 + local.get $7 i32.eqz if - local.get $4 + local.get $2 i32.load16_s call $~lib/util/number/itoa32 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -28567,7 +28843,7 @@ local.tee $8 i32.const 11 i32.add - local.get $1 + local.get $7 i32.mul i32.const 11 i32.add @@ -28576,32 +28852,32 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store offset=4 loop $for-loop|05 - local.get $1 - local.get $3 - i32.gt_s + local.get $4 + local.get $7 + i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add + local.get $2 local.get $4 - local.get $3 i32.const 1 i32.shl i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 + local.set $1 local.get $8 if - local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add @@ -28610,43 +28886,43 @@ i32.const 1 i32.shl memory.copy - local.get $0 + local.get $1 local.get $8 i32.add - local.set $0 + local.set $1 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|05 end end - local.get $9 - local.get $2 local.get $0 + local.get $1 i32.const 1 i32.shl i32.add - local.get $4 - local.get $1 + local.get $2 + local.get $7 i32.const 1 i32.shl i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 - i32.gt_s + local.tee $1 + local.get $9 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/string/String#substring - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -28667,9 +28943,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 14368 call $~lib/string/String.__eq i32.eqz @@ -28819,7 +29095,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -28832,7 +29108,7 @@ i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28848,7 +29124,7 @@ local.get $2 i32.const 1 i32.sub - local.tee $4 + local.tee $7 i32.const 0 i32.lt_s if @@ -28857,18 +29133,18 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $2 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray$13 end block $folding-inner09 - local.get $4 + local.get $7 i32.eqz if block $__inlined_func$~lib/util/number/itoa64$4 (result i32) - local.get $1 + local.get $4 i64.load i64.extend32_s - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28880,7 +29156,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $5 + local.get $3 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -28891,10 +29167,10 @@ br $__inlined_func$~lib/util/number/itoa64$4 end i64.const 0 - local.get $5 + local.get $3 i64.sub - local.get $5 - local.get $5 + local.get $3 + local.get $3 i64.const 63 i64.shr_u i32.wrap_i64 @@ -28902,145 +29178,145 @@ i32.shl local.tee $0 select - local.tee $5 + local.tee $3 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.wrap_i64 - local.tee $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.tee $3 + local.tee $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store local.get $0 - local.get $2 - i32.add local.get $1 - local.get $3 + i32.add + local.get $2 + local.get $4 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $5 + local.get $3 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $5 + local.get $3 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $5 + local.get $3 i64.const 10000000000 i64.ge_u i32.add else - local.get $5 + local.get $3 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $5 + local.get $3 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $5 + local.get $3 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $5 + local.get $3 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $5 + local.get $3 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $5 + local.get $3 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store local.get $0 - local.get $2 - i32.add - local.get $5 local.get $1 + i32.add + local.get $3 + local.get $2 call $~lib/util/number/utoa64_dec_lut end local.get $0 if - local.get $2 + local.get $1 i32.const 45 i32.store16 end @@ -29048,9 +29324,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 end - local.set $2 + local.set $0 br $folding-inner09 end global.get $~lib/memory/__stack_pointer @@ -29064,7 +29340,7 @@ local.tee $8 i32.const 21 i32.add - local.get $4 + local.get $7 i32.mul i32.const 21 i32.add @@ -29076,8 +29352,8 @@ local.tee $2 i32.store offset=4 loop $for-loop|010 - local.get $3 - local.get $4 + local.get $1 + local.get $7 i32.lt_s if local.get $2 @@ -29085,8 +29361,8 @@ i32.const 1 i32.shl i32.add + local.get $4 local.get $1 - local.get $3 i32.const 3 i32.shl i32.add @@ -29112,21 +29388,20 @@ i32.add local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|010 end end - local.get $9 local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $1 local.get $4 + local.get $7 i32.const 3 i32.shl i32.add @@ -29135,7 +29410,8 @@ local.get $0 i32.add local.tee $0 - i32.gt_s + local.get $9 + i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $2 @@ -29143,13 +29419,15 @@ local.get $2 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $0 br $folding-inner09 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray$13 end global.get $~lib/memory/__stack_pointer @@ -29166,9 +29444,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -29296,18 +29574,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29321,7 +29599,7 @@ i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $1 @@ -29333,14 +29611,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $2 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -29354,7 +29632,7 @@ else i32.const 11568 end - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -29362,7 +29640,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 end i32.const 11568 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -29373,15 +29651,15 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $7 loop $for-loop|011 - local.get $0 local.get $1 - i32.lt_s + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $0 + local.get $2 + local.get $4 i32.const 2 i32.shl i32.add @@ -29391,7 +29669,7 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29403,62 +29681,62 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $2 + local.get $0 local.get $8 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end - local.get $4 + local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 11856 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|011 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $1 call $~lib/array/Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - local.get $2 local.get $0 + local.get $1 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29475,9 +29753,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -29549,18 +29827,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29574,7 +29852,7 @@ i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $1 @@ -29586,14 +29864,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $2 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -29607,7 +29885,7 @@ else i32.const 11568 end - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -29615,7 +29893,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 end i32.const 11568 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -29626,15 +29904,15 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $7 loop $for-loop|016 - local.get $0 local.get $1 - i32.lt_s + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $0 + local.get $2 + local.get $4 i32.const 2 i32.shl i32.add @@ -29644,7 +29922,7 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29656,62 +29934,62 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $2 + local.get $0 local.get $8 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end - local.get $4 + local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 11856 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|016 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $1 call $~lib/array/Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - local.get $2 local.get $0 + local.get $1 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29728,9 +30006,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -29806,18 +30084,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $0 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29831,7 +30109,7 @@ i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 - local.get $1 + local.get $0 i32.const 1 i32.sub local.tee $1 @@ -29843,14 +30121,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $2 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -29864,7 +30142,7 @@ else i32.const 11568 end - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -29872,7 +30150,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 end i32.const 11568 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -29883,15 +30161,15 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $7 loop $for-loop|017 - local.get $0 local.get $1 - i32.lt_s + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $0 + local.get $2 + local.get $4 i32.const 2 i32.shl i32.add @@ -29901,7 +30179,7 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -29913,62 +30191,62 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $2 + local.get $0 local.get $8 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end - local.get $4 + local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 11856 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|017 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - local.get $2 local.get $0 + local.get $1 call $~lib/string/String.__concat - local.tee $2 + local.tee $0 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29985,9 +30263,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 13568 call $~lib/string/String.__eq i32.eqz @@ -30161,23 +30439,23 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $8 - i32.const 0 local.set $1 i32.const 0 + local.set $2 + i32.const 0 local.set $0 loop $for-loop|023 local.get $0 - local.get $8 + local.get $1 i32.lt_s if - local.get $3 + local.get $8 local.get $0 i32.const 2 i32.shl @@ -30190,9 +30468,9 @@ else i32.const 0 end - local.get $1 + local.get $2 i32.add - local.set $1 + local.set $2 local.get $0 i32.const 1 i32.add @@ -30201,7 +30479,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.shl local.tee $0 @@ -30216,7 +30494,7 @@ local.tee $10 i32.store offset=8 local.get $10 - local.get $1 + local.get $2 i32.store offset=12 local.get $10 local.get $0 @@ -30236,11 +30514,11 @@ i32.const 0 local.set $4 loop $for-loop|124 + local.get $1 local.get $4 - local.get $8 - i32.lt_s + i32.gt_s if - local.get $3 + local.get $8 local.get $4 i32.const 2 i32.shl @@ -30275,7 +30553,7 @@ local.set $0 loop $for-loop|225 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $9 @@ -30306,7 +30584,7 @@ i32.const 34 i32.const 15792 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=420 global.get $~lib/memory/__stack_pointer local.get $10 @@ -30324,38 +30602,38 @@ unreachable end i32.const 0 - local.set $0 + local.set $4 loop $for-loop|8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $10 i32.store offset=48 local.get $10 - local.get $0 + local.get $4 call $~lib/array/Array#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 - local.get $1 local.get $0 + local.get $4 call $~lib/array/Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 + local.get $1 local.get $2 - local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -30366,10 +30644,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|8 end end @@ -30457,511 +30735,236 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=12 - local.tee $2 - i32.const 2 - i32.const 29 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.load offset=4 - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|026 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $4 - local.get $2 - local.get $1 - i32.load offset=12 - local.tee $9 - local.get $2 - local.get $9 - i32.lt_s - select - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl - local.tee $9 - local.get $1 - i32.load offset=4 - i32.add - i32.load - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $10 - local.get $4 - local.get $1 - i32.const 15984 - i32.load - call_indirect (type $1) - local.tee $10 - i32.store offset=16 - local.get $8 - local.get $9 - i32.add - local.get $10 - i32.store - local.get $3 - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|026 - 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 - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array<~lib/array/Array>#flat - local.tee $0 - i32.store offset=440 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1272 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - call $~lib/array/Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1273 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1274 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - call $~lib/array/Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1275 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - call $~lib/array/Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 1276 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - global.set $std/array/arr + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer i32.const 0 - global.set $std/array/inputStabArr + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=12 + local.tee $2 + i32.const 2 + i32.const 29 i32.const 0 - global.set $std/array/outputStabArr - i32.const 48960 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state + call $~lib/rt/__newArray + local.tee $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.set $8 i32.const 0 - i32.gt_s - if - loop $while-continue|028 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|028 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state + local.set $4 + loop $for-loop|026 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $4 + local.get $2 + local.get $1 + i32.load offset=12 + local.tee $9 + local.get $2 + local.get $9 + i32.lt_s + select + i32.lt_s if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.tee $9 + local.get $1 + i32.load offset=4 + i32.add + i32.load + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $10 + local.get $4 + local.get $1 + i32.const 15984 + i32.load + call_indirect (type $1) + local.tee $10 + i32.store offset=16 + local.get $8 + local.get $9 + i32.add + local.get $10 + i32.store + local.get $7 + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|026 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 444 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - return - end - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $1 - local.get $3 - if - local.get $1 - local.get $3 - local.get $5 - memory.copy - end - local.get $1 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/number/itoa32 (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7712 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $0 - select - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u + local.get $7 + i32.store + local.get $7 + call $~lib/array/Array<~lib/array/Array>#flat + local.tee $0 + i32.store offset=440 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1272 i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add + call $~lib/builtins/abort + unreachable end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $0 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $0 - local.get $3 - i32.add - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $0 - if - local.get $3 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/util/number/utoa32 (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - if - i32.const 48992 - i32.const 49040 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + call $~lib/array/Array#__get i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1273 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + call $~lib/array/Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1274 + 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 - i32.const 7712 - return - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u + i32.store + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1275 i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add + call $~lib/builtins/abort + unreachable end - else + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add + i32.store + local.get $0 + i32.const 3 + call $~lib/array/Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 1276 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/array/arr + i32.const 0 + global.set $std/array/inputStabArr + i32.const 0 + global.set $std/array/outputStabArr + i32.const 48960 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|028 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|028 + 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 444 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.tee $2 + i32.const 48992 + i32.const 49040 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 334f1c302e..5e80739f7e 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1,12 +1,12 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) + (type $5 (func (param i32 i32 i32) (result i32))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i64))) (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)) @@ -43,794 +43,494 @@ (data $13 (i32.const 1712) "\11\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1168 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1232 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 1073741804 + i32.ge_u if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + i32.const 1168 + i32.const 1232 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$185 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34552 - i32.lt_u - i32.and - i32.eqz - if + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 i32.const 0 - i32.const 1232 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$185 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1712 - i32.load - i32.gt_u - if - i32.const 1360 - i32.const 1424 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $1 - i32.const 2 - i32.shl - i32.const 1716 - i32.add - i32.load - i32.const 32 - i32.and end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 + global.get $~lib/rt/tlsf/ROOT i32.eqz if - return + call $~lib/rt/tlsf/initialize end - global.get $~lib/rt/itcms/white + global.get $~lib/rt/tlsf/ROOT + local.set $4 local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u if - i32.const 0 + i32.const 1168 i32.const 1504 - i32.const 268 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 + local.get $4 + local.get $2 i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1504 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and i32.const 4 i32.sub - i32.shr_u - i32.const 16 - i32.xor end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if - i32.const 0 - i32.const 1504 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 end + else + local.get $5 end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1504 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1504 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 - local.get $1 i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if i32.const 0 i32.const 1504 - i32.const 221 + i32.const 499 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 end - local.get $4 + local.get $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1504 - i32.const 233 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $1 - i32.const 4 - i32.add local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 i32.add - i32.ne + i32.const 15 + i32.and if i32.const 0 i32.const 1504 - i32.const 234 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store local.get $2 i32.const 4 - i32.shr_u + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - i32.const 31 - i32.const 1073741820 local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store 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 + i32.const 4 + i32.add local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 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 1504 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.load + i32.const -3 + i32.and + i32.store 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 offset=96 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 local.set $3 + local.get $2 local.get $1 - i32.const 0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $3 i32.store offset=8 local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl + i32.const -4 + i32.and + i32.const 4 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 + i32.add + global.set $~lib/rt/itcms/total local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + 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 1784 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 382 - i32.const 14 + i32.const 34576 + i32.const 34624 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1504 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end local.get $3 + i32.add + local.tee $1 + i32.const 0 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end + i32.const 0 + i32.gt_s + select else - local.get $0 - i32.const 1572 - i32.add local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1504 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select end + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select end local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 + local.tee $2 i32.const 0 - i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add + i32.gt_s + select + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new local.tee $3 - i32.const 2 - i32.store - local.get $0 + i32.store offset=4 local.get $3 - i32.store offset=1568 local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return end + local.get $0 + i32.eqz if + i32.const 0 + i32.const 1232 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 34560 - i32.const 0 - i32.store - i32.const 36128 - i32.const 0 - i32.store - loop $for-loop|0 + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34560 - i32.add - i32.const 0 - i32.store 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 34560 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 + i32.const 20 + i32.sub + i32.load 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.add - local.set $0 - br $for-loop|0 + 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 - i32.const 34560 - i32.const 36132 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34560 - global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1092,51 +792,70 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - i32.const 256 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 i32.lt_u if - local.get $1 + i32.const 0 + i32.const 1504 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 i32.const 4 i32.shr_u - local.set $1 else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 i32.const 31 - local.get $1 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub - local.tee $2 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $3 i32.const 16 i32.lt_u local.get $2 @@ -1147,445 +866,455 @@ if i32.const 0 i32.const 1504 - i32.const 334 + i32.const 284 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 local.get $2 - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 + i32.const 2 i32.shl - i32.and + i32.add local.tee $1 - if (result i32) - local.get $0 + i32.load offset=96 + i32.eq + if local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $2 i32.const 2 i32.shl i32.add + local.tee $1 i32.load offset=4 - local.tee $2 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 i32.eqz if - i32.const 0 - i32.const 1504 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1168 - i32.const 1232 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end + local.get $0 + local.get $0 + i32.load + i32.const -2 local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 + i32.rotl + i32.and + i32.store end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + ) + (func $~lib/rt/tlsf/insertBlock (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 - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1504 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable 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 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 1168 + i32.const 0 i32.const 1504 - i32.const 461 - i32.const 29 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load local.tee $2 - i32.eqz + i32.const 1 + i32.and if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 + local.get $0 local.get $4 - i32.load offset=1568 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $3 + i32.const 4 + i32.add local.get $2 - i32.const 16 - i32.shl + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.sub - i32.ne - i32.shl i32.add - i32.const 65535 + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.const -65536 + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 i32.eqz if i32.const 0 i32.const 1504 - i32.const 499 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1504 + 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 1504 + 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 + 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 - local.get $2 - i32.load - i32.const -4 + i32.const 23 + i32.lt_u i32.and - i32.gt_u + i32.eqz if i32.const 0 i32.const 1504 - i32.const 501 + i32.const 251 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 + local.get $0 local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add - i32.const 15 - i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 if - i32.const 0 - i32.const 1504 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - local.get $6 - i32.const -4 - i32.and + local.get $0 local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$185 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34552 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$185 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 local.get $2 - local.get $5 - local.get $6 - i32.const 2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 i32.and i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 + local.get $1 + i32.const 1712 i32.load - i32.const -4 - i32.and + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1716 i32.add - local.tee $3 - local.get $3 i32.load - i32.const -3 + i32.const 32 i32.and - i32.store end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 local.set $3 local.get $2 - local.get $1 + i32.load offset=8 + local.set $1 + local.get $0 global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 + i32.eqz + i32.const 2 local.get $3 + select local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and i32.or i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 local.get $0 - memory.fill local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + i32.store offset=8 local.get $1 - i32.eqz - if - return - end local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white local.get $1 - i32.const 20 - i32.sub - local.tee $1 i32.load offset=4 i32.const 3 i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load 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 + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -1621,126 +1350,395 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1504 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34560 + i32.const 0 + i32.store + i32.const 36128 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34560 + i32.add + i32.const 0 + i32.store 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 34560 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end + end local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|0 end - unreachable end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - call $start:std/arraybuffer + i32.const 34560 + i32.const 36132 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34560 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 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 1784 - i32.lt_s + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 34576 - i32.const 34624 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $3 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - 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 offset=1568 + local.tee $3 + if local.get $3 + i32.const 4 i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $3 local.get $1 - local.get $3 - i32.lt_s - select + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1504 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return end local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 1 - call $~lib/rt/itcms/__new local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 - local.get $3 - local.get $0 local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 + i32.const 2 + i32.store + local.get $0 local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1847,6 +1845,9 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~start + call $start:std/arraybuffer + ) (func $start:std/arraybuffer (local $0 i32) (local $1 i32) diff --git a/tests/compiler/std/console.release.wat b/tests/compiler/std/console.release.wat index a45eaf7c52..e8c683571e 100644 --- a/tests/compiler/std/console.release.wat +++ b/tests/compiler/std/console.release.wat @@ -1,18 +1,18 @@ (module (type $0 (func (param i32))) (type $1 (func (param i32 i32))) - (type $2 (func)) - (type $3 (func (param i32 i32 i32 i32))) - (import "env" "console.assert" (func $~lib/bindings/dom/console.assert (param i32 i32))) - (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) - (import "env" "console.debug" (func $~lib/bindings/dom/console.debug (param i32))) - (import "env" "console.info" (func $~lib/bindings/dom/console.info (param i32))) + (type $2 (func (param i32 i32 i32 i32))) + (type $3 (func)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "console.warn" (func $~lib/bindings/dom/console.warn (param i32))) - (import "env" "console.error" (func $~lib/bindings/dom/console.error (param i32))) - (import "env" "console.time" (func $~lib/bindings/dom/console.time (param i32))) (import "env" "console.timeLog" (func $~lib/bindings/dom/console.timeLog (param i32))) (import "env" "console.timeEnd" (func $~lib/bindings/dom/console.timeEnd (param i32))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "console.time" (func $~lib/bindings/dom/console.time (param i32))) + (import "env" "console.log" (func $~lib/bindings/dom/console.log (param i32))) + (import "env" "console.info" (func $~lib/bindings/dom/console.info (param i32))) + (import "env" "console.error" (func $~lib/bindings/dom/console.error (param i32))) + (import "env" "console.debug" (func $~lib/bindings/dom/console.debug (param i32))) + (import "env" "console.assert" (func $~lib/bindings/dom/console.assert (param i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34380)) (memory $0 1) (data $0 (i32.const 1036) "\1c") @@ -45,128 +45,7 @@ (data $13.1 (i32.const 1592) "\02\00\00\00\08\00\00\001\002\003\004") (export "memory" (memory $0)) (start $~start) - (func $~start - i32.const 0 - i32.const 1056 - call $~lib/console/console.assert - i32.const 1 - i32.const 1088 - call $~lib/console/console.assert - i32.const 1120 - call $~lib/console/console.log - 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 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1168 - call $~lib/bindings/dom/console.debug - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store - i32.const 1216 - call $~lib/bindings/dom/console.info - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1264 - i32.store - i32.const 1264 - call $~lib/bindings/dom/console.warn - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1612 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1312 - i32.store - i32.const 1312 - call $~lib/bindings/dom/console.error - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1360 - call $~lib/console/console.time - i32.const 1360 - call $~lib/console/console.timeLog - i32.const 1360 - call $~lib/console/console.timeEnd - i32.const 1408 - call $~lib/console/console.timeLog - i32.const 1408 - call $~lib/console/console.timeEnd - i32.const 1456 - call $~lib/console/console.time - i32.const 1456 - call $~lib/console/console.time - i32.const 1504 - call $~lib/console/console.log - i32.const 1536 - call $~lib/console/console.log - i32.const 1568 - call $~lib/console/console.log - i32.const 1600 - call $~lib/console/console.log - return - end - i32.const 34400 - i32.const 34448 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/console/console.assert (param $0 i32) (param $1 i32) + (func $~lib/console/console.log (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -186,19 +65,16 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - i32.const 0 - i32.ne - local.get $1 - call $~lib/bindings/dom/console.assert + call $~lib/bindings/dom/console.log global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.log (param $0 i32) + (func $~lib/console/console.time (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -221,13 +97,13 @@ local.get $0 i32.store local.get $0 - call $~lib/bindings/dom/console.log + call $~lib/bindings/dom/console.time global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.time (param $0 i32) + (func $~lib/console/console.timeLog (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -250,13 +126,13 @@ local.get $0 i32.store local.get $0 - call $~lib/bindings/dom/console.time + call $~lib/bindings/dom/console.timeLog global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.timeLog (param $0 i32) + (func $~lib/console/console.timeEnd (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -279,13 +155,13 @@ local.get $0 i32.store local.get $0 - call $~lib/bindings/dom/console.timeLog + call $~lib/bindings/dom/console.timeEnd global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.timeEnd (param $0 i32) + (func $~lib/console/console.assert (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -305,13 +181,137 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store local.get $0 - call $~lib/bindings/dom/console.timeEnd + i32.const 0 + i32.ne + local.get $1 + call $~lib/bindings/dom/console.assert global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + i32.const 0 + i32.const 1056 + call $~lib/console/console.assert + i32.const 1 + i32.const 1088 + call $~lib/console/console.assert + i32.const 1120 + call $~lib/console/console.log + 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 1612 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1168 + call $~lib/bindings/dom/console.debug + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1612 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1216 + i32.store + i32.const 1216 + call $~lib/bindings/dom/console.info + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1612 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1264 + i32.store + i32.const 1264 + call $~lib/bindings/dom/console.warn + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1612 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1312 + i32.store + i32.const 1312 + call $~lib/bindings/dom/console.error + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1360 + call $~lib/console/console.time + i32.const 1360 + call $~lib/console/console.timeLog + i32.const 1360 + call $~lib/console/console.timeEnd + i32.const 1408 + call $~lib/console/console.timeLog + i32.const 1408 + call $~lib/console/console.timeEnd + i32.const 1456 + call $~lib/console/console.time + i32.const 1456 + call $~lib/console/console.time + i32.const 1504 + call $~lib/console/console.log + i32.const 1536 + call $~lib/console/console.log + i32.const 1568 + call $~lib/console/console.log + i32.const 1600 + call $~lib/console/console.log + return + end + i32.const 34400 + i32.const 34448 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) ) diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index 7a0b6705e9..f02332e163 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1,20 +1,20 @@ (module - (type $0 (func (param i32 i32 i32))) - (type $1 (func (param i32 i32 i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32 i32) (result i32))) + (type $0 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func)) (type $4 (func (param i32))) (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32) (result i64))) (type $7 (func (param i32 i64 i32))) (type $8 (func (param i32 i32 i32 i32))) - (type $9 (func (param i32 i32 i64))) + (type $9 (func (param i32 i32 i32) (result f32))) (type $10 (func (result i32))) - (type $11 (func (param i32) (result i32))) - (type $12 (func (param i32 i32 i32) (result f32))) - (type $13 (func (param i32 i32) (result f64))) + (type $11 (func (param i32 i32) (result f64))) + (type $12 (func (param i32 i32 i64))) + (type $13 (func (param i32 f64 i32))) (type $14 (func (param i32 f32 i32))) - (type $15 (func (param i32 f64 i32))) + (type $15 (func (param i32) (result i32))) (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)) @@ -51,794 +51,523 @@ (data $13 (i32.const 1744) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1168 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1232 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + (func $~lib/dataview/DataView#getUint16 (param $0 i32) (param $1 i32) (param $2 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 1772 + i32.lt_s if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$221 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34540 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$221 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + i32.const 34560 + i32.const 34608 i32.const 1 - else - local.get $1 - i32.const 1744 - i32.load - i32.gt_u - if - i32.const 1360 - i32.const 1424 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1748 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - i32.store offset=8 - local.get $1 + i32.const 31 + i32.shr_u local.get $0 + i32.load offset=8 local.get $1 - i32.load offset=4 - i32.const 3 - i32.and + i32.const 2 + i32.add + i32.lt_s i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz if - return + i32.const 1360 + i32.const 1632 + i32.const 79 + i32.const 7 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 local.get $0 - i32.const 20 - i32.sub - local.tee $0 i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if + i32.add + i32.load16_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + if (result i32) local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + else + local.get $0 + i32.const 8 + i32.shl + local.get $0 + i32.const 8 + i32.shr_u + i32.or end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (func $~lib/dataview/DataView#getInt16 (param $0 i32) (param $1 i32) (param $2 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 1772 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 268 - i32.const 14 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 31 + i32.shr_u + local.get $0 + i32.load offset=8 + local.get $1 + i32.const 2 + i32.add + i32.lt_s + i32.or if - i32.const 0 - i32.const 1504 - i32.const 270 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 58 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load16_s + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + local.get $0 else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub + local.get $0 + i32.const 8 + i32.shl + local.get $0 + i32.const 65535 + i32.and + i32.const 8 i32.shr_u - i32.const 16 - i32.xor + i32.or end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + ) + (func $~lib/dataview/DataView#getUint32 (param $0 i32) (param $1 i32) (param $2 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 1772 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 284 - i32.const 14 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 + i32.const 31 + i32.shr_u + local.get $0 i32.load offset=8 - local.set $5 local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 + i32.const 4 + i32.add + i32.lt_s + i32.or if - local.get $5 - local.get $4 - i32.store offset=4 + i32.const 1360 + i32.const 1632 + i32.const 87 + i32.const 7 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 + i32.load offset=4 i32.add - i32.const 2 - i32.shl + i32.load + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end + global.set $~lib/memory/__stack_pointer + local.get $2 + if (result i32) + local.get $0 + else + local.get $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or end ) - (func $~lib/rt/tlsf/insertBlock (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 + (func $~lib/dataview/DataView#getInt32 (param $0 i32) (param $1 i32) (param $2 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 1772 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 201 - i32.const 14 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + i32.const 31 + i32.shr_u + local.get $0 + i32.load offset=8 + local.get $1 + i32.const 4 + i32.add + i32.lt_s + i32.or if - i32.const 0 - i32.const 1504 - i32.const 203 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 66 + i32.const 7 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 4 + local.get $0 + i32.load offset=4 i32.add - local.get $1 i32.load - i32.const -4 - i32.and + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if + global.set $~lib/memory/__stack_pointer + local.get $2 + if (result i32) 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + else + local.get $0 + i32.const -16711936 i32.and - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const 8 + i32.rotl 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.const 16711935 i32.and - i32.add - local.tee $3 - i32.store + i32.const 8 + i32.rotr + i32.or end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u + ) + (func $~lib/dataview/DataView#getFloat32 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (local $3 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 1772 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 233 - i32.const 14 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 31 + i32.shr_u + local.get $0 + i32.load offset=8 local.get $1 i32.const 4 i32.add - local.get $2 - i32.add - i32.ne + i32.lt_s + i32.or if - i32.const 0 - i32.const 1504 - i32.const 234 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 35 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u + if (result f32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + f32.load 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load + local.tee $0 + i32.const -16711936 + i32.and + i32.const 8 + i32.rotl + local.get $0 + i32.const 16711935 + i32.and + i32.const 8 + i32.rotr + i32.or + f32.reinterpret_i32 end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/dataview/DataView#getUint8 (param $0 i32) (param $1 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 1772 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 251 - i32.const 14 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 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 offset=96 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add + i32.store local.get $1 - i32.store offset=96 local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 72 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 + local.get $1 local.get $0 i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (func $~lib/dataview/DataView#getInt8 (param $0 i32) (param $1 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 1772 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 382 - i32.const 14 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store 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 offset=1568 - local.tee $3 + i32.load offset=8 + i32.ge_u if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1504 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1504 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 1360 + i32.const 1632 + i32.const 51 + i32.const 50 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s if - return + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 local.get $0 - local.get $3 - i32.store offset=1568 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1568 + i32.const 178 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $1 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz if - unreachable + return end - i32.const 34544 - i32.const 0 - i32.store - i32.const 36112 - i32.const 0 - i32.store - loop $for-loop|0 + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34544 - i32.add - i32.const 0 - i32.store 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 34544 - i32.add - i32.const 0 - i32.store 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 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - i32.const 34544 - i32.const 36116 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34544 - global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1100,446 +829,553 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz + i32.const 1168 + i32.const 1232 + i32.const 261 + 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$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 i32.shl i32.add - i32.const 1 - i32.sub - local.set $1 + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1168 + i32.const 1504 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.shr_u + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and i32.const 16 - i32.xor - local.set $1 + i32.shr_u + local.set $3 local.get $2 - i32.const 7 - i32.sub - local.set $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - i32.const 16 - i32.lt_u + local.get $5 local.get $2 - i32.const 23 - i32.lt_u + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u if i32.const 0 i32.const 1504 - i32.const 334 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 local.get $2 - i32.const 2 - i32.shl + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 i32.add - i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl + i32.const 15 i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz + if + i32.const 0 + i32.const 1504 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store local.get $2 i32.const 4 - i32.shl i32.add - i32.const 2 - i32.shl + local.get $5 i32.add - i32.load offset=96 + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - local.get $0 - i32.load - i32.const -1 local.get $2 - i32.const 1 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 i32.add - i32.shl + local.get $2 + i32.load + i32.const -4 i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/dataview/DataView#getUint64 (param $0 i32) (param $1 i32) (result i64) + (local $2 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 1772 + i32.lt_s + if + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1073741804 - i32.ge_u + i32.store + local.get $0 + i32.load offset=8 + i32.const 8 + i32.lt_s if - i32.const 1168 - i32.const 1232 - i32.const 261 - i32.const 31 + i32.const 1360 + i32.const 1632 + i32.const 159 + i32.const 7 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + if (result i64) + local.get $2 + else + local.get $2 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $2 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $2 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $2 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + ) + (func $~lib/dataview/DataView#getInt64 (param $0 i32) (param $1 i32) (result i64) + (local $2 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 1772 + i32.lt_s if - call $~lib/rt/tlsf/initialize + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + i32.store + local.get $0 + i32.load offset=8 + i32.const 8 + i32.lt_s if - i32.const 1168 - i32.const 1504 - i32.const 461 - i32.const 29 + i32.const 1360 + i32.const 1632 + i32.const 151 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + if (result i64) local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 + else local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $2 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $2 + i64.const 281470681808895 + i64.and i64.const 16 i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i64.or + i64.const 32 + i64.rotr end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u + ) + (func $~lib/dataview/DataView#getFloat64 (param $0 i32) (param $1 i32) (result f64) + (local $2 i64) + (local $3 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 1772 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 501 - i32.const 14 + i32.const 34560 + i32.const 34608 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 8 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 361 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 44 + i32.const 7 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or + local.get $1 + if (result f64) + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + local.get $0 + i32.load offset=4 + f64.load else - local.get $2 - local.get $6 - i32.const -2 - i32.and + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store + local.get $0 + i32.load offset=4 + i64.load + local.tee $2 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and local.get $2 - i32.const 4 - i32.add + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $2 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + f64.reinterpret_i64 end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 + global.set $~lib/memory/__stack_pointer ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) local.get $0 @@ -1585,696 +1421,935 @@ 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 (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - ) - (func $~start - call $start:std/dataview - ) - (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 1360 - i32.const 1568 - i32.const 178 - i32.const 45 + i32.const 0 + i32.const 1504 + i32.const 268 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const -4 + i32.and + local.tee $3 i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s + i32.lt_u if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 270 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 local.get $3 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.get $1 - local.get $2 - i32.add + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + i32.const 16 i32.lt_u local.get $2 - i32.const 1073741820 - i32.gt_u - i32.or + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - i32.const 1056 - i32.const 1632 - i32.const 25 - i32.const 7 + i32.const 0 + i32.const 1504 + i32.const 284 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $3 + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 local.get $0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 + local.get $2 + i32.const 4 + i32.shl local.get $3 - local.get $0 - local.get $1 i32.add - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (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 1772 - i32.lt_s + (func $~lib/rt/tlsf/insertBlock (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 34560 - i32.const 34608 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $1 i32.load - i32.sub - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/dataview/DataView#getFloat32 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) - (local $3 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 1772 - i32.lt_s + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 31 - i32.shr_u - local.get $0 - i32.load offset=8 local.get $1 i32.const 4 i32.add - i32.lt_s - i32.or + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and if - i32.const 1360 - i32.const 1632 - i32.const 35 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - if (result f32) - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $1 - local.get $0 - i32.load offset=4 + local.get $3 + i32.const 4 i32.add - f32.load - else - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 i32.store local.get $1 - local.get $0 - i32.load offset=4 + i32.const 4 i32.add + local.get $1 i32.load - local.tee $0 - i32.const -16711936 + i32.const -4 i32.and - i32.const 8 - i32.rotl + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 16711935 + 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.const 8 - i32.rotr - i32.or - f32.reinterpret_i32 + i32.add + local.tee $3 + i32.store end - global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/dataview/DataView#getFloat64 (param $0 i32) (param $1 i32) (result f64) - (local $2 i64) - (local $3 f64) - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s + local.get $1 + i32.store + 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 1504 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store local.get $0 - i32.load offset=8 - i32.const 8 - i32.lt_s + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 44 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - if (result f64) - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$221 local.get $0 i32.load offset=4 - f64.load - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34540 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$221 + end local.get $0 - i32.load offset=4 - i64.load + i32.load offset=8 local.tee $2 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 local.get $2 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $2 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and + i32.store offset=8 local.get $2 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - f64.reinterpret_i64 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/dataview/DataView#getInt8 (param $0 i32) (param $1 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 1772 - i32.lt_s - if - i32.const 34560 - i32.const 34608 - i32.const 1 + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $1 + i32.const 1744 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1748 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 local.get $0 - i32.store + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 local.get $1 local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 51 - i32.const 50 - call $~lib/builtins/abort + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.load + call $~lib/rt/itcms/__visit ) - (func $~lib/dataview/DataView#getInt16 (param $0 i32) (param $1 i32) (param $2 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 1772 - i32.lt_s + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - i32.const 31 - i32.shr_u - local.get $0 - i32.load offset=8 - local.get $1 - i32.const 2 - i32.add - i32.lt_s - i32.or + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - i32.const 1360 - i32.const 1632 - i32.const 58 - i32.const 7 + i32.const 0 + i32.const 1504 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=4 - i32.add - i32.load16_s - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 else local.get $0 - i32.const 8 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add i32.shl - local.get $0 - i32.const 65535 i32.and - i32.const 8 - i32.shr_u - i32.or + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end end ) - (func $~lib/dataview/DataView#getInt32 (param $0 i32) (param $1 i32) (param $2 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 1772 - i32.lt_s - if - i32.const 34560 - i32.const 34608 - i32.const 1 + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) i32.const 1 - call $~lib/builtins/abort + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if unreachable end - global.get $~lib/memory/__stack_pointer + i32.const 34544 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 36112 + i32.const 0 i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34544 + i32.add + i32.const 0 + i32.store 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 34544 + i32.add + i32.const 0 + i32.store 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 34544 + i32.const 36116 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34544 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i32.const 31 - i32.shr_u - local.get $0 - i32.load offset=8 - local.get $1 - i32.const 4 - i32.add - i32.lt_s - i32.or + i64.extend_i32_u + i64.lt_u if - i32.const 1360 - i32.const 1632 - i32.const 66 - i32.const 7 + i32.const 0 + i32.const 1504 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=4 + i32.const 19 i32.add - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - if (result i32) - local.get $0 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end else local.get $0 - i32.const -16711936 - i32.and - i32.const 8 - i32.rotl - local.get $0 - i32.const 16711935 - i32.and - i32.const 8 - i32.rotr - i32.or + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - ) - (func $~lib/dataview/DataView#getInt64 (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 i32.const 8 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 151 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store - local.get $0 - i32.load offset=4 - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - if (result i64) - local.get $2 - else - local.get $2 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $2 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $2 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $2 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - end - ) - (func $~lib/dataview/DataView#getUint8 (param $0 i32) (param $1 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 1772 - i32.lt_s - if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.store offset=4 local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 72 - i32.const 50 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=1568 local.get $0 - i32.store local.get $1 - local.get $0 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end ) - (func $~lib/dataview/DataView#getUint16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#setUint64 (param $0 i32) (param $1 i64) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2296,20 +2371,14 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 31 - i32.shr_u local.get $0 i32.load offset=8 - local.get $1 - i32.const 2 - i32.add + i32.const 8 i32.lt_s - i32.or if i32.const 1360 i32.const 1632 - i32.const 79 + i32.const 174 i32.const 7 call $~lib/builtins/abort unreachable @@ -2317,30 +2386,44 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 - i32.add - i32.load16_u - local.set $0 + local.get $2 + if (result i64) + local.get $1 + else + local.get $1 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $1 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $1 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $1 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + end + i64.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - if (result i32) - local.get $0 - else - local.get $0 - i32.const 8 - i32.shl - local.get $0 - i32.const 8 - i32.shr_u - i32.or - end ) - (func $~lib/dataview/DataView#getUint32 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/dataview/DataView#setUint32 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2362,20 +2445,14 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - i32.const 31 - i32.shr_u local.get $0 i32.load offset=8 - local.get $1 i32.const 4 - i32.add i32.lt_s - i32.or if i32.const 1360 i32.const 1632 - i32.const 87 + i32.const 142 i32.const 7 call $~lib/builtins/abort unreachable @@ -2383,110 +2460,31 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 - i32.add - i32.load - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 if (result i32) - local.get $0 + local.get $1 else - local.get $0 + local.get $1 i32.const -16711936 i32.and i32.const 8 i32.rotl - local.get $0 + local.get $1 i32.const 16711935 i32.and i32.const 8 i32.rotr i32.or end - ) - (func $~lib/dataview/DataView#getUint64 (param $0 i32) (param $1 i32) (result i64) - (local $2 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 1772 - i32.lt_s - if - i32.const 34560 - i32.const 34608 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.const 8 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 159 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - local.get $0 - i32.load offset=4 - i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - if (result i64) - local.get $2 - else - local.get $2 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $2 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $2 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $2 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - end ) - (func $~lib/dataview/DataView#setFloat32 (param $0 i32) (param $1 f32) (param $2 i32) + (func $~lib/dataview/DataView#setUint16 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2510,53 +2508,42 @@ i32.store local.get $0 i32.load offset=8 - i32.const 4 + i32.const 2 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 95 + i32.const 135 i32.const 7 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $2 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + if (result i32) local.get $1 - f32.store else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 - i32.reinterpret_f32 - local.tee $0 - i32.const -16711936 - i32.and i32.const 8 - i32.rotl - local.get $0 - i32.const 16711935 + i32.shl + local.get $1 + i32.const 65535 i32.and i32.const 8 - i32.rotr + i32.shr_u i32.or - i32.store end + i32.store16 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setFloat64 (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i64) + (func $~lib/dataview/DataView#setInt64 (param $0 i32) (param $1 i64) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2585,45 +2572,37 @@ if i32.const 1360 i32.const 1632 - i32.const 103 + i32.const 167 i32.const 7 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $2 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + if (result i64) local.get $1 - f64.store else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 - i64.reinterpret_f64 - local.tee $3 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $3 + local.get $1 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $3 + local.tee $1 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $3 + local.get $1 i64.const 281470681808895 i64.and i64.const 16 @@ -2631,14 +2610,14 @@ i64.or i64.const 32 i64.rotr - i64.store end + i64.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setInt16 (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setInt32 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2662,12 +2641,12 @@ i32.store local.get $0 i32.load offset=8 - i32.const 2 + i32.const 4 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 116 + i32.const 123 i32.const 7 call $~lib/builtins/abort unreachable @@ -2682,22 +2661,24 @@ local.get $1 else local.get $1 + i32.const -16711936 + i32.and i32.const 8 - i32.shl + i32.rotl local.get $1 - i32.const 65535 + i32.const 16711935 i32.and i32.const 8 - i32.shr_u + i32.rotr i32.or end - i32.store16 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setInt32 (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setInt16 (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2721,12 +2702,12 @@ i32.store local.get $0 i32.load offset=8 - i32.const 4 + i32.const 2 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 123 + i32.const 116 i32.const 7 call $~lib/builtins/abort unreachable @@ -2741,24 +2722,23 @@ local.get $1 else local.get $1 - i32.const -16711936 - i32.and i32.const 8 - i32.rotl + i32.shl local.get $1 - i32.const 16711935 + i32.const 65535 i32.and i32.const 8 - i32.rotr + i32.shr_u i32.or end - i32.store + i32.store16 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setInt64 (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/dataview/DataView#setFloat64 (param $0 i32) (param $1 f64) (param $2 i32) + (local $3 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2787,37 +2767,45 @@ if i32.const 1360 i32.const 1632 - i32.const 167 + i32.const 103 i32.const 7 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $2 - if (result i64) + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + f64.store else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + i64.reinterpret_f64 + local.tee $3 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $1 + local.get $3 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $1 + local.tee $3 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $1 + local.get $3 i64.const 281470681808895 i64.and i64.const 16 @@ -2825,14 +2813,14 @@ i64.or i64.const 32 i64.rotr + i64.store end - i64.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setUint16 (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#setFloat32 (param $0 i32) (param $1 f32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2856,44 +2844,55 @@ i32.store local.get $0 i32.load offset=8 - i32.const 2 + i32.const 4 i32.lt_s if i32.const 1360 i32.const 1632 - i32.const 135 + i32.const 95 i32.const 7 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $2 - if (result i32) + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + f32.store else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + i32.reinterpret_f32 + local.tee $0 + i32.const -16711936 + i32.and i32.const 8 - i32.shl - local.get $1 - i32.const 65535 + i32.rotl + local.get $0 + i32.const 16711935 i32.and i32.const 8 - i32.shr_u + i32.rotr i32.or + i32.store end - i32.store16 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/dataview/DataView#setUint32 (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2908,51 +2907,89 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=8 - i32.const 4 - i32.lt_s + i32.const 20 + i32.sub + i32.load offset=16 + local.get $1 + local.get $2 + i32.add + i32.lt_u + local.get $2 + i32.const 1073741820 + i32.gt_u + i32.or if - i32.const 1360 + i32.const 1056 i32.const 1632 - i32.const 142 + i32.const 25 i32.const 7 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + local.get $3 local.get $0 - i32.load offset=4 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $2 - if (result i32) - local.get $1 - else - local.get $1 - i32.const -16711936 - i32.and - i32.const 8 - i32.rotl - local.get $1 - i32.const 16711935 - i32.and - i32.const 8 - i32.rotr - i32.or - end - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/dataview/DataView#setUint64 (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2975,57 +3012,21 @@ local.get $0 i32.store local.get $0 - i32.load offset=8 - i32.const 8 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 174 - i32.const 7 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=4 - local.get $2 - if (result i64) - local.get $1 - else - local.get $1 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $1 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $1 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $1 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - end - i64.store + i32.load + i32.sub global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + call $start:std/dataview + ) (func $start:std/dataview (local $0 i32) (local $1 i32) diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index d97db8a353..b5fe4f437c 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -6,14 +6,14 @@ (type $4 (func (param i32))) (type $5 (func (param i32 i32 i32) (result i32))) (type $6 (func (param i64) (result i32))) - (type $7 (func (param i32 i32 i32 i32 i32 i32 i32) (result i64))) - (type $8 (func (param i32 i32 i32 i32))) - (type $9 (func (param i32 i32 i64))) - (type $10 (func (result i32))) + (type $7 (func (param i32 i32 i32 i32))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (param i32 i32 i32 i32 i32 i32 i32) (result i64))) + (type $10 (func (param i32 i64))) (type $11 (func (param i32 i32 i32 i64) (result i64))) - (type $12 (func (param i32 i32 i32))) - (type $13 (func (param i32 i32 i32 i32) (result i32))) - (type $14 (func (param i32 i64))) + (type $12 (func (param i32 i32 i32 i32) (result i32))) + (type $13 (func (param i32 i32 i64))) + (type $14 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/date/_day (mut i32) (i32.const 0)) (global $~lib/date/_month (mut i32) (i32.const 0)) @@ -257,3005 +257,1261 @@ (data $117 (i32.const 8432) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00\04A\00\00\02A\00\00\02\t") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/date/epochMillis (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i64) - local.get $6 - i64.extend_i32_s - local.get $5 - i32.const 1000 - i32.mul - i64.extend_i32_s - local.get $4 - i32.const 60000 - i32.mul - i64.extend_i32_s - local.get $3 - i32.const 3600000 - i32.mul - i64.extend_i32_s + (func $~lib/date/Date#constructor (param $0 i64) (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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 - i32.const 2 - i32.le_s - i32.sub - local.tee $0 - i32.const 399 i32.const 0 - local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - i32.lt_s - select - i32.sub - i32.const 400 - i32.div_s - local.set $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const -3 - i32.const 9 + i32.store offset=4 local.get $1 - i32.const 2 - i32.gt_s - select - i32.add - i32.const 153 - i32.mul - i32.const 2 - i32.add - i32.const 5 - i32.div_u - local.get $2 - i32.add + i32.const 0 + i32.store offset=8 local.get $0 - local.get $3 - i32.const 400 - i32.mul - i32.sub - local.tee $0 - i32.const 365 - i32.mul + i64.const -8640000000000000 + i64.lt_s local.get $0 - i32.const 2 - i32.shr_u - i32.add + i64.const 8640000000000000 + i64.gt_s + i32.or + if + i32.const 1056 + i32.const 1104 + i32.const 131 + i32.const 35 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.div_u - i32.sub - i32.add - local.get $3 - i32.const 146097 - i32.mul + call $~lib/date/dateFromEpoch + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + global.get $~lib/date/_month + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + global.get $~lib/date/_day + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const 719469 - i32.sub - i64.extend_i32_s - i64.const 86400000 - i64.mul - i64.add - i64.add - i64.add - i64.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/date/dateFromEpoch (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - local.get $0 - i64.const 86399999 - i64.const 0 - local.get $0 - i64.const 0 - i64.lt_s - select - i64.sub - i64.const 86400000 - i64.div_s - i32.wrap_i64 - i32.const 2 - i32.shl - i32.const 2877872 - i32.add - i32.const 3 - i32.or - local.tee $1 - i32.const 146096 - i32.const 0 local.get $1 - i32.const 0 - i32.lt_s - select - i32.sub - i32.const 146097 - i32.div_s - local.set $2 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1264 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white local.get $1 - local.get $2 - i32.const 146097 - i32.mul + i32.const 20 i32.sub + local.tee $1 + i32.load offset=4 i32.const 3 - i32.or - i64.extend_i32_u - i64.const 2939745 - i64.mul - local.tee $0 - i32.wrap_i64 - i32.const 11758980 - i32.div_u - local.tee $4 - i32.const 2141 - i32.mul - i32.const 197913 - i32.add - local.set $3 - local.get $0 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.get $2 - i32.const 100 - i32.mul - i32.add - local.set $1 - local.get $3 - i32.const 16 - i32.shr_u - local.set $2 - local.get $3 - i32.const 65535 i32.and - i32.const 2141 - i32.div_u - i32.const 1 - i32.add - global.set $~lib/date/_day - local.get $4 - i32.const 306 - i32.ge_u + i32.eq if - local.get $2 - i32.const 12 + local.get $0 + i32.const 20 i32.sub - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $2 - global.set $~lib/date/_month - local.get $1 - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1392 - call $~lib/rt/itcms/__visit - i32.const 6784 - call $~lib/rt/itcms/__visit - i32.const 6832 - call $~lib/rt/itcms/__visit - i32.const 1200 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 2304 - call $~lib/rt/itcms/__visit - i32.const 3360 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.ne + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if local.get $0 - i32.load offset=4 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 i32.const 3 + i32.eq i32.and - i32.const 3 - i32.ne if - i32.const 0 - i32.const 1264 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/itcms/Object#makeGray end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 end end ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - global.get $~lib/rt/itcms/iter + local.get $1 i32.eq if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - block $__inlined_func$~lib/rt/itcms/Object#unlink$376 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 + block $folding-inner0 + local.get $1 i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 41236 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$376 - end local.get $0 - i32.load offset=8 - local.tee $2 i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 - i32.store offset=8 + i32.store local.get $2 local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $0 + i32.const 0 + local.get $1 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/date/Date.fromString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 72 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 72 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - else - local.get $1 - i32.const 8432 - i32.load - i32.gt_u + i32.shr_u + i32.eqz if - i32.const 1392 - i32.const 1456 - i32.const 21 - i32.const 28 + i32.const 1056 + i32.const 1104 + i32.const 50 + i32.const 33 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 2 - i32.shl - i32.const 8436 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3488 i32.const 0 - i32.const 1536 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 + call $~lib/string/String#indexOf + local.tee $2 + i32.const -1 i32.xor - end - local.tee $3 - 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 1536 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 0 local.get $2 - i32.const 2 - i32.shl - i32.add + call $~lib/string/String#substring local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1536 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1536 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1536 - 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 - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1536 - 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 1536 - 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 - 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 1536 - 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1536 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1536 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1536 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 41248 - i32.const 0 - i32.store - i32.const 42816 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 41248 - i32.add - i32.const 0 - i32.store 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 41248 - i32.add - i32.const 0 - i32.store 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 41248 - i32.const 42820 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 41248 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 41236 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1264 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 41236 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 41236 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1536 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1536 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1200 - i32.const 1264 - i32.const 261 - 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1200 - i32.const 1536 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1536 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1536 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1536 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/date/join (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i64) (result i64) - (local $4 i32) - local.get $0 - local.get $1 - i32.const 2 - i32.le_s - i32.sub - local.tee $0 - i32.const 399 - i32.const 0 - local.get $0 - i32.const 0 - i32.lt_s - select - i32.sub - i32.const 400 - i32.div_s - local.set $4 - i64.const 86400000 - i64.const 0 - local.get $3 - i64.const 86400000 - i64.rem_s - local.tee $3 - i64.const 0 - i64.lt_s - select - local.get $3 - i64.add - local.get $1 - i32.const -3 - i32.const 9 - local.get $1 - i32.const 2 - i32.gt_s - select - i32.add - i32.const 153 - i32.mul - i32.const 2 - i32.add - i32.const 5 - i32.div_u - local.get $2 - i32.add - local.get $0 - local.get $4 - i32.const 400 - i32.mul - i32.sub - local.tee $0 - i32.const 365 - i32.mul - local.get $0 - i32.const 2 - i32.shr_u - i32.add - local.get $0 - i32.const 100 - i32.div_u - i32.sub - i32.add - local.get $4 - i32.const 146097 - i32.mul - i32.add - i32.const 719469 - i32.sub - i64.extend_i32_s - i64.const 86400000 - i64.mul - i64.add - ) - (func $~lib/number/I32#toString (param $0 i32) (result i32) - (local $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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32$73 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1872 - local.set $2 - br $__inlined_func$~lib/util/number/itoa32$73 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - select - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $3 - i32.add - local.set $5 - loop $while-continue|0 - local.get $0 - i32.const 10000 - i32.ge_u - if - local.get $0 - i32.const 10000 - i32.rem_u - local.set $4 - local.get $0 - i32.const 10000 - i32.div_u - local.set $0 - local.get $5 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 1884 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1884 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - i32.const 100 - i32.ge_u - if - local.get $5 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1884 - i32.add - i32.load - i32.store - local.get $0 - i32.const 100 - i32.div_u - local.set $0 - end - local.get $0 - i32.const 10 - i32.ge_u - if - local.get $5 - local.get $1 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 2 - i32.shl - i32.const 1884 - i32.add - i32.load - i32.store - else - local.get $5 - local.get $1 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.const 48 - i32.add - i32.store16 - end - local.get $3 - if - local.get $2 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $2 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.eqz - if - return - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1264 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $1 - local.get $3 - i32.const 4 - i32.ge_u - if (result i32) - local.get $1 - i32.const 7 - i32.and - local.get $2 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $1 - i64.load - local.get $2 - i64.load - i64.eq - if - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $3 - i32.const 4 - i32.sub - local.tee $3 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $3 - local.tee $0 - i32.const 1 - i32.sub - local.set $3 - local.get $0 - if - local.get $1 - i32.load16_u - local.tee $0 - local.get $2 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $0 - local.get $4 - i32.sub - return - end - local.get $1 - i32.const 2 - i32.add - local.set $1 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 - end - end - i32.const 0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array - block $~lib/array/Array<~lib/string/String> - block $~lib/staticarray/StaticArray<~lib/string/String> - block $~lib/date/Date - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/date/Date $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - return - end - 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 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|01 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|01 - end - end - br $folding-inner1 - end - 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 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 - end - unreachable - end - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/date - ) - (func $~lib/date/Date#constructor (param $0 i64) (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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $0 - i64.const -8640000000000000 - i64.lt_s - local.get $0 - i64.const 8640000000000000 - i64.gt_s - i32.or - if - i32.const 1056 - i32.const 1104 - i32.const 131 - i32.const 35 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/date/dateFromEpoch - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - global.get $~lib/date/_month - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - global.get $~lib/date/_day - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/date/Date#setTime (param $0 i32) (param $1 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i64.const -8640000000000000 - i64.lt_s - local.get $1 - i64.const 8640000000000000 - i64.gt_s - i32.or - if - i32.const 1056 - i32.const 1104 - i32.const 143 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/date/dateFromEpoch - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - global.get $~lib/date/_month - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - global.get $~lib/date/_day - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/date/Date#getUTCHours (param $0 i32) (result i32) - (local $1 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i64.load offset=16 - i64.const 86400000 - i64.rem_s - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i64.const 86400000 - i64.const 0 - local.get $1 - i64.const 0 - i64.lt_s - select - i64.add - i32.wrap_i64 - i32.const 3600000 - i32.div_s - ) - (func $~lib/date/Date#getUTCMinutes (param $0 i32) (result i32) - (local $1 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i64.load offset=16 - i64.const 3600000 - i64.rem_s - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i64.const 3600000 - i64.const 0 - local.get $1 - i64.const 0 - i64.lt_s - select - i64.add - i32.wrap_i64 - i32.const 60000 - i32.div_s - ) - (func $~lib/date/Date#getUTCSeconds (param $0 i32) (result i32) - (local $1 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i64.load offset=16 - i64.const 60000 - i64.rem_s - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i64.const 60000 - i64.const 0 - local.get $1 - i64.const 0 - i64.lt_s - select - i64.add - i32.wrap_i64 - i32.const 1000 - i32.div_s - ) - (func $~lib/date/Date#getUTCMilliseconds (param $0 i32) (result i32) - (local $1 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i64.load offset=16 - i64.const 1000 - i64.rem_s - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i64.const 1000 - i64.const 0 - local.get $1 - i64.const 0 - i64.lt_s - select - i64.add - i32.wrap_i64 - ) - (func $~lib/date/Date#setUTCMilliseconds (param $0 i32) (param $1 i32) - (local $2 i64) - 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $1 - local.get $0 - call $~lib/date/Date#getUTCMilliseconds - i32.sub - i64.extend_i32_s - i64.add - call $~lib/date/Date#setTime - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/date/Date#setUTCSeconds (param $0 i32) (param $1 i32) - (local $2 i64) - 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $1 - local.get $0 - call $~lib/date/Date#getUTCSeconds - i32.sub - i32.const 1000 - i32.mul - i64.extend_i32_s - i64.add - call $~lib/date/Date#setTime - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/date/Date#setUTCMinutes (param $0 i32) (param $1 i32) - (local $2 i64) - 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $1 - local.get $0 - call $~lib/date/Date#getUTCMinutes - i32.sub - i32.const 60000 - i32.mul - i64.extend_i32_s - i64.add - call $~lib/date/Date#setTime - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/date/Date#setUTCHours (param $0 i32) (param $1 i32) - (local $2 i64) - 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|0 + local.get $3 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + block $__inlined_func$~lib/string/String#charCodeAt$386 + local.get $3 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ge_u + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $0 + br $__inlined_func$~lib/string/String#charCodeAt$386 + end + local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + block $for-break0 + local.get $0 + i32.const 90 + i32.eq + br_if $for-break0 + local.get $0 + i32.const 45 + i32.eq + local.get $0 + i32.const 43 + i32.eq + i32.or + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $3 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + i32.eq + if + i32.const 1056 + i32.const 1104 + i32.const 74 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 0 + local.get $2 + i32.const 3520 + local.get $3 + i32.const 1 + i32.add + local.tee $5 + call $~lib/string/String#indexOf + local.tee $7 + i32.const -1 + i32.xor + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + local.get $7 + call $~lib/string/String#substring + local.tee $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/util/string/strtol + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $7 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $7 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/util/string/strtol + local.get $5 + i32.const 60 + i32.mul + i32.add + i32.const 60000 + i32.mul + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $5 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/util/string/strtol + i32.const 3600000 + i32.mul + end + local.tee $5 + i32.sub + local.get $5 + local.get $0 + i32.const 45 + i32.eq + select + local.set $5 + br $for-break0 + end + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $for-loop|0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + local.get $3 + call $~lib/string/String#substring + local.tee $2 + i32.store offset=8 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3520 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.tee $2 + i32.const 1 + i32.le_s + if + i32.const 1056 + i32.const 1104 + i32.const 96 + i32.const 21 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $3 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/util/string/strtol + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $7 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/util/string/strtol + local.set $7 + local.get $2 + i32.const 3 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $2 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 3552 + i32.const 0 + call $~lib/string/String#indexOf + local.tee $0 + i32.const -1 + i32.xor + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + local.get $0 + call $~lib/string/String#substring + local.tee $6 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + call $~lib/util/string/strtol + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=44 + local.get $0 + i32.const 1 + i32.add + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + block $__inlined_func$~lib/string/String#substr$387 (result i32) + i32.const 3 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $8 + local.get $0 + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $8 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.set $0 + end + local.get $0 + i32.sub + local.tee $8 + local.get $8 + i32.const 3 + i32.gt_s + select + i32.const 1 + i32.shl + local.tee $8 + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + br $__inlined_func$~lib/string/String#substr$387 + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $10 + i32.store offset=4 + local.get $10 + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $8 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 1872 + i32.store + block $__inlined_func$~lib/string/String#padEnd$388 + i32.const 1868 + i32.load + i32.const -2 + i32.and + local.tee $8 + i32.eqz + local.get $10 + i32.const 6 + i32.gt_u + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#padEnd$388 + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $10 + memory.copy + i32.const 6 + local.get $10 + i32.sub + local.tee $0 + local.get $8 + i32.gt_u + if + local.get $0 + local.get $0 + i32.const 2 + i32.sub + local.get $8 + i32.div_u + local.get $8 + i32.mul + local.tee $0 + i32.sub + local.set $11 + local.get $2 + local.get $10 + i32.add + local.set $12 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.gt_u + if + local.get $4 + local.get $12 + i32.add + i32.const 1872 + local.get $8 + memory.copy + local.get $4 + local.get $8 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $2 + local.get $10 + i32.add + local.get $0 + i32.add + i32.const 1872 + local.get $11 + memory.copy + else + local.get $2 + local.get $10 + i32.add + i32.const 1872 + local.get $0 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 + end + local.get $0 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/util/string/strtol + local.set $4 + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/util/string/strtol + local.set $6 + end + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1616 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $1 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/string/strtol i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array<~lib/string/String>#get:length + local.tee $8 + i32.const 2 + i32.ge_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $1 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/string/strtol + local.set $1 + local.get $8 + i32.const 3 + i32.ge_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $0 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/util/string/strtol + else + i32.const 1 + end + else + i32.const 1 + end + local.set $0 + local.get $1 + local.get $0 + local.get $3 + local.get $7 + local.get $6 + local.get $4 + call $~lib/date/epochMillis + local.get $5 + i64.extend_i32_s + i64.sub + call $~lib/date/Date#constructor + global.get $~lib/memory/__stack_pointer + i32.const 72 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $1 - local.get $0 - call $~lib/date/Date#getUTCHours - i32.sub - i32.const 3600000 - i32.mul - i64.extend_i32_s - i64.add - call $~lib/date/Date#setTime - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/date/Date#setUTCDate (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 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 8468 - i32.lt_s + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 + i32.const 1200 + i32.const 1264 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.eq + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - local.get $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $4 local.get $0 - i64.load offset=16 - call $~lib/date/join - call $~lib/date/Date#setTime - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/date/Date#setUTCMonth@varargs (param $0 i32) (param $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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1200 + i32.const 1536 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $2 + else + local.get $5 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - local.tee $1 - local.get $0 - i32.load offset=4 i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $3 - local.get $1 - local.get $2 - local.get $0 - i64.load offset=16 - call $~lib/date/join - call $~lib/date/Date#setTime + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/date/Date#setUTCFullYear (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s + local.get $5 + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1536 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 i32.load - i32.eq + local.set $6 + local.get $5 + i32.const 4 + i32.add + i32.const 15 + i32.and if - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 0 + i32.const 1536 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const -4 + i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 i32.load offset=8 local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 local.get $2 local.get $3 - local.get $0 - i64.load offset=16 - call $~lib/date/join - call $~lib/date/Date#setTime - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 ) (func $~lib/date/stringify (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3408,224 +1664,374 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/date/Date#toISOString (param $0 i32) (result 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 16 - i32.sub + i32.const -64 + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3456 - return - end - local.get $4 - i32.eqz - if + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 64 + memory.fill global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 3456 - local.get $0 - select - return - end - loop $for-loop|0 + i32.load + local.tee $1 + i32.const 0 + i32.lt_s + local.tee $3 local.get $1 - local.get $3 - i32.gt_s + i32.const 10000 + i32.ge_s + i32.or if global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1616 + i32.const 1648 local.get $3 - i32.const 2 - i32.shl + select + local.tee $3 + i32.store + local.get $1 + i32.const 31 + i32.shr_s + local.tee $4 + local.get $1 + local.get $4 i32.add - i32.load - local.tee $5 + i32.xor + i32.const 6 + call $~lib/date/stringify + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 - local.get $5 - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $2 - local.get $5 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $2 - end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - i32.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 3456 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3452 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - local.get $4 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $4 - i32.lt_s - if + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 + local.get $4 i32.store offset=4 - local.get $6 - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $5 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + block $__inlined_func$~lib/string/String#concat$385 + local.get $4 i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u + i32.const -2 + i32.and local.tee $6 - i32.const 1 - i32.shl - memory.copy - local.get $3 - local.get $6 - i32.add - local.set $3 - end - local.get $1 - if local.get $5 - local.get $3 - i32.const 1 - i32.shl i32.add - i32.const 3456 + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + local.set $1 + br $__inlined_func$~lib/string/String#concat$385 + end + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.shl - memory.copy + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 local.get $1 local.get $3 + local.get $5 + memory.copy + local.get $1 + local.get $5 i32.add - local.set $3 + local.get $4 + local.get $6 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer + else + local.get $1 + i32.const 4 + call $~lib/date/stringify + local.set $1 end + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + i32.const 2 + call $~lib/date/stringify + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + i32.const 2 + call $~lib/date/stringify + local.tee $3 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCHours + i32.const 2 + call $~lib/date/stringify + local.tee $4 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCMinutes + i32.const 2 + call $~lib/date/stringify + local.tee $5 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCSeconds + i32.const 2 + call $~lib/date/stringify + local.tee $6 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCMilliseconds + i32.const 3 + call $~lib/date/stringify + local.tee $0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 3616 + local.get $1 + i32.store + i32.const 3616 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 3624 + local.get $2 + i32.store + i32.const 3616 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + i32.const 3632 + local.get $3 + i32.store + i32.const 3616 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 3640 + local.get $4 + i32.store + i32.const 3616 + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 3648 + local.get $5 + i32.store + i32.const 3616 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 3656 + local.get $6 + i32.store + i32.const 3616 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 3664 + local.get $0 + i32.store + i32.const 3616 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store + i32.const 3616 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const -64 + i32.sub + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $5 - local.get $3 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount i32.const 1 - i32.shl i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy + global.set $~lib/rt/itcms/visitCount end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/date/Date#setUTCDate (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3646,368 +2052,484 @@ i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + local.get $1 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $1 + i32.load offset=8 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end global.get $~lib/memory/__stack_pointer - i32.const 3456 + local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 + local.get $2 + local.get $3 local.get $1 - call $~lib/util/string/joinStringArray + local.get $0 + i64.load offset=16 + call $~lib/date/join + call $~lib/date/Date#setTime global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/date/Date#toISOString (param $0 i32) (result i32) + (func $~lib/util/string/strtol (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const -64 - i32.add + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 64 - memory.fill - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.tee $1 - i32.const 0 - i32.lt_s - local.tee $3 - local.get $1 - i32.const 10000 - i32.ge_s - i32.or - if - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.const 1648 - local.get $3 - select - local.tee $3 - i32.store - local.get $1 - i32.const 31 - i32.shr_s - local.tee $4 - local.get $1 - local.get $4 - i32.add - i32.xor - i32.const 6 - call $~lib/date/stringify - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - block $__inlined_func$~lib/string/String#concat$385 - local.get $4 - i32.const 20 + i32.eqz + br_if $folding-inner0 + local.get $0 + local.tee $2 + i32.load16_u + local.set $0 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$164 (result i32) + local.get $0 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $0 + i32.const 9 i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $6 - local.get $5 - i32.add - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3456 - local.set $1 - br $__inlined_func$~lib/string/String#concat$385 + i32.const 4 + i32.le_u + i32.or + local.get $0 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$164 + drop + i32.const 1 + local.get $0 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$164 + drop + block $break|0 + block $case0|0 + local.get $0 + i32.const 5760 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8232 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8233 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8239 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8287 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 12288 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 65279 + i32.eq + br_if $case0|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$164 end - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 + end + if + local.get $2 i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $3 - local.get $5 - memory.copy - local.get $1 - local.get $5 - i32.add - local.get $4 - local.get $6 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $2 + i32.load16_u + local.set $0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - else - local.get $1 - i32.const 4 - call $~lib/date/stringify - local.set $1 end - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - i32.const 2 - call $~lib/date/stringify - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - i32.const 2 - call $~lib/date/stringify - local.tee $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCHours - i32.const 2 - call $~lib/date/stringify - local.tee $4 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCMinutes - i32.const 2 - call $~lib/date/stringify - local.tee $5 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 1 + local.set $4 local.get $0 - call $~lib/date/Date#getUTCSeconds - i32.const 2 - call $~lib/date/stringify + i32.const 45 + i32.eq local.tee $6 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCMilliseconds - i32.const 3 - call $~lib/date/stringify - local.tee $0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=60 - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 3616 - local.get $1 - i32.store - i32.const 3616 + i32.const 43 + i32.eq + i32.or + if (result i32) + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + i32.eqz + br_if $folding-inner0 + i32.const -1 + i32.const 1 + local.get $6 + select + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + else + local.get $0 + end + i32.const 48 + i32.eq local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 3624 - local.get $2 - i32.store - i32.const 3616 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - i32.const 3632 + i32.const 2 + i32.gt_s + i32.and + if + block $break|1 + block $case2|1 + block $case1|1 + local.get $2 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $0 + i32.const 98 + i32.ne + if + local.get $0 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $0 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 2 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 8 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 16 + local.set $3 + end + end local.get $3 - i32.store - i32.const 3616 + i32.const 10 local.get $3 + select + local.set $6 + local.get $1 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store + i32.sub + local.set $7 + loop $while-continue|2 + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + if + block $while-break|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 + i32.sub + local.tee $0 + i32.const 10 + i32.ge_u + if + local.get $3 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $3 + i32.const 55 + i32.sub + else + local.get $3 + i32.const 87 + i32.sub + local.get $3 + local.get $3 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + end + local.set $0 + end + local.get $0 + local.get $6 + i32.ge_u + if + local.get $1 + local.get $7 + i32.eq + br_if $folding-inner0 + br $while-break|2 + end + local.get $5 + local.get $6 + i32.mul + local.get $0 + i32.add + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|2 + end + end + end global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 - i32.store offset=4 - i32.const 3640 - local.get $4 - i32.store - i32.const 3616 - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - i32.const 3648 - local.get $5 - i32.store - i32.const 3616 local.get $5 + i32.mul + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/date/Date#getUTCSeconds (param $0 i32) (result i32) + (local $1 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 3656 - local.get $6 - i32.store - i32.const 3616 - local.get $6 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 3664 - local.get $0 - i32.store - i32.const 3616 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i64.load offset=16 + i64.const 60000 + i64.rem_s + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i64.const 60000 + i64.const 0 + local.get $1 + i64.const 0 + i64.lt_s + select + i64.add + i32.wrap_i64 + i32.const 1000 + i32.div_s + ) + (func $~lib/date/Date#getUTCMinutes (param $0 i32) (result i32) + (local $1 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i64.load offset=16 + i64.const 3600000 + i64.rem_s + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i64.const 3600000 + i64.const 0 + local.get $1 + i64.const 0 + i64.lt_s + select + i64.add + i32.wrap_i64 + i32.const 60000 + i32.div_s + ) + (func $~lib/date/Date#getUTCMilliseconds (param $0 i32) (result i32) + (local $1 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store - i32.const 3616 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - global.get $~lib/memory/__stack_pointer - i32.const -64 - i32.sub - global.set $~lib/memory/__stack_pointer - return + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i64.load offset=16 + i64.const 1000 + i64.rem_s + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i64.const 1000 + i64.const 0 + local.get $1 + i64.const 0 + i64.lt_s + select + i64.add + i32.wrap_i64 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/date/Date#setUTCMilliseconds (param $0 i32) (param $1 i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4026,79 +2548,36 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 + local.get $2 local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 0 - local.get $1 - local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end + local.get $0 + call $~lib/date/Date#getUTCMilliseconds + i32.sub + i64.extend_i32_s + i64.add + call $~lib/date/Date#setTime global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/date/Date#toDateString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (func $~lib/date/Date#getUTCHours (param $0 i32) (result i32) + (local $1 i64) global.get $~lib/memory/__stack_pointer - i32.const 52 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4114,245 +2593,207 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 52 - memory.fill + i32.store global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.const 4640 - i32.const 28 - memory.copy - local.get $2 + local.get $0 i32.store + local.get $0 + i64.load offset=16 + i64.const 86400000 + i64.rem_s + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 48 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $3 - i32.const 5072 - i32.const 48 - memory.copy + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i64.const 86400000 + i64.const 0 + local.get $1 + i64.const 0 + i64.lt_s + select + i64.add + i32.wrap_i64 + i32.const 3600000 + i32.div_s + ) + (func $~lib/date/Date#setUTCMonth@varargs (param $0 i32) (param $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 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + local.tee $1 + local.get $0 + i32.load offset=4 + i32.ne + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $1 + local.get $2 + local.get $0 + i64.load offset=16 + call $~lib/date/join + call $~lib/date/Date#setTime + end + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/date/epochMillis (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i64) + local.get $6 + i64.extend_i32_s + local.get $5 + i32.const 1000 + i32.mul + i64.extend_i32_s + local.get $4 + i32.const 60000 + i32.mul + i64.extend_i32_s local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 3600000 + i32.mul + i64.extend_i32_s local.get $0 - i32.load - local.tee $0 - local.get $1 - i32.const 3 - i32.lt_s - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - local.set $6 local.get $1 - i32.const 1579 - i32.add - i32.load8_u - local.get $5 - i32.const 3 - i32.const 0 - local.get $6 - select - i32.sub - i32.const 4 - i32.div_s - local.get $5 - i32.const 99 - i32.const 0 - local.get $6 - select - i32.sub - i32.const 100 - i32.div_s + i32.const 2 + i32.le_s i32.sub - local.get $5 + local.tee $0 i32.const 399 i32.const 0 - local.get $6 + local.get $0 + i32.const 0 + i32.lt_s select i32.sub i32.const 400 i32.div_s - i32.add - local.get $5 - i32.add - i32.add - local.get $4 - i32.add - i32.const 7 - i32.rem_s - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 31 - i32.shr_s - local.tee $6 - local.get $0 - i32.add - local.get $6 - i32.xor - i32.const 4 - call $~lib/date/stringify - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 + local.set $3 + local.get $1 + i32.const -3 + i32.const 9 local.get $1 - i32.const 1 - i32.sub i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 7 - i32.const 0 - local.get $5 - i32.const 0 - i32.lt_s + i32.gt_s select - local.get $5 i32.add + i32.const 153 + i32.mul i32.const 2 - i32.shl i32.add - i32.load - local.tee $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/date/stringify - local.tee $3 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer + i32.const 5 + i32.div_u local.get $2 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.const 5232 + i32.add local.get $0 - i32.const 0 - i32.lt_s - select - local.tee $0 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=48 - i32.const 5152 - local.get $2 - i32.store - i32.const 5152 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=48 - i32.const 5156 - local.get $1 - i32.store - i32.const 5152 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=48 - i32.const 5160 - local.get $3 - i32.store - i32.const 5152 local.get $3 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - i32.const 5164 + i32.const 400 + i32.mul + i32.sub + local.tee $0 + i32.const 365 + i32.mul local.get $0 - i32.store - i32.const 5152 + i32.const 2 + i32.shr_u + i32.add local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=48 - i32.const 5168 - local.get $6 - i32.store - i32.const 5152 - local.get $6 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5152 - i32.store offset=8 - i32.const 5152 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - global.get $~lib/memory/__stack_pointer - i32.const 52 + i32.const 100 + i32.div_u + i32.sub i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.const 146097 + i32.mul + i32.add + i32.const 719469 + i32.sub + i64.extend_i32_s + i64.const 86400000 + i64.mul + i64.add + i64.add + i64.add + i64.add ) - (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/date/Date#setTime (param $0 i32) (param $1 i64) global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4368,106 +2809,55 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 32 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCHours - i32.const 2 - call $~lib/date/stringify - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCMinutes - i32.const 2 - call $~lib/date/stringify - local.tee $2 - i32.store offset=8 + local.get $1 + i64.const -8640000000000000 + i64.lt_s + local.get $1 + i64.const 8640000000000000 + i64.gt_s + i32.or + if + i32.const 1056 + i32.const 1104 + i32.const 143 + i32.const 28 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/date/Date#getUTCSeconds - i32.const 2 - call $~lib/date/stringify - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 + i64.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=28 - i32.const 5456 - local.get $1 i32.store - i32.const 5456 + local.get $0 local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - i32.const 5464 - local.get $2 - i32.store - i32.const 5456 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5456 + call $~lib/date/dateFromEpoch i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=28 - i32.const 5472 - local.get $0 i32.store - i32.const 5456 local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link + global.get $~lib/date/_month + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5456 + local.get $0 i32.store - i32.const 5456 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.get $0 + global.get $~lib/date/_day + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/date/Date#toUTCString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 76 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4482,316 +2872,281 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 76 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.const 5824 - i32.const 28 - memory.copy - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 48 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $3 - i32.const 6256 - i32.const 48 - memory.copy - local.get $3 - i32.store offset=4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store + local.get $1 local.get $0 - i32.load offset=4 - local.set $1 + i32.load offset=12 + i32.ge_u + if + i32.const 1392 + i32.const 6736 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $4 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - i32.load - local.tee $5 - local.get $1 - i32.const 3 - i32.lt_s - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - local.set $7 + i32.load offset=4 local.get $1 - i32.const 1579 - i32.add - i32.load8_u - local.get $6 - i32.const 3 - i32.const 0 - local.get $7 - select - i32.sub - i32.const 4 - i32.div_s - local.get $6 - i32.const 99 - i32.const 0 - local.get $7 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub - local.get $6 - i32.const 399 - i32.const 0 - local.get $7 - select - i32.sub - i32.const 400 - i32.div_s - i32.add - local.get $6 - i32.add - i32.add - local.get $4 + i32.const 2 + i32.shl i32.add - i32.const 7 - i32.rem_s - local.set $6 + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + if + i32.const 6832 + i32.const 6736 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 31 - i32.shr_s - local.tee $7 - local.get $5 + i32.const 8 i32.add - local.get $7 - i32.xor - i32.const 4 - call $~lib/date/stringify - local.tee $7 - i32.store offset=12 + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 + i32.store local.get $1 - i32.const 1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $3 + local.get $0 + i32.const 20 i32.sub - i32.const 2 - i32.shl - i32.add - i32.load + i32.load offset=16 + i32.const 1 + i32.shr_u local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $3 + i32.gt_s + select + local.tee $3 local.get $2 - i32.const 7 i32.const 0 - local.get $6 + local.get $2 i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + local.get $2 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $4 + local.get $3 + local.get $2 + local.get $2 + local.get $3 i32.lt_s select - local.get $6 - i32.add - i32.const 2 + i32.const 1 i32.shl - i32.add - i32.load local.tee $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 2 - call $~lib/date/stringify + i32.sub local.tee $3 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCHours - i32.const 2 - call $~lib/date/stringify - local.tee $4 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + return + end + local.get $4 + i32.eqz + local.get $2 + local.get $1 + i32.const 1 + i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/date/Date#getUTCMinutes + local.get $3 i32.const 2 - call $~lib/date/stringify - local.tee $6 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 local.get $0 - call $~lib/date/Date#getUTCSeconds - i32.const 2 - call $~lib/date/stringify - local.tee $0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer + local.get $4 + i32.add local.get $3 - i32.store offset=44 + memory.copy global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.const 3456 - local.get $5 - i32.const 0 - i32.lt_s - select - local.tee $5 - i32.store offset=52 + ) + (func $~lib/rt/__newArray (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=56 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=60 + i32.const 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=64 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=72 - i32.const 6368 - local.get $2 + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 i32.store - i32.const 6368 + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=72 - i32.const 6372 - local.get $3 i32.store - i32.const 6368 - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=72 - i32.const 6376 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link local.get $1 - i32.store - i32.const 6368 + local.get $2 + i32.store offset=4 local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=72 - i32.const 6380 - local.get $5 - i32.store - i32.const 6368 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 + local.get $3 i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=72 - i32.const 6384 - local.get $7 - i32.store - i32.const 6368 - local.get $7 - i32.const 1 - call $~lib/rt/itcms/__link + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=72 - i32.const 6392 - local.get $4 - i32.store - i32.const 6368 - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__link + i32.const 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=72 - i32.const 6400 - local.get $6 + local.get $0 i32.store - i32.const 6368 - local.get $6 + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $2 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=72 - i32.const 6408 + i32.store local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 i32.store - i32.const 6368 local.get $0 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 6368 - i32.store offset=8 - i32.const 6368 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 76 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) @@ -4909,9 +3264,194 @@ global.set $~lib/memory/__stack_pointer i32.const -1 ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 3456 + i32.store + local.get $0 + local.get $1 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/Date#setUTCSeconds (param $0 i32) (param $1 i32) + (local $2 i64) + 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $1 + local.get $0 + call $~lib/date/Date#getUTCSeconds + i32.sub + i32.const 1000 + i32.mul + i64.extend_i32_s + i64.add + call $~lib/date/Date#setTime + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/Date#setUTCMinutes (param $0 i32) (param $1 i32) + (local $2 i64) + 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $1 + local.get $0 + call $~lib/date/Date#getUTCMinutes + i32.sub + i32.const 60000 + i32.mul + i64.extend_i32_s + i64.add + call $~lib/date/Date#setTime + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/Date#setUTCHours (param $0 i32) (param $1 i32) + (local $2 i64) + 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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $1 + local.get $0 + call $~lib/date/Date#getUTCHours + i32.sub + i32.const 3600000 + i32.mul + i64.extend_i32_s + i64.add + call $~lib/date/Date#setTime + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/Date#setUTCFullYear (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4934,98 +3474,46 @@ local.get $0 i32.store local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $3 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - local.get $3 - i32.gt_s - select - local.tee $3 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - local.get $2 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $4 - local.get $3 - local.get $2 - local.get $2 - local.get $3 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $2 - local.get $4 - i32.sub - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3456 - return - end - local.get $4 - i32.eqz - local.get $2 - local.get $1 - i32.const 1 - i32.shl + i32.load i32.eq - i32.and if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 local.get $0 - local.get $4 - i32.add + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 local.get $3 - memory.copy + local.get $0 + i64.load offset=16 + call $~lib/date/join + call $~lib/date/Date#setTime global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $~lib/string/String#substring@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -5060,860 +3548,2070 @@ i32.const 2147483647 local.set $2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#substring - 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 + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#substring + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1536 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1536 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end ) - (func $~lib/util/string/strtol (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s + local.get $1 + i32.eqz if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1536 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $folding-inner0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - i32.eqz - br_if $folding-inner0 - local.get $0 - local.tee $2 - i32.load16_u - local.set $0 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$164 (result i32) - local.get $0 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $0 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $0 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$164 - drop - i32.const 1 - local.get $0 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$164 - drop - block $break|0 - block $case0|0 - local.get $0 - i32.const 5760 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8232 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8233 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8239 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8287 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 12288 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 65279 - i32.eq - br_if $case0|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$164 - end - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 - end - end - i32.const 1 - local.set $4 - local.get $0 - i32.const 45 - i32.eq - local.tee $6 + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if local.get $0 - i32.const 43 - i32.eq - i32.or - if (result i32) - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.eqz - br_if $folding-inner0 - i32.const -1 - i32.const 1 - local.get $6 - select - local.set $4 - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - else - local.get $0 - end - i32.const 48 - i32.eq + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $2 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $0 - i32.const 98 - i32.ne - if - local.get $0 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $0 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 2 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 8 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 16 - local.set $3 - end - end local.get $3 - i32.const 10 - local.get $3 - select - local.set $6 + i32.const 4 + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store local.get $1 - i32.const 1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 i32.sub - local.set $7 - loop $while-continue|2 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - if - block $while-break|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 - i32.sub - local.tee $0 - i32.const 10 - i32.ge_u - if - local.get $3 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $3 - i32.const 55 - i32.sub - else - local.get $3 - i32.const 87 - i32.sub - local.get $3 - local.get $3 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - end - local.set $0 - end - local.get $0 - local.get $6 - i32.ge_u - if - local.get $1 - local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 - end - local.get $5 - local.get $6 - i32.mul - local.get $0 - i32.add - local.set $5 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|2 - end - end + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + local.get $6 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i32.mul - return + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store end - global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1536 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s + local.get $1 + i32.store + 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 41264 - i32.const 41312 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1536 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + 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 offset=96 + local.set $3 + local.get $1 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store - local.get $1 local.get $0 - i32.load offset=8 - local.tee $2 + local.get $5 i32.const 2 - i32.shr_u - i32.gt_u + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $1 - i32.const 268435455 - i32.gt_u + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz if - i32.const 6784 - i32.const 6736 - i32.const 19 - i32.const 48 + i32.const 0 + i32.const 1264 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$376 local.get $0 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$363 - i32.const 1073741820 - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $3 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if local.get $0 - i32.load - local.tee $2 - i32.const 20 - i32.sub - local.tee $4 - i32.load - i32.const -4 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 41236 + i32.lt_u i32.and - i32.const 16 - i32.sub - i32.le_u + i32.eqz if - local.get $4 - local.get $3 - i32.store offset=16 - local.get $2 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$363 + i32.const 0 + i32.const 1264 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end - local.get $3 - local.get $4 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $2 - local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_u - select - memory.copy + br $__inlined_func$~lib/rt/itcms/Object#unlink$376 end - local.get $1 - local.get $2 - i32.ne + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz if - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 i32.const 0 - call $~lib/rt/itcms/__link + i32.const 1264 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $0 i32.load offset=12 - local.tee $2 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 8432 + i32.load + i32.gt_u + if + i32.const 1392 + i32.const 1456 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 8436 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 local.get $0 local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.store offset=8 + local.get $1 local.get $0 - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/__visit_members (param $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) - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner4 - block $folding-inner3 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 36 - memory.fill - local.get $2 - i32.eqz - br_if $folding-inner1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store - 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 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.load offset=12 - i32.eqz - if - local.get $2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 1 - i32.store offset=12 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array + block $~lib/array/Array<~lib/string/String> + block $~lib/staticarray/StaticArray<~lib/string/String> + block $~lib/date/Date + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/date/Date $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.load offset=4 local.get $0 - i32.store - local.get $2 local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 + i32.sub + i32.load offset=16 i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner4 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 2147483647 - local.get $2 - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $8 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - if - local.get $6 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.load offset=4 - i32.const 3456 - i32.store - br $folding-inner4 - end - else - local.get $6 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $6 - local.get $8 - local.get $6 - local.get $8 - i32.lt_s - select - local.tee $3 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.load offset=4 - local.set $4 - i32.const 0 local.set $1 - loop $for-loop|0 + loop $while-continue|0 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.lt_u if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - local.get $5 local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 1 + i32.load + local.tee $2 + if + local.get $2 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 i32.add - local.set $1 - br $for-loop|0 + local.set $0 + br $while-continue|0 end end - br $folding-inner4 + return end 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=20 - loop $while-continue|1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 - local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|01 local.get $1 - local.get $3 - call $~lib/string/String#indexOf - local.tee $9 - i32.const -1 - i32.xor + local.get $2 + i32.lt_u if - local.get $9 - local.get $3 - i32.sub - local.tee $7 - i32.const 0 - i32.gt_s + local.get $1 + i32.load + local.tee $3 if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.shl - local.tee $10 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=28 - local.get $7 - local.get $0 local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $10 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=24 - local.get $2 - local.get $7 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3456 - call $~lib/array/Array<~lib/string/String>#push + call $~lib/rt/itcms/__visit end - local.get $5 - i32.const 1 - i32.add - local.tee $5 - local.get $8 - i32.eq - br_if $folding-inner3 - local.get $4 - local.get $9 + local.get $1 + i32.const 4 i32.add - local.set $3 - br $while-continue|1 + local.set $1 + br $while-continue|01 end end - local.get $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $2 - local.get $0 - call $~lib/array/Array<~lib/string/String>#push - br $folding-inner3 - end - local.get $6 - local.get $3 - i32.sub - local.tee $1 + br $folding-inner1 + end + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner1 + end + unreachable + end + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/join (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i64) (result i64) + (local $4 i32) + local.get $0 + local.get $1 + i32.const 2 + i32.le_s + i32.sub + local.tee $0 + i32.const 399 + i32.const 0 + local.get $0 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 400 + i32.div_s + local.set $4 + i64.const 86400000 + i64.const 0 + local.get $3 + i64.const 86400000 + i64.rem_s + local.tee $3 + i64.const 0 + i64.lt_s + select + local.get $3 + i64.add + local.get $1 + i32.const -3 + i32.const 9 + local.get $1 + i32.const 2 + i32.gt_s + select + i32.add + i32.const 153 + i32.mul + i32.const 2 + i32.add + i32.const 5 + i32.div_u + local.get $2 + i32.add + local.get $0 + local.get $4 + i32.const 400 + i32.mul + i32.sub + local.tee $0 + i32.const 365 + i32.mul + local.get $0 + i32.const 2 + i32.shr_u + i32.add + local.get $0 + i32.const 100 + i32.div_u + i32.sub + i32.add + local.get $4 + i32.const 146097 + i32.mul + i32.add + i32.const 719469 + i32.sub + i64.extend_i32_s + i64.const 86400000 + i64.mul + i64.add + ) + (func $~lib/date/Date#toUTCString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 76 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 76 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.const 5824 + i32.const 28 + memory.copy + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 48 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 6256 + i32.const 48 + memory.copy + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 7 + i32.const 0 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u + local.get $0 + i32.load + local.tee $5 + local.get $3 + i32.const 3 + i32.lt_s + i32.sub + local.tee $6 + i32.const 3 + i32.const 0 + local.get $6 + i32.const 0 + i32.lt_s + local.tee $7 + select + i32.sub + i32.const 4 + i32.div_s + local.get $6 + i32.const 99 + i32.const 0 + local.get $7 + select + i32.sub + i32.const 100 + i32.div_s + i32.sub + local.get $6 + i32.const 399 + i32.const 0 + local.get $7 + select + i32.sub + i32.const 400 + i32.div_s + i32.add + local.get $6 + i32.add + i32.add + local.get $4 + i32.add + i32.const 7 + i32.rem_s + local.tee $6 + i32.const 0 + i32.lt_s + select + local.get $6 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 31 + i32.shr_s + local.tee $7 + local.get $5 + local.get $7 + i32.add + i32.xor + i32.const 4 + call $~lib/date/stringify + local.tee $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + call $~lib/date/stringify + local.tee $3 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCHours + i32.const 2 + call $~lib/date/stringify + local.tee $4 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCMinutes + i32.const 2 + call $~lib/date/stringify + local.tee $6 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCSeconds + i32.const 2 + call $~lib/date/stringify + local.tee $0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.const 3456 + local.get $5 + i32.const 0 + i32.lt_s + select + local.tee $5 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=72 + i32.const 6368 + local.get $1 + i32.store + i32.const 6368 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=72 + i32.const 6372 + local.get $3 + i32.store + i32.const 6368 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=72 + i32.const 6376 + local.get $2 + i32.store + i32.const 6368 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=72 + i32.const 6380 + local.get $5 + i32.store + i32.const 6368 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=72 + i32.const 6384 + local.get $7 + i32.store + i32.const 6368 + local.get $7 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=72 + i32.const 6392 + local.get $4 + i32.store + i32.const 6368 + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=72 + i32.const 6400 + local.get $6 + i32.store + i32.const 6368 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=72 + i32.const 6408 + local.get $0 + i32.store + i32.const 6368 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 6368 + i32.store offset=8 + i32.const 6368 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const 76 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/date/Date#toDateString (param $0 i32) (result 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 52 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 52 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 4640 + i32.const 28 + memory.copy + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 48 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 + i32.const 5072 + i32.const 48 + memory.copy + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 7 + i32.const 0 + local.get $1 + i32.const 1579 + i32.add + i32.load8_u + local.get $0 + i32.load + local.tee $0 + local.get $1 + i32.const 3 + i32.lt_s + i32.sub + local.tee $5 + i32.const 3 + i32.const 0 + local.get $5 + i32.const 0 + i32.lt_s + local.tee $6 + select + i32.sub + i32.const 4 + i32.div_s + local.get $5 + i32.const 99 + i32.const 0 + local.get $6 + select + i32.sub + i32.const 100 + i32.div_s + i32.sub + local.get $5 + i32.const 399 + i32.const 0 + local.get $6 + select + i32.sub + i32.const 400 + i32.div_s + i32.add + local.get $5 + i32.add + i32.add + local.get $4 + i32.add + i32.const 7 + i32.rem_s + local.tee $5 + i32.const 0 + i32.lt_s + select + local.get $5 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 31 + i32.shr_s + local.tee $6 + local.get $0 + local.get $6 + i32.add + i32.xor + i32.const 4 + call $~lib/date/stringify + local.tee $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + call $~lib/date/stringify + local.tee $3 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.const 5232 + local.get $0 + i32.const 0 + i32.lt_s + select + local.tee $0 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=48 + i32.const 5152 + local.get $2 + i32.store + i32.const 5152 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=48 + i32.const 5156 + local.get $1 + i32.store + i32.const 5152 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=48 + i32.const 5160 + local.get $3 + i32.store + i32.const 5152 + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=48 + i32.const 5164 + local.get $0 + i32.store + i32.const 5152 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=48 + i32.const 5168 + local.get $6 + i32.store + i32.const 5152 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5152 + i32.store offset=8 + i32.const 5152 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const 52 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $1 + local.get $3 + i32.const 4 + i32.ge_u + if (result i32) + local.get $1 + i32.const 7 + i32.and + local.get $2 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $1 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $3 + i32.const 4 + i32.sub + local.tee $3 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $3 + local.tee $0 + i32.const 1 + i32.sub + local.set $3 + local.get $0 + if + local.get $1 + i32.load16_u + local.tee $0 + local.get $2 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $0 + local.get $4 + i32.sub + return + end + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#split + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1536 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1536 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 41248 + i32.const 0 + i32.store + i32.const 42816 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 41248 + i32.add + i32.const 0 + i32.store 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 41248 + i32.add i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=32 - local.get $4 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=24 - local.get $2 - local.get $4 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3456 - call $~lib/array/Array<~lib/string/String>#push - end - br $folding-inner4 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 41248 + i32.const 42820 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 41248 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1536 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1536 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1536 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1392 + call $~lib/rt/itcms/__visit + i32.const 6784 + call $~lib/rt/itcms/__visit + i32.const 6832 + call $~lib/rt/itcms/__visit + i32.const 1200 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 2304 + call $~lib/rt/itcms/__visit + i32.const 3360 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1264 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end - i32.const 0 - call $~lib/rt/__newArray - local.set $2 - br $folding-inner4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.add - global.set $~lib/memory/__stack_pointer + end + ) + (func $~lib/date/dateFromEpoch (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i64.const 86399999 + i64.const 0 + local.get $0 + i64.const 0 + i64.lt_s + select + i64.sub + i64.const 86400000 + i64.div_s + i32.wrap_i64 + i32.const 2 + i32.shl + i32.const 2877872 + i32.add + i32.const 3 + i32.or + local.tee $1 + i32.const 146096 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 146097 + i32.div_s + local.set $2 + local.get $1 + local.get $2 + i32.const 146097 + i32.mul + i32.sub + i32.const 3 + i32.or + i64.extend_i32_u + i64.const 2939745 + i64.mul + local.tee $0 + i32.wrap_i64 + i32.const 11758980 + i32.div_u + local.tee $4 + i32.const 2141 + i32.mul + i32.const 197913 + i32.add + local.set $3 + local.get $0 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.get $2 + i32.const 100 + i32.mul + i32.add + local.set $1 + local.get $3 + i32.const 16 + i32.shr_u + local.set $2 + local.get $3 + i32.const 65535 + i32.and + i32.const 2141 + i32.div_u + i32.const 1 + i32.add + global.set $~lib/date/_day + local.get $4 + i32.const 306 + i32.ge_u + if local.get $2 - return + i32.const 12 + i32.sub + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $2 + global.set $~lib/date/_month + local.get $1 + ) + (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCHours + i32.const 2 + call $~lib/date/stringify + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCMinutes + i32.const 2 + call $~lib/date/stringify + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/date/Date#getUTCSeconds + i32.const 2 + call $~lib/date/stringify + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=28 + i32.const 5456 + local.get $1 + i32.store + i32.const 5456 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=28 + i32.const 5464 + local.get $2 + i32.store + i32.const 5456 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=28 + i32.const 5472 + local.get $0 + i32.store + i32.const 5456 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + i32.const 5456 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const 32 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5928,41 +5626,164 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 6784 + i32.const 6736 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$363 + i32.const 1073741820 + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $3 + local.get $0 + i32.load + local.tee $2 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $4 + local.get $3 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$363 end + local.get $3 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $2 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_u + select + memory.copy + end + local.get $1 + local.get $2 + i32.ne + if + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 i32.const 0 - local.set $1 + call $~lib/rt/itcms/__link end - i32.const 2147483647 - local.set $2 + local.get $0 + local.get $3 + i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/string/String>#get:length (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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#split + i32.store + local.get $0 + i32.load offset=12 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std/date + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5977,59 +5798,169 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3456 + return + end + local.get $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 3456 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + i32.store offset=4 + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $2 + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $2 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end i32.const 0 - i32.store + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 + i32.const 3456 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.const 3452 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + local.get $4 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result 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 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1392 - i32.const 6736 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + i32.const 1 + i32.shl + memory.copy + local.get $3 + local.get $6 + i32.add + local.set $3 + end + local.get $1 + if + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3456 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $3 + i32.add + local.set $3 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $1 + local.get $4 i32.const 2 i32.shl i32.add @@ -6037,729 +5968,855 @@ local.tee $0 i32.store offset=4 local.get $0 - i32.eqz if - i32.const 6832 - i32.const 6736 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/date/Date.fromString (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 72 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 72 - memory.fill global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u - i32.eqz - if - i32.const 1056 - i32.const 1104 - i32.const 50 - i32.const 33 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3488 - i32.const 0 - call $~lib/string/String#indexOf - local.tee $2 - i32.const -1 - i32.xor - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - local.get $2 - call $~lib/string/String#substring - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $2 - i32.const 1 - i32.add - call $~lib/string/String#substring@varargs - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $3 - loop $for-loop|0 - local.get $3 - i32.const 0 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const -2 + i32.and + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner4 + block $folding-inner3 + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 8468 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 36 + memory.fill local.get $2 - i32.store - block $__inlined_func$~lib/string/String#charCodeAt$386 - local.get $3 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 + i32.eqz + br_if $folding-inner1 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer i32.const 1 - i32.shr_u - i32.ge_u + call $~lib/rt/__newArray + local.tee $2 + i32.store + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=12 + i32.eqz if + local.get $2 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $0 - br $__inlined_func$~lib/string/String#charCodeAt$386 + local.get $2 + i32.store + local.get $2 + i32.const 1 + i32.store offset=12 end + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 + i32.store + local.get $2 + i32.load offset=4 + local.get $0 + i32.store + local.get $2 + local.get $0 i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + br $folding-inner4 end - block $for-break0 - local.get $0 - i32.const 90 - i32.eq - br_if $for-break0 - local.get $0 - i32.const 45 - i32.eq - local.get $0 - i32.const 43 - i32.eq - i32.or + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 2147483647 + local.get $2 + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $8 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + if + local.get $6 + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $3 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u i32.const 1 - i32.sub - i32.eq - if - i32.const 1056 - i32.const 1104 - i32.const 74 - i32.const 13 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store - i32.const 0 + i32.store offset=4 local.get $2 - i32.const 3520 + i32.load offset=4 + i32.const 3456 + i32.store + br $folding-inner4 + end + else + local.get $6 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $8 + local.get $6 + local.get $8 + i32.lt_s + select + local.tee $3 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 local.get $3 - i32.const 1 - i32.add - local.tee $5 - call $~lib/string/String#indexOf - local.tee $7 - i32.const -1 - i32.xor - if (result i32) + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=12 + local.get $5 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 i32.store + local.get $2 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + br $folding-inner4 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=20 + loop $while-continue|1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=24 + local.get $0 + local.get $1 + local.get $3 + call $~lib/string/String#indexOf + local.tee $9 + i32.const -1 + i32.xor + if + local.get $9 + local.get $3 + i32.sub + local.tee $7 + i32.const 0 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $5 local.get $7 - call $~lib/string/String#substring - local.tee $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/util/string/strtol - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $2 + i32.shl + local.tee $10 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=28 local.get $7 + local.get $0 + local.get $3 i32.const 1 + i32.shl i32.add - call $~lib/string/String#substring@varargs - local.tee $7 - i32.store offset=16 + local.get $10 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store + i32.store offset=24 + local.get $2 local.get $7 - call $~lib/util/string/strtol - local.get $5 - i32.const 60 - i32.mul - i32.add - i32.const 60000 - i32.mul + call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer local.get $2 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + i32.store offset=4 local.get $2 - local.get $3 - i32.const 1 - i32.add - call $~lib/string/String#substring@varargs - local.tee $5 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - call $~lib/util/string/strtol - i32.const 3600000 - i32.mul + i32.const 3456 + call $~lib/array/Array<~lib/string/String>#push end - local.tee $5 - i32.sub local.get $5 - local.get $0 - i32.const 45 + i32.const 1 + i32.add + local.tee $5 + local.get $8 i32.eq - select - local.set $5 - br $for-break0 + br_if $folding-inner3 + local.get $4 + local.get $9 + i32.add + local.set $3 + br $while-continue|1 end - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 local.get $3 - call $~lib/string/String#substring - local.tee $2 - i32.store offset=8 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3520 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/array/Array<~lib/string/String>#get:length - local.tee $2 - i32.const 1 - i32.le_s - if - i32.const 1056 - i32.const 1104 - i32.const 96 - i32.const 21 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $3 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/util/string/strtol - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $7 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/util/string/strtol - local.set $7 - local.get $2 - i32.const 3 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $2 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 3552 - i32.const 0 - call $~lib/string/String#indexOf - local.tee $0 - i32.const -1 - i32.xor - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - local.get $0 - call $~lib/string/String#substring - local.tee $6 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - call $~lib/util/string/strtol - local.set $6 - global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/string/String#substr$387 (result i32) + i32.eqz + if global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=44 - local.get $0 - i32.const 1 - i32.add - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - i32.const 3 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 local.get $0 - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $8 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.set $0 - end + i32.store offset=24 + local.get $2 local.get $0 - i32.sub - local.tee $8 - local.get $8 - i32.const 3 - i32.gt_s - select + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner3 + end + local.get $6 + local.get $3 + i32.sub + local.tee $1 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1 i32.shl - local.tee $8 - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3456 - br $__inlined_func$~lib/string/String#substr$387 - end - global.get $~lib/memory/__stack_pointer - local.get $8 + local.tee $1 i32.const 2 call $~lib/rt/itcms/__new - local.tee $10 - i32.store offset=4 - local.get $10 - local.get $2 + local.tee $4 + i32.store offset=32 + local.get $4 local.get $0 + local.get $3 i32.const 1 i32.shl i32.add - local.get $8 + local.get $1 memory.copy global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=24 + local.get $2 + local.get $4 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3456 + call $~lib/array/Array<~lib/string/String>#push end - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + br $folding-inner4 + end + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/rt/__newArray + local.set $2 + br $folding-inner4 + end + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/itcms/step (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 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 - i32.store + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 + i32.load offset=4 + local.tee $2 + i32.const 3 i32.and - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 1872 - i32.store - block $__inlined_func$~lib/string/String#padEnd$388 - i32.const 1868 - i32.load - i32.const -2 + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 i32.and - local.tee $8 - i32.eqz - local.get $10 - i32.const 6 - i32.gt_u + local.get $1 i32.or - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#padEnd$388 - end - global.get $~lib/memory/__stack_pointer - i32.const 6 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 i32.store offset=4 - local.get $2 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 - local.get $10 - memory.copy - i32.const 6 - local.get $10 - i32.sub - local.tee $0 - local.get $8 - i32.gt_u - if - local.get $0 - local.get $0 - i32.const 2 - i32.sub - local.get $8 - i32.div_u - local.get $8 - i32.mul - local.tee $0 - i32.sub - local.set $11 - local.get $2 - local.get $10 - i32.add - local.set $12 - loop $while-continue|0 - local.get $0 - local.get $4 - i32.gt_u - if - local.get $4 - local.get $12 - i32.add - i32.const 1872 - local.get $8 - memory.copy - local.get $4 - local.get $8 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $2 - local.get $10 - i32.add + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load 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 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 41236 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if local.get $0 - i32.add - i32.const 1872 - local.get $11 - memory.copy - else local.get $2 - local.get $10 - i32.add - i32.const 1872 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 local.get $0 - memory.copy + i32.const 20 + i32.add + call $~lib/rt/__visit_members end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 + i32.load 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 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 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 1264 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 41236 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 41236 + 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.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + local.set $2 local.get $0 - i32.store + i32.const 15 + i32.and + i32.const 1 local.get $0 - call $~lib/util/string/strtol - local.set $4 - else - global.get $~lib/memory/__stack_pointer + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1536 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer local.get $2 + i32.load + i32.const 1 + i32.or i32.store local.get $2 - call $~lib/util/string/strtol - local.set $6 + call $~lib/rt/tlsf/insertBlock end end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (local $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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$73 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1872 + local.set $2 + br $__inlined_func$~lib/util/number/itoa32$73 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + select + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1616 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get local.tee $1 - i32.store offset=60 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/string/strtol i32.const 1 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.shl + local.get $3 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 i32.store + local.get $2 + local.get $3 + i32.add + local.set $5 + loop $while-continue|0 + local.get $0 + i32.const 10000 + i32.ge_u + if + local.get $0 + i32.const 10000 + i32.rem_u + local.set $4 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end local.get $0 - call $~lib/array/Array<~lib/string/String>#get:length - local.tee $8 - i32.const 2 - i32.ge_s - if (result i32) - global.get $~lib/memory/__stack_pointer + i32.const 100 + i32.ge_u + if + local.get $5 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add local.get $0 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i32.load i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $1 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer + i32.const 100 + i32.div_u + local.set $0 + end + local.get $0 + i32.const 10 + i32.ge_u + if + local.get $5 local.get $1 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 2 + i32.shl + i32.const 1884 + i32.add + i32.load i32.store - local.get $1 - call $~lib/util/string/strtol - local.set $1 - local.get $8 - i32.const 3 - i32.ge_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $0 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/util/string/strtol - else - i32.const 1 - end else + local.get $5 + local.get $1 + i32.const 1 + i32.sub i32.const 1 + i32.shl + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 end - local.set $0 - local.get $1 - local.get $0 local.get $3 - local.get $7 - local.get $6 - local.get $4 - call $~lib/date/epochMillis - local.get $5 - i64.extend_i32_s - i64.sub - call $~lib/date/Date#constructor + if + local.get $2 + i32.const 45 + i32.store16 + end global.get $~lib/memory/__stack_pointer - i32.const 72 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - return end - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $2 ) (func $start:std/date (local $0 i32) @@ -10577,60 +10634,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__newArray (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $1 - local.get $2 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=12 - 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/std/hash.release.wat b/tests/compiler/std/hash.release.wat index 1620d1e03e..0b046b6c23 100644 --- a/tests/compiler/std/hash.release.wat +++ b/tests/compiler/std/hash.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32))) + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34172)) (memory $0 1) @@ -27,30 +27,6 @@ (data $9.1 (i32.const 1368) "\02\00\00\00\12\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i") (export "memory" (memory $0)) (start $~start) - (func $~start - i32.const 0 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1088 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1120 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1152 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1184 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1216 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1248 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1280 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1328 - call $~lib/util/hash/HASH<~lib/string/String|null> - i32.const 1376 - call $~lib/util/hash/HASH<~lib/string/String|null> - ) (func $~lib/util/hash/HASH<~lib/string/String|null> (param $0 i32) (local $1 i32) (local $2 i32) @@ -249,4 +225,28 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~start + i32.const 0 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1088 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1120 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1152 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1184 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1216 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1248 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1280 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1328 + call $~lib/util/hash/HASH<~lib/string/String|null> + i32.const 1376 + call $~lib/util/hash/HASH<~lib/string/String|null> + ) ) diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 835670c17a..112ed92024 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -5,25 +5,25 @@ (type $3 (func)) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i64) (result i32))) + (type $6 (func (param i32 i64) (result i32))) + (type $7 (func (param i32 i32 i32) (result i32))) (type $8 (func (param i32 i32 i32 i32))) - (type $9 (func (param i32 i32 i64))) - (type $10 (func (result i32))) - (type $11 (func (param i32 i64 i32) (result i32))) - (type $12 (func (param i32 i64 i32))) - (type $13 (func (param i32 i64 i64))) - (type $14 (func (param i32 i64))) - (type $15 (func (param i32 f32) (result i32))) - (type $16 (func (param i32 f64) (result i32))) + (type $9 (func (result i32))) + (type $10 (func (param i32 f64) (result i32))) + (type $11 (func (param i32 f32) (result i32))) + (type $12 (func (param i32 i64 i32) (result i32))) + (type $13 (func (param i32 i64 i32))) + (type $14 (func (param i32 i32 i64))) + (type $15 (func (param i32 i64))) + (type $16 (func (param i32 i64 i64))) (type $17 (func (param i32 f32 i32) (result i32))) - (type $18 (func (param i32 f32 i32))) - (type $19 (func (param i32 f32 f32))) - (type $20 (func (param i32 f32))) - (type $21 (func (param i32 f64 i32) (result i32))) - (type $22 (func (param i32 f64 i32))) + (type $18 (func (param i32 f64 i32) (result i32))) + (type $19 (func (param i32 f64 i32))) + (type $20 (func (param i32 f32 i32))) + (type $21 (func (param i32 f64))) + (type $22 (func (param i32 f32))) (type $23 (func (param i32 f64 f64))) - (type $24 (func (param i32 f64))) + (type $24 (func (param i32 f32 f32))) (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)) @@ -62,796 +62,1962 @@ (data $14 (i32.const 1760) "!\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\89\10\00B\08\00\00\02\t\00\00P\88\10\00\10\t\12\00\10\89\00\00B\00\00\00P\80\00\00\10\t\11\00\82\08\00\00\90\08\11\00\10\t\01\00\82\00\00\00\90\00\01\00\10\t\02\00\02\01\00\00\10\01\02\00\10\t\14\00\02\n\00\00\10\n\14\00\10\t\04\00\02\02\00\00\10\02\04\00\10\t2\00\02\19\00\00\10\192\00\10\t4\00\02\1a\00\00\10\1a4") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 1616 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub local.tee $1 i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter i32.eq if local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1422 - local.get $0 + i32.const 20 + i32.sub i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - local.tee $1 + 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.load offset=8 - i32.eqz - local.get $0 - i32.const 34664 - i32.lt_u + i32.const 3 + i32.eq i32.and - i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/itcms/Object#makeGray end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1422 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 i32.const 1 - else - local.get $1 - i32.const 1760 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1764 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 + 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 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz + (func $"~lib/map/Map#get:size" (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 1896 + i32.lt_s if - return + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 268 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.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 270 - i32.const 14 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + local.get $4 + local.get $2 + i32.const 12 + i32.le_u if (result i32) - local.get $3 - i32.const 4 - i32.shr_u + i32.const 12 else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 i32.sub - local.set $2 - local.get $3 + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 i32.const 16 - i32.xor + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - local.tee $3 - i32.const 16 - i32.lt_u + local.get $5 local.get $2 - i32.const 23 - i32.lt_u + i32.load + i32.const -4 i32.and - i32.eqz + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 284 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 - local.tee $3 - i32.const 1 - i32.and - i32.eqz + i32.const 4 + i32.add + i32.const 15 + i32.and if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load + local.get $6 i32.const -4 i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + local.get $5 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u 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 + local.get $5 + local.get $6 + i32.const 2 i32.and - i32.add - local.tee $3 + i32.or i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $5 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $5 + local.get $3 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - 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 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 + i32.load i32.const -4 i32.and i32.add local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 local.get $2 - i32.const 2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white i32.or - i32.store + i32.store offset=4 + local.get $2 local.get $3 - i32.const -4 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 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 + i32.or + i32.store offset=4 local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 + i32.const 20 i32.add - i32.ne + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 234 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - 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 $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.clz - i32.sub + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 local.tee $3 - i32.const 7 - i32.sub - local.set $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $3 local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#constructor" (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 251 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 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 offset=96 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 + local.get $0 local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 + i32.store offset=8 local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s if - return + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - local.tee $3 - i32.const 2 - i32.store + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - local.get $3 - i32.store offset=1568 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 + 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 + call $"~lib/map/Map#find" i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (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 1896 + i32.lt_s if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34672 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 36240 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34672 - i32.add - i32.const 0 - i32.store 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 34672 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + local.get $0 + local.get $1 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 f64) (result i32) + (local $2 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 f32) (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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $5 + local.get $2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + local.get $2 + i32.shl + local.set $1 + local.get $3 + if + i32.const 1073741820 + local.get $5 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $1 + end + block $__inlined_func$~lib/rt/itcms/__renew$1377 + local.get $4 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $4 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$1377 + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $4 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $1 + local.get $3 + i32.lt_u + select + memory.copy + end + local.get $2 + local.get $4 + i32.ne + if + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $1 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $"~lib/map/Map#values" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=16 + local.tee $0 + call $~lib/array/Array#constructor + local.tee $5 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $3 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $1 + local.get $4 + i32.load offset=4 + call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $"~lib/map/Map#clear" (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i32.load + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if local.get $0 + i32.load offset=8 + local.tee $2 i32.const 1 - i32.add + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + f32.load + f32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34672 - i32.const 36244 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34672 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1113,666 +2279,453 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + (func $"~lib/map/Map#get" (param $0 i32) (param $1 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 1896 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + local.get $1 + i32.const 255 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 1073741804 - i32.ge_u + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz if - i32.const 1056 - i32.const 1120 - i32.const 261 - i32.const 31 + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 local.get $0 - i32.const 16 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s if - i32.const 1056 - i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub + i32.const 0 else - local.get $5 + local.get $0 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s if - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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.and + 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 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub + i32.const 34688 + i32.const 34736 i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - local.get $3 + local.get $0 i32.load offset=4 - i32.const 3 i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 + i32.const 2 + i32.shl + i32.add i32.load - i32.const -4 - i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 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 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - local.get $1 - i32.eqz - if - return - end + 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 + call $"~lib/map/Map#find" + local.tee $0 i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 295 - i32.const 14 + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 + local.get $0 i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load 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 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34664 + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result 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 - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - i32.const 1352 - i32.const 1344 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - 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 $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz 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 + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 + local.get $0 + i32.load offset=4 + 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/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1821,9 +2774,9 @@ i32.const 0 else local.get $0 - i32.load8_u + i32.load16_u local.get $1 - i32.const 255 + i32.const 65535 i32.and i32.eq end @@ -1848,7 +2801,7 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1879,235 +2832,49 @@ i32.const 374761394 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load8_s - local.tee $8 - i32.store8 - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 - i32.store offset=12 + 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 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2122,180 +2889,146 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.extend8_s + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $3 + 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 $3 + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $0 i32.const 13 i32.shr_u - local.get $3 + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $0 i32.const 16 i32.shr_u - local.get $3 + local.get $0 i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 local.get $0 - i32.load offset=12 - i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 local.get $0 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + local.tee $2 + i32.const 1 + i32.and if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store + i32.const 0 + else + local.get $1 + local.get $0 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2320,10 +3053,9 @@ local.get $0 local.get $1 local.get $1 - i32.extend8_s i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl @@ -2348,7 +3080,7 @@ i32.const 16 i32.shr_u i32.xor - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -2366,7 +3098,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#get:size" (param $0 i32) (result i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2389,152 +3122,57 @@ local.get $0 i32.store local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $5 local.get $2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 1073741820 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 local.get $0 - i32.load - local.set $4 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - local.get $2 - i32.shl - local.set $1 - local.get $3 if - i32.const 1073741820 - local.get $5 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select + local.get $0 + i32.load offset=8 local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $1 - end - block $__inlined_func$~lib/rt/itcms/__renew$1377 - local.get $4 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 + i32.const 1 i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $3 + if (result i32) + i32.const 0 + else local.get $1 - i32.store offset=16 - local.get $4 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$1377 + local.get $0 + i32.load + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $4 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_u - select - memory.copy - end - local.get $2 - local.get $4 - i32.ne - if - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 local.get $2 - call $~lib/rt/itcms/__link + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - local.get $0 - local.get $1 - i32.store offset=8 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2556,52 +3194,57 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.load offset=12 - i32.ge_u + 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 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 local.get $0 i32.load offset=4 - i32.add - local.get $2 - i32.store8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2620,28 +3263,75 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 - i32.store offset=12 + 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 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2656,104 +3346,132 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 i32.store + local.get $0 + i32.load global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 + local.get $0 i32.store - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + f64.load + f64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 f32) (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 268435455 - i32.gt_u + i32.const 1896 + i32.lt_s if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $0 - local.get $0 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $1 - local.get $2 + i32.const 0 i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.store offset=4 local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.store offset=12 + 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 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2825,356 +3543,587 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 284 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 local.get $1 - i32.const 2 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.load offset=8 + local.set $5 local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 i32.const 4 + i32.shl + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end ) - (func $"~lib/map/Map#values" (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/insertBlock (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s + (local $6 i32) + local.get $1 + i32.eqz if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $0 - call $~lib/array/Array#constructor - local.tee $5 - i32.store offset=4 - loop $for-loop|0 + local.get $1 + i32.load + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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.gt_s + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - local.get $2 - i32.const 12 - i32.mul - i32.add - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $1 - local.get $4 - i32.load offset=4 - call $~lib/array/Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + 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 end - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + local.get $2 + i32.const 2 + i32.or i32.store - local.get $5 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $"~lib/map/Map#constructor" (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const -4 + i32.and + local.tee $2 i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s + i32.lt_u if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 + local.get $4 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#get:length (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 1896 - i32.lt_s + local.get $2 + i32.add + i32.ne if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s + local.get $1 + i32.store + 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 34688 - i32.const 34736 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1392 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $5 + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.get $1 + 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 offset=96 + local.get $0 + local.get $0 i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/itcms/Object#makeGray (param $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) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if local.get $0 - i32.store + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$1422 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34664 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$1422 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1760 + i32.load + i32.gt_u + if + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 1764 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3182,7 +4131,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3191,298 +4140,496 @@ i32.store local.get $0 i32.load + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 4 i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1378" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1378" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i32.store8 offset=1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=8 - local.set $5 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $5 + i32.store offset=4 local.get $0 - i32.load offset=16 - i32.const 3 + i32.load offset=4 + i32.const 1 i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load8_s - local.tee $11 - i32.store8 - local.get $3 - local.get $5 - i32.load8_s offset=1 - i32.store8 offset=1 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 + i32.store offset=4 local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3490,77 +4637,313 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load offset=20 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 + local.get $3 local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 local.get $0 local.get $3 - i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 i32.const 12 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3575,72 +4958,187 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - i32.load - local.set $0 - loop $while-continue|0 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#values" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3658,173 +5156,70 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 i32.load offset=8 - local.set $7 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $7 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne + local.tee $0 + call $~lib/array/Array#constructor + local.tee $5 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s if - local.get $7 - i32.load offset=8 + local.get $3 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $7 - i32.load - local.tee $8 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 + local.get $5 local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 + local.get $4 + i32.load offset=8 + call $~lib/array/Array#__set + local.get $1 + i32.const 1 i32.add - local.set $2 + local.set $1 end - local.get $7 - i32.const 12 + local.get $2 + i32.const 1 i32.add - local.set $7 - br $while-continue|0 + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 + local.get $5 i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 + local.get $1 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $5 ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3855,9 +5250,21 @@ local.get $0 local.get $1 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.const 374761397 i32.add i32.const 17 i32.rotl @@ -3883,12 +5290,12 @@ local.get $3 i32.xor local.tee $4 - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $3 if local.get $3 local.get $2 - i32.store offset=4 + i32.store offset=8 else global.get $~lib/memory/__stack_pointer local.get $0 @@ -3940,7 +5347,7 @@ i32.const 1 i32.or end - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $0 @@ -3965,15 +5372,15 @@ i32.store offset=16 local.get $3 local.get $5 - i32.const 12 - i32.mul + i32.const 4 + i32.shl i32.add local.tee $3 local.get $1 - i32.store + i64.store local.get $3 local.get $2 - i32.store offset=4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3991,12 +5398,12 @@ i32.store local.get $0 i32.load - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $3 - local.get $1 + local.get $2 local.get $4 local.get $0 i32.load offset=4 @@ -4006,7 +5413,7 @@ i32.add local.tee $0 i32.load - i32.store offset=8 + i32.store offset=12 local.get $0 local.get $3 i32.store @@ -4016,8 +5423,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#clear" (param $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4039,124 +5446,262 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 local.get $1 + i32.store + local.get $0 local.get $1 - i32.extend8_s + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761395 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 i32.const 15 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 i32.const 13 i32.shr_u - local.get $1 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 i32.const 16 i32.shr_u - local.get $1 + local.get $3 i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 if + local.get $3 + local.get $2 + i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 local.get $0 i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + i32.load + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 + local.get $3 local.get $1 - call $"~lib/map/Map#rehash" + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#clear" (param $0 i32) - (local $1 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) 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 @@ -4174,979 +5719,1104 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 local.get $1 - i32.store offset=8 - local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i64.reinterpret_f64 + local.tee $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + 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 $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $5 + call $"~lib/map/Map#find" + local.tee $4 + if + local.get $4 + local.get $2 i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 + else global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - loop $for-loop|0 + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - if + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 - local.get $0 local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.load offset=4 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.shl + i32.const 1 + i32.or end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + local.get $6 + i32.const 4 + i32.shl + i32.add + local.tee $4 local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 + f64.store + local.get $4 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $4 + local.get $2 + local.get $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $4 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 + i32.load offset=4 i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.shl + i32.const 1 + i32.or end + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 + local.get $0 i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $0 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + f32.store + local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 + local.get $0 i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=4 - local.get $7 local.get $0 - i32.store offset=8 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#constructor (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $0 + local.get $0 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 31 local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.clz i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.tee $2 i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_s - local.set $5 - 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 offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34672 + i32.const 0 + i32.store + i32.const 36240 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34672 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + 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 34672 + i32.add i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 + end + i32.const 34672 + i32.const 36244 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34672 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 1616 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 36 + local.get $0 + i32.load offset=4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 + i32.and i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 + end + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + local.get $7 + i32.load8_u + local.tee $8 + i32.store8 + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 + local.get $2 + local.get $6 local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - local.set $0 - br $for-loop|4 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $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 global.get $~lib/memory/__stack_pointer @@ -5161,8 +6831,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -5179,41 +6849,117 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) + (local $6 i64) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -5243,7 +6989,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -5252,8 +6998,8 @@ i32.const 3 i32.div_s local.tee $5 - i32.const 12 - i32.mul + i32.const 4 + i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 @@ -5262,340 +7008,160 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $8 local.get $0 i32.load offset=16 - i32.const 12 - i32.mul + i32.const 4 + i32.shl i32.add local.set $4 local.get $3 local.set $2 loop $while-continue|0 local.get $4 - local.get $7 + local.get $8 i32.ne if - local.get $7 - i32.load offset=8 + local.get $8 + i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 - i32.load8_u - local.tee $8 - i32.store8 + local.get $8 + i64.load + local.tee $6 + i64.store local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 + local.get $8 + i32.load offset=8 + i32.store offset=8 local.get $2 - local.get $6 + local.get $7 local.get $1 - local.get $8 + local.get $6 + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.get $6 + 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 $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $9 i32.load - i32.store offset=8 - local.get $8 + i32.store offset=12 + local.get $9 local.get $2 i32.store local.get $2 - i32.const 12 + i32.const 16 i32.add local.set $2 end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" + local.get $8 + i32.const 16 + i32.add + local.set $8 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 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 @@ -5610,504 +7176,330 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + 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 $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor - call $"~lib/map/Map#find" - local.tee $0 + call $"~lib/map/Map#find" + local.tee $2 i32.eqz if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $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) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 + i32.const 8 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1383" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1383" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 + local.get $2 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne if - local.get $3 - local.get $2 - i32.store8 offset=1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 + local.get $7 + i32.load + local.tee $8 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $2 local.get $7 - i32.const 1 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - local.tee $3 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and i32.const 2 i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load8_u - local.tee $11 - i32.store8 - local.get $3 - local.get $5 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $8 + i32.load i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 + local.get $8 + local.get $2 i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $2 + i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + local.set $2 + end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -6133,11 +7525,9 @@ local.get $0 local.get $1 local.get $1 - i32.const 255 - i32.and i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl @@ -6162,7 +7552,7 @@ i32.shr_u local.get $1 i32.xor - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -6238,16 +7628,14 @@ i32.store local.get $0 local.get $1 - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6256,911 +7644,1352 @@ (local $7 i32) (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + local.get $7 + i32.load16_u + local.tee $8 + i32.store16 + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 + local.get $2 + local.get $6 local.get $1 - local.get $0 - local.get $0 - i32.const 20 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 i32.add - local.set $0 - br $for-loop|1 + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 8 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.load offset=8 - local.set $5 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~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 1896 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + else i32.const 0 - i32.store offset=8 + end + if global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u + i32.ne if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $5 - local.get $3 - i32.const 12 + local.get $2 + local.get $7 + i32.load8_s + local.tee $8 + i32.store8 + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 i32.mul + i32.const 374761394 i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.tee $8 - i32.load offset=8 - i32.const 1 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load8_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $3 - br $for-loop|00 + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $4 + local.get $0 i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 + local.get $0 i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $0 + i32.load offset=12 i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + i32.mul i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + i32.div_s + i32.lt_s + else i32.const 0 - i32.store offset=20 + end + if global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store + local.get $8 + i64.load + local.tee $6 + i64.store local.get $2 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_u - local.set $5 - 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 offset=4 - local.get $0 + local.get $8 + i32.load offset=8 + i32.store offset=8 local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $7 local.get $1 local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 + 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 $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" + 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 $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=12 + local.get $9 local.get $2 - i32.const 1 + i32.store + local.get $2 + i32.const 16 i32.add local.set $2 - br $for-loop|2 end + local.get $8 + i32.const 16 + i32.add + local.set $8 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end + end + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 + local.get $0 + i32.store + local.get $0 + local.get $2 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 + local.get $7 + i32.load + local.tee $8 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 + local.get $2 + local.get $6 local.get $1 - local.get $0 - local.get $0 - i32.const 10 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - local.set $0 - br $for-loop|4 + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - 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 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34688 - i32.const 34736 + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $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 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7175,67 +9004,179 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $7 + i32.load16_s + local.tee $8 + i32.store16 + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 local.get $0 - i32.store + local.get $3 + i32.store offset=8 local.get $0 - i32.load + local.get $3 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $2 + i32.store offset=8 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end + local.get $5 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $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 global.get $~lib/memory/__stack_pointer @@ -7250,8 +9191,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7267,41 +9208,118 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) + (local $4 i64) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -7331,7 +9349,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -7339,9 +9357,9 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 - i32.const 12 - i32.mul + local.tee $7 + i32.const 4 + i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 i32.store offset=4 @@ -7350,89 +9368,103 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $7 + local.get $9 local.get $0 i32.load offset=16 - i32.const 12 - i32.mul + i32.const 4 + i32.shl i32.add - local.set $4 + local.set $6 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $6 + local.get $9 i32.ne if - local.get $7 - i32.load offset=8 + local.get $9 + i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 - i32.load16_s - local.tee $8 - i32.store16 + local.get $9 + f64.load + local.tee $5 + f64.store local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 + local.get $9 + i32.load offset=8 + i32.store offset=8 local.get $2 - local.get $6 - local.get $1 local.get $8 + local.get $1 + local.get $5 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + 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 $10 i32.const 15 i32.shr_u + local.get $10 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $10 i32.const 13 i32.shr_u + local.get $10 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $10 i32.const 16 i32.shr_u + local.get $10 i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 + local.tee $10 + i32.load + i32.store offset=12 + local.get $10 local.get $2 i32.store local.get $2 - i32.const 12 + i32.const 16 i32.add local.set $2 end - local.get $7 - i32.const 12 + local.get $9 + i32.const 16 i32.add - local.set $7 + local.set $9 br $while-continue|0 end end @@ -7440,13 +9472,13 @@ local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.store offset=12 local.get $0 - local.get $6 + local.get $8 i32.store local.get $0 - local.get $6 + local.get $8 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 @@ -7470,7 +9502,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $5 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -7487,12 +9519,12 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f64) + (local $2 i64) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7510,18 +9542,28 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.extend16_s + 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.const 374761395 i32.add i32.const 17 i32.rotl @@ -7546,284 +9588,99 @@ i32.shr_u local.get $3 i32.xor - local.tee $4 - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $3 + i32.eqz if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 8 i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - 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 - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + local.get $3 + local.get $3 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $3 + i32.const 1 + i32.add + i32.const 4 local.get $0 - i32.load offset=12 + i32.load offset=20 + local.tee $4 + local.get $4 + i32.const 4 + i32.lt_u + select i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end + if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.const 1 - call $~lib/array/ensureCapacity + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $3 - i32.store offset=12 + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $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 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7838,469 +9695,318 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 1 - i32.const 0 - call $~lib/array/ensureCapacity + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $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) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1388" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1388" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $7 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne if - local.get $3 - local.get $2 - i32.store16 offset=2 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $7 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + i32.load + local.set $8 + local.get $2 + local.get $7 + f32.load + f32.store + local.get $2 + local.get $7 + i32.load offset=4 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load16_s - local.tee $11 - i32.store16 - local.get $3 - local.get $5 - i32.load16_s offset=2 - i32.store16 offset=2 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 + local.get $8 + local.get $2 i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $2 + i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + local.get $7 + i32.const 12 i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + local.set $7 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34688 - i32.const 34736 + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $"~lib/map/Map#rehash" + end global.get $~lib/memory/__stack_pointer i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $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 @@ -8315,153 +10021,359 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz + local.get $0 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $3 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 local.get $1 - local.get $1 - i32.load offset=8 i32.const 1 - i32.or - i32.store offset=8 + i32.const 0 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $0 - i32.load offset=20 - i32.const 1 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.store offset=20 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $1 - i32.const 1 - i32.add - i32.const 4 local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select + i32.load offset=12 i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" + local.get $3 + i32.store offset=12 end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34664 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + 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#set" (param $0 i32) (param $1 i32) (param $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) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~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 1896 i32.lt_s @@ -8470,269 +10382,441 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + i32.const 0 i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 - local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.store offset=12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.store offset=20 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - loop $for-loop|0 + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1383" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1383" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i32.store8 offset=1 + else + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 - i32.lt_s + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load8_u + local.tee $11 + i32.store8 + local.get $3 + local.get $5 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $6 + i32.store offset=12 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $6 + i32.store local.get $0 - call $"~lib/map/Map#get" + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $4 + i32.store offset=12 local.get $0 - call $"~lib/map/Map#get" + local.get $4 + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 + i32.store offset=8 local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + local.get $9 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#get" + i32.store offset=12 local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 - i32.const 1 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub + i32.const 12 + i32.add global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s @@ -8741,20 +10825,13 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.load offset=16 - local.set $6 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8762,172 +10839,448 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 + local.get $0 i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 + i32.load global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 i32.const 16 + i32.shr_u + i32.xor + local.tee $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1408" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1408" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if local.get $3 - local.get $6 - i32.lt_s + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $5 - local.get $3 - i32.const 12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 local.get $0 - local.get $8 - i32.load16_s - call $~lib/array/Array#__set + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 + i32.load offset=4 i32.const 1 - i32.add - local.set $0 + i32.shl + i32.const 1 + i32.or end - local.get $3 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 i32.const 1 i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $6 + local.get $4 local.set $3 - br $for-loop|00 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $9 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $9 + 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 $9 + 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 $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer i32.const 12 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $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) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -8935,410 +11288,343 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 + local.get $0 i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - 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 offset=4 local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 + i32.const 16 i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" + i32.const 1896 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 i32.const 1 i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $9 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $10 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $4 + local.set $3 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne + if + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $10 + i32.load + local.tee $11 + i32.store + local.get $3 + local.get $10 + i32.load offset=4 + i32.store offset=4 + local.get $3 + local.get $9 + local.get $8 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=8 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 12 + i32.add + local.set $3 + end + local.get $10 + i32.const 12 + i32.add + local.set $10 + br $while-continue|0 + end end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $9 + i32.store offset=12 local.get $0 - call $"~lib/map/Map#delete" + local.get $9 + i32.store + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $8 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $4 + i32.store offset=12 local.get $0 + local.get $4 + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - 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 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#delete" + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - 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.store offset=12 local.get $0 - i32.const 1 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|4 + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $7 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - 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 24 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer return @@ -9350,528 +11636,449 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $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) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + 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 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1393" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1393" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $3 + local.get $2 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $2 - local.get $7 - i32.load16_u - local.tee $8 - i32.store16 - local.get $2 - local.get $7 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - local.tee $8 - local.get $8 + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer i32.const 16 - i32.shr_u - i32.xor - i32.and + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.add + local.tee $3 i32.const 2 i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl i32.add - local.tee $8 - i32.load + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load16_u + local.tee $11 + i32.store16 + local.get $3 + local.get $5 + i32.load16_u offset=2 + i32.store16 offset=2 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=8 - local.get $8 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 i32.store - local.get $2 - i32.const 12 + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=20 - local.set $3 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $3 local.get $0 - i32.load offset=12 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 12 i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - 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 - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9900,11 +12107,10 @@ local.get $0 i32.store local.get $1 - i32.const 65535 - i32.and + i32.extend8_s i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -9959,7 +12165,7 @@ i32.add i32.load local.set $3 - block $"__inlined_func$~lib/map/Map#find$1393" + block $"__inlined_func$~lib/map/Map#find$1378" loop $while-continue|0 local.get $3 if @@ -9972,9 +12178,9 @@ i32.const 0 else local.get $3 - i32.load16_u + i32.load8_u local.get $1 - i32.const 65535 + i32.const 255 i32.and i32.eq end @@ -9983,7 +12189,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1393" + br $"__inlined_func$~lib/map/Map#find$1378" end local.get $4 i32.const -2 @@ -10003,7 +12209,7 @@ if local.get $3 local.get $2 - i32.store16 offset=2 + i32.store8 offset=1 else global.get $~lib/memory/__stack_pointer local.get $0 @@ -10120,20 +12326,20 @@ if local.get $3 local.get $5 - i32.load16_u + i32.load8_s local.tee $11 - i32.store16 + i32.store8 local.get $3 local.get $5 - i32.load16_u offset=2 - i32.store16 offset=2 + i32.load8_s offset=1 + i32.store8 offset=1 local.get $3 local.get $6 local.get $7 local.get $11 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -10259,210 +12465,73 @@ i32.add local.tee $3 local.get $1 - i32.store16 + i32.store8 local.get $3 local.get $2 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 + i32.store8 offset=1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - 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 - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer return end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + i32.const 34688 + i32.const 34736 i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -10471,12 +12540,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10484,296 +12557,444 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + local.get $0 i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 + local.get $0 + i32.load global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - global.set $~lib/memory/__stack_pointer + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $1 - i32.store - loop $for-loop|0 + 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 $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1403" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1403" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 - i32.lt_u + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 + i32.store offset=4 local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#get" + i32.store offset=8 local.get $0 - i32.const 10 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $9 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $9 + 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 $9 + 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 $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u - if + local.get $10 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $4 + i32.store offset=12 local.get $0 - call $"~lib/map/Map#get" + local.get $4 + i32.store offset=8 local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 + i32.store offset=8 local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + local.get $7 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#get" + i32.store offset=12 local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 - i32.const 1 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub + i32.const 12 + i32.add global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $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) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s @@ -10782,163 +13003,459 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new + local.get $0 + i32.store + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor local.tee $8 - i32.store offset=8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 + i32.store + local.get $0 + i32.load global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1388" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1388" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if local.get $3 - local.get $6 - i32.lt_s + local.get $2 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $5 - local.get $3 - i32.const 12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 i32.mul - i32.add - local.tee $8 - i32.load offset=8 + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 1 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl i32.add + local.set $10 + local.get $4 local.set $3 - br $for-loop|00 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load16_s + local.tee $11 + i32.store16 + local.get $3 + local.get $5 + i32.load16_s offset=2 + i32.store16 offset=2 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10949,701 +13466,951 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 17 + i32.const 16 + i32.const 31 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 + local.get $6 + i32.const 0 i32.store - local.get $4 - local.get $5 + local.get $6 + i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=4 - local.get $4 - i32.const 3 + local.get $6 + i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 + local.get $6 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 local.get $5 - i32.store offset=8 - local.get $4 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 local.get $5 - i32.store offset=8 - local.get $4 local.get $5 - call $~lib/rt/itcms/__link + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=4 - local.get $4 - i32.const 4 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 + local.get $6 + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length + local.get $6 + i32.store offset=4 + loop $for-loop|0 local.get $2 - i32.gt_s + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 + local.get $3 local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" + local.tee $7 + i32.load offset=12 + i32.const 1 + i32.and i32.eqz if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f64.load + 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 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 f64) + (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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i64.reinterpret_f64 + local.tee $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 $5 + 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 $3 local.get $3 - i32.store offset=4 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $10 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1418" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + f64.load + f64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1418" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 end - i32.const 0 - local.set $0 - loop $for-loop|3 + local.get $3 + if + local.get $3 + local.get $2 + f64.store offset=8 + else + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 - i32.lt_u + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#get" + i32.load offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#delete" + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 + local.get $12 local.get $0 - i32.const 1 + i32.load offset=16 + i32.const 24 + i32.mul i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u - if + local.set $8 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $8 + local.get $12 + i32.ne + if + local.get $12 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $12 + f64.load + local.tee $7 + f64.store + local.get $3 + local.get $12 + f64.load offset=8 + f64.store offset=8 + local.get $3 + local.get $11 + local.get $6 + local.get $7 + i64.reinterpret_f64 + local.tee $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 $5 + 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 $13 + local.get $13 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $13 + local.get $13 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $13 + local.get $13 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $13 + i32.load + i32.store offset=16 + local.get $13 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $12 + i32.const 24 + i32.add + local.set $12 + br $while-continue|00 + end + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $11 + i32.store offset=12 local.get $0 + local.get $11 + i32.store local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + local.get $11 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - 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 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $4 + i32.store offset=12 local.get $0 - call $"~lib/map/Map#delete" + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - 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.store offset=8 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + f64.store + local.get $3 + local.get $2 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $10 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 28 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f32.load + 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 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $4 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store - local.get $0 + local.get $6 local.get $1 - call $"~lib/map/Map#rehash" + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 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) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -11652,507 +14419,482 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $1 + local.get $0 i32.store - loop $for-loop|0 + local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + f32.store offset=4 + else + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 - i32.lt_s + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 + i32.store offset=4 local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#get" + i32.store offset=8 local.get $0 - i32.const 10 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $10 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $5 + local.get $4 + local.set $3 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne + if + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $10 + i32.load + local.set $11 + local.get $3 + local.get $10 + f32.load + f32.store + local.get $3 + local.get $10 + f32.load offset=4 + f32.store offset=4 + local.get $3 + local.get $9 + local.get $8 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + i32.const 15 + i32.shr_u + local.get $11 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + i32.const 13 + i32.shr_u + local.get $11 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + i32.const 16 + i32.shr_u + local.get $11 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=8 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 12 + i32.add + local.set $3 + end + local.get $10 + i32.const 12 + i32.add + local.set $10 + br $while-continue|0 + end end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_s - if + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $9 + i32.store offset=12 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $9 + i32.store + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $8 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#get" + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 + i32.store offset=8 local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + local.get $6 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#get" + i32.store offset=12 local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 - i32.const 1 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $0 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + f32.store + local.get $3 + local.get $2 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $7 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 0 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $1 - i32.load offset=16 - local.tee $6 - call $~lib/array/Array#constructor - local.tee $2 i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/array/Array#set:length + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 + i32.const 3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $4 - i32.store offset=16 + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $3 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $7 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $6 - local.get $6 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $7 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $"~lib/map/Map#set" - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 - end - end + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.const 4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end i32.const 0 - local.set $0 - loop $for-loop|4 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 local.get $0 - i32.const 50 - i32.lt_s + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 - i32.const 50 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable @@ -12165,18 +14907,18 @@ local.get $0 i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 52 + i32.const 8 i32.const 5 call $~lib/builtins/abort unreachable @@ -12186,17 +14928,15 @@ i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + call $"~lib/map/Map#get" local.get $0 - call $"~lib/map/Map#has" + i32.const 10 + i32.add + i32.ne if i32.const 0 i32.const 1568 - i32.const 54 + i32.const 9 i32.const 5 call $~lib/builtins/abort unreachable @@ -12205,7 +14945,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|4 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -12213,999 +14953,730 @@ i32.store offset=4 local.get $1 call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 + i32.const 100 i32.ne if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u if - local.get $2 - local.get $7 - i32.load - local.tee $8 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 - local.get $6 local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761397 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + 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.get $1 i32.store offset=4 - else + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.load offset=16 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $7 i32.store - local.get $0 - i32.load offset=12 - i32.eq + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 1073741820 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + local.get $6 i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 i32.const 1 - i32.shl + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 i32.const 1 - i32.or + i32.add + local.set $3 + br $for-loop|00 end - call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~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 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 + i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $3 - local.get $2 + local.get $4 i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 + local.get $5 + i32.store offset=8 local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load + local.get $5 i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $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) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 0 - i32.store offset=8 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 + i32.const 12 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $7 - call $"~lib/map/Map#find" + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=4 - local.get $0 - i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.get $7 i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.add + i32.load8_u + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=8 - local.set $10 + local.get $2 + call $~lib/array/Array#__get + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $4 - local.set $3 - loop $while-continue|0 - local.get $5 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $10 - i32.load - local.tee $11 - i32.store - local.get $3 - local.get $10 - i32.load offset=4 - i32.store offset=4 - local.get $3 - local.get $9 - local.get $8 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=8 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 12 - i32.add - local.set $3 - end - local.get $10 - i32.const 12 - i32.add - local.set $10 - br $while-continue|0 - end + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $9 - i32.store + call $"~lib/map/Map#get" local.get $0 - local.get $9 - call $~lib/rt/itcms/__link + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $8 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $4 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $6 - i32.store offset=12 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=12 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $3 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $7 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + 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 24 i32.add global.set $~lib/memory/__stack_pointer return @@ -13217,152 +15688,17 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) - (local $2 i32) + (local $2 i64) (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 24 i32.sub @@ -13393,7 +15729,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 18 + i32.const 24 call $~lib/rt/itcms/__new local.tee $1 i32.store @@ -13421,7 +15757,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 48 + i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 global.get $~lib/memory/__stack_pointer @@ -13458,16 +15794,16 @@ local.get $1 i32.store loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u + local.get $2 + i64.const 100 + i64.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $2 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -13480,17 +15816,18 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $0 - local.get $0 + local.get $2 + local.get $2 + i32.wrap_i64 i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13504,9 +15841,10 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 i32.const 10 i32.add i32.ne @@ -13518,10 +15856,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 1 - i32.add - local.set $0 + local.get $2 + i64.const 1 + i64.add + local.set $2 br $for-loop|0 end end @@ -13540,19 +15878,19 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 + i64.const 0 + local.set $2 loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u + local.get $2 + i64.const 100 + i64.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13566,9 +15904,10 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 i32.const 10 i32.add i32.ne @@ -13584,17 +15923,18 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $0 - local.get $0 + local.get $2 + local.get $2 + i32.wrap_i64 i32.const 20 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $2 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -13608,9 +15948,10 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 i32.const 20 i32.add i32.ne @@ -13622,10 +15963,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 1 - i32.add - local.set $0 + local.get $2 + i64.const 1 + i64.add + local.set $2 br $for-loop|1 end end @@ -13664,13 +16005,13 @@ i32.store local.get $1 i32.load offset=8 - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 @@ -13688,39 +16029,39 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 19 + i32.const 25 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 + local.get $8 i32.const 0 i32.store offset=12 - local.get $6 - i32.const 268435455 + local.get $7 + i32.const 134217727 i32.gt_u if i32.const 1456 @@ -13732,80 +16073,78 @@ end global.get $~lib/memory/__stack_pointer i32.const 8 - local.get $6 - local.get $6 + local.get $7 + local.get $7 i32.const 8 i32.le_u select - i32.const 2 + i32.const 3 i32.shl - local.tee $0 + local.tee $9 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=12 - local.get $7 local.get $8 + local.get $4 i32.store - local.get $7 local.get $8 + local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 local.get $8 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - local.get $7 - local.get $0 + local.get $8 + local.get $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 + local.get $8 local.get $7 - local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=4 - i32.const 0 - local.set $0 loop $for-loop|00 local.get $3 - local.get $6 + local.get $7 i32.lt_s if - local.get $5 + local.get $6 local.get $3 - i32.const 12 - i32.mul + i32.const 4 + i32.shl i32.add - local.tee $8 - i32.load offset=8 + local.tee $4 + i32.load offset=12 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 - local.get $0 local.get $8 - i32.load - call $~lib/array/Array#__set + local.get $0 + local.get $4 + i64.load + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add @@ -13819,23 +16158,23 @@ end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 local.get $0 - call $~lib/array/Array#set:length + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - call $"~lib/map/Map#values" + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -13855,7 +16194,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 20 + i32.const 26 call $~lib/rt/itcms/__new local.tee $4 i32.store @@ -13883,7 +16222,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 - i32.const 48 + i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 global.get $~lib/memory/__stack_pointer @@ -13921,253 +16260,81 @@ i32.store offset=16 global.get $~lib/memory/__stack_pointer call $"~lib/map/Map#constructor" - local.tee $3 + local.tee $5 i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - 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 offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.set $3 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $8 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $3 + local.get $8 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1568 + i32.const 1248 + i32.const 1728 + i32.const 114 i32.const 42 - i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" + local.get $8 + i32.store + local.get $8 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u - if + local.get $3 + call $~lib/array/Array#__get + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $2 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 50 + i32.const 31 i32.const 5 call $~lib/builtins/abort unreachable @@ -14176,946 +16343,766 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $6 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 52 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" + local.get $4 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|4 + local.set $3 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" - i32.const 50 + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 56 + i32.const 36 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 + local.get $5 call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if i32.const 0 i32.const 1568 - i32.const 60 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_u if global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 i32.ne if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 + local.get $2 + i64.const 50 + i64.lt_u if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - local.get $8 - i32.load offset=8 - i32.store offset=8 local.get $2 - local.get $7 - local.get $1 - local.get $6 - 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 $6 - 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 $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl + i32.const 10 i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i32.store + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i32.const 16 - i32.add + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + 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 + local.get $2 + i64.const 1 + i64.add local.set $2 + br $for-loop|4 end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~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 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - else global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - local.get $0 - i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 local.get $0 - i32.load offset=12 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=4 - else + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|1 end - call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $3 local.get $1 - i64.store - local.get $3 - local.get $2 - i32.store offset=8 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 0 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~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 1896 i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u if - i32.const 1248 + i32.const 1456 i32.const 1728 - i32.const 130 - i32.const 22 + i32.const 70 + i32.const 60 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 i32.const 1 - call $~lib/array/ensureCapacity + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 local.get $0 - local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#values" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $0 - call $~lib/array/Array#constructor - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s - if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $3 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $4 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + local.get $6 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store local.get $5 - local.get $1 - local.get $4 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 i32.load offset=8 - call $~lib/array/Array#__set - local.get $1 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 + br $for-loop|00 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~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 1896 i32.lt_s @@ -15127,170 +17114,89 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 0 - i32.store + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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.const 12 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1403" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1403" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=4 - local.get $0 - i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15298,258 +17204,320 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.get $7 i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 2 i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 + i32.add + i32.load + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $11 + i32.store offset=4 local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add + local.get $2 + call $~lib/array/Array#__get local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - 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 $9 - 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 $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 - end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $10 - i32.store + call $"~lib/map/Map#get" local.get $0 - local.get $10 - call $~lib/rt/itcms/__link + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $4 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $7 - i32.store offset=12 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=12 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $3 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + 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 24 i32.add global.set $~lib/memory/__stack_pointer return @@ -15561,245 +17529,16 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $"~lib/map/Map#find" - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#clear" (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -15830,7 +17569,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 21 + i32.const 15 call $~lib/rt/itcms/__new local.tee $1 i32.store @@ -15858,7 +17597,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 64 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 global.get $~lib/memory/__stack_pointer @@ -15895,16 +17634,16 @@ local.get $1 i32.store loop $for-loop|0 - local.get $2 - i64.const 100 - i64.lt_s + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -15917,18 +17656,17 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 + local.get $0 + local.get $0 i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -15942,10 +17680,9 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 10 i32.add i32.ne @@ -15957,10 +17694,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i64.const 1 - i64.add - local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|0 end end @@ -15979,19 +17716,19 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $2 + i32.const 0 + local.set $0 loop $for-loop|1 - local.get $2 - i64.const 100 - i64.lt_s + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16005,10 +17742,9 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 10 i32.add i32.ne @@ -16024,18 +17760,17 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 + local.get $0 + local.get $0 i32.const 20 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16049,10 +17784,9 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 20 i32.add i32.ne @@ -16064,10 +17798,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i64.const 1 - i64.add - local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|1 end end @@ -16106,13 +17840,13 @@ i32.store local.get $1 i32.load offset=8 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 @@ -16130,39 +17864,39 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 22 + i32.const 16 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store - local.get $8 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.store offset=12 - local.get $7 - i32.const 134217727 + local.get $6 + i32.const 536870910 i32.gt_u if i32.const 1456 @@ -16174,78 +17908,80 @@ 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.const 1 i32.shl - local.tee $9 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $8 i32.store offset=12 + local.get $7 local.get $8 - local.get $4 i32.store + local.get $7 local.get $8 - local.get $4 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 + local.get $7 local.get $8 - local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 - local.get $9 + local.get $7 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 + i32.const 0 + local.set $0 loop $for-loop|00 local.get $3 - local.get $7 + local.get $6 i32.lt_s if - local.get $6 + local.get $5 local.get $3 - i32.const 4 - i32.shl + i32.const 12 + i32.mul i32.add - local.tee $4 - i32.load offset=12 + local.tee $8 + i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 local.get $0 - local.get $4 - i64.load - call $~lib/array/Array#__set + local.get $8 + i32.load16_u + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add @@ -16259,23 +17995,23 @@ end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 local.get $0 - call $~lib/array/Array#set:length + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - call $"~lib/map/Map#values" + call $"~lib/map/Map#values" local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16295,7 +18031,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 23 + i32.const 17 call $~lib/rt/itcms/__new local.tee $4 i32.store @@ -16323,7 +18059,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=4 - i32.const 96 + i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $5 global.get $~lib/memory/__stack_pointer @@ -16361,21 +18097,19 @@ i32.store offset=16 global.get $~lib/memory/__stack_pointer call $"~lib/map/Map#constructor" - local.tee $5 + local.tee $3 i32.store offset=20 - i32.const 0 - local.set $3 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 call $~lib/array/Array#get:length - local.get $3 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -16389,10 +18123,10 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $3 - local.get $8 + local.get $2 + local.get $7 i32.load offset=12 i32.ge_u if @@ -16404,16 +18138,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.store - local.get $8 + local.get $7 i32.load offset=4 - local.get $3 - i32.const 3 + local.get $2 + i32.const 1 i32.shl i32.add - i64.load - local.set $2 + i32.load16_u + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -16422,15 +18156,15 @@ local.get $0 i32.store offset=4 local.get $0 - local.get $3 + local.get $2 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $5 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16447,8 +18181,7 @@ local.get $6 i32.const 20 i32.sub - i64.extend_i32_s - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16462,23 +18195,23 @@ local.get $4 i32.store offset=4 local.get $4 - local.get $2 - local.get $2 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=4 local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $6 i32.const 20 i32.sub - local.tee $6 - local.get $6 + local.tee $5 + local.get $5 call $"~lib/map/Map#set" - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|2 end end @@ -16498,9 +18231,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=4 - local.get $5 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne @@ -16512,19 +18245,19 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $2 - loop $for-loop|3 - local.get $2 - i64.const 50 - i64.lt_s + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16538,10 +18271,9 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 20 i32.add i32.ne @@ -16557,14 +18289,14 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#delete" + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -16573,10 +18305,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i64.const 1 - i64.add - local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|3 end end @@ -16595,19 +18327,19 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $2 + i32.const 0 + local.set $0 loop $for-loop|4 - local.get $2 - i64.const 50 - i64.lt_s + local.get $0 + i32.const 50 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -16620,18 +18352,17 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 + local.get $0 + local.get $0 i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -16645,14 +18376,14 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#delete" + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -16661,10 +18392,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i64.const 1 - i64.add - local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|4 end end @@ -16675,699 +18406,533 @@ call $"~lib/map/Map#get:size" i32.const 50 i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~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 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 i32.ne if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s if - local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $8 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $7 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $6 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 i32.add - local.set $2 + local.set $0 + br $for-loop|1 end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~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 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 + call $~lib/rt/itcms/__new + local.tee $8 i32.store offset=8 - else global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 + local.get $7 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + local.get $6 i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 i32.const 1 - i32.shl + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 i32.const 1 - i32.or + i32.add + local.set $3 + br $for-loop|00 end - call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $0 - i32.store + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 4 - i32.shl + i32.const 8 i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 + global.set $~lib/memory/__stack_pointer + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add + local.get $1 + call $"~lib/map/Map#values" local.tee $0 - i32.load i32.store offset=12 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s @@ -17379,170 +18944,89 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1408" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1408" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=4 - local.get $0 - i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17550,419 +19034,330 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.add + i32.load8_s + local.set $5 + 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 offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 local.get $5 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $1 local.get $0 - i32.load offset=8 - local.set $11 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 - local.get $11 + call $"~lib/map/Map#get" local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul + i32.const 20 i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - 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 $9 - 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 $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 - end + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $10 - i32.store + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $10 - call $~lib/rt/itcms/__link + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $4 - i32.store offset=8 local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 + 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 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=12 - local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $3 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $"~lib/map/Map#find" - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + 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 - local.get $0 - i32.store - local.get $0 - local.get $2 - call $"~lib/map/Map#rehash" + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"std/map/testNumeric" + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i64) @@ -18003,7 +19398,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 24 + i32.const 21 call $~lib/rt/itcms/__new local.tee $1 i32.store @@ -18070,14 +19465,14 @@ loop $for-loop|0 local.get $2 i64.const 100 - i64.lt_u + i64.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -18095,13 +19490,13 @@ i32.wrap_i64 i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18116,7 +19511,7 @@ i32.store offset=4 local.get $1 local.get $2 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $2 i32.wrap_i64 i32.const 10 @@ -18157,14 +19552,14 @@ loop $for-loop|1 local.get $2 i64.const 100 - i64.lt_u + i64.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18179,7 +19574,7 @@ i32.store offset=4 local.get $1 local.get $2 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $2 i32.wrap_i64 i32.const 10 @@ -18202,13 +19597,13 @@ i32.wrap_i64 i32.const 20 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18223,7 +19618,7 @@ i32.store offset=4 local.get $1 local.get $2 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $2 i32.wrap_i64 i32.const 20 @@ -18303,7 +19698,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 25 + i32.const 22 call $~lib/rt/itcms/__new local.tee $8 i32.store @@ -18468,7 +19863,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 26 + i32.const 23 call $~lib/rt/itcms/__new local.tee $4 i32.store @@ -18603,7 +19998,7 @@ i32.store offset=4 local.get $1 local.get $2 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18621,7 +20016,7 @@ i32.const 20 i32.sub i64.extend_i32_s - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -18637,7 +20032,7 @@ local.get $4 local.get $2 local.get $2 - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 @@ -18649,986 +20044,497 @@ local.get $6 call $"~lib/map/Map#set" local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 - local.get $2 - i64.const 50 - i64.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 - local.get $2 - i64.const 50 - i64.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - 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 - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" - i32.const 50 + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 56 + i32.const 36 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 - local.get $1 + local.get $5 call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if i32.const 0 i32.const 1568 - i32.const 60 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - f32.load - f32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 f32) (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $5 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - local.get $8 - f32.load - local.tee $4 - f32.store + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - local.get $8 - i32.load offset=4 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 local.get $2 - local.get $7 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 - local.get $4 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - local.get $9 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - local.get $9 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - local.get $9 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=8 - local.get $9 local.get $2 - i32.store + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.const 12 - i32.add + i64.const 1 + i64.add local.set $2 + br $for-loop|3 end - local.get $8 - i32.const 12 - i32.add - local.set $8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - else global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 + local.get $2 + i64.const 50 + i64.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - else + local.get $1 + 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 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + 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 + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 end - call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 local.get $1 - f32.store - local.get $3 - local.get $2 i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + local.get $1 + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + 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 - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 f32) (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#keys" (param $0 i32) (result i32) + (func $"std/map/testNumeric" + (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 28 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 i32.const 0 - call $~lib/rt/itcms/__link + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 + call $"~lib/map/Map#constructor" + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.store offset=8 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + 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.get $6 + local.get $1 i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 + i32.const 1896 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=16 + local.tee $6 + call $~lib/array/Array#constructor + local.tee $2 i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 i32.lt_s if + local.get $5 local.get $3 - local.get $2 i32.const 12 i32.mul i32.add @@ -19639,470 +20545,353 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f32.load - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store + local.get $2 local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 + local.get $7 + i32.load + call $~lib/array/Array#__set local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $4 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 f32) (param $2 f32) - (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - f32.store offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $2 + i32.store offset=4 + local.get $2 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/array/Array#__get + local.set $6 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=20 + local.get $3 + call $~lib/array/Array#__get + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $1 + local.get $6 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $7 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.get $4 i32.store offset=4 + local.get $4 + local.get $6 + local.get $6 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $11 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul + local.get $5 + i32.store offset=4 + local.get $5 + local.get $7 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $3 + i32.const 1 i32.add - local.set $6 - local.get $4 local.set $3 - loop $while-continue|0 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - f32.load - local.tee $5 - f32.store - local.get $3 - local.get $11 - f32.load offset=4 - f32.store offset=4 - local.get $3 - local.get $10 - local.get $9 - local.get $5 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=8 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 12 - i32.add - local.set $3 - end - local.get $11 - i32.const 12 - i32.add - local.set $11 - br $while-continue|0 - end - end + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s + if global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $10 - i32.store + call $"~lib/map/Map#get" local.get $0 - local.get $10 - call $~lib/rt/itcms/__link + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $4 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $7 - i32.store offset=12 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 + 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 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=12 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - f32.store - local.get $3 - local.get $2 - f32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + 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 24 i32.add global.set $~lib/memory/__stack_pointer return @@ -20114,162 +20903,25 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" + (func $"std/map/testNumeric" (local $0 i32) - (local $1 f32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 24 @@ -20282,7 +20934,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -20291,81 +20943,81 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 27 + i32.const 12 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $0 - local.get $4 + local.get $1 + local.get $5 i32.store - local.get $0 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $0 - local.get $4 + local.get $1 + local.get $5 i32.store offset=8 - local.get $0 - local.get $4 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store loop $for-loop|0 - local.get $1 - f32.const 100 - f32.lt + local.get $0 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -20375,21 +21027,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $1 + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s + local.get $0 + local.get $0 i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20400,13 +21051,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#get" + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 10 i32.add i32.ne @@ -20418,17 +21068,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 - f32.const 1 - f32.add - local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 call $"~lib/map/Map#get:size" i32.const 100 i32.ne @@ -20440,19 +21090,19 @@ call $~lib/builtins/abort unreachable end - f32.const 0 - local.set $1 + i32.const 0 + local.set $0 loop $for-loop|1 - local.get $1 - f32.const 100 - f32.lt + local.get $0 + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20463,13 +21113,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#get" + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 10 i32.add i32.ne @@ -20482,21 +21131,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $1 + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s + local.get $0 + local.get $0 i32.const 20 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#has" + local.get $0 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -20507,13 +21155,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#get" + i32.store offset=4 local.get $1 - i32.trunc_sat_f32_s + local.get $0 + call $"~lib/map/Map#get" + local.get $0 i32.const 20 i32.add i32.ne @@ -20525,43 +21172,221 @@ call $~lib/builtins/abort unreachable end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~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 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 - call $"~lib/map/Map#keys" - local.tee $4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $"~lib/map/Map#values" - local.tee $3 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20571,7 +21396,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -20580,1184 +21405,761 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 29 + i32.const 14 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=8 - local.get $6 - local.get $7 + local.get $4 + local.get $5 i32.store - local.get $6 - local.get $7 + local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 + local.get $4 i32.const 3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - i32.const 48 + i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=8 - local.get $6 - local.get $7 + local.get $4 + local.get $5 i32.store offset=8 - local.get $6 - local.get $7 + local.get $4 + local.get $5 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 + local.get $4 i32.const 4 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 + local.get $4 i32.const 0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - local.get $6 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer call $"~lib/map/Map#constructor" - local.tee $5 + local.tee $3 i32.store offset=20 loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $2 - local.get $4 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $1 - 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 - i32.store offset=4 - local.get $3 - local.get $2 - call $~lib/array/Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $7 - i32.const 20 - i32.sub - f32.convert_i32_s - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $1 - local.get $1 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $7 - i32.const 20 - i32.sub - local.tee $7 - local.get $7 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 0 - local.set $1 - loop $for-loop|3 - local.get $1 - f32.const 50 - f32.lt + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#get" - local.get $1 - i32.trunc_sat_f32_s - i32.const 20 - i32.add - i32.ne + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1568 + i32.const 1248 + i32.const 1728 + i32.const 114 i32.const 42 - i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#delete" + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + 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 offset=4 local.get $0 - local.get $1 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 0 - local.set $1 - loop $for-loop|4 - local.get $1 - f32.const 50 - f32.lt - if + local.get $2 + call $~lib/array/Array#__get + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#has" + local.get $5 + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 50 + i32.const 31 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 local.get $1 - i32.trunc_sat_f32_s - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 local.get $1 - call $"~lib/map/Map#has" + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 52 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#delete" + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 - local.get $1 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=4 - local.get $0 + local.get $4 call $"~lib/map/Map#get:size" - i32.const 50 + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 56 + i32.const 36 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - local.get $0 + local.get $3 call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if i32.const 0 i32.const 1568 - i32.const 60 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 local.get $0 - f64.load - f64.eq - end - if + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - return + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 f64) (result i32) - (local $2 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $9 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $6 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $6 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 i32.ne if - local.get $9 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s if - local.get $2 - local.get $9 - f64.load - local.tee $5 - f64.store - local.get $2 - local.get $9 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $8 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $5 - 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 $10 - i32.const 15 - i32.shr_u - local.get $10 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $10 - i32.const 13 - i32.shr_u - local.get $10 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $10 - i32.const 16 - i32.shr_u - local.get $10 - i32.xor - i32.and - i32.const 2 - i32.shl + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 i32.add - local.tee $10 - i32.load - i32.store offset=12 - local.get $10 - local.get $2 - i32.store - local.get $2 - i32.const 16 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 i32.add - local.set $2 + local.set $0 + br $for-loop|4 end - local.get $9 - i32.const 16 - i32.add - local.set $9 - br $while-continue|0 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $0 - local.get $8 - i32.store - local.get $0 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 i32) - (local $3 i64) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 f64) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - 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 $3 - 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 $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $5 - call $"~lib/map/Map#find" - local.tee $4 - if - local.get $4 - local.get $2 + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~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 1896 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - else global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 30 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 local.get $0 + local.get $4 i32.store local.get $0 - i32.load offset=16 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 i32.store + loop $for-loop|0 + local.get $1 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 - i32.eq + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $4 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1568 + i32.const 11 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=4 - else + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + local.get $1 + local.get $1 + i32.trunc_sat_f64_s + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|1 end - call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - local.get $6 - i32.const 4 - i32.shl - i32.add - local.tee $4 - local.get $1 - f64.store - local.get $4 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $2 - local.get $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $4 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 f64) (result i32) - (local $2 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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#keys" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - local.set $3 + call $"~lib/map/Map#keys" + local.tee $4 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=16 - local.set $5 + call $"~lib/map/Map#values" + local.tee $3 + i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 31 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $0 - i32.const 1 + i32.const 24 + i32.const 32 call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 + local.tee $6 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store offset=12 + i32.store offset=8 local.get $6 local.get $7 i32.store @@ -21768,762 +22170,403 @@ local.get $6 i32.store offset=4 local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + i32.const 3 i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f64.load - 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 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $6 - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 f64) (param $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 f64) - (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $7 i32.store offset=8 + local.get $6 + local.get $7 + i32.store offset=8 + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 0 - i32.store + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i64.reinterpret_f64 + call $"~lib/map/Map#constructor" local.tee $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 $5 - 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 $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $10 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1418" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - f64.load - f64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1418" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/array/Array#get:length local.get $2 - f64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=4 - local.get $0 - i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $4 + i32.store + local.get $2 + local.get $4 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.load offset=4 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $1 + 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 + i32.store offset=4 + local.get $3 + local.get $2 + call $~lib/array/Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $7 + i32.const 20 + i32.sub + f64.convert_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $6 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 - i32.store + i32.store offset=4 + local.get $6 + local.get $1 + local.get $1 + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.get $5 i32.store offset=4 + local.get $5 + local.get $7 + i32.const 20 + i32.sub + local.tee $7 + local.get $7 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f64.const 50 + f64.lt + if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=8 - local.set $12 + local.get $1 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $12 + i32.store offset=4 local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul + local.get $1 + call $"~lib/map/Map#get" + local.get $1 + i32.trunc_sat_f64_s + i32.const 20 i32.add - local.set $8 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $8 - local.get $12 - i32.ne - if - local.get $12 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $12 - f64.load - local.tee $7 - f64.store - local.get $3 - local.get $12 - f64.load offset=8 - f64.store offset=8 - local.get $3 - local.get $11 - local.get $6 - local.get $7 - i64.reinterpret_f64 - local.tee $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 $5 - 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 $13 - local.get $13 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $13 - local.get $13 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $13 - local.get $13 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $13 - i32.load - i32.store offset=16 - local.get $13 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $12 - i32.const 24 - i32.add - local.set $12 - br $while-continue|00 - end + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store offset=12 local.get $0 - local.get $11 - i32.store + i32.store offset=4 local.get $0 - local.get $11 - call $~lib/rt/itcms/__link + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f64.const 50 + f64.lt + if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 + i32.store offset=4 local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $1 + local.get $1 + i32.trunc_sat_f64_s + i32.const 10 i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - f64.store - local.get $3 - local.get $2 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $10 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 f64) - (local $2 i64) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - call $"~lib/map/Map#find" - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $3 - local.get $3 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $4 - local.get $4 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|4 + end + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=20 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - local.get $3 - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#get:size" + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"std/map/testNumeric" + (func $"std/map/testNumeric" (local $0 i32) - (local $1 f64) + (local $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -22560,7 +22603,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 30 + i32.const 27 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -22588,7 +22631,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 64 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $4 global.get $~lib/memory/__stack_pointer @@ -22626,15 +22669,15 @@ i32.store loop $for-loop|0 local.get $1 - f64.const 100 - f64.lt + f32.const 100 + f32.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -22649,16 +22692,16 @@ local.get $0 local.get $1 local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -22673,9 +22716,9 @@ i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 10 i32.add i32.ne @@ -22688,8 +22731,8 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|0 end @@ -22709,19 +22752,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|1 local.get $1 - f64.const 100 - f64.lt + f32.const 100 + f32.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -22736,9 +22779,9 @@ i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 10 i32.add i32.ne @@ -22756,16 +22799,16 @@ local.get $0 local.get $1 local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 20 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -22780,9 +22823,9 @@ i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 20 i32.add i32.ne @@ -22795,8 +22838,8 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|1 end @@ -22821,7 +22864,7 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#keys" + call $"~lib/map/Map#keys" local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -22829,7 +22872,7 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - call $"~lib/map/Map#values" + call $"~lib/map/Map#values" local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -22849,7 +22892,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 32 + i32.const 29 call $~lib/rt/itcms/__new local.tee $6 i32.store @@ -22877,7 +22920,7 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - i32.const 96 + i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.set $7 global.get $~lib/memory/__stack_pointer @@ -22961,10 +23004,10 @@ local.get $4 i32.load offset=4 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load + f32.load local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -22982,7 +23025,7 @@ i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -22999,8 +23042,8 @@ local.get $7 i32.const 20 i32.sub - f64.convert_i32_s - call $"~lib/map/Map#has" + f32.convert_i32_s + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23016,7 +23059,7 @@ local.get $6 local.get $1 local.get $1 - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 @@ -23064,19 +23107,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|3 local.get $1 - f64.const 50 - f64.lt + f32.const 50 + f32.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23091,9 +23134,9 @@ i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 20 i32.add i32.ne @@ -23110,13 +23153,13 @@ i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#delete" + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23126,8 +23169,8 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|3 end @@ -23147,19 +23190,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|4 local.get $1 - f64.const 50 - f64.lt + f32.const 50 + f32.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23174,16 +23217,16 @@ local.get $0 local.get $1 local.get $1 - i32.trunc_sat_f64_s + i32.trunc_sat_f32_s i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -23198,13 +23241,13 @@ i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#delete" + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -23214,8 +23257,8 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|4 end @@ -23239,7 +23282,7 @@ local.get $0 i32.store offset=4 local.get $0 - call $"~lib/map/Map#clear" + call $"~lib/map/Map#clear" global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -23266,46 +23309,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (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 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat index 8dc86c5333..244d0cc93e 100644 --- a/tests/compiler/std/math.release.wat +++ b/tests/compiler/std/math.release.wat @@ -6,19 +6,18 @@ (type $4 (func (param f64 f64) (result f64))) (type $5 (func (param f32 f32) (result f32))) (type $6 (func (param f64 f64 f64 f64) (result i32))) - (type $7 (func (result f64))) - (type $8 (func (param f64 f64) (result i32))) - (type $9 (func (param f32 f32) (result i32))) + (type $7 (func (param f64 f64) (result i32))) + (type $8 (func (param f32 f32) (result i32))) + (type $9 (func (result f64))) (type $10 (func)) - (type $11 (func (param f64 i32) (result f64))) - (type $12 (func (param i32 i32 i32 i32))) - (type $13 (func (param i64) (result i32))) + (type $11 (func (param i32 i32 i32 i32))) + (type $12 (func (param f64 i32) (result f64))) + (type $13 (func (param i64 i64) (result i64))) (type $14 (func (param f32 f32 f32 f32) (result i32))) - (type $15 (func (param i64))) - (type $16 (func (param f64 f64 i32) (result f64))) - (type $17 (func (param f64))) - (type $18 (func (param i64 i64 i64 i64 i64))) - (type $19 (func (param i64 i64) (result i64))) + (type $15 (func (param f64))) + (type $16 (func (param i64) (result i32))) + (type $17 (func (param i64))) + (type $18 (func (param f64 f64 i32) (result f64))) (import "env" "Math.E" (global $~lib/bindings/dom/Math.E f64)) (import "env" "Math.LN2" (global $~lib/bindings/dom/Math.LN2 f64)) (import "env" "Math.LN10" (global $~lib/bindings/dom/Math.LN10 f64)) @@ -27,38 +26,38 @@ (import "env" "Math.SQRT1_2" (global $~lib/bindings/dom/Math.SQRT1_2 f64)) (import "env" "Math.SQRT2" (global $~lib/bindings/dom/Math.SQRT2 f64)) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "env" "Math.abs" (func $~lib/bindings/dom/Math.abs (param f64) (result f64))) - (import "env" "Math.acos" (func $~lib/bindings/dom/Math.acos (param f64) (result f64))) - (import "env" "Math.acosh" (func $~lib/bindings/dom/Math.acosh (param f64) (result f64))) - (import "env" "Math.asin" (func $~lib/bindings/dom/Math.asin (param f64) (result f64))) - (import "env" "Math.asinh" (func $~lib/bindings/dom/Math.asinh (param f64) (result f64))) - (import "env" "Math.atan" (func $~lib/bindings/dom/Math.atan (param f64) (result f64))) - (import "env" "Math.atanh" (func $~lib/bindings/dom/Math.atanh (param f64) (result f64))) - (import "env" "Math.atan2" (func $~lib/bindings/dom/Math.atan2 (param f64 f64) (result f64))) - (import "env" "Math.cbrt" (func $~lib/bindings/dom/Math.cbrt (param f64) (result f64))) - (import "env" "Math.ceil" (func $~lib/bindings/dom/Math.ceil (param f64) (result f64))) (import "env" "Math.cos" (func $~lib/bindings/dom/Math.cos (param f64) (result f64))) - (import "env" "Math.cosh" (func $~lib/bindings/dom/Math.cosh (param f64) (result f64))) + (import "env" "Math.sqrt" (func $~lib/bindings/dom/Math.sqrt (param f64) (result f64))) + (import "env" "Math.tan" (func $~lib/bindings/dom/Math.tan (param f64) (result f64))) + (import "env" "Math.ceil" (func $~lib/bindings/dom/Math.ceil (param f64) (result f64))) + (import "env" "Math.sin" (func $~lib/bindings/dom/Math.sin (param f64) (result f64))) (import "env" "Math.exp" (func $~lib/bindings/dom/Math.exp (param f64) (result f64))) - (import "env" "Math.expm1" (func $~lib/bindings/dom/Math.expm1 (param f64) (result f64))) - (import "env" "Math.pow" (func $~lib/bindings/dom/Math.pow (param f64 f64) (result f64))) + (import "env" "Math.trunc" (func $~lib/bindings/dom/Math.trunc (param f64) (result f64))) (import "env" "Math.floor" (func $~lib/bindings/dom/Math.floor (param f64) (result f64))) - (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) - (import "env" "Math.log10" (func $~lib/bindings/dom/Math.log10 (param f64) (result f64))) - (import "env" "Math.log1p" (func $~lib/bindings/dom/Math.log1p (param f64) (result f64))) + (import "env" "Math.asin" (func $~lib/bindings/dom/Math.asin (param f64) (result f64))) + (import "env" "Math.acos" (func $~lib/bindings/dom/Math.acos (param f64) (result f64))) + (import "env" "Math.expm1" (func $~lib/bindings/dom/Math.expm1 (param f64) (result f64))) (import "env" "Math.log2" (func $~lib/bindings/dom/Math.log2 (param f64) (result f64))) - (import "env" "Math.max" (func $~lib/bindings/dom/Math.max (param f64 f64) (result f64))) - (import "env" "Math.min" (func $~lib/bindings/dom/Math.min (param f64 f64) (result f64))) - (import "math" "mod" (func $std/math/mod (param f64 f64) (result f64))) - (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (result f64))) + (import "env" "Math.log1p" (func $~lib/bindings/dom/Math.log1p (param f64) (result f64))) + (import "env" "Math.log" (func $~lib/bindings/dom/Math.log (param f64) (result f64))) + (import "env" "Math.atan" (func $~lib/bindings/dom/Math.atan (param f64) (result f64))) + (import "env" "Math.abs" (func $~lib/bindings/dom/Math.abs (param f64) (result f64))) (import "env" "seed" (func $~lib/builtins/seed (result f64))) - (import "env" "Math.sign" (func $~lib/bindings/dom/Math.sign (param f64) (result f64))) - (import "env" "Math.sin" (func $~lib/bindings/dom/Math.sin (param f64) (result f64))) - (import "env" "Math.sinh" (func $~lib/bindings/dom/Math.sinh (param f64) (result f64))) - (import "env" "Math.sqrt" (func $~lib/bindings/dom/Math.sqrt (param f64) (result f64))) - (import "env" "Math.tan" (func $~lib/bindings/dom/Math.tan (param f64) (result f64))) + (import "env" "Math.random" (func $~lib/bindings/dom/Math.random (result f64))) + (import "env" "Math.pow" (func $~lib/bindings/dom/Math.pow (param f64 f64) (result f64))) (import "env" "Math.tanh" (func $~lib/bindings/dom/Math.tanh (param f64) (result f64))) - (import "env" "Math.trunc" (func $~lib/bindings/dom/Math.trunc (param f64) (result f64))) + (import "env" "Math.sinh" (func $~lib/bindings/dom/Math.sinh (param f64) (result f64))) + (import "env" "Math.sign" (func $~lib/bindings/dom/Math.sign (param f64) (result f64))) + (import "env" "Math.min" (func $~lib/bindings/dom/Math.min (param f64 f64) (result f64))) + (import "env" "Math.max" (func $~lib/bindings/dom/Math.max (param f64 f64) (result f64))) + (import "env" "Math.log10" (func $~lib/bindings/dom/Math.log10 (param f64) (result f64))) + (import "env" "Math.cosh" (func $~lib/bindings/dom/Math.cosh (param f64) (result f64))) + (import "env" "Math.cbrt" (func $~lib/bindings/dom/Math.cbrt (param f64) (result f64))) + (import "env" "Math.atanh" (func $~lib/bindings/dom/Math.atanh (param f64) (result f64))) + (import "env" "Math.atan2" (func $~lib/bindings/dom/Math.atan2 (param f64 f64) (result f64))) + (import "env" "Math.asinh" (func $~lib/bindings/dom/Math.asinh (param f64) (result f64))) + (import "env" "Math.acosh" (func $~lib/bindings/dom/Math.acosh (param f64) (result f64))) + (import "math" "mod" (func $std/math/mod (param f64 f64) (result f64))) (global $~lib/math/rempio2_y0 (mut f64) (f64.const 0)) (global $~lib/math/rempio2_y1 (mut f64) (f64.const 0)) (global $~lib/math/res128_hi (mut i64) (i64.const 0)) @@ -69,8 +68,6 @@ (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) - (global $~lib/math/NativeMath.sincos_sin (mut f64) (f64.const 0)) - (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0)) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\16\00\00\00s\00t\00d\00/\00m\00a\00t\00h\00.\00t\00s") @@ -215,83 +212,6 @@ (data $11.128 (i32.const 14353) "`Y\df\bd\d5\d5?\dce\a4\08*\0b\n\bd") (export "memory" (memory $0)) (start $~start) - (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) - local.get $1 - i32.const 1023 - i32.gt_s - if (result f64) - local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - local.set $0 - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - i32.const 1023 - i32.gt_s - if (result f64) - i32.const 1023 - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - local.get $1 - i32.const 1023 - i32.ge_s - select - local.set $1 - local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - else - local.get $0 - end - else - local.get $1 - i32.const -1022 - i32.lt_s - if (result f64) - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - local.set $0 - local.get $1 - i32.const 969 - i32.add - local.tee $1 - i32.const -1022 - i32.lt_s - if (result f64) - i32.const -1022 - local.get $1 - i32.const 969 - i32.add - local.tee $1 - local.get $1 - i32.const -1022 - i32.le_s - select - local.set $1 - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - else - local.get $0 - end - else - local.get $0 - end - end - local.get $1 - i64.extend_i32_s - i64.const 1023 - i64.add - i64.const 52 - i64.shl - f64.reinterpret_i64 - f64.mul - ) (func $std/math/check (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 i32) local.get $0 @@ -555,4730 +475,6124 @@ end i32.const 1 ) - (func $~lib/math/NativeMath.acos (param $0 f64) (result f64) - (local $1 i32) + (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 f64) - local.get $0 - i64.reinterpret_f64 - local.tee $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $2 - i32.const 2147483647 - i32.and - local.tee $1 - i32.const 1072693248 - i32.ge_u + (local $3 f64) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + local.get $1 + f32.abs + f32.const 2 + f32.le if - local.get $3 - i32.wrap_i64 local.get $1 - i32.const 1072693248 + f32.const 2 + f32.eq + if + local.get $0 + local.get $0 + f32.mul + return + end + local.get $1 + f32.const 0.5 + f32.eq + if + local.get $0 + f32.sqrt + f32.abs + f32.const inf + local.get $0 + f32.const -inf + f32.ne + select + return + end + local.get $1 + f32.const -1 + f32.eq + if + f32.const 1 + local.get $0 + f32.div + return + end + local.get $1 + f32.const 1 + f32.eq + if + local.get $0 + return + end + local.get $1 + f32.const 0 + f32.eq + if + f32.const 1 + return + end + end + block $~lib/util/math/powf_lut|inlined.0 (result f32) + local.get $1 + i32.reinterpret_f32 + local.tee $8 + i32.const 1 + i32.shl + local.tee $6 + i32.const 1 + i32.sub + i32.const -16777217 + i32.ge_u + local.tee $7 + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 8388608 i32.sub + i32.const 2130706432 + i32.ge_u i32.or - i32.eqz if + local.get $7 + if + f32.const 1 + local.get $6 + i32.eqz + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const nan:0x400000 + local.get $2 + i32.const 1065353216 + i32.eq + br_if $~lib/util/math/powf_lut|inlined.0 + drop + local.get $0 + local.get $1 + f32.add + local.get $6 + i32.const -16777216 + i32.gt_u + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + i32.const -16777216 + i32.gt_u + i32.or + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const nan:0x400000 + local.get $2 + i32.const 2130706432 + i32.eq + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const 0 + local.get $8 + i32.const 31 + i32.shr_u + i32.eqz + local.get $2 + i32.const 2130706432 + i32.lt_u + i32.eq + br_if $~lib/util/math/powf_lut|inlined.0 + drop + local.get $1 + local.get $1 + f32.mul + br $~lib/util/math/powf_lut|inlined.0 + end + local.get $2 + i32.const 1 + i32.shl + i32.const 1 + i32.sub + i32.const -16777217 + i32.ge_u + if + f32.const 1 + local.get $0 + local.get $0 + f32.mul + local.tee $0 + f32.neg + local.get $0 + local.get $2 + i32.const 31 + i32.shr_u + if (result i32) + block $~lib/util/math/checkintf|inlined.0 (result i32) + i32.const 0 + local.get $8 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $2 + i32.const 127 + i32.lt_u + br_if $~lib/util/math/checkintf|inlined.0 + drop + i32.const 2 + local.get $2 + i32.const 150 + i32.gt_u + br_if $~lib/util/math/checkintf|inlined.0 + drop + i32.const 0 + local.get $8 + i32.const 1 + i32.const 150 + local.get $2 + i32.sub + i32.shl + local.tee $2 + i32.const 1 + i32.sub + i32.and + br_if $~lib/util/math/checkintf|inlined.0 + drop + i32.const 1 + local.get $2 + local.get $8 + i32.and + br_if $~lib/util/math/checkintf|inlined.0 + drop + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + select + local.tee $0 + f32.div + local.get $0 + local.get $8 + i32.const 0 + i32.lt_s + select + br $~lib/util/math/powf_lut|inlined.0 + end local.get $2 i32.const 0 i32.lt_s if - f64.const 3.141592653589793 - return + block $~lib/util/math/checkintf|inlined.1 (result i32) + i32.const 0 + local.get $8 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $4 + i32.const 127 + i32.lt_u + br_if $~lib/util/math/checkintf|inlined.1 + drop + i32.const 2 + local.get $4 + i32.const 150 + i32.gt_u + br_if $~lib/util/math/checkintf|inlined.1 + drop + i32.const 0 + local.get $8 + i32.const 1 + i32.const 150 + local.get $4 + i32.sub + i32.shl + local.tee $4 + i32.const 1 + i32.sub + i32.and + br_if $~lib/util/math/checkintf|inlined.1 + drop + i32.const 1 + local.get $4 + local.get $8 + i32.and + br_if $~lib/util/math/checkintf|inlined.1 + drop + i32.const 2 + end + local.tee $4 + i32.eqz + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/powf_lut|inlined.0 + end + i32.const 65536 + i32.const 0 + local.get $4 + i32.const 1 + i32.eq + select + local.set $4 + local.get $2 + i32.const 2147483647 + i32.and + local.set $2 + end + local.get $2 + i32.const 8388608 + i32.lt_u + if + local.get $0 + f32.const 8388608 + f32.mul + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + i32.const 192937984 + i32.sub + local.set $2 end - f64.const 0 - return - end - f64.const 0 - local.get $0 - local.get $0 - f64.sub - f64.div - return - end - local.get $1 - i32.const 1071644672 - i32.lt_u - if - local.get $1 - i32.const 1012924416 - i32.le_u - if - f64.const 1.5707963267948966 - return end - f64.const 1.5707963267948966 - local.get $0 - f64.const 6.123233995736766e-17 - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 3.479331075960212e-05 + local.get $2 + local.get $2 + i32.const 1060306944 + i32.sub + local.tee $2 + i32.const -8388608 + i32.and + local.tee $6 + i32.sub + f32.reinterpret_i32 + f64.promote_f32 + local.get $2 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and + i32.const 4 + i32.shl + i32.const 10016 + i32.add + local.tee $2 + f64.load f64.mul - f64.const 7.915349942898145e-04 + f64.const -1 f64.add + local.tee $3 + local.get $3 f64.mul - f64.const -0.04005553450067941 - f64.add + local.set $9 + local.get $1 + f64.promote_f32 + local.get $3 + f64.const 0.288457581109214 f64.mul - f64.const 0.20121253213486293 + f64.const -0.36092606229713164 f64.add + local.get $9 + local.get $9 f64.mul - f64.const -0.3255658186224009 - f64.add f64.mul - f64.const 0.16666666666666666 + local.get $3 + f64.const 1.4426950408774342 + f64.mul + local.get $2 + f64.load offset=8 + local.get $6 + i32.const 23 + i32.shr_s + f64.convert_i32_s + f64.add f64.add + local.get $3 + f64.const 0.480898481472577 f64.mul - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 0.07703815055590194 - f64.mul - f64.const -0.6882839716054533 + f64.const -0.7213474675006291 f64.add + local.get $9 f64.mul - f64.const 2.0209457602335057 + f64.add f64.add f64.mul - f64.const -2.403394911734414 + local.tee $3 + i64.reinterpret_f64 + i64.const 47 + i64.shr_u + i64.const 65535 + i64.and + i64.const 32959 + i64.ge_u + if + f32.const -inf + f32.const inf + local.get $4 + select + local.get $3 + f64.const 127.99999995700433 + f64.gt + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const -0 + f32.const 0 + local.get $4 + select + local.get $3 + f64.const -150 + f64.le + br_if $~lib/util/math/powf_lut|inlined.0 + drop + end + local.get $3 + f64.const 211106232532992 + f64.add + local.tee $9 + i64.reinterpret_f64 + local.set $5 + local.get $3 + local.get $9 + f64.const -211106232532992 f64.add + f64.sub + local.tee $3 + f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - f64.div + local.get $3 + f64.const 0.05550361559341535 + f64.mul + f64.const 0.2402284522445722 + f64.add + local.get $3 + local.get $3 + f64.mul + f64.mul + f64.add + local.get $5 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.const 7712 + i32.add + i64.load + local.get $5 + local.get $4 + i64.extend_i32_u + i64.add + i64.const 47 + i64.shl + i64.add + f64.reinterpret_i64 + f64.mul + f32.demote_f64 + end + ) + (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) + (local $1 f64) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) + local.get $0 + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 31 + i32.shr_u + local.set $6 + local.get $3 + i32.const 2147483647 + i32.and + local.tee $3 + i32.const 1072243195 + i32.le_u + if + local.get $3 + i32.const 1044816030 + i32.lt_u + if + f64.const 1 + return + end + local.get $0 + local.get $0 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + f64.const 1 + local.get $1 + f64.const 0.5 f64.mul + local.tee $7 + f64.sub + local.tee $8 + f64.const 1 + local.get $8 f64.sub + local.get $7 f64.sub + local.get $1 + local.get $1 + local.get $1 + local.get $1 + f64.const 2.480158728947673e-05 + f64.mul + f64.const -0.001388888888887411 + f64.add + f64.mul + f64.const 0.0416666666666666 + f64.add + f64.mul + local.get $2 + local.get $2 + f64.mul + local.get $1 + local.get $1 + f64.const -1.1359647557788195e-11 + f64.mul + f64.const 2.087572321298175e-09 + f64.add + f64.mul + f64.const -2.7557314351390663e-07 + f64.add + f64.mul + f64.add + f64.mul + local.get $0 + f64.const 0 + f64.mul f64.sub + f64.add + f64.add return end - local.get $2 - i32.const 0 - i32.lt_s + local.get $3 + i32.const 2146435072 + i32.ge_u if - f64.const 1.5707963267948966 local.get $0 - f64.const 0.5 + local.get $0 + f64.sub + return + end + block $~lib/math/rempio2|inlined.0 (result i32) + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $4 + i32.const 1073928572 + i32.lt_u + if + i32.const 1 + local.set $3 + local.get $6 + if (result f64) + local.get $0 + f64.const 1.5707963267341256 + f64.add + local.set $0 + i32.const -1 + local.set $3 + local.get $4 + i32.const 1073291771 + i32.ne + if (result f64) + local.get $0 + local.get $0 + f64.const 6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const 6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const 6.077100506303966e-11 + f64.add + local.tee $1 + f64.const 2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add + end + else + local.get $0 + f64.const -1.5707963267341256 + f64.add + local.set $0 + local.get $4 + i32.const 1073291771 + i32.ne + if (result f64) + local.get $0 + local.get $0 + f64.const -6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const -6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const -6.077100506303966e-11 + f64.add + local.tee $1 + f64.const -2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const -2.0222662487959506e-21 + f64.add + end + end + local.get $0 + global.set $~lib/math/rempio2_y0 + global.set $~lib/math/rempio2_y1 + local.get $3 + br $~lib/math/rempio2|inlined.0 + end + local.get $4 + i32.const 1094263291 + i32.lt_u + if + local.get $4 + i32.const 20 + i32.shr_u + local.tee $3 + local.get $0 + local.get $0 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.tee $7 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.tee $0 + local.get $7 + f64.const 6.077100506506192e-11 + f64.mul + local.tee $2 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 16 + i32.gt_u + if + local.get $7 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $0 + local.get $0 + local.get $7 + f64.const 6.077100506303966e-11 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $2 + local.get $3 + local.get $0 + local.get $2 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 49 + i32.gt_u + if + local.get $7 + f64.const 8.4784276603689e-32 + f64.mul + local.get $0 + local.get $0 + local.get $7 + f64.const 2.0222662487111665e-21 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $2 + local.get $0 + local.get $2 + f64.sub + local.set $1 + end + end + local.get $1 + global.set $~lib/math/rempio2_y0 + local.get $0 + local.get $1 + f64.sub + local.get $2 + f64.sub + global.set $~lib/math/rempio2_y1 + local.get $7 + i32.trunc_sat_f64_s + br $~lib/math/rempio2|inlined.0 + end + i32.const 0 + local.get $5 + call $~lib/math/pio2_large_quot + local.tee $3 + i32.sub + local.get $3 + local.get $6 + select + end + local.set $3 + global.get $~lib/math/rempio2_y0 + local.set $1 + global.get $~lib/math/rempio2_y1 + local.set $2 + local.get $3 + i32.const 1 + i32.and + if (result f64) + local.get $1 + local.get $1 f64.mul - f64.const 0.5 - f64.add local.tee $0 - f64.sqrt - local.tee $4 + local.get $1 + f64.mul + local.set $7 + local.get $1 local.get $0 + local.get $2 + f64.const 0.5 + f64.mul + local.get $7 local.get $0 local.get $0 + f64.const 2.7557313707070068e-06 + f64.mul + f64.const -1.984126982985795e-04 + f64.add + f64.mul + f64.const 0.00833333333332249 + f64.add local.get $0 local.get $0 local.get $0 - f64.const 3.479331075960212e-05 f64.mul - f64.const 7.915349942898145e-04 - f64.add f64.mul - f64.const -0.04005553450067941 - f64.add + local.get $0 + f64.const 1.58969099521155e-10 f64.mul - f64.const 0.20121253213486293 + f64.const -2.5050760253406863e-08 f64.add f64.mul - f64.const -0.3255658186224009 f64.add f64.mul - f64.const 0.16666666666666666 - f64.add + f64.sub f64.mul + local.get $2 + f64.sub + local.get $7 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub + else + local.get $1 + local.get $1 + f64.mul + local.tee $7 + local.get $7 + f64.mul + local.set $8 + f64.const 1 + local.get $7 + f64.const 0.5 + f64.mul + local.tee $0 + f64.sub + local.tee $9 + f64.const 1 + local.get $9 + f64.sub local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 0.07703815055590194 + f64.sub + local.get $7 + local.get $7 + local.get $7 + local.get $7 + f64.const 2.480158728947673e-05 f64.mul - f64.const -0.6882839716054533 + f64.const -0.001388888888887411 f64.add f64.mul - f64.const 2.0209457602335057 + f64.const 0.0416666666666666 f64.add f64.mul - f64.const -2.403394911734414 - f64.add + local.get $8 + local.get $8 f64.mul - f64.const 1 + local.get $7 + local.get $7 + f64.const -1.1359647557788195e-11 + f64.mul + f64.const 2.087572321298175e-09 f64.add - f64.div - local.get $4 f64.mul - f64.const -6.123233995736766e-17 + f64.const -2.7557314351390663e-07 f64.add + f64.mul f64.add - f64.sub - f64.const 2 f64.mul - return + local.get $1 + local.get $2 + f64.mul + f64.sub + f64.add + f64.add end - f64.const 0.5 - local.get $0 - f64.const 0.5 - f64.mul - f64.sub - local.tee $4 - f64.sqrt - local.tee $5 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 local.tee $0 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - f64.const 3.479331075960212e-05 - f64.mul - f64.const 7.915349942898145e-04 - f64.add - f64.mul - f64.const -0.04005553450067941 - f64.add - f64.mul - f64.const 0.20121253213486293 - f64.add - f64.mul - f64.const -0.3255658186224009 - f64.add - f64.mul - f64.const 0.16666666666666666 - f64.add - f64.mul - local.get $4 - local.get $4 - local.get $4 - local.get $4 - f64.const 0.07703815055590194 - f64.mul - f64.const -0.6882839716054533 - f64.add - f64.mul - f64.const 2.0209457602335057 - f64.add - f64.mul - f64.const -2.403394911734414 - f64.add - f64.mul - f64.const 1 - f64.add - f64.div - local.get $5 - f64.mul - local.get $4 - local.get $0 - local.get $0 - f64.mul - f64.sub - local.get $5 - local.get $0 - f64.add - f64.div - f64.add - f64.add - f64.const 2 - f64.mul - ) - (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f32) + f64.neg local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 2147483647 + local.get $3 + i32.const 1 + i32.add + i32.const 2 i32.and - local.tee $1 - i32.const 1065353216 - i32.ge_u - if - local.get $1 - i32.const 1065353216 - i32.eq - if - f32.const 3.141592502593994 - f32.const 0 - local.get $2 - i32.const 0 - i32.lt_s - select - return - end - f32.const 0 - local.get $0 - local.get $0 - f32.sub - f32.div - return - end - local.get $1 - i32.const 1056964608 - i32.lt_u - if - local.get $1 - i32.const 847249408 - i32.le_u - if - f32.const 1.570796251296997 - return - end - f32.const 1.570796251296997 - local.get $0 - f32.const 7.549789415861596e-08 - local.get $0 - local.get $0 - local.get $0 - f32.mul - local.tee $0 - local.get $0 - local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul - local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - f32.mul - f32.sub - f32.sub - f32.sub - return - end - local.get $2 - i32.const 0 - i32.lt_s - if - f32.const 1.570796251296997 - local.get $0 - f32.const 0.5 - f32.mul - f32.const 0.5 - f32.add - local.tee $0 - f32.sqrt - local.tee $3 + select + ) + (func $std/math/test_mod (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 f64) + (local $9 i64) + (local $10 i64) + block $__inlined_func$~lib/math/NativeMath.mod$2 (result f64) local.get $0 local.get $0 + f64.trunc + f64.sub local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul + f64.copysign + local.get $1 + f64.abs + f64.const 1 + f64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$2 + drop + local.get $1 + i64.reinterpret_f64 + local.tee $7 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $9 + local.get $7 + i64.const 1 + i64.shl + local.tee $5 + i64.eqz local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - local.get $3 - f32.mul - f32.const -7.549789415861596e-08 - f32.add - f32.add - f32.sub - f32.const 2 - f32.mul - return - end - f32.const 0.5 - local.get $0 - f32.const 0.5 - f32.mul - f32.sub - local.tee $3 - f32.sqrt - local.tee $4 - i32.reinterpret_f32 - i32.const -4096 - i32.and - f32.reinterpret_i32 - local.tee $0 - local.get $3 - local.get $3 - local.get $3 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul - local.get $3 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - local.get $4 - f32.mul - local.get $3 - local.get $0 - local.get $0 - f32.mul - f32.sub - local.get $4 - local.get $0 - f32.add - f32.div - f32.add - f32.add - f32.const 2 - f32.mul - ) - (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64) - (local $1 f64) - (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 i32) - (local $6 f64) - (local $7 f64) - i32.const 1 - local.set $2 - local.get $0 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 31 - i32.shr_u - local.get $5 - i32.const 1071284858 - i32.lt_u - i32.or - if - local.get $5 - i32.const -1074790400 - i32.ge_u + i64.reinterpret_f64 + local.tee $4 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $10 + i64.const 2047 + i64.eq + i32.or + local.get $1 + local.get $1 + f64.ne + i32.or if local.get $0 - f64.const -1 - f64.eq - if - local.get $0 - f64.const 0 - f64.div - return - end - local.get $0 - local.get $0 - f64.sub - f64.const 0 + local.get $1 + f64.mul + local.tee $8 + local.get $8 f64.div - return + br $__inlined_func$~lib/math/NativeMath.mod$2 end + local.get $4 + i64.const 1 + i64.shl + local.tee $3 local.get $5 - i32.const 1 - i32.shl - i32.const 2034237440 - i32.lt_u + i64.le_u if local.get $0 - return + local.get $3 + local.get $5 + i64.ne + f64.convert_i32_u + f64.mul + br $__inlined_func$~lib/math/NativeMath.mod$2 end - local.get $5 - i32.const -1076707644 - i32.le_u - if (result f64) - i32.const 0 - local.set $2 - local.get $0 + local.get $4 + i64.const 63 + i64.shr_u + local.set $6 + local.get $10 + i64.eqz + if (result i64) + local.get $4 + i64.const 1 + local.get $10 + local.get $4 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $10 + i64.sub + i64.shl else - f64.const 0 + local.get $4 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or end - local.set $1 - else - local.get $5 - i32.const 2146435072 - i32.ge_u - if - local.get $0 - return + local.set $3 + local.get $9 + i64.eqz + if (result i64) + local.get $7 + i64.const 1 + local.get $9 + local.get $7 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $9 + i64.sub + i64.shl + else + local.get $7 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or end - end - local.get $2 - if - local.get $0 - f64.const 1 - f64.add - i64.reinterpret_f64 - local.tee $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 614242 - i32.add - local.tee $5 - i32.const 20 - i32.shr_u - i32.const 1023 - i32.sub - local.tee $2 - i32.const 54 - i32.lt_s - if (result f64) - f64.const 1 - local.get $3 - f64.reinterpret_i64 - local.tee $1 - local.get $0 - f64.sub - f64.sub + local.set $4 + loop $while-continue|0 + local.get $9 + local.get $10 + i64.lt_s + if + local.get $3 + local.get $4 + i64.ge_u + if (result i64) + local.get $0 + f64.const 0 + f64.mul + local.get $3 + local.get $4 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$2 + drop + local.get $3 + local.get $4 + i64.sub + else + local.get $3 + end + i64.const 1 + i64.shl + local.set $3 + local.get $10 + i64.const 1 + i64.sub + local.set $10 + br $while-continue|0 + end + end + local.get $3 + local.get $4 + i64.ge_u + if local.get $0 - local.get $1 - f64.const -1 - f64.add - f64.sub - local.get $2 - i32.const 2 - i32.ge_s - select - local.get $1 - f64.div - else f64.const 0 + f64.mul + local.get $3 + local.get $4 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$2 + drop + local.get $3 + local.get $4 + i64.sub + local.set $3 end + local.get $10 + local.get $3 + i64.const 11 + i64.shl + i64.clz + local.tee $5 + i64.sub local.set $4 local.get $3 - i64.const 4294967295 - i64.and local.get $5 - i32.const 1048575 - i32.and - i32.const 1072079006 - i32.add - i64.extend_i32_u - i64.const 32 + i64.shl + local.set $3 + local.get $4 + i64.const 0 + i64.gt_s + if (result i64) + local.get $3 + i64.const 4503599627370496 + i64.sub + local.get $4 + i64.const 52 + i64.shl + i64.or + else + local.get $3 + i64.const 1 + local.get $4 + i64.sub + i64.shr_u + end + local.get $6 + i64.const 63 i64.shl i64.or f64.reinterpret_i64 - f64.const -1 - f64.add - local.set $1 - end - local.get $1 - local.get $1 - f64.const 2 - f64.add - f64.div - local.tee $6 - local.get $6 - f64.mul - local.tee $7 - local.get $7 - f64.mul - local.set $0 - local.get $6 - local.get $1 - f64.const 0.5 - f64.mul - local.get $1 - f64.mul - local.tee $6 - local.get $7 - local.get $0 - local.get $0 - local.get $0 - f64.const 0.14798198605116586 - f64.mul - f64.const 0.1818357216161805 - f64.add - f64.mul - f64.const 0.2857142874366239 - f64.add - f64.mul - f64.const 0.6666666666666735 - f64.add - f64.mul - local.get $0 - local.get $0 - local.get $0 - f64.const 0.15313837699209373 - f64.mul - f64.const 0.22222198432149784 - f64.add - f64.mul - f64.const 0.3999999999940942 - f64.add - f64.mul - f64.add - f64.add - f64.mul - local.get $2 - f64.convert_i32_s - local.tee $0 - f64.const 1.9082149292705877e-10 - f64.mul - local.get $4 - f64.add - f64.add - local.get $6 - f64.sub - local.get $1 - f64.add - local.get $0 - f64.const 0.6931471803691238 - f64.mul - f64.add - ) - (func $~lib/math/NativeMath.log (param $0 f64) (result f64) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 f64) - (local $6 f64) - (local $7 i32) - block $~lib/util/math/log_lut|inlined.0 (result f64) - local.get $0 - i64.reinterpret_f64 - local.tee $1 - i64.const 4606619468846596096 - i64.sub - i64.const 854320534781952 - i64.lt_u - if - local.get $0 - f64.const -1 - f64.add - local.tee $0 - local.get $0 - f64.mul - local.tee $4 - local.get $0 - f64.mul - local.tee $5 - local.get $0 - f64.const -0.24999999999998432 - f64.mul - f64.const 0.3333333333333352 - f64.add - local.get $4 - f64.const 0.19999999999320328 - f64.mul - f64.add - local.get $5 - local.get $0 - f64.const 0.14285715076560868 - f64.mul - f64.const -0.16666666669929706 - f64.add - local.get $4 - f64.const -0.12499997863982555 - f64.mul - f64.add - local.get $5 - local.get $0 - f64.const -0.10000486757818193 - f64.mul - f64.const 0.11110712032936046 - f64.add - local.get $4 - f64.const 0.09181994006195467 - f64.mul - f64.add - local.get $5 - f64.const -0.08328363062289341 - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.mul - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 134217728 - f64.mul - local.tee $4 - f64.add - local.get $4 - f64.sub - local.tee $4 - local.get $4 - f64.mul - f64.const -0.5 - f64.mul - local.tee $5 - f64.add - local.tee $6 - f64.sub - local.get $5 - f64.add - local.get $0 - local.get $4 - f64.sub - f64.const -0.5 - f64.mul - local.get $4 - local.get $0 - f64.add - f64.mul - f64.add - f64.add - local.get $6 - f64.add - br $~lib/util/math/log_lut|inlined.0 - end - local.get $1 - i64.const 48 - i64.shr_u - i32.wrap_i64 - local.tee $2 - i32.const 16 - i32.sub - i32.const 32736 - i32.ge_u - if - f64.const -1 - local.get $0 - local.get $0 - f64.mul - f64.div - local.get $1 - i64.const 1 - i64.shl - i64.eqz - br_if $~lib/util/math/log_lut|inlined.0 - drop - local.get $0 - local.get $1 - i64.const 9218868437227405312 - i64.eq - br_if $~lib/util/math/log_lut|inlined.0 - drop - i32.const 1 - local.get $2 - i32.const 32752 - i32.and - i32.const 32752 - i32.eq - local.get $2 - i32.const 32768 - i32.and - select - if - local.get $0 - local.get $0 - f64.sub - local.tee $0 - local.get $0 - f64.div - br $~lib/util/math/log_lut|inlined.0 - end - local.get $0 - f64.const 4503599627370496 - f64.mul - i64.reinterpret_f64 - i64.const 234187180623265792 - i64.sub - local.set $1 - end - local.get $1 - i64.const 4604367669032910848 - i64.sub - local.tee $3 - i64.const 45 - i64.shr_u - i64.const 127 - i64.and - i32.wrap_i64 - i32.const 4 - i32.shl - local.tee $2 - i32.const 1088 - i32.add - local.set $7 - local.get $3 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $0 - f64.const 0.6931471805598903 - f64.mul - local.get $7 - f64.load offset=8 - f64.add - local.tee $4 - local.get $1 - local.get $3 - i64.const -4503599627370496 - i64.and - i64.sub - f64.reinterpret_i64 - local.get $2 - i32.const 3136 - i32.add - local.tee $2 - f64.load - f64.sub - local.get $2 - f64.load offset=8 - f64.sub - local.get $7 - f64.load - f64.mul - local.tee $5 - f64.add - local.set $6 - local.get $4 - local.get $6 - f64.sub - local.get $5 - f64.add - local.get $0 - f64.const 5.497923018708371e-14 - f64.mul - f64.add - local.get $5 - local.get $5 - f64.mul - local.tee $0 - f64.const -0.5000000000000001 - f64.mul - f64.add - local.get $5 - local.get $0 - f64.mul - local.get $5 - f64.const -0.2499999999622955 - f64.mul - f64.const 0.33333333331825593 - f64.add - local.get $0 - local.get $5 - f64.const -0.16667054827627667 - f64.mul - f64.const 0.20000304511814496 - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.get $6 - f64.add - end - ) - (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 f64) - (local $4 i64) - block $__inlined_func$~lib/math/NativeMath.acosh$8 (result f64) - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.div - local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 4607182418800017408 - i64.lt_s - br_if $__inlined_func$~lib/math/NativeMath.acosh$8 - drop - local.get $4 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $4 - i64.const 1024 - i64.lt_u - if - local.get $0 - f64.const -1 - f64.add - local.tee $3 - local.get $3 - local.get $3 - f64.mul - local.get $3 - local.get $3 - f64.add - f64.add - f64.sqrt - f64.add - call $~lib/math/NativeMath.log1p - br $__inlined_func$~lib/math/NativeMath.acosh$8 - end - local.get $4 - i64.const 1049 - i64.lt_u - if - local.get $0 - local.get $0 - f64.add - f64.const 1 - local.get $0 - local.get $0 - local.get $0 - f64.mul - f64.const -1 - f64.add - f64.sqrt - f64.add - f64.div - f64.sub - call $~lib/math/NativeMath.log - br $__inlined_func$~lib/math/NativeMath.acosh$8 - end - local.get $0 - call $~lib/math/NativeMath.log - f64.const 0.6931471805599453 - f64.add end + local.get $2 + f64.const 0 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $std/math/mod + local.get $2 + f64.const 0 + call $std/math/check + else + i32.const 0 + end + ) + (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + local.get $0 local.get $1 + call $~lib/math/NativeMath.pow local.get $2 + local.get $3 call $std/math/check if (result i32) local.get $0 - call $~lib/bindings/dom/Math.acosh local.get $1 + call $~lib/bindings/dom/Math.pow local.get $2 + local.get $3 call $std/math/check else i32.const 0 end ) - (func $~lib/math/NativeMathf.log1p (param $0 f32) (result f32) - (local $1 f32) + (func $~lib/math/NativeMathf.rem (param $0 f32) (param $1 f32) (result f32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 i32) - (local $5 f32) - (local $6 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + local.get $1 + i32.reinterpret_f32 + local.tee $7 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $4 + local.get $7 i32.const 1 - local.set $2 + i32.shl + i32.eqz local.get $0 i32.reinterpret_f32 - local.tee $4 - i32.const 31 + local.tee $6 + i32.const 23 i32.shr_u - local.get $4 - i32.const 1054086096 - i32.lt_u + i32.const 255 + i32.and + local.tee $3 + i32.const 255 + i32.eq + i32.or + local.get $1 + local.get $1 + f32.ne i32.or if - local.get $4 - i32.const -1082130432 - i32.ge_u - if - local.get $0 - f32.const -1 - f32.eq - if - local.get $0 - f32.const 0 - f32.div - return - end - local.get $0 - local.get $0 - f32.sub - f32.const 0 - f32.div - return - end - local.get $4 + local.get $0 + local.get $1 + f32.mul + local.tee $0 + local.get $0 + f32.div + return + end + local.get $6 + i32.const 1 + i32.shl + i32.eqz + if + local.get $0 + return + end + local.get $3 + if (result i32) + local.get $6 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + local.get $6 i32.const 1 + local.get $3 + local.get $6 + i32.const 9 i32.shl - i32.const 1728053248 - i32.lt_u + i32.clz + i32.sub + local.tee $3 + i32.sub + i32.shl + end + local.set $2 + local.get $4 + if (result i32) + local.get $7 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else + local.get $7 + i32.const 1 + local.get $4 + local.get $7 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $4 + i32.sub + i32.shl + end + local.set $7 + block $do-break|0 + local.get $3 + local.get $4 + i32.lt_s if + local.get $3 + i32.const 1 + i32.add + local.get $4 + i32.eq + br_if $do-break|0 local.get $0 return end - local.get $4 - i32.const -1097468391 - i32.le_u - if (result f32) - i32.const 0 - local.set $2 - local.get $0 - else - f32.const 0 - end - local.set $1 - else - local.get $4 - i32.const 2139095040 + loop $while-continue|1 + local.get $3 + local.get $4 + i32.gt_s + if + local.get $2 + local.get $7 + i32.ge_u + if (result i32) + local.get $5 + i32.const 1 + i32.add + local.set $5 + local.get $2 + local.get $7 + i32.sub + else + local.get $2 + end + i32.const 1 + i32.shl + local.set $2 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + local.get $2 + local.get $7 i32.ge_u if - local.get $0 - return + local.get $5 + i32.const 1 + i32.add + local.set $5 + local.get $2 + local.get $7 + i32.sub + local.set $2 end - end - local.get $2 - if - local.get $0 - f32.const 1 - f32.add - local.tee $1 - i32.reinterpret_f32 - i32.const 4913933 - i32.add - local.tee $4 - i32.const 23 - i32.shr_u - i32.const 127 - i32.sub - local.tee $2 - i32.const 25 - i32.lt_s - if (result f32) - f32.const 1 - local.get $1 - local.get $0 - f32.sub - f32.sub - local.get $0 - local.get $1 - f32.const -1 - f32.add - f32.sub + local.get $2 + if + local.get $3 local.get $2 - i32.const 2 - i32.ge_s - select - local.get $1 - f32.div + i32.const 8 + i32.shl + i32.clz + local.tee $7 + i32.sub + local.set $3 + local.get $2 + local.get $7 + i32.shl + local.set $2 else - f32.const 0 + i32.const -30 + local.set $3 end - local.set $3 - local.get $4 - i32.const 8388607 - i32.and - i32.const 1060439283 - i32.add - f32.reinterpret_i32 - f32.const -1 - f32.add - local.set $1 end local.get $1 - local.get $1 - f32.const 2 - f32.add - f32.div - local.tee $5 - local.get $5 - f32.mul + f32.abs + local.set $1 + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $2 + i32.const 8388608 + i32.sub + local.get $3 + i32.const 23 + i32.shl + i32.or + else + local.get $2 + i32.const 1 + local.get $3 + i32.sub + i32.shr_u + end + f32.reinterpret_i32 local.tee $0 local.get $0 - f32.mul - local.set $6 - local.get $5 - local.get $1 - f32.const 0.5 - f32.mul - local.get $1 - f32.mul - local.tee $5 - local.get $0 - local.get $6 - f32.const 0.2849878668785095 - f32.mul - f32.const 0.6666666269302368 - f32.add - f32.mul - local.get $6 - local.get $6 - f32.const 0.24279078841209412 - f32.mul - f32.const 0.40000972151756287 - f32.add - f32.mul f32.add - f32.add - f32.mul - local.get $2 - f32.convert_i32_s - local.tee $0 - f32.const 9.05800061445916e-06 - f32.mul - local.get $3 - f32.add - f32.add - local.get $5 - f32.sub + local.set $8 + local.get $0 local.get $1 - f32.add + f32.sub local.get $0 - f32.const 0.6931381225585938 - f32.mul - f32.add - ) - (func $~lib/math/NativeMathf.log (param $0 f32) (result f32) - (local $1 i32) - (local $2 f64) - (local $3 f64) - (local $4 i32) - (local $5 i32) - block $~lib/util/math/logf_lut|inlined.0 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $1 - i32.const 8388608 - i32.sub - i32.const 2130706432 - i32.ge_u - if - f32.const -inf - local.get $1 + local.get $3 + local.get $4 + i32.eq + if (result i32) + i32.const 1 + else + local.get $3 + i32.const 1 + i32.add + local.get $4 + i32.eq + if (result i32) + local.get $5 i32.const 1 - i32.shl - local.tee $4 - i32.eqz - br_if $~lib/util/math/logf_lut|inlined.0 - drop - local.get $0 + i32.and local.get $1 - i32.const 2139095040 - i32.eq - br_if $~lib/util/math/logf_lut|inlined.0 - drop + local.get $8 + f32.eq + i32.and local.get $1 - i32.const 31 - i32.shr_u - local.get $4 - i32.const -16777216 - i32.ge_u + local.get $8 + f32.lt i32.or - if - local.get $0 - local.get $0 - f32.sub - local.tee $0 - local.get $0 - f32.div - br $~lib/util/math/logf_lut|inlined.0 - end - local.get $0 - f32.const 8388608 - f32.mul - i32.reinterpret_f32 - i32.const 192937984 - i32.sub - local.set $1 - end - local.get $1 - i32.const 1060306944 - i32.sub - local.tee $4 - i32.const 19 - i32.shr_u - i32.const 15 - i32.and - i32.const 4 - i32.shl - i32.const 5184 - i32.add - local.set $5 - local.get $1 - local.get $4 - i32.const -8388608 - i32.and - i32.sub - f32.reinterpret_i32 - f64.promote_f32 - local.get $5 - f64.load - f64.mul - f64.const -1 - f64.add - local.tee $2 - local.get $2 - f64.mul - local.set $3 - local.get $2 - f64.const 0.333456765744066 - f64.mul - f64.const -0.4999997485802103 - f64.add - local.get $3 - f64.const -0.25089342214237154 - f64.mul - f64.add - local.get $3 - f64.mul - local.get $5 - f64.load offset=8 - local.get $4 - i32.const 23 - i32.shr_s - f64.convert_i32_s - f64.const 0.6931471805599453 - f64.mul - f64.add - local.get $2 - f64.add - f64.add - f32.demote_f64 - end - ) - (func $std/math/test_acoshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - block $__inlined_func$~lib/math/NativeMathf.acosh$9 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 2147483647 - i32.and - i32.const 1073741824 - i32.lt_u - if - local.get $0 - f32.const -1 - f32.add - local.tee $0 - local.get $0 - local.get $0 - f32.const 2 - f32.add - f32.mul - f32.sqrt - f32.add - call $~lib/math/NativeMathf.log1p - br $__inlined_func$~lib/math/NativeMathf.acosh$9 - end - local.get $3 - i32.const 1166016512 - i32.lt_u - if - local.get $0 - local.get $0 - f32.add - f32.const 1 - local.get $0 - local.get $0 - local.get $0 - f32.mul - f32.const -1 - f32.add - f32.sqrt - f32.add - f32.div - f32.sub - call $~lib/math/NativeMathf.log - br $__inlined_func$~lib/math/NativeMathf.acosh$9 + else + i32.const 0 end - local.get $0 - call $~lib/math/NativeMathf.log - f32.const 0.6931471824645996 - f32.add end - local.get $1 - local.get $2 - call $std/math/check + select + local.tee $0 + f32.neg + local.get $0 + local.get $6 + i32.const 0 + i32.lt_s + select ) - (func $~lib/math/NativeMath.asin (param $0 f64) (result f64) - (local $1 i32) + (func $~lib/math/NativeMath.rem (param $0 f64) (param $1 f64) (result f64) (local $2 i64) - (local $3 i32) - (local $4 f64) - (local $5 f64) + (local $3 i64) + (local $4 i64) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 f64) + local.get $1 + i64.reinterpret_f64 + local.tee $7 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $4 + local.get $7 + i64.const 1 + i64.shl + i64.eqz local.get $0 i64.reinterpret_f64 - local.tee $2 - i64.const 32 + local.tee $6 + i64.const 52 i64.shr_u - i32.wrap_i64 + i64.const 2047 + i64.and local.tee $3 - i32.const 2147483647 - i32.and - local.tee $1 - i32.const 1072693248 - i32.ge_u + i64.const 2047 + i64.eq + i32.or + local.get $1 + local.get $1 + f64.ne + i32.or if - local.get $2 - i32.wrap_i64 - local.get $1 - i32.const 1072693248 - i32.sub - i32.or - i32.eqz - if - local.get $0 - f64.const 1.5707963267948966 - f64.mul - f64.const 7.52316384526264e-37 - f64.add - return - end - f64.const 0 local.get $0 + local.get $1 + f64.mul + local.tee $0 local.get $0 - f64.sub f64.div return end - local.get $1 - i32.const 1071644672 - i32.lt_u + local.get $6 + i64.const 1 + i64.shl + i64.eqz if - local.get $1 - i32.const 1045430272 - i32.lt_u - local.get $1 - i32.const 1048576 - i32.ge_u - i32.and + local.get $0 + return + end + local.get $3 + i64.eqz + if (result i64) + local.get $6 + i64.const 1 + local.get $3 + local.get $6 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $3 + i64.sub + i64.shl + else + local.get $6 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $2 + local.get $4 + i64.eqz + if (result i64) + local.get $7 + i64.const 1 + local.get $4 + local.get $7 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $4 + i64.sub + i64.shl + else + local.get $7 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $7 + block $do-break|0 + local.get $3 + local.get $4 + i64.lt_s if + local.get $3 + i64.const 1 + i64.add + local.get $4 + i64.eq + br_if $do-break|0 local.get $0 return end - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 3.479331075960212e-05 - f64.mul - f64.const 7.915349942898145e-04 - f64.add - f64.mul - f64.const -0.04005553450067941 - f64.add - f64.mul - f64.const 0.20121253213486293 - f64.add - f64.mul - f64.const -0.3255658186224009 - f64.add - f64.mul - f64.const 0.16666666666666666 - f64.add - f64.mul - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 0.07703815055590194 - f64.mul - f64.const -0.6882839716054533 - f64.add - f64.mul - f64.const 2.0209457602335057 - f64.add - f64.mul - f64.const -2.403394911734414 - f64.add - f64.mul - f64.const 1 - f64.add - f64.div - f64.mul - f64.add - return + loop $while-continue|1 + local.get $3 + local.get $4 + i64.gt_s + if + local.get $2 + local.get $7 + i64.ge_u + if (result i64) + local.get $5 + i32.const 1 + i32.add + local.set $5 + local.get $2 + local.get $7 + i64.sub + else + local.get $2 + end + i64.const 1 + i64.shl + local.set $2 + local.get $5 + i32.const 1 + i32.shl + local.set $5 + local.get $3 + i64.const 1 + i64.sub + local.set $3 + br $while-continue|1 + end + end + local.get $2 + local.get $7 + i64.ge_u + if + local.get $5 + i32.const 1 + i32.add + local.set $5 + local.get $2 + local.get $7 + i64.sub + local.set $2 + end + local.get $2 + i64.eqz + if + i64.const -60 + local.set $3 + else + local.get $3 + local.get $2 + i64.const 11 + i64.shl + i64.clz + local.tee $7 + i64.sub + local.set $3 + local.get $2 + local.get $7 + i64.shl + local.set $2 + end end - f64.const 0.5 - local.get $0 + local.get $1 f64.abs - f64.const 0.5 - f64.mul - f64.sub + local.set $1 + local.get $3 + i64.const 0 + i64.gt_s + if (result i64) + local.get $2 + i64.const 4503599627370496 + i64.sub + local.get $3 + i64.const 52 + i64.shl + i64.or + else + local.get $2 + i64.const 1 + local.get $3 + i64.sub + i64.shr_u + end + f64.reinterpret_i64 local.tee $0 - f64.sqrt - local.set $4 - local.get $0 - local.get $0 - local.get $0 local.get $0 - local.get $0 - local.get $0 - f64.const 3.479331075960212e-05 - f64.mul - f64.const 7.915349942898145e-04 - f64.add - f64.mul - f64.const -0.04005553450067941 - f64.add - f64.mul - f64.const 0.20121253213486293 - f64.add - f64.mul - f64.const -0.3255658186224009 - f64.add - f64.mul - f64.const 0.16666666666666666 f64.add - f64.mul - local.get $0 - local.get $0 - local.get $0 + local.set $8 local.get $0 - f64.const 0.07703815055590194 - f64.mul - f64.const -0.6882839716054533 - f64.add - f64.mul - f64.const 2.0209457602335057 - f64.add - f64.mul - f64.const -2.403394911734414 - f64.add - f64.mul - f64.const 1 - f64.add - f64.div - local.set $5 local.get $1 - i32.const 1072640819 - i32.ge_u - if (result f64) - f64.const 1.5707963267948966 - local.get $4 - local.get $4 - local.get $5 - f64.mul - f64.add - f64.const 2 - f64.mul - f64.const -6.123233995736766e-17 - f64.add - f64.sub + f64.sub + local.get $0 + local.get $3 + local.get $4 + i64.eq + if (result i32) + i32.const 1 else - f64.const 0.7853981633974483 - local.get $4 - local.get $4 - f64.add - local.get $5 - f64.mul - f64.const 6.123233995736766e-17 - local.get $0 - local.get $4 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $0 - local.get $0 - f64.mul - f64.sub + local.get $3 + i64.const 1 + i64.add local.get $4 - local.get $0 - f64.add - f64.div - f64.const 2 - f64.mul - f64.sub - f64.sub - f64.const 0.7853981633974483 - local.get $0 - local.get $0 - f64.add - f64.sub - f64.sub - f64.sub + i64.eq + if (result i32) + local.get $5 + i32.const 1 + i32.and + local.get $1 + local.get $8 + f64.eq + i32.and + local.get $1 + local.get $8 + f64.lt + i32.or + else + i32.const 0 + end end + select local.tee $0 f64.neg local.get $0 - local.get $3 - i32.const 0 - i32.lt_s + local.get $6 + i64.const 0 + i64.lt_s select ) - (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32) - (local $1 i32) - (local $2 f64) - (local $3 f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $1 - i32.const 1065353216 - i32.ge_u + (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + f32.abs + f32.const 1 + f32.eq if - local.get $1 - i32.const 1065353216 - i32.eq - if - local.get $0 - f32.const 1.5707963705062866 - f32.mul - f32.const 7.52316384526264e-37 - f32.add - return - end - f32.const 0 local.get $0 local.get $0 + f32.trunc f32.sub - f32.div + local.get $0 + f32.copysign return end local.get $1 - i32.const 1056964608 - i32.lt_u + i32.reinterpret_f32 + local.tee $6 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.set $7 + local.get $6 + i32.const 1 + i32.shl + local.tee $4 + i32.eqz + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $8 + i32.const 255 + i32.eq + i32.or + local.get $1 + local.get $1 + f32.ne + i32.or if - local.get $1 - i32.const 964689920 - i32.lt_u - local.get $1 - i32.const 8388608 - i32.ge_u - i32.and - if - local.get $0 - return - end - local.get $0 - local.get $0 - local.get $0 local.get $0 + local.get $1 f32.mul local.tee $0 local.get $0 - local.get $0 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul - local.get $0 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add f32.div - f32.mul - f32.add return end - f64.const 1.5707963705062866 - f32.const 0.5 - local.get $0 - f32.abs - f32.const 0.5 - f32.mul - f32.sub - local.tee $3 - f64.promote_f32 - f64.sqrt - local.tee $2 - local.get $2 - local.get $3 - local.get $3 - local.get $3 - f32.const -0.008656363002955914 - f32.mul - f32.const -0.04274342209100723 - f32.add - f32.mul - f32.const 0.16666586697101593 - f32.add - f32.mul local.get $3 - f32.const -0.7066296339035034 - f32.mul - f32.const 1 - f32.add - f32.div - f64.promote_f32 - f64.mul - f64.add - f64.const 2 - f64.mul - f64.sub - f32.demote_f64 - local.get $0 - f32.copysign - ) - (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i64) - (local $4 i64) - (local $5 f64) - local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $3 + i32.const 1 + i32.shl + local.tee $2 local.get $4 - i64.const 9223372036854775807 - i64.and - f64.reinterpret_i64 - local.set $5 + i32.le_u + if + local.get $0 + local.get $2 + local.get $4 + i32.ne + f32.convert_i32_u + f32.mul + return + end local.get $3 - i64.const 1049 - i64.ge_u - if (result f64) - local.get $5 - call $~lib/math/NativeMath.log - f64.const 0.6931471805599453 - f64.add + i32.const -2147483648 + i32.and + local.set $5 + local.get $8 + if (result i32) + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or else local.get $3 - i64.const 1024 - i64.ge_u - if (result f64) - local.get $5 - local.get $5 - f64.add - f64.const 1 - local.get $5 - local.get $5 - f64.mul - f64.const 1 - f64.add - f64.sqrt - local.get $5 - f64.add - f64.div - f64.add - call $~lib/math/NativeMath.log - else - local.get $3 - i64.const 997 - i64.ge_u - if (result f64) - local.get $5 - local.get $5 - local.get $5 - f64.mul - local.tee $5 - local.get $5 - f64.const 1 - f64.add - f64.sqrt - f64.const 1 - f64.add - f64.div - f64.add - call $~lib/math/NativeMath.log1p - else - local.get $5 - end - end + i32.const 1 + local.get $8 + local.get $3 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $8 + i32.sub + i32.shl end - local.get $0 - f64.copysign - local.get $1 - local.get $2 - call $std/math/check + local.set $2 + local.get $7 if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.asinh - local.get $1 - local.get $2 - call $std/math/check + local.get $6 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or else - i32.const 0 + local.get $6 + i32.const 1 + local.get $7 + local.get $6 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $7 + i32.sub + i32.shl end - ) - (func $std/math/test_asinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $3 - f32.reinterpret_i32 - local.set $4 - local.get $3 - i32.const 1166016512 - i32.ge_u - if (result f32) - local.get $4 - call $~lib/math/NativeMathf.log - f32.const 0.6931471824645996 - f32.add - else - local.get $3 - i32.const 1073741824 - i32.ge_u - if (result f32) - local.get $4 - local.get $4 - f32.add - f32.const 1 - local.get $4 - local.get $4 - f32.mul - f32.const 1 - f32.add - f32.sqrt - local.get $4 - f32.add - f32.div - f32.add - call $~lib/math/NativeMathf.log - else + local.set $3 + loop $while-continue|0 + local.get $7 + local.get $8 + i32.lt_s + if + local.get $2 local.get $3 - i32.const 964689920 i32.ge_u - if (result f32) - local.get $4 - local.get $4 - local.get $4 - f32.mul - local.tee $4 - local.get $4 - f32.const 1 - f32.add - f32.sqrt - f32.const 1 - f32.add - f32.div - f32.add - call $~lib/math/NativeMathf.log1p + if (result i32) + local.get $2 + local.get $3 + i32.eq + if + local.get $0 + f32.const 0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub else - local.get $4 + local.get $2 end + i32.const 1 + i32.shl + local.set $2 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + br $while-continue|0 end end - local.get $0 - f32.copysign - local.get $1 local.get $2 - call $std/math/check + local.get $3 + i32.ge_u + if + local.get $2 + local.get $3 + i32.eq + if + local.get $0 + f32.const 0 + f32.mul + return + end + local.get $2 + local.get $3 + i32.sub + local.set $2 + end + local.get $8 + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.tee $4 + i32.sub + local.set $3 + local.get $2 + local.get $4 + i32.shl + local.set $2 + local.get $3 + i32.const 0 + i32.gt_s + if (result i32) + local.get $2 + i32.const 8388608 + i32.sub + local.get $3 + i32.const 23 + i32.shl + i32.or + else + local.get $2 + i32.const 1 + local.get $3 + i32.sub + i32.shr_u + end + local.get $5 + i32.or + f32.reinterpret_i32 ) - (func $~lib/math/NativeMath.atan (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) (local $1 f64) - (local $2 i32) + (local $2 f64) (local $3 i32) - (local $4 f64) - (local $5 f64) - local.get $0 - local.set $1 + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) local.get $0 i64.reinterpret_f64 + local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 + local.tee $3 + i32.const 31 + i32.shr_u + local.set $6 + local.get $3 i32.const 2147483647 i32.and - local.tee $2 - i32.const 1141899264 - i32.ge_u + local.tee $3 + i32.const 1072243195 + i32.le_u if - local.get $0 - local.get $0 - f64.ne + local.get $3 + i32.const 1045430272 + i32.lt_u if local.get $0 return end - f64.const 1.5707963267948966 + local.get $0 + local.get $0 + local.get $0 + f64.mul + local.tee $1 + local.get $0 + f64.mul local.get $1 - f64.copysign + local.get $1 + local.get $1 + f64.const 2.7557313707070068e-06 + f64.mul + f64.const -1.984126982985795e-04 + f64.add + f64.mul + f64.const 0.00833333333332249 + f64.add + local.get $1 + local.get $1 + local.get $1 + f64.mul + f64.mul + local.get $1 + f64.const 1.58969099521155e-10 + f64.mul + f64.const -2.5050760253406863e-08 + f64.add + f64.mul + f64.add + f64.mul + f64.const -0.16666666666666632 + f64.add + f64.mul + f64.add return end - local.get $2 - i32.const 1071382528 - i32.lt_u + local.get $3 + i32.const 2146435072 + i32.ge_u if - local.get $2 - i32.const 1044381696 - i32.lt_u - if - local.get $0 - return - end - i32.const -1 - local.set $3 - else local.get $0 - f64.abs - local.set $0 - local.get $2 - i32.const 1072889856 + local.get $0 + f64.sub + return + end + block $~lib/math/rempio2|inlined.1 (result i32) + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $4 + i32.const 1073928572 i32.lt_u - if (result f64) - local.get $2 - i32.const 1072037888 - i32.lt_u - if (result f64) - local.get $0 - local.get $0 - f64.add - f64.const -1 - f64.add - local.get $0 - f64.const 2 - f64.add - f64.div - else - i32.const 1 - local.set $3 - local.get $0 - f64.const -1 - f64.add - local.get $0 - f64.const 1 - f64.add - f64.div - end - else - local.get $2 - i32.const 1073971200 - i32.lt_u + if + i32.const 1 + local.set $3 + local.get $6 if (result f64) - i32.const 2 - local.set $3 - local.get $0 - f64.const -1.5 - f64.add local.get $0 - f64.const 1.5 - f64.mul - f64.const 1 + f64.const 1.5707963267341256 f64.add - f64.div - else - i32.const 3 + local.set $0 + i32.const -1 local.set $3 - f64.const -1 - local.get $0 - f64.div - end - end - local.set $0 - end - local.get $0 - local.get $0 - f64.mul - local.tee $5 - local.get $5 - f64.mul - local.set $4 - local.get $0 - local.get $5 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - f64.const 0.016285820115365782 - f64.mul - f64.const 0.049768779946159324 - f64.add - f64.mul - f64.const 0.06661073137387531 - f64.add - f64.mul - f64.const 0.09090887133436507 - f64.add - f64.mul - f64.const 0.14285714272503466 - f64.add - f64.mul - f64.const 0.3333333333333293 - f64.add - f64.mul - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - f64.const -0.036531572744216916 - f64.mul - f64.const -0.058335701337905735 - f64.add - f64.mul - f64.const -0.0769187620504483 - f64.add - f64.mul - f64.const -0.11111110405462356 - f64.add - f64.mul - f64.const -0.19999999999876483 - f64.add - f64.mul - f64.add - f64.mul - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $4 - f64.sub - return - end - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $3 - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 - end - f64.const 0.4636476090008061 - local.get $4 - f64.const -2.2698777452961687e-17 - f64.add - local.get $0 - f64.sub - f64.sub - local.set $0 - br $break|0 - end - f64.const 0.7853981633974483 - local.get $4 - f64.const -3.061616997868383e-17 - f64.add + local.get $4 + i32.const 1073291771 + i32.ne + if (result f64) local.get $0 + local.get $0 + f64.const 6.077100506506192e-11 + f64.add + local.tee $0 f64.sub - f64.sub + f64.const 6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const 6.077100506303966e-11 + f64.add + local.tee $1 + f64.const 2.0222662487959506e-21 + f64.add local.set $0 - br $break|0 + local.get $1 + local.get $0 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add end - f64.const 0.982793723247329 - local.get $4 - f64.const -1.3903311031230998e-17 - f64.add + else local.get $0 - f64.sub - f64.sub + f64.const -1.5707963267341256 + f64.add local.set $0 - br $break|0 + local.get $4 + i32.const 1073291771 + i32.ne + if (result f64) + local.get $0 + local.get $0 + f64.const -6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const -6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const -6.077100506303966e-11 + f64.add + local.tee $1 + f64.const -2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const -2.0222662487959506e-21 + f64.add + end end - f64.const 1.5707963267948966 - local.get $4 - f64.const -6.123233995736766e-17 - f64.add - local.get $0 - f64.sub - f64.sub - local.set $0 - br $break|0 - end - unreachable - end - local.get $0 - local.get $1 - f64.copysign - ) - (func $~lib/math/NativeMathf.atan (param $0 f32) (result f32) - (local $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f32) - local.get $0 - local.set $1 - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $2 - i32.const 1283457024 - i32.ge_u - if - local.get $0 - local.get $0 - f32.ne - if local.get $0 - return + global.set $~lib/math/rempio2_y0 + global.set $~lib/math/rempio2_y1 + local.get $3 + br $~lib/math/rempio2|inlined.1 end - f32.const 1.570796251296997 - local.get $1 - f32.copysign - return - end - local.get $2 - i32.const 1054867456 - i32.lt_u - if - local.get $2 - i32.const 964689920 + local.get $4 + i32.const 1094263291 i32.lt_u if + local.get $4 + i32.const 20 + i32.shr_u + local.tee $3 local.get $0 - return - end - i32.const -1 - local.set $3 - else - local.get $0 - f32.abs - local.set $0 - local.get $2 - i32.const 1066926080 - i32.lt_u - if (result f32) - local.get $2 - i32.const 1060110336 - i32.lt_u - if (result f32) - local.get $0 - local.get $0 - f32.add - f32.const -1 - f32.add - local.get $0 - f32.const 2 - f32.add - f32.div - else - i32.const 1 - local.set $3 - local.get $0 - f32.const -1 - f32.add - local.get $0 - f32.const 1 - f32.add - f32.div - end - else - local.get $2 - i32.const 1075576832 - i32.lt_u - if (result f32) - i32.const 2 - local.set $3 + local.get $0 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.tee $7 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.tee $0 + local.get $7 + f64.const 6.077100506506192e-11 + f64.mul + local.tee $2 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 16 + i32.gt_u + if + local.get $7 + f64.const 2.0222662487959506e-21 + f64.mul local.get $0 - f32.const -1.5 - f32.add local.get $0 - f32.const 1.5 - f32.mul - f32.const 1 - f32.add - f32.div - else - i32.const 3 - local.set $3 - f32.const -1 + local.get $7 + f64.const 6.077100506303966e-11 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $2 + local.get $3 local.get $0 - f32.div - end - end - local.set $0 - end - local.get $0 - local.get $0 - f32.mul - local.tee $5 - local.get $5 - f32.mul - local.set $4 - local.get $0 - local.get $5 - local.get $4 - local.get $4 - f32.const 0.06168760731816292 - f32.mul - f32.const 0.14253635704517365 - f32.add - f32.mul - f32.const 0.333333283662796 - f32.add - f32.mul - local.get $4 - local.get $4 - f32.const -0.106480173766613 - f32.mul - f32.const -0.19999158382415771 - f32.add - f32.mul - f32.add - f32.mul - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $4 - f32.sub - return - end - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $3 - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 - end - f32.const 0.46364760398864746 - local.get $4 - f32.const -5.01215824399992e-09 - f32.add - local.get $0 - f32.sub - f32.sub - local.set $0 - br $break|0 - end - f32.const 0.7853981256484985 - local.get $4 - f32.const -3.774894707930798e-08 - f32.add + local.get $2 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 49 + i32.gt_u + if + local.get $7 + f64.const 8.4784276603689e-32 + f64.mul local.get $0 - f32.sub - f32.sub - local.set $0 - br $break|0 + local.get $0 + local.get $7 + f64.const 2.0222662487111665e-21 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $2 + local.get $0 + local.get $2 + f64.sub + local.set $1 end - f32.const 0.9827936887741089 - local.get $4 - f32.const -3.447321716976148e-08 - f32.add - local.get $0 - f32.sub - f32.sub - local.set $0 - br $break|0 end - f32.const 1.570796251296997 - local.get $4 - f32.const -7.549789415861596e-08 - f32.add + local.get $1 + global.set $~lib/math/rempio2_y0 local.get $0 - f32.sub - f32.sub - local.set $0 - br $break|0 - end - unreachable - end - local.get $0 - local.get $1 - f32.copysign - ) - (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i64) - (local $4 f64) - (local $5 f64) - local.get $0 - f64.abs - local.set $5 - local.get $0 - i64.reinterpret_f64 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $3 - i64.const 1022 - i64.lt_u - if (result f64) - local.get $3 - i64.const 991 - i64.ge_u - if (result f64) - local.get $5 - local.get $5 - f64.add - local.tee $4 - local.get $4 - local.get $5 - f64.mul - f64.const 1 - local.get $5 + local.get $1 f64.sub - f64.div - f64.add - call $~lib/math/NativeMath.log1p - f64.const 0.5 - f64.mul - else - local.get $5 + local.get $2 + f64.sub + global.set $~lib/math/rempio2_y1 + local.get $7 + i32.trunc_sat_f64_s + br $~lib/math/rempio2|inlined.1 end - else - local.get $5 - f64.const 1 + i32.const 0 local.get $5 - f64.sub - f64.div - f64.const 2 + call $~lib/math/pio2_large_quot + local.tee $3 + i32.sub + local.get $3 + local.get $6 + select + end + local.set $3 + global.get $~lib/math/rempio2_y0 + local.set $2 + global.get $~lib/math/rempio2_y1 + local.set $7 + local.get $3 + i32.const 1 + i32.and + if (result f64) + local.get $2 + local.get $2 f64.mul - call $~lib/math/NativeMath.log1p + local.tee $0 + local.get $0 + f64.mul + local.set $1 + f64.const 1 + local.get $0 f64.const 0.5 f64.mul - end - local.get $0 - f64.copysign - local.get $1 - local.get $2 - call $std/math/check - if (result i32) + local.tee $8 + f64.sub + local.tee $9 + f64.const 1 + local.get $9 + f64.sub + local.get $8 + f64.sub local.get $0 - call $~lib/bindings/dom/Math.atanh + local.get $0 + local.get $0 + local.get $0 + f64.const 2.480158728947673e-05 + f64.mul + f64.const -0.001388888888887411 + f64.add + f64.mul + f64.const 0.0416666666666666 + f64.add + f64.mul local.get $1 + local.get $1 + f64.mul + local.get $0 + local.get $0 + f64.const -1.1359647557788195e-11 + f64.mul + f64.const 2.087572321298175e-09 + f64.add + f64.mul + f64.const -2.7557314351390663e-07 + f64.add + f64.mul + f64.add + f64.mul local.get $2 - call $std/math/check + local.get $7 + f64.mul + f64.sub + f64.add + f64.add else - i32.const 0 + local.get $2 + local.get $2 + f64.mul + local.tee $0 + local.get $2 + f64.mul + local.set $1 + local.get $2 + local.get $0 + local.get $7 + f64.const 0.5 + f64.mul + local.get $1 + local.get $0 + local.get $0 + f64.const 2.7557313707070068e-06 + f64.mul + f64.const -1.984126982985795e-04 + f64.add + f64.mul + f64.const 0.00833333333332249 + f64.add + local.get $0 + local.get $0 + local.get $0 + f64.mul + f64.mul + local.get $0 + f64.const 1.58969099521155e-10 + f64.mul + f64.const -2.5050760253406863e-08 + f64.add + f64.mul + f64.add + f64.mul + f64.sub + f64.mul + local.get $7 + f64.sub + local.get $1 + f64.const -0.16666666666666632 + f64.mul + f64.sub + f64.sub end - ) - (func $std/math/test_atanhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f32) - (local $4 i32) + local.tee $0 + f64.neg local.get $0 - f32.abs - local.set $3 + local.get $3 + i32.const 2 + i32.and + select + ) + (func $~lib/math/NativeMath.tan (param $0 f64) (result f64) + (local $1 f64) + (local $2 i32) + (local $3 i64) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) local.get $0 - i32.reinterpret_f32 - local.tee $4 - i32.const 1056964608 - i32.lt_u - if (result f32) - local.get $4 - i32.const 796917760 - i32.ge_u - if (result f32) - local.get $3 - local.get $3 - f32.add - local.get $3 - f32.const 1 - local.get $3 - f32.sub - f32.div - f32.const 1 - f32.add - f32.mul - call $~lib/math/NativeMathf.log1p - f32.const 0.5 - f32.mul - else - local.get $3 + i64.reinterpret_f64 + local.tee $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 31 + i32.shr_u + local.set $6 + local.get $2 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 1072243195 + i32.le_u + if + local.get $2 + i32.const 1044381696 + i32.lt_u + if + local.get $0 + return end - else - local.get $3 - f32.const 1 - local.get $3 - f32.sub - f32.div - f32.const 2 - f32.mul - call $~lib/math/NativeMathf.log1p - f32.const 0.5 - f32.mul + local.get $0 + f64.const 0 + i32.const 1 + call $~lib/math/tan_kern + return end - local.get $0 - f32.copysign - local.get $1 local.get $2 - call $std/math/check - ) - (func $std/math/test_atan2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 f64) - block $__inlined_func$~lib/math/NativeMath.atan2 (result f64) - local.get $1 - local.get $0 - f64.add - local.get $0 + i32.const 2146435072 + i32.ge_u + if local.get $0 - f64.ne - local.get $1 - local.get $1 - f64.ne - i32.or - br_if $__inlined_func$~lib/math/NativeMath.atan2 - drop local.get $0 - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $9 - local.get $1 - i64.reinterpret_f64 - local.tee $7 + f64.sub + return + end + block $~lib/math/rempio2|inlined.2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $8 - local.get $7 - i32.wrap_i64 - local.tee $6 - local.get $8 - i32.const 1072693248 - i32.sub - i32.or - i32.eqz - if - local.get $0 - call $~lib/math/NativeMath.atan - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $8 - i32.const 30 - i32.shr_u - i32.const 2 - i32.and - local.get $9 - i32.const 31 - i32.shr_u - i32.or - local.set $4 - local.get $9 i32.const 2147483647 i32.and - local.tee $9 - local.get $5 - i32.wrap_i64 - i32.or - i32.eqz + local.tee $7 + i32.const 1073928572 + i32.lt_u if - block $break|0 - block $case3|0 - block $case2|0 - block $case0|0 - local.get $4 - br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0 - end - local.get $0 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - f64.const 3.141592653589793 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - f64.const -3.141592653589793 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - end - block $folding-inner0 - local.get $8 - i32.const 2147483647 - i32.and - local.tee $8 + i32.const 1 + local.set $2 local.get $6 - i32.or - i32.eqz - br_if $folding-inner0 - local.get $8 - i32.const 2146435072 - i32.eq - if - local.get $9 - i32.const 2146435072 - i32.eq + if (result f64) + local.get $0 + f64.const 1.5707963267341256 + f64.add + local.set $0 + i32.const -1 + local.set $2 + local.get $7 + i32.const 1073291771 + i32.ne if (result f64) - f64.const 2.356194490192345 - f64.const 0.7853981633974483 - local.get $4 - i32.const 2 - i32.and - select - local.tee $10 - f64.neg - local.get $10 - local.get $4 - i32.const 1 - i32.and - select + local.get $0 + local.get $0 + f64.const 6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const 6.077100506506192e-11 + f64.add else - f64.const 3.141592653589793 - f64.const 0 - local.get $4 - i32.const 2 - i32.and - select - local.tee $10 - f64.neg - local.get $10 - local.get $4 - i32.const 1 - i32.and - select + local.get $0 + f64.const 6.077100506303966e-11 + f64.add + local.tee $1 + f64.const 2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const 2.0222662487959506e-21 + f64.add + end + else + local.get $0 + f64.const -1.5707963267341256 + f64.add + local.set $0 + local.get $7 + i32.const 1073291771 + i32.ne + if (result f64) + local.get $0 + local.get $0 + f64.const -6.077100506506192e-11 + f64.add + local.tee $0 + f64.sub + f64.const -6.077100506506192e-11 + f64.add + else + local.get $0 + f64.const -6.077100506303966e-11 + f64.add + local.tee $1 + f64.const -2.0222662487959506e-21 + f64.add + local.set $0 + local.get $1 + local.get $0 + f64.sub + f64.const -2.0222662487959506e-21 + f64.add end - br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $9 - i32.const 2146435072 - i32.eq - local.get $8 - i32.const 67108864 - i32.add - local.get $9 - i32.lt_u - i32.or - br_if $folding-inner0 - local.get $9 - i32.const 67108864 - i32.add - local.get $8 - i32.lt_u - i32.const 0 + local.get $0 + global.set $~lib/math/rempio2_y0 + global.set $~lib/math/rempio2_y1 + br $~lib/math/rempio2|inlined.2 + end + local.get $7 + i32.const 1094263291 + i32.lt_u + if + local.get $7 + i32.const 20 + i32.shr_u + local.tee $2 + local.get $0 + local.get $0 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.tee $4 + f64.const 1.5707963267341256 + f64.mul + f64.sub + local.tee $0 local.get $4 - i32.const 2 + f64.const 6.077100506506192e-11 + f64.mul + local.tee $5 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 i32.and - select - if (result f64) - f64.const 0 - else + i32.sub + i32.const 16 + i32.gt_u + if + local.get $4 + f64.const 2.0222662487959506e-21 + f64.mul + local.get $0 local.get $0 + local.get $4 + f64.const 6.077100506303966e-11 + f64.mul + local.tee $1 + f64.sub + local.tee $0 + f64.sub local.get $1 - f64.div - f64.abs - call $~lib/math/NativeMath.atan - end - local.set $10 - block $break|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $4 - br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 - end - local.get $10 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $10 - f64.neg - br $__inlined_func$~lib/math/NativeMath.atan2 - end - f64.const 3.141592653589793 - local.get $10 - f64.const -1.2246467991473532e-16 - f64.add + f64.sub + f64.sub + local.set $5 + local.get $2 + local.get $0 + local.get $5 + f64.sub + local.tee $1 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + i32.sub + i32.const 49 + i32.gt_u + if + local.get $4 + f64.const 8.4784276603689e-32 + f64.mul + local.get $0 + local.get $0 + local.get $4 + f64.const 2.0222662487111665e-21 + f64.mul + local.tee $1 f64.sub - br $__inlined_func$~lib/math/NativeMath.atan2 + local.tee $0 + f64.sub + local.get $1 + f64.sub + f64.sub + local.set $5 + local.get $0 + local.get $5 + f64.sub + local.set $1 end - local.get $10 - f64.const -1.2246467991473532e-16 - f64.add - f64.const -3.141592653589793 - f64.add - br $__inlined_func$~lib/math/NativeMath.atan2 end - unreachable + local.get $1 + global.set $~lib/math/rempio2_y0 + local.get $0 + local.get $1 + f64.sub + local.get $5 + f64.sub + global.set $~lib/math/rempio2_y1 + local.get $4 + i32.trunc_sat_f64_s + local.set $2 + br $~lib/math/rempio2|inlined.2 end - f64.const -1.5707963267948966 - f64.const 1.5707963267948966 - local.get $4 - i32.const 1 - i32.and + i32.const 0 + local.get $3 + call $~lib/math/pio2_large_quot + local.tee $2 + i32.sub + local.get $2 + local.get $6 select + local.set $2 end + global.get $~lib/math/rempio2_y0 + global.get $~lib/math/rempio2_y1 + i32.const 1 local.get $2 - local.get $3 + i32.const 1 + i32.and + i32.const 1 + i32.shl + i32.sub + call $~lib/math/tan_kern + ) + (func $std/math/test_min (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + local.get $0 + local.get $1 + f64.min + local.get $2 + f64.const 0 call $std/math/check if (result i32) local.get $0 local.get $1 - call $~lib/bindings/dom/Math.atan2 + call $~lib/bindings/dom/Math.min local.get $2 - local.get $3 + f64.const 0 call $std/math/check else i32.const 0 end ) - (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $0 + (func $std/math/test_max (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 - f32.ne - local.get $1 - local.get $1 - f32.ne - i32.or - if - local.get $1 - local.get $0 - f32.add - return - end local.get $1 - i32.reinterpret_f32 - local.tee $3 - i32.const 1065353216 - i32.eq - if + f64.max + local.get $2 + f64.const 0 + call $std/math/check + if (result i32) local.get $0 - call $~lib/math/NativeMathf.atan - return + local.get $1 + call $~lib/bindings/dom/Math.max + local.get $2 + f64.const 0 + call $std/math/check + else + i32.const 0 end - local.get $3 - i32.const 30 - i32.shr_u - i32.const 2 - i32.and + ) + (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32) + (local $1 f64) + (local $2 f64) + (local $3 i32) + (local $4 f64) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) local.get $0 i32.reinterpret_f32 - local.tee $4 + local.tee $3 i32.const 31 i32.shr_u - i32.or - local.set $2 - local.get $4 - i32.const 2147483647 - i32.and - local.tee $4 - i32.eqz - if - block $break|0 - block $case3|0 - block $case2|0 - block $case1|0 - local.get $2 - br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 - end - local.get $0 - return - end - f32.const 3.1415927410125732 - return - end - f32.const -3.1415927410125732 - return - end - end + local.set $6 block $folding-inner0 local.get $3 i32.const 2147483647 i32.and local.tee $3 - i32.eqz - br_if $folding-inner0 - local.get $3 - i32.const 2139095040 - i32.eq + i32.const 1061752794 + i32.le_u if - local.get $4 - i32.const 2139095040 - i32.eq - if (result f32) - f32.const 2.356194496154785 - f32.const 0.7853981852531433 - local.get $2 - i32.const 2 - i32.and - select - local.tee $0 - f32.neg - local.get $0 - local.get $2 - i32.const 1 - i32.and - select - else - f32.const 3.1415927410125732 - f32.const 0 - local.get $2 - i32.const 2 - i32.and - select - local.tee $0 - f32.neg - local.get $0 - local.get $2 - i32.const 1 - i32.and - select - end - return - end - local.get $4 - i32.const 2139095040 - i32.eq - local.get $3 - i32.const 218103808 - i32.add - local.get $4 - i32.lt_u - i32.or - br_if $folding-inner0 - local.get $4 - i32.const 218103808 - i32.add - local.get $3 - i32.lt_u - i32.const 0 - local.get $2 - i32.const 2 - i32.and - select - if (result f32) - f32.const 0 - else - local.get $0 - local.get $1 - f32.div - f32.abs - call $~lib/math/NativeMathf.atan - end - local.set $0 - block $break|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $2 - br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 - end - local.get $0 - return - end - local.get $0 - f32.neg - return - end - f32.const 3.1415927410125732 + local.get $3 + i32.const 964689920 + i32.lt_u + if local.get $0 - f32.const 8.742277657347586e-08 - f32.add - f32.sub return end local.get $0 - f32.const 8.742277657347586e-08 - f32.add - f32.const -3.1415927410125732 - f32.add - return + f64.promote_f32 + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + local.set $4 + br $folding-inner0 end - unreachable - end - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 - local.get $2 - i32.const 1 - i32.and - select - ) - (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 f64) - (local $4 i32) - (local $5 i64) - (local $6 f64) - local.get $0 - local.get $0 - f64.add - local.set $3 - block $__inlined_func$~lib/math/NativeMath.cbrt$18 - local.get $0 - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $4 - i32.const 2146435072 - i32.ge_u - br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 - local.get $4 - i32.const 1048576 - i32.lt_u - if (result i32) + local.get $3 + i32.const 1081824209 + i32.le_u + if + local.get $3 + i32.const 1075235811 + i32.le_u + if + local.get $6 + if (result f32) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + f32.neg + else + local.get $0 + f64.promote_f32 + f64.const -1.5707963267948966 + f64.add + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + end + return + end local.get $0 - local.tee $3 - f64.const 18014398509481984 + f64.promote_f32 + local.tee $1 + f64.const 3.141592653589793 + f64.add + local.get $1 + f64.const -3.141592653589793 + f64.add + local.get $6 + select + f64.neg + local.tee $2 + local.get $2 f64.mul - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $4 - i32.eqz - br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 - local.get $4 - i32.const 3 - i32.div_u - i32.const 696219795 - i32.add - else - local.get $4 - i32.const 3 - i32.div_u - i32.const 715094163 - i32.add + local.tee $1 + local.get $2 + f64.mul + local.set $4 + br $folding-inner0 end - local.set $4 - local.get $5 - i64.const -9223372036854775808 - i64.and - local.get $4 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - local.tee $3 - local.get $3 - f64.mul - local.get $3 - local.get $0 - f64.div - f64.mul - local.set $6 - local.get $0 - local.get $3 - local.get $6 - local.get $6 - f64.const 1.6214297201053545 - f64.mul - f64.const -1.8849797954337717 - f64.add - f64.mul - f64.const 1.87595182427177 - f64.add - local.get $6 - local.get $6 - f64.mul - local.get $6 - f64.mul - local.get $6 - f64.const 0.14599619288661245 - f64.mul - f64.const -0.758397934778766 - f64.add - f64.mul - f64.add - f64.mul - i64.reinterpret_f64 - i64.const 2147483648 - i64.add - i64.const -1073741824 - i64.and - f64.reinterpret_i64 - local.tee $3 - local.get $3 - f64.mul - f64.div - local.set $6 - local.get $3 - local.get $3 - local.get $6 - local.get $3 - f64.sub local.get $3 + i32.const 1088565717 + i32.le_u + if + local.get $3 + i32.const 1085271519 + i32.le_u + if + local.get $6 + if (result f32) + local.get $0 + f64.promote_f32 + f64.const 4.71238898038469 + f64.add + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + else + local.get $0 + f64.promote_f32 + f64.const -4.71238898038469 + f64.add + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + f32.neg + end + return + end + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 6.283185307179586 + f64.add + local.get $1 + f64.const -6.283185307179586 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + local.set $4 + br $folding-inner0 + end local.get $3 - f64.add - local.get $6 - f64.add - f64.div - f64.mul - f64.add - local.set $3 - end - local.get $3 - local.get $1 - local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.cbrt - local.get $1 - local.get $2 - call $std/math/check - else - i32.const 0 - end - ) - (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f64) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 f64) - (local $8 f64) - block $__inlined_func$~lib/math/NativeMathf.cbrt$19 (result f32) - local.get $0 - local.get $0 - f32.add - local.get $0 - i32.reinterpret_f32 - local.tee $4 - i32.const 2147483647 - i32.and - local.tee $6 i32.const 2139095040 i32.ge_u - br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 - drop - local.get $6 - i32.const 8388608 - i32.lt_u - if (result i32) + if local.get $0 - local.get $6 - i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 - drop local.get $0 - f32.const 16777216 - f32.mul - i32.reinterpret_f32 - local.tee $4 - i32.const 2147483647 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.1 (result i32) + local.get $3 + i32.const 1305022427 + i32.lt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $2 + local.get $1 + local.get $2 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $2 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $2 + i32.trunc_sat_f64_s + br $~lib/math/rempio2f|inlined.1 + end + local.get $3 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.tee $7 + i32.const 63 i32.and + i64.extend_i32_s + local.set $8 + local.get $7 + i32.const 6 + i32.shr_s i32.const 3 - i32.div_u - i32.const 642849266 + i32.shl + i32.const 5632 i32.add - else + local.tee $7 + i64.load offset=8 + local.set $5 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $9 + local.get $7 + i64.load + local.get $8 + i64.shl + local.get $5 + i64.const 64 + local.get $8 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $8 + i64.const 32 + i64.gt_u + if (result i64) + local.get $5 + local.get $8 + i64.const 32 + i64.sub + i64.shl + local.get $7 + i64.load offset=16 + i64.const 96 + local.get $8 + i64.sub + i64.shr_u + i64.or + else + local.get $5 + i64.const 32 + local.get $8 + i64.sub + i64.shr_u + end + local.get $9 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 2 + i64.shl + local.tee $8 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + i32.const 0 + local.get $5 + i64.const 62 + i64.shr_u + local.get $8 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.tee $3 + i32.sub + local.get $3 local.get $6 - i32.const 3 - i32.div_u - i32.const 709958130 - i32.add + select end - local.get $4 - i32.const -2147483648 - i32.and - i32.or - f32.reinterpret_i32 - f64.promote_f32 - local.tee $3 - local.get $3 - f64.mul - local.get $3 - f64.mul - local.set $7 - local.get $3 - local.get $0 - f64.promote_f32 - local.tee $5 - local.get $5 - f64.add - local.tee $3 - local.get $7 - f64.add - f64.mul - local.get $5 - local.get $7 - f64.add - local.get $7 - f64.add - f64.div - local.tee $7 - local.get $7 - f64.mul - local.get $7 - f64.mul - local.set $8 - local.get $7 + local.set $3 + global.get $~lib/math/rempio2f_y + local.set $1 local.get $3 - local.get $8 - f64.add - f64.mul - local.get $5 - local.get $8 - f64.add - local.get $8 - f64.add - f64.div - f32.demote_f64 + i32.const 1 + i32.and + if (result f32) + local.get $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + else + local.get $1 + local.get $1 + local.get $1 + f64.mul + local.tee $2 + local.get $1 + f64.mul + local.tee $1 + local.get $2 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $1 + local.get $2 + local.get $2 + f64.mul + f64.mul + local.get $2 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + end + local.tee $0 + f32.neg + local.get $0 + local.get $3 + i32.const 2 + i32.and + select + return end - local.get $1 local.get $2 - call $std/math/check + local.get $4 + local.get $1 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $4 + local.get $1 + local.get $1 + f64.mul + f64.mul + local.get $1 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 ) - (func $~lib/math/pio2_large_quot (param $0 i64) (result i32) - (local $1 i64) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 f64) - (local $6 i64) - (local $7 i64) + (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32) + (local $1 f64) + (local $2 f64) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 f64) + (local $7 i32) (local $8 i64) (local $9 i64) - (local $10 i64) - (local $11 i64) - (local $12 i64) local.get $0 - i64.const 9223372036854775807 - i64.and - i64.const 52 - i64.shr_u - i64.const 1045 - i64.sub - local.tee $1 - i64.const 63 - i64.and - local.set $6 - local.get $1 - i64.const 6 - i64.shr_s - i32.wrap_i64 - i32.const 3 - i32.shl - i32.const 5440 - i32.add - local.tee $4 - i64.load - local.set $3 - local.get $4 - i64.load offset=8 - local.set $2 - local.get $4 - i64.load offset=16 - local.set $1 - local.get $6 - i64.const 0 - i64.ne - if + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_u + local.set $5 + block $folding-inner0 local.get $3 - local.get $6 - i64.shl - local.get $2 - i64.const 64 - local.get $6 - i64.sub - local.tee $7 - i64.shr_u - i64.or + i32.const 2147483647 + i32.and + local.tee $3 + i32.const 1061752794 + i32.le_u + if + local.get $3 + i32.const 964689920 + i32.lt_u + if + f32.const 1 + return + end + local.get $0 + f64.promote_f32 + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + br $folding-inner0 + end + local.get $3 + i32.const 1081824209 + i32.le_u + if + local.get $3 + i32.const 1075235811 + i32.gt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 3.141592653589793 + f64.add + local.get $1 + f64.const -3.141592653589793 + f64.add + local.get $5 + select + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + f32.neg + return + else + local.get $5 + if (result f64) + local.get $0 + f64.promote_f32 + f64.const 1.5707963267948966 + f64.add + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + else + f64.const 1.5707963267948966 + local.get $0 + f64.promote_f32 + f64.sub + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + end + local.set $6 + local.get $2 + local.get $6 + local.get $1 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $6 + local.get $1 + local.get $1 + f64.mul + f64.mul + local.get $1 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + return + end + unreachable + end + local.get $3 + i32.const 1088565717 + i32.le_u + if + local.get $3 + i32.const 1085271519 + i32.gt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 6.283185307179586 + f64.add + local.get $1 + f64.const -6.283185307179586 + f64.add + local.get $5 + select + local.tee $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + br $folding-inner0 + else + local.get $5 + if (result f64) + local.get $0 + f32.neg + f64.promote_f32 + f64.const -4.71238898038469 + f64.add + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + else + local.get $0 + f64.promote_f32 + f64.const -4.71238898038469 + f64.add + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $2 + f64.mul + end + local.set $6 + local.get $2 + local.get $6 + local.get $1 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $6 + local.get $1 + local.get $1 + f64.mul + f64.mul + local.get $1 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + return + end + unreachable + end + local.get $3 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.0 (result i32) + local.get $3 + i32.const 1305022427 + i32.lt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $2 + local.get $1 + local.get $2 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $2 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $2 + i32.trunc_sat_f64_s + br $~lib/math/rempio2f|inlined.0 + end + local.get $3 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.tee $7 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $8 + local.get $7 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $7 + i64.load offset=8 + local.set $4 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $3 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $9 + local.get $7 + i64.load + local.get $8 + i64.shl + local.get $4 + i64.const 64 + local.get $8 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $8 + i64.const 32 + i64.gt_u + if (result i64) + local.get $4 + local.get $8 + i64.const 32 + i64.sub + i64.shl + local.get $7 + i64.load offset=16 + i64.const 96 + local.get $8 + i64.sub + i64.shr_u + i64.or + else + local.get $4 + i64.const 32 + local.get $8 + i64.sub + i64.shr_u + end + local.get $9 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $4 + i64.const 2 + i64.shl + local.tee $8 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + i32.const 0 + local.get $4 + i64.const 62 + i64.shr_u + local.get $8 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.tee $3 + i32.sub + local.get $3 + local.get $5 + select + end local.set $3 - local.get $2 - local.get $6 - i64.shl - local.get $1 - local.get $7 - i64.shr_u - i64.or - local.set $2 - local.get $1 - local.get $6 - i64.shl - local.get $4 - i64.load offset=24 - local.get $7 - i64.shr_u - i64.or + global.get $~lib/math/rempio2f_y local.set $1 + local.get $3 + i32.const 1 + i32.and + if (result f32) + local.get $1 + local.get $1 + local.get $1 + f64.mul + local.tee $2 + local.get $1 + f64.mul + local.tee $1 + local.get $2 + f64.const 0.008333329385889463 + f64.mul + f64.const -0.16666666641626524 + f64.add + f64.mul + f64.add + local.get $1 + local.get $2 + local.get $2 + f64.mul + f64.mul + local.get $2 + f64.const 2.718311493989822e-06 + f64.mul + f64.const -1.9839334836096632e-04 + f64.add + f64.mul + f64.add + f32.demote_f64 + else + local.get $1 + local.get $1 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $2 + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add + local.get $2 + f64.const 0.04166662332373906 + f64.mul + f64.add + local.get $2 + local.get $1 + f64.mul + local.get $1 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + end + local.tee $0 + f32.neg + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 2 + i32.and + select + return end - local.get $0 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - local.tee $6 - i64.const 4294967295 - i64.and - local.set $7 - local.get $2 - i64.const 4294967295 - i64.and - local.tee $8 - local.get $6 - i64.const 32 - i64.shr_u - local.tee $9 - i64.mul + local.get $1 + f64.const -0.499999997251031 + f64.mul + f64.const 1 + f64.add local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 - local.get $7 - i64.mul - local.get $7 - local.get $8 - i64.mul - local.tee $7 - i64.const 32 - i64.shr_u - i64.add - local.tee $8 - i64.const 4294967295 - i64.and - i64.add - local.set $10 + f64.const 0.04166662332373906 + f64.mul + f64.add local.get $2 - local.get $9 - i64.mul - local.get $8 - i64.const 32 - i64.shr_u - i64.add - local.get $10 - i64.const 32 - i64.shr_u - i64.add - global.set $~lib/math/res128_hi - local.get $9 local.get $1 - i64.const 32 - i64.shr_u - i64.mul - local.tee $1 - local.get $7 - i64.const 4294967295 - i64.and - local.get $10 - i64.const 32 - i64.shl - i64.add - i64.add - local.tee $2 + f64.mul local.get $1 - i64.lt_u - i64.extend_i32_u - global.get $~lib/math/res128_hi - local.get $3 - local.get $6 - i64.mul - i64.add - i64.add - local.tee $3 - i64.const 2 - i64.shl - local.get $2 - i64.const 62 - i64.shr_u - i64.or - local.tee $6 - i64.const 63 - i64.shr_s - local.tee $7 + f64.const 2.439044879627741e-05 + f64.mul + f64.const -0.001388676377460993 + f64.add + f64.mul + f64.add + f32.demote_f64 + ) + (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32) + (local $1 f64) + (local $2 f64) + (local $3 f64) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 31 + i32.shr_u + local.set $6 + block $folding-inner1 + block $folding-inner0 + local.get $4 + i32.const 2147483647 + i32.and + local.tee $4 + i32.const 1061752794 + i32.le_u + if + local.get $4 + i32.const 964689920 + i32.lt_u + if + local.get $0 + return + end + local.get $0 + f64.promote_f32 + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner0 + end + local.get $4 + i32.const 1081824209 + i32.le_u + if + local.get $4 + i32.const 1075235811 + i32.le_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 1.5707963267948966 + f64.add + local.get $1 + f64.const -1.5707963267948966 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner1 + else + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 3.141592653589793 + f64.add + local.get $1 + f64.const -3.141592653589793 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner0 + end + unreachable + end + local.get $4 + i32.const 1088565717 + i32.le_u + if + local.get $4 + i32.const 1085271519 + i32.le_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 4.71238898038469 + f64.add + local.get $1 + f64.const -4.71238898038469 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner1 + else + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 6.283185307179586 + f64.add + local.get $1 + f64.const -6.283185307179586 + f64.add + local.get $6 + select + local.tee $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 + br $folding-inner0 + end + unreachable + end + local.get $4 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + local.get $0 + f32.sub + return + end + block $~lib/math/rempio2f|inlined.2 (result i32) + local.get $4 + i32.const 1305022427 + i32.lt_u + if + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0.6366197723675814 + f64.mul + f64.nearest + local.set $2 + local.get $1 + local.get $2 + f64.const 1.5707963109016418 + f64.mul + f64.sub + local.get $2 + f64.const 1.5893254773528196e-08 + f64.mul + f64.sub + global.set $~lib/math/rempio2f_y + local.get $2 + i32.trunc_sat_f64_s + br $~lib/math/rempio2f|inlined.2 + end + local.get $4 + i32.const 23 + i32.shr_s + i32.const 152 + i32.sub + local.tee $7 + i32.const 63 + i32.and + i64.extend_i32_s + local.set $8 + local.get $7 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $7 + i64.load offset=8 + local.set $5 + f64.const 8.515303950216386e-20 + local.get $0 + f64.promote_f32 + f64.copysign + local.get $4 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + i64.extend_i32_s + local.tee $9 + local.get $7 + i64.load + local.get $8 + i64.shl + local.get $5 + i64.const 64 + local.get $8 + i64.sub + i64.shr_u + i64.or + i64.mul + local.get $8 + i64.const 32 + i64.gt_u + if (result i64) + local.get $5 + local.get $8 + i64.const 32 + i64.sub + i64.shl + local.get $7 + i64.load offset=16 + i64.const 96 + local.get $8 + i64.sub + i64.shr_u + i64.or + else + local.get $5 + i64.const 32 + local.get $8 + i64.sub + i64.shr_u + end + local.get $9 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 2 + i64.shl + local.tee $8 + f64.convert_i64_s + f64.mul + global.set $~lib/math/rempio2f_y + i32.const 0 + local.get $5 + i64.const 62 + i64.shr_u + local.get $8 + i64.const 63 + i64.shr_u + i64.add + i32.wrap_i64 + local.tee $4 + i32.sub + local.get $4 + local.get $6 + select + end + local.set $4 + global.get $~lib/math/rempio2f_y + local.tee $1 + local.get $1 + f64.mul + local.tee $2 + local.get $2 + f64.mul + local.set $3 + f64.const -1 + local.get $1 + local.get $2 + local.get $1 + f64.mul + local.tee $1 + local.get $2 + f64.const 0.13339200271297674 + f64.mul + f64.const 0.3333313950307914 + f64.add + f64.mul + f64.add + local.get $1 + local.get $3 + f64.mul + local.get $2 + f64.const 0.024528318116654728 + f64.mul + f64.const 0.05338123784456704 + f64.add + local.get $3 + local.get $2 + f64.const 0.009465647849436732 + f64.mul + f64.const 0.002974357433599673 + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.tee $1 + f64.div + local.get $1 + local.get $4 + i32.const 1 + i32.and + select + f32.demote_f64 + return + end + local.get $2 + local.get $1 + local.get $2 + f64.mul + local.tee $2 + local.get $1 + f64.const 0.13339200271297674 + f64.mul + f64.const 0.3333313950307914 + f64.add + f64.mul + f64.add + local.get $2 + local.get $3 + f64.mul + local.get $1 + f64.const 0.024528318116654728 + f64.mul + f64.const 0.05338123784456704 + f64.add + local.get $3 + local.get $1 + f64.const 0.009465647849436732 + f64.mul + f64.const 0.002974357433599673 + f64.add + f64.mul + f64.add + f64.mul + f64.add + f32.demote_f64 + return + end + f64.const -1 local.get $2 - i64.const 2 - i64.shl - i64.xor - local.set $2 - local.get $6 - local.get $7 - i64.const 1 - i64.shr_s - i64.xor - local.tee $1 - i64.clz - local.set $8 local.get $1 - local.get $8 - i64.shl local.get $2 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - local.tee $9 - i64.const 4294967295 - i64.and - local.set $1 - local.get $9 - i64.const 32 - i64.shr_u - local.tee $10 - i64.const 560513588 - i64.mul - local.get $1 - i64.const 3373259426 - i64.mul - local.get $1 - i64.const 560513588 - i64.mul - local.tee $11 - i64.const 32 - i64.shr_u - i64.add - local.tee $12 - i64.const 4294967295 - i64.and - i64.add - local.set $1 - local.get $10 - i64.const 3373259426 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add + f64.mul + local.tee $2 local.get $1 - i64.const 32 - i64.shr_u - i64.add - global.set $~lib/math/res128_hi - local.get $9 - f64.convert_i64_u - f64.const 3.753184150245214e-04 + f64.const 0.13339200271297674 f64.mul - local.get $2 - local.get $8 - i64.shl - f64.convert_i64_u - f64.const 3.834951969714103e-04 + f64.const 0.3333313950307914 + f64.add f64.mul f64.add - i64.trunc_sat_f64_u - local.tee $2 - local.get $11 - i64.const 4294967295 - i64.and + local.get $2 + local.get $3 + f64.mul local.get $1 - i64.const 32 - i64.shl - i64.add - local.tee $1 - i64.gt_u - i64.extend_i32_u - global.get $~lib/math/res128_hi - local.tee $9 - i64.const 11 - i64.shr_u - i64.add - f64.convert_i64_u - global.set $~lib/math/rempio2_y0 - local.get $9 - i64.const 53 - i64.shl + f64.const 0.024528318116654728 + f64.mul + f64.const 0.05338123784456704 + f64.add + local.get $3 local.get $1 - i64.const 11 - i64.shr_u - i64.or - local.get $2 - i64.add - f64.convert_i64_u - f64.const 5.421010862427522e-20 + f64.const 0.009465647849436732 f64.mul - global.set $~lib/math/rempio2_y1 - global.get $~lib/math/rempio2_y0 - i64.const 4372995238176751616 - local.get $8 - i64.const 52 - i64.shl - i64.sub - local.get $0 - local.get $6 - i64.xor - i64.const -9223372036854775808 - i64.and - i64.or - f64.reinterpret_i64 - local.tee $5 + f64.const 0.002974357433599673 + f64.add f64.mul - global.set $~lib/math/rempio2_y0 - global.get $~lib/math/rempio2_y1 - local.get $5 + f64.add f64.mul - global.set $~lib/math/rempio2_y1 - local.get $3 - i64.const 62 - i64.shr_s - local.get $7 - i64.sub - i32.wrap_i64 + f64.add + f64.div + f32.demote_f64 ) - (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) - (local $1 f64) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) + (func $~lib/math/NativeMath.exp (param $0 f64) (result f64) + (local $1 i32) + (local $2 i64) + (local $3 f64) + (local $4 f64) + (local $5 i32) + (local $6 i64) (local $7 f64) (local $8 f64) - (local $9 f64) - local.get $0 - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 31 - i32.shr_u - local.set $6 - local.get $3 - i32.const 2147483647 - i32.and - local.tee $3 - i32.const 1072243195 - i32.le_u - if - local.get $3 - i32.const 1044816030 - i32.lt_u + block $~lib/util/math/exp_lut|inlined.0 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 52 + i64.shr_u + i32.wrap_i64 + i32.const 2047 + i32.and + local.tee $1 + i32.const 969 + i32.sub + local.tee $5 + i32.const 63 + i32.ge_u if f64.const 1 - return + local.get $5 + i32.const -2147483648 + i32.ge_u + br_if $~lib/util/math/exp_lut|inlined.0 + drop + local.get $1 + i32.const 1033 + i32.ge_u + if + f64.const 0 + local.get $2 + i64.const -4503599627370496 + i64.eq + br_if $~lib/util/math/exp_lut|inlined.0 + drop + local.get $0 + f64.const 1 + f64.add + local.get $1 + i32.const 2047 + i32.ge_u + br_if $~lib/util/math/exp_lut|inlined.0 + drop + f64.const 0 + f64.const inf + local.get $2 + i64.const 0 + i64.lt_s + select + br $~lib/util/math/exp_lut|inlined.0 + end + i32.const 0 + local.set $1 end local.get $0 - local.get $0 - f64.mul - local.tee $1 - local.get $1 + f64.const 184.6649652337873 f64.mul + f64.const 6755399441055744 + f64.add + local.tee $3 + i64.reinterpret_f64 + local.tee $6 + i64.const 127 + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 + i32.const 3 + i32.shl + i32.const 5664 + i32.add + local.tee $5 + i64.load offset=8 + local.get $6 + i64.const 45 + i64.shl + i64.add local.set $2 - f64.const 1 - local.get $1 - f64.const 0.5 - f64.mul - local.tee $7 - f64.sub - local.tee $8 - f64.const 1 - local.get $8 - f64.sub - local.get $7 - f64.sub - local.get $1 - local.get $1 - local.get $1 - local.get $1 - f64.const 2.480158728947673e-05 - f64.mul - f64.const -0.001388888888887411 + local.get $0 + local.get $3 + f64.const -6755399441055744 f64.add + local.tee $0 + f64.const -0.005415212348111709 f64.mul - f64.const 0.0416666666666666 f64.add + local.get $0 + f64.const -1.2864023111638346e-14 f64.mul - local.get $2 - local.get $2 - f64.mul - local.get $1 - local.get $1 - f64.const -1.1359647557788195e-11 + f64.add + local.tee $0 + local.get $0 f64.mul - f64.const 2.087572321298175e-09 + local.set $3 + local.get $5 + f64.load + local.get $0 f64.add + local.get $3 + local.get $0 + f64.const 0.16666666666665886 f64.mul - f64.const -2.7557314351390663e-07 + f64.const 0.49999999999996786 f64.add f64.mul f64.add + local.get $3 + local.get $3 f64.mul local.get $0 - f64.const 0 + f64.const 0.008333335853059549 f64.mul - f64.sub + f64.const 0.0416666808410674 f64.add + f64.mul f64.add - return - end - local.get $3 - i32.const 2146435072 - i32.ge_u - if - local.get $0 - local.get $0 - f64.sub - return - end - block $~lib/math/rempio2|inlined.0 (result i32) - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $4 - i32.const 1073928572 - i32.lt_u + local.set $0 + local.get $1 + i32.eqz if - i32.const 1 - local.set $3 - local.get $6 - if (result f64) - local.get $0 - f64.const 1.5707963267341256 - f64.add - local.set $0 - i32.const -1 - local.set $3 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const 6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const 6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const 6.077100506303966e-11 - f64.add - local.tee $1 - f64.const 2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 + block $~lib/util/math/specialcase|inlined.0 (result f64) + local.get $6 + i64.const 2147483648 + i64.and + i64.eqz + if + local.get $2 + i64.const 4544132024016830464 + i64.sub + f64.reinterpret_i64 + local.tee $3 + local.get $3 local.get $0 - f64.sub - f64.const 2.0222662487959506e-21 + f64.mul f64.add + f64.const 5486124068793688683255936e279 + f64.mul + br $~lib/util/math/specialcase|inlined.0 end - else + local.get $2 + i64.const 4602678819172646912 + i64.add + local.tee $2 + f64.reinterpret_i64 + local.tee $3 local.get $0 - f64.const -1.5707963267341256 + f64.mul + local.set $7 + local.get $3 + local.get $7 f64.add - local.set $0 - local.get $4 - i32.const 1073291771 - i32.ne + local.tee $4 + f64.abs + f64.const 1 + f64.lt if (result f64) - local.get $0 - local.get $0 - f64.const -6.077100506506192e-11 + f64.const 1 + local.get $4 + f64.copysign + local.tee $8 + local.get $4 f64.add local.tee $0 + local.get $8 + local.get $0 f64.sub - f64.const -6.077100506506192e-11 + local.get $4 f64.add - else - local.get $0 - f64.const -6.077100506303966e-11 + local.get $3 + local.get $4 + f64.sub + local.get $7 f64.add - local.tee $1 - f64.const -2.0222662487959506e-21 f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const -2.0222662487959506e-21 f64.add + local.get $8 + f64.sub + local.tee $0 + f64.const 0 + f64.eq + if (result f64) + local.get $2 + i64.const -9223372036854775808 + i64.and + f64.reinterpret_i64 + else + local.get $0 + end + else + local.get $4 end + f64.const 2.2250738585072014e-308 + f64.mul end + br $~lib/util/math/exp_lut|inlined.0 + end + local.get $2 + f64.reinterpret_i64 + local.tee $3 + local.get $3 + local.get $0 + f64.mul + f64.add + end + ) + (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 i64) + (local $12 i64) + (local $13 f64) + (local $14 f64) + (local $15 f64) + (local $16 f64) + (local $17 f64) + (local $18 i32) + local.get $1 + f64.abs + f64.const 2 + f64.le + if + local.get $1 + f64.const 2 + f64.eq + if + local.get $0 + local.get $0 + f64.mul + return + end + local.get $1 + f64.const 0.5 + f64.eq + if local.get $0 - global.set $~lib/math/rempio2_y0 - global.set $~lib/math/rempio2_y1 - local.get $3 - br $~lib/math/rempio2|inlined.0 + f64.sqrt + f64.abs + f64.const inf + local.get $0 + f64.const -inf + f64.ne + select + return end - local.get $4 - i32.const 1094263291 - i32.lt_u + local.get $1 + f64.const -1 + f64.eq if - local.get $4 - i32.const 20 - i32.shr_u - local.tee $3 + f64.const 1 local.get $0 + f64.div + return + end + local.get $1 + f64.const 1 + f64.eq + if local.get $0 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.tee $7 - f64.const 1.5707963267341256 - f64.mul - f64.sub - local.tee $0 - local.get $7 - f64.const 6.077100506506192e-11 - f64.mul - local.tee $2 - f64.sub - local.tee $1 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 16 - i32.gt_u + return + end + local.get $1 + f64.const 0 + f64.eq + if + f64.const 1 + return + end + end + local.get $1 + i64.reinterpret_f64 + local.tee $11 + i64.const 52 + i64.shr_u + local.set $6 + block $~lib/util/math/pow_lut|inlined.0 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 52 + i64.shr_u + local.tee $5 + i64.const 1 + i64.sub + i64.const 2046 + i64.ge_u + if (result i32) + i32.const 1 + else + local.get $6 + i64.const 2047 + i64.and + i64.const 958 + i64.sub + i64.const 128 + i64.ge_u + end + if + local.get $11 + i64.const 1 + i64.shl + local.tee $12 + i64.const 1 + i64.sub + i64.const -9007199254740993 + i64.ge_u if - local.get $7 - f64.const 2.0222662487959506e-21 + f64.const 1 + local.get $12 + i64.eqz + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const nan:0x8000000000000 + local.get $2 + i64.const 4607182418800017408 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + local.get $0 + local.get $1 + f64.add + local.get $12 + i64.const -9007199254740992 + i64.gt_u + local.get $2 + i64.const 1 + i64.shl + local.tee $2 + i64.const -9007199254740992 + i64.gt_u + i32.or + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const nan:0x8000000000000 + local.get $2 + i64.const 9214364837600034816 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const 0 + local.get $11 + i64.const 63 + i64.shr_u + i64.eqz + local.get $2 + i64.const 9214364837600034816 + i64.lt_u + i32.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + local.get $1 + local.get $1 f64.mul + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $2 + i64.const 1 + i64.shl + i64.const 1 + i64.sub + i64.const -9007199254740993 + i64.ge_u + if + f64.const 1 local.get $0 local.get $0 - local.get $7 - f64.const 6.077100506303966e-11 f64.mul - local.tee $1 - f64.sub local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $2 - local.get $3 + f64.neg local.get $0 local.get $2 - f64.sub - local.tee $1 - i64.reinterpret_f64 - i64.const 32 + i64.const 63 i64.shr_u i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 49 - i32.gt_u + if (result i32) + block $~lib/util/math/checkint|inlined.0 (result i32) + i32.const 0 + local.get $11 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $2 + i64.const 1023 + i64.lt_u + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 2 + local.get $2 + i64.const 1075 + i64.gt_u + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 0 + local.get $11 + i64.const 1 + i64.const 1075 + local.get $2 + i64.sub + i64.shl + local.tee $2 + i64.const 1 + i64.sub + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 1 + local.get $2 + local.get $11 + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + select + local.tee $0 + f64.div + local.get $0 + local.get $11 + i64.const 0 + i64.lt_s + select + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $2 + i64.const 0 + i64.lt_s + if + block $~lib/util/math/checkint|inlined.1 (result i32) + i32.const 0 + local.get $11 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $12 + i64.const 1023 + i64.lt_u + br_if $~lib/util/math/checkint|inlined.1 + drop + i32.const 2 + local.get $12 + i64.const 1075 + i64.gt_u + br_if $~lib/util/math/checkint|inlined.1 + drop + i32.const 0 + local.get $11 + i64.const 1 + i64.const 1075 + local.get $12 + i64.sub + i64.shl + local.tee $12 + i64.const 1 + i64.sub + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.1 + drop + i32.const 1 + local.get $11 + local.get $12 + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.1 + drop + i32.const 2 + end + local.tee $3 + i32.eqz if - local.get $7 - f64.const 8.4784276603689e-32 - f64.mul local.get $0 local.get $0 - local.get $7 - f64.const 2.0222662487111665e-21 - f64.mul - local.tee $1 f64.sub local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $2 local.get $0 - local.get $2 - f64.sub - local.set $1 + f64.div + br $~lib/util/math/pow_lut|inlined.0 end + local.get $5 + i64.const 2047 + i64.and + local.set $5 + i32.const 262144 + i32.const 0 + local.get $3 + i32.const 1 + i32.eq + select + local.set $4 + local.get $2 + i64.const 9223372036854775807 + i64.and + local.set $2 + end + local.get $6 + i64.const 2047 + i64.and + local.tee $12 + i64.const 958 + i64.sub + i64.const 128 + i64.ge_u + if + f64.const 1 + local.get $2 + i64.const 4607182418800017408 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const 1 + local.get $12 + i64.const 958 + i64.lt_u + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const inf + f64.const 0 + local.get $6 + i64.const 2048 + i64.lt_u + local.get $2 + i64.const 4607182418800017408 + i64.gt_u + i32.eq + select + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $5 + i64.eqz + if + local.get $0 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + i64.const 234187180623265792 + i64.sub + local.set $2 end - local.get $1 - global.set $~lib/math/rempio2_y0 - local.get $0 - local.get $1 - f64.sub - local.get $2 - f64.sub - global.set $~lib/math/rempio2_y1 - local.get $7 - i32.trunc_sat_f64_s - br $~lib/math/rempio2|inlined.0 end - i32.const 0 - local.get $5 - call $~lib/math/pio2_large_quot + local.get $2 + local.get $2 + i64.const 4604531861337669632 + i64.sub + local.tee $2 + i64.const -4503599627370496 + i64.and + i64.sub + local.tee $5 + i64.const 2147483648 + i64.add + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $7 + local.get $2 + i64.const 45 + i64.shr_u + i64.const 127 + i64.and + i32.wrap_i64 + i32.const 5 + i32.shl + i32.const 10272 + i32.add local.tee $3 - i32.sub - local.get $3 - local.get $6 - select - end - local.set $3 - global.get $~lib/math/rempio2_y0 - local.set $1 - global.get $~lib/math/rempio2_y1 - local.set $2 - local.get $3 - i32.const 1 - i32.and - if (result f64) - local.get $1 - local.get $1 - f64.mul - local.tee $0 - local.get $1 + f64.load + local.tee $8 f64.mul - local.set $7 - local.get $1 - local.get $0 + f64.const -1 + f64.add + local.set $9 local.get $2 - f64.const 0.5 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $13 + f64.const 0.6931471805598903 f64.mul + local.get $3 + f64.load offset=16 + f64.add + local.tee $0 + local.get $9 + local.get $5 + f64.reinterpret_i64 local.get $7 - local.get $0 - local.get $0 - f64.const 2.7557313707070068e-06 + f64.sub + local.get $8 f64.mul - f64.const -1.984126982985795e-04 + local.tee $7 f64.add - f64.mul - f64.const 0.00833333333332249 + local.tee $14 f64.add - local.get $0 - local.get $0 - local.get $0 + local.set $15 + local.get $14 + local.get $14 + f64.const -0.5 f64.mul + local.tee $8 f64.mul - local.get $0 - f64.const 1.58969099521155e-10 + local.set $16 + local.get $15 + local.get $9 + local.get $9 + f64.const -0.5 f64.mul - f64.const -2.5050760253406863e-08 - f64.add + local.tee $17 f64.mul + local.tee $9 f64.add + local.tee $10 + local.get $10 + local.get $13 + f64.const 5.497923018708371e-14 f64.mul - f64.sub - f64.mul - local.get $2 - f64.sub - local.get $7 - f64.const -0.16666666666666632 - f64.mul - f64.sub - f64.sub - else - local.get $1 - local.get $1 - f64.mul - local.tee $7 - local.get $7 - f64.mul - local.set $8 - f64.const 1 - local.get $7 - f64.const 0.5 - f64.mul - local.tee $0 - f64.sub - local.tee $9 - f64.const 1 - local.get $9 - f64.sub + local.get $3 + f64.load offset=24 + f64.add local.get $0 + local.get $15 f64.sub + local.get $14 + f64.add + f64.add local.get $7 - local.get $7 - local.get $7 - local.get $7 - f64.const 2.480158728947673e-05 + local.get $8 + local.get $17 + f64.add f64.mul - f64.const -0.001388888888887411 f64.add + local.get $15 + local.get $10 + f64.sub + local.get $9 + f64.add + f64.add + local.get $14 + local.get $16 f64.mul - f64.const 0.0416666666666666 + local.get $14 + f64.const 0.5000000000000007 + f64.mul + f64.const -0.6666666666666679 f64.add + local.get $16 + local.get $14 + f64.const -0.6666666663487739 f64.mul - local.get $8 - local.get $8 + f64.const 0.7999999995323976 + f64.add + local.get $16 + local.get $14 + f64.const 1.0000415263675542 f64.mul - local.get $7 - local.get $7 - f64.const -1.1359647557788195e-11 + f64.const -1.142909628459501 + f64.add f64.mul - f64.const 2.087572321298175e-09 f64.add f64.mul - f64.const -2.7557314351390663e-07 f64.add f64.mul f64.add + local.tee $0 + f64.add + local.tee $7 + f64.sub + local.get $0 + f64.add + global.set $~lib/util/math/log_tail + local.get $11 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.tee $0 + local.get $7 + i64.reinterpret_f64 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.tee $8 f64.mul + local.set $9 local.get $1 - local.get $2 + local.get $0 + f64.sub + local.get $8 f64.mul + local.get $1 + local.get $7 + local.get $8 f64.sub + global.get $~lib/util/math/log_tail f64.add + f64.mul f64.add - end - local.tee $0 - f64.neg - local.get $0 - local.get $3 - i32.const 1 - i32.add - i32.const 2 - i32.and - select - ) - (func $~lib/math/NativeMathf.cos (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 f64) - (local $7 i32) - (local $8 i64) - (local $9 i64) - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_u - local.set $5 - block $folding-inner0 - local.get $3 - i32.const 2147483647 - i32.and - local.tee $3 - i32.const 1061752794 - i32.le_u - if - local.get $3 - i32.const 964689920 - i32.lt_u - if - f32.const 1 - return - end - local.get $0 - f64.promote_f32 - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - br $folding-inner0 - end - local.get $3 - i32.const 1081824209 - i32.le_u - if - local.get $3 - i32.const 1075235811 - i32.gt_u + local.set $0 + block $~lib/util/math/exp_inline|inlined.0 (result f64) + local.get $9 + i64.reinterpret_f64 + local.tee $2 + i64.const 52 + i64.shr_u + i32.wrap_i64 + i32.const 2047 + i32.and + local.tee $3 + i32.const 969 + i32.sub + local.tee $18 + i32.const 63 + i32.ge_u if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 3.141592653589793 - f64.add - local.get $1 - f64.const -3.141592653589793 - f64.add - local.get $5 - select - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul + f64.const -1 f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - f32.neg - return - else - local.get $5 - if (result f64) - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - else - f64.const 1.5707963267948966 - local.get $0 - f64.promote_f32 - f64.sub - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - end - local.set $6 - local.get $2 - local.get $6 - local.get $1 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $6 - local.get $1 - local.get $1 - f64.mul - f64.mul - local.get $1 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 - return - end - unreachable - end - local.get $3 - i32.const 1088565717 - i32.le_u - if - local.get $3 - i32.const 1085271519 - i32.gt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 6.283185307179586 - f64.add - local.get $1 - f64.const -6.283185307179586 - f64.add - local.get $5 + local.get $4 + select + local.get $18 + i32.const -2147483648 + i32.ge_u + br_if $~lib/util/math/exp_inline|inlined.0 + drop + f64.const -0 + f64.const 0 + local.get $4 + select + f64.const -inf + f64.const inf + local.get $4 select - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - br $folding-inner0 - else - local.get $5 - if (result f64) - local.get $0 - f32.neg - f64.promote_f32 - f64.const -4.71238898038469 - f64.add - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - else - local.get $0 - f64.promote_f32 - f64.const -4.71238898038469 - f64.add - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - end - local.set $6 - local.get $2 - local.get $6 - local.get $1 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $6 - local.get $1 - local.get $1 - f64.mul - f64.mul - local.get $1 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 - return - end - unreachable - end - local.get $3 - i32.const 2139095040 - i32.ge_u - if - local.get $0 - local.get $0 - f32.sub - return - end - block $~lib/math/rempio2f|inlined.0 (result i32) - local.get $3 - i32.const 1305022427 - i32.lt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.set $2 - local.get $1 - local.get $2 - f64.const 1.5707963109016418 - f64.mul - f64.sub - local.get $2 - f64.const 1.5893254773528196e-08 - f64.mul - f64.sub - global.set $~lib/math/rempio2f_y local.get $2 - i32.trunc_sat_f64_s - br $~lib/math/rempio2f|inlined.0 + i64.const 0 + i64.lt_s + select + local.get $3 + i32.const 1033 + i32.ge_u + br_if $~lib/util/math/exp_inline|inlined.0 + drop + i32.const 0 + local.set $3 end - local.get $3 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.tee $7 - i32.const 63 - i32.and - i64.extend_i32_s - local.set $8 - local.get $7 - i32.const 6 - i32.shr_s + local.get $9 + f64.const 184.6649652337873 + f64.mul + f64.const 6755399441055744 + f64.add + local.tee $1 + i64.reinterpret_f64 + local.tee $2 + i64.const 127 + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 i32.const 3 i32.shl - i32.const 5632 + i32.const 5664 i32.add - local.tee $7 + local.tee $18 i64.load offset=8 - local.set $4 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 - i64.load - local.get $8 - i64.shl + local.get $2 local.get $4 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $8 - i64.const 32 - i64.gt_u - if (result i64) - local.get $4 - local.get $8 - i64.const 32 - i64.sub - i64.shl - local.get $7 - i64.load offset=16 - i64.const 96 - local.get $8 - i64.sub - i64.shr_u - i64.or - else - local.get $4 - i64.const 32 - local.get $8 - i64.sub - i64.shr_u - end - local.get $9 - i64.mul - i64.const 32 - i64.shr_u + i64.extend_i32_u i64.add - local.tee $4 - i64.const 2 + i64.const 45 i64.shl - local.tee $8 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - i32.const 0 - local.get $4 - i64.const 62 - i64.shr_u - local.get $8 - i64.const 63 - i64.shr_u i64.add - i32.wrap_i64 - local.tee $3 - i32.sub - local.get $3 - local.get $5 - select - end - local.set $3 - global.get $~lib/math/rempio2f_y - local.set $1 - local.get $3 - i32.const 1 - i32.and - if (result f32) - local.get $1 - local.get $1 + local.set $5 + local.get $9 local.get $1 + f64.const -6755399441055744 + f64.add + local.tee $1 + f64.const -0.005415212348111709 f64.mul - local.tee $2 + f64.add local.get $1 + f64.const -1.2864023111638346e-14 f64.mul - local.tee $1 - local.get $2 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 f64.add + local.get $0 + f64.add + local.tee $0 + local.get $0 f64.mul + local.set $1 + local.get $18 + f64.load + local.get $0 f64.add local.get $1 - local.get $2 - local.get $2 - f64.mul - f64.mul - local.get $2 - f64.const 2.718311493989822e-06 + local.get $0 + f64.const 0.16666666666665886 f64.mul - f64.const -1.9839334836096632e-04 + f64.const 0.49999999999996786 f64.add f64.mul f64.add - f32.demote_f64 - else - local.get $1 local.get $1 - f64.mul - local.tee $1 local.get $1 f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 + local.get $0 + f64.const 0.008333335853059549 f64.mul - f64.const 1 + f64.const 0.0416666808410674 f64.add - local.get $2 - f64.const 0.04166662332373906 f64.mul f64.add - local.get $2 - local.get $1 - f64.mul + local.set $0 + local.get $3 + i32.eqz + if + block $~lib/util/math/specialcase|inlined.1 (result f64) + local.get $2 + i64.const 2147483648 + i64.and + i64.eqz + if + local.get $5 + i64.const 4544132024016830464 + i64.sub + f64.reinterpret_i64 + local.tee $1 + local.get $1 + local.get $0 + f64.mul + f64.add + f64.const 5486124068793688683255936e279 + f64.mul + br $~lib/util/math/specialcase|inlined.1 + end + local.get $5 + i64.const 4602678819172646912 + i64.add + local.tee $2 + f64.reinterpret_i64 + local.tee $1 + local.get $0 + f64.mul + local.set $0 + local.get $1 + local.get $0 + f64.add + local.tee $7 + f64.abs + f64.const 1 + f64.lt + if (result f64) + f64.const 1 + local.get $7 + f64.copysign + local.tee $8 + local.get $7 + f64.add + local.tee $9 + local.get $8 + local.get $9 + f64.sub + local.get $7 + f64.add + local.get $1 + local.get $7 + f64.sub + local.get $0 + f64.add + f64.add + f64.add + local.get $8 + f64.sub + local.tee $0 + f64.const 0 + f64.eq + if (result f64) + local.get $2 + i64.const -9223372036854775808 + i64.and + f64.reinterpret_i64 + else + local.get $0 + end + else + local.get $7 + end + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp_inline|inlined.0 + end + local.get $5 + f64.reinterpret_i64 + local.tee $1 local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add + local.get $0 f64.mul f64.add - f32.demote_f64 end - local.tee $0 - f32.neg + end + ) + (func $std/math/test_atan2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 f64) + block $__inlined_func$~lib/math/NativeMath.atan2 (result f64) + local.get $1 local.get $0 - local.get $3 - i32.const 1 - i32.add + f64.add + local.get $0 + local.get $0 + f64.ne + local.get $1 + local.get $1 + f64.ne + i32.or + br_if $__inlined_func$~lib/math/NativeMath.atan2 + drop + local.get $0 + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $9 + local.get $1 + i64.reinterpret_f64 + local.tee $7 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $8 + local.get $7 + i32.wrap_i64 + local.tee $6 + local.get $8 + i32.const 1072693248 + i32.sub + i32.or + i32.eqz + if + local.get $0 + call $~lib/math/NativeMath.atan + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $8 + i32.const 30 + i32.shr_u i32.const 2 i32.and + local.get $9 + i32.const 31 + i32.shr_u + i32.or + local.set $4 + local.get $9 + i32.const 2147483647 + i32.and + local.tee $9 + local.get $5 + i32.wrap_i64 + i32.or + i32.eqz + if + block $break|0 + block $case3|0 + block $case2|0 + block $case0|0 + local.get $4 + br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0 + end + local.get $0 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + f64.const 3.141592653589793 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + f64.const -3.141592653589793 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + end + block $folding-inner0 + local.get $8 + i32.const 2147483647 + i32.and + local.tee $8 + local.get $6 + i32.or + i32.eqz + br_if $folding-inner0 + local.get $8 + i32.const 2146435072 + i32.eq + if + local.get $9 + i32.const 2146435072 + i32.eq + if (result f64) + f64.const 2.356194490192345 + f64.const 0.7853981633974483 + local.get $4 + i32.const 2 + i32.and + select + local.tee $10 + f64.neg + local.get $10 + local.get $4 + i32.const 1 + i32.and + select + else + f64.const 3.141592653589793 + f64.const 0 + local.get $4 + i32.const 2 + i32.and + select + local.tee $10 + f64.neg + local.get $10 + local.get $4 + i32.const 1 + i32.and + select + end + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $9 + i32.const 2146435072 + i32.eq + local.get $8 + i32.const 67108864 + i32.add + local.get $9 + i32.lt_u + i32.or + br_if $folding-inner0 + local.get $9 + i32.const 67108864 + i32.add + local.get $8 + i32.lt_u + i32.const 0 + local.get $4 + i32.const 2 + i32.and + select + if (result f64) + f64.const 0 + else + local.get $0 + local.get $1 + f64.div + f64.abs + call $~lib/math/NativeMath.atan + end + local.set $10 + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $4 + br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 + end + local.get $10 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $10 + f64.neg + br $__inlined_func$~lib/math/NativeMath.atan2 + end + f64.const 3.141592653589793 + local.get $10 + f64.const -1.2246467991473532e-16 + f64.add + f64.sub + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $10 + f64.const -1.2246467991473532e-16 + f64.add + f64.const -3.141592653589793 + f64.add + br $__inlined_func$~lib/math/NativeMath.atan2 + end + unreachable + end + f64.const -1.5707963267948966 + f64.const 1.5707963267948966 + local.get $4 + i32.const 1 + i32.and select - return end - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 + local.get $3 + call $std/math/check + if (result i32) + local.get $0 + local.get $1 + call $~lib/bindings/dom/Math.atan2 + local.get $2 + local.get $3 + call $std/math/check + else + i32.const 0 + end ) - (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) - (local $1 i32) - (local $2 f64) + (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 f64) - (local $7 f64) - (local $8 f64) local.get $0 - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.set $3 - local.get $5 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.set $4 - local.get $3 - i32.const 1078159482 - i32.ge_u + local.get $0 + f32.ne + local.get $1 + local.get $1 + f32.ne + i32.or if + local.get $1 local.get $0 + f32.add + return + end + local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 1065353216 + i32.eq + if local.get $0 - f64.ne + call $~lib/math/NativeMathf.atan + return + end + local.get $3 + i32.const 30 + i32.shr_u + i32.const 2 + i32.and + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 31 + i32.shr_u + i32.or + local.set $2 + local.get $4 + i32.const 2147483647 + i32.and + local.tee $4 + i32.eqz + if + block $break|0 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $2 + br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 + end + local.get $0 + return + end + f32.const 3.1415927410125732 + return + end + f32.const -3.1415927410125732 + return + end + end + block $folding-inner0 + local.get $3 + i32.const 2147483647 + i32.and + local.tee $3 + i32.eqz + br_if $folding-inner0 + local.get $3 + i32.const 2139095040 + i32.eq if + local.get $4 + i32.const 2139095040 + i32.eq + if (result f32) + f32.const 2.356194496154785 + f32.const 0.7853981852531433 + local.get $2 + i32.const 2 + i32.and + select + local.tee $0 + f32.neg + local.get $0 + local.get $2 + i32.const 1 + i32.and + select + else + f32.const 3.1415927410125732 + f32.const 0 + local.get $2 + i32.const 2 + i32.and + select + local.tee $0 + f32.neg + local.get $0 + local.get $2 + i32.const 1 + i32.and + select + end + return + end + local.get $4 + i32.const 2139095040 + i32.eq + local.get $3 + i32.const 218103808 + i32.add + local.get $4 + i32.lt_u + i32.or + br_if $folding-inner0 + local.get $4 + i32.const 218103808 + i32.add + local.get $3 + i32.lt_u + i32.const 0 + local.get $2 + i32.const 2 + i32.and + select + if (result f32) + f32.const 0 + else + local.get $0 + local.get $1 + f32.div + f32.abs + call $~lib/math/NativeMathf.atan + end + local.set $0 + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $2 + br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 + end + local.get $0 + return + end + local.get $0 + f32.neg + return + end + f32.const 3.1415927410125732 + local.get $0 + f32.const 8.742277657347586e-08 + f32.add + f32.sub + return + end local.get $0 + f32.const 8.742277657347586e-08 + f32.add + f32.const -3.1415927410125732 + f32.add return end - local.get $4 - if - f64.const -1 - return - end + unreachable + end + f32.const -1.5707963705062866 + f32.const 1.5707963705062866 + local.get $2 + i32.const 1 + i32.and + select + ) + (func $std/math/test_exp2 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + (local $6 f64) + (local $7 i32) + (local $8 i64) + (local $9 f64) + (local $10 f64) + block $~lib/util/math/exp2_lut|inlined.0 (result f64) local.get $0 - f64.const 709.782712893384 - f64.gt + i64.reinterpret_f64 + local.tee $4 + i64.const 52 + i64.shr_u + i32.wrap_i64 + i32.const 2047 + i32.and + local.tee $3 + i32.const 969 + i32.sub + local.tee $7 + i32.const 63 + i32.ge_u if - local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - return + f64.const 1 + local.get $7 + i32.const -2147483648 + i32.ge_u + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + local.get $3 + i32.const 1033 + i32.ge_u + if + f64.const 0 + local.get $4 + i64.const -4503599627370496 + i64.eq + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + local.get $0 + f64.const 1 + f64.add + local.get $3 + i32.const 2047 + i32.ge_u + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + f64.const inf + local.get $4 + i64.const 0 + i64.ge_s + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + f64.const 0 + local.get $4 + i64.const -4570929321408987136 + i64.ge_u + br_if $~lib/util/math/exp2_lut|inlined.0 + drop + end + local.get $3 + i32.const 0 + local.get $4 + i64.const 1 + i64.shl + i64.const -9143996093422370816 + i64.le_u + select + local.set $3 end - end - local.get $3 - i32.const 1071001154 - i32.gt_u - if local.get $0 - i32.const 1 - local.get $4 - i32.const 1 + f64.const 52776558133248 + f64.add + local.tee $5 + i64.reinterpret_f64 + local.tee $8 + i64.const 127 + i64.and + i64.const 1 + i64.shl + i32.wrap_i64 + i32.const 3 i32.shl - i32.sub + i32.const 5664 + i32.add + local.tee $7 + i64.load offset=8 + local.get $8 + i64.const 45 + i64.shl + i64.add + local.set $4 local.get $0 - f64.const 1.4426950408889634 + local.get $5 + f64.const -52776558133248 + f64.add + f64.sub + local.tee $5 + local.get $5 + f64.mul + local.set $6 + local.get $7 + f64.load + local.get $5 + f64.const 0.6931471805599453 f64.mul - f64.const 0.5 - local.get $0 - f64.copysign f64.add - i32.trunc_sat_f64_s - local.get $3 - i32.const 1072734898 - i32.lt_u - select - local.tee $1 - f64.convert_i32_s - local.tee $0 - f64.const 0.6931471803691238 + local.get $6 + local.get $5 + f64.const 0.0555041086686087 f64.mul - f64.sub - local.tee $2 - local.get $2 - local.get $0 - f64.const 1.9082149292705877e-10 + f64.const 0.24022650695909065 + f64.add f64.mul - local.tee $2 - f64.sub - local.tee $0 - f64.sub - local.get $2 - f64.sub - local.set $2 - else + f64.add + local.get $6 + local.get $6 + f64.mul + local.get $5 + f64.const 1.3332074570119598e-03 + f64.mul + f64.const 0.009618131975721055 + f64.add + f64.mul + f64.add + local.set $5 local.get $3 - i32.const 1016070144 - i32.lt_u + i32.eqz if - local.get $0 - return + block $~lib/util/math/specialcase2|inlined.0 (result f64) + local.get $8 + i64.const 2147483648 + i64.and + i64.eqz + if + local.get $4 + i64.const 4503599627370496 + i64.sub + f64.reinterpret_i64 + local.tee $6 + local.get $5 + f64.mul + local.get $6 + f64.add + f64.const 2 + f64.mul + br $~lib/util/math/specialcase2|inlined.0 + end + local.get $4 + i64.const 4602678819172646912 + i64.add + f64.reinterpret_i64 + local.tee $6 + local.get $5 + f64.mul + local.tee $9 + local.get $6 + f64.add + local.tee $10 + f64.const 1 + f64.lt + if (result f64) + local.get $10 + f64.const 1 + f64.add + local.tee $5 + f64.const 1 + local.get $5 + f64.sub + local.get $10 + f64.add + local.get $6 + local.get $10 + f64.sub + local.get $9 + f64.add + f64.add + f64.add + f64.const -1 + f64.add + else + local.get $10 + end + f64.const 2.2250738585072014e-308 + f64.mul + end + br $~lib/util/math/exp2_lut|inlined.0 end - end - local.get $0 - local.get $0 - f64.const 0.5 - f64.mul - local.tee $7 - f64.mul - local.tee $6 - local.get $6 - f64.mul - local.set $8 - f64.const 3 - local.get $6 - f64.const -0.03333333333333313 - f64.mul - f64.const 1 - f64.add - local.get $8 - local.get $6 - f64.const -7.93650757867488e-05 - f64.mul - f64.const 1.5873015872548146e-03 - f64.add - local.get $8 - local.get $6 - f64.const -2.0109921818362437e-07 - f64.mul - f64.const 4.008217827329362e-06 - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.tee $8 - local.get $7 - f64.mul - f64.sub - local.set $7 - local.get $6 - local.get $8 - local.get $7 - f64.sub - f64.const 6 - local.get $0 - local.get $7 - f64.mul - f64.sub - f64.div - f64.mul - local.set $7 - local.get $1 - i32.eqz - if - local.get $0 - local.get $0 - local.get $7 + local.get $4 + f64.reinterpret_i64 + local.tee $6 + local.get $5 f64.mul local.get $6 - f64.sub - f64.sub - return + f64.add end - local.get $0 - local.get $7 - local.get $2 - f64.sub - f64.mul - local.get $2 - f64.sub - local.get $6 - f64.sub - local.set $2 local.get $1 - i32.const -1 - i32.eq - if + local.get $2 + call $std/math/check + if (result i32) + f64.const 2 local.get $0 + call $~lib/bindings/dom/Math.pow + local.get $1 local.get $2 - f64.sub - f64.const 0.5 - f64.mul - f64.const -0.5 - f64.add - return + call $std/math/check + else + i32.const 0 end + ) + (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (local $4 i64) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + (local $13 f64) local.get $1 - i32.const 1 - i32.eq + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $5 + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $4 + i64.gt_u if - local.get $0 - f64.const -0.25 - f64.lt - if - local.get $2 - local.get $0 - f64.const 0.5 - f64.add - f64.sub - f64.const -2 + local.get $4 + local.get $5 + local.set $4 + local.set $5 + end + local.get $5 + f64.reinterpret_i64 + local.tee $9 + local.set $0 + block $__inlined_func$~lib/math/NativeMath.hypot$23 + local.get $5 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $7 + i32.const 2047 + i32.eq + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 + local.get $4 + f64.reinterpret_i64 + local.tee $1 + local.set $0 + local.get $5 + i64.eqz + local.get $4 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 2047 + i32.eq + i32.or + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 + local.get $1 + local.get $9 + f64.add + local.set $0 + local.get $8 + local.get $7 + i32.sub + i32.const 64 + i32.gt_s + br_if $__inlined_func$~lib/math/NativeMath.hypot$23 + f64.const 1 + local.set $0 + local.get $8 + i32.const 1533 + i32.gt_u + if (result f64) + f64.const 5260135901548373507240989e186 + local.set $0 + local.get $1 + f64.const 1.90109156629516e-211 f64.mul - return + local.set $1 + local.get $9 + f64.const 1.90109156629516e-211 + f64.mul + else + local.get $7 + i32.const 573 + i32.lt_u + if (result f64) + f64.const 1.90109156629516e-211 + local.set $0 + local.get $1 + f64.const 5260135901548373507240989e186 + f64.mul + local.set $1 + local.get $9 + f64.const 5260135901548373507240989e186 + f64.mul + else + local.get $9 + end end - local.get $0 - local.get $2 + local.set $11 + local.get $1 + local.get $1 + local.get $1 + f64.const 134217729 + f64.mul + local.tee $9 f64.sub - f64.const 2 + local.get $9 + f64.add + local.tee $9 + f64.sub + local.set $12 + local.get $11 + local.get $11 + local.get $11 + f64.const 134217729 f64.mul - f64.const 1 + local.tee $10 + f64.sub + local.get $10 f64.add - return - end - local.get $1 - i64.extend_i32_s - i64.const 1023 - i64.add - i64.const 52 - i64.shl - f64.reinterpret_i64 - local.set $6 - local.get $1 - i32.const 0 - i32.lt_s - local.get $1 - i32.const 56 - i32.gt_s - i32.or - if + local.tee $10 + f64.sub + local.set $13 local.get $0 - local.get $2 + local.get $10 + local.get $10 + f64.mul + local.get $11 + local.get $11 + f64.mul + local.tee $0 + f64.sub + local.get $10 + local.get $10 + f64.add + local.get $13 + f64.add + local.get $13 + f64.mul + f64.add + local.get $9 + local.get $9 + f64.mul + local.get $1 + local.get $1 + f64.mul + local.tee $1 f64.sub - f64.const 1 + local.get $9 + local.get $9 f64.add - local.tee $0 - local.get $0 + local.get $12 f64.add - f64.const 8988465674311579538646525e283 + local.get $12 f64.mul + f64.add + f64.add local.get $0 - local.get $6 - f64.mul + f64.add local.get $1 - i32.const 1024 - i32.eq - select - f64.const -1 f64.add - return + f64.sqrt + f64.mul + local.set $0 end local.get $0 - f64.const 1 - i64.const 1023 + local.get $2 + local.get $3 + call $std/math/check + ) + (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) + local.get $1 + i32.const 1023 + i32.gt_s + if (result f64) + local.get $0 + f64.const 8988465674311579538646525e283 + f64.mul + local.set $0 + local.get $1 + i32.const 1023 + i32.sub + local.tee $1 + i32.const 1023 + i32.gt_s + if (result f64) + i32.const 1023 + local.get $1 + i32.const 1023 + i32.sub + local.tee $1 + local.get $1 + i32.const 1023 + i32.ge_s + select + local.set $1 + local.get $0 + f64.const 8988465674311579538646525e283 + f64.mul + else + local.get $0 + end + else + local.get $1 + i32.const -1022 + i32.lt_s + if (result f64) + local.get $0 + f64.const 2.004168360008973e-292 + f64.mul + local.set $0 + local.get $1 + i32.const 969 + i32.add + local.tee $1 + i32.const -1022 + i32.lt_s + if (result f64) + i32.const -1022 + local.get $1 + i32.const 969 + i32.add + local.tee $1 + local.get $1 + i32.const -1022 + i32.le_s + select + local.set $1 + local.get $0 + f64.const 2.004168360008973e-292 + f64.mul + else + local.get $0 + end + else + local.get $0 + end + end local.get $1 i64.extend_i32_s - i64.sub + i64.const 1023 + i64.add i64.const 52 i64.shl f64.reinterpret_i64 - local.tee $0 - f64.sub - local.get $2 - f64.sub - f64.const 1 - local.get $2 - local.get $0 - f64.add - f64.sub - local.get $1 - i32.const 20 - i32.lt_s - select - f64.add - local.get $6 f64.mul ) - (func $~lib/math/NativeMath.exp (param $0 f64) (result f64) - (local $1 i32) + (func $~lib/math/ipow64 (param $0 i64) (param $1 i64) (result i64) (local $2 i64) - (local $3 f64) - (local $4 f64) - (local $5 i32) - (local $6 i64) - (local $7 f64) - (local $8 f64) - block $~lib/util/math/exp_lut|inlined.0 (result f64) + i64.const 1 + local.set $2 + local.get $0 + i64.const 2 + i64.eq + if + i64.const 1 + local.get $1 + i64.shl + i64.const 0 + local.get $1 + i64.const 64 + i64.lt_u + select + return + end + local.get $1 + i64.const 0 + i64.le_s + if local.get $0 - i64.reinterpret_f64 - local.tee $2 - i64.const 52 - i64.shr_u - i32.wrap_i64 - i32.const 2047 - i32.and - local.tee $1 - i32.const 969 - i32.sub - local.tee $5 - i32.const 63 - i32.ge_u + i64.const -1 + i64.eq if - f64.const 1 - local.get $5 - i32.const -2147483648 - i32.ge_u - br_if $~lib/util/math/exp_lut|inlined.0 - drop + i64.const -1 + i64.const 1 local.get $1 - i32.const 1033 - i32.ge_u - if - f64.const 0 - local.get $2 - i64.const -4503599627370496 - i64.eq - br_if $~lib/util/math/exp_lut|inlined.0 - drop - local.get $0 - f64.const 1 - f64.add - local.get $1 - i32.const 2047 - i32.ge_u - br_if $~lib/util/math/exp_lut|inlined.0 - drop - f64.const 0 - f64.const inf - local.get $2 - i64.const 0 - i64.lt_s - select - br $~lib/util/math/exp_lut|inlined.0 - end - i32.const 0 - local.set $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + return end + local.get $1 + i64.eqz + i64.extend_i32_u local.get $0 - f64.const 184.6649652337873 - f64.mul - f64.const 6755399441055744 - f64.add - local.tee $3 - i64.reinterpret_f64 - local.tee $6 - i64.const 127 - i64.and i64.const 1 - i64.shl - i32.wrap_i64 - i32.const 3 - i32.shl - i32.const 5664 - i32.add - local.tee $5 - i64.load offset=8 - local.get $6 - i64.const 45 - i64.shl - i64.add - local.set $2 - local.get $0 - local.get $3 - f64.const -6755399441055744 - f64.add - local.tee $0 - f64.const -0.005415212348111709 - f64.mul - f64.add - local.get $0 - f64.const -1.2864023111638346e-14 - f64.mul - f64.add - local.tee $0 - local.get $0 - f64.mul - local.set $3 - local.get $5 - f64.load - local.get $0 - f64.add - local.get $3 - local.get $0 - f64.const 0.16666666666665886 - f64.mul - f64.const 0.49999999999996786 - f64.add - f64.mul - f64.add - local.get $3 - local.get $3 - f64.mul - local.get $0 - f64.const 0.008333335853059549 - f64.mul - f64.const 0.0416666808410674 - f64.add - f64.mul - f64.add - local.set $0 + i64.eq + i64.extend_i32_u + i64.or + return + else local.get $1 - i32.eqz + i64.const 1 + i64.eq if - block $~lib/util/math/specialcase|inlined.0 (result f64) - local.get $6 - i64.const 2147483648 - i64.and - i64.eqz + local.get $0 + return + else + local.get $1 + i64.const 2 + i64.eq + if + local.get $0 + local.get $0 + i64.mul + return + else + local.get $1 + i64.const 64 + i64.lt_s if + block $break|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + i32.const 63 + local.get $1 + i64.clz + i32.wrap_i64 + i32.sub + br_table $case5|0 $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $0 + i64.const 1 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + end + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + end local.get $2 - i64.const 4544132024016830464 - i64.sub - f64.reinterpret_i64 - local.tee $3 - local.get $3 - local.get $0 - f64.mul - f64.add - f64.const 5486124068793688683255936e279 - f64.mul - br $~lib/util/math/specialcase|inlined.0 + return end - local.get $2 - i64.const 4602678819172646912 - i64.add - local.tee $2 - f64.reinterpret_i64 - local.tee $3 + end + end + end + loop $while-continue|1 + local.get $1 + i64.const 0 + i64.ne + if + local.get $0 + local.get $2 + i64.mul + local.get $2 + local.get $1 + i64.const 1 + i64.and + i32.wrap_i64 + select + local.set $2 + local.get $1 + i64.const 1 + i64.shr_u + local.set $1 + local.get $0 + local.get $0 + i64.mul + local.set $0 + br $while-continue|1 + end + end + local.get $2 + ) + (func $std/math/test_round (param $0 f64) (param $1 f64) (result i32) + (local $2 f64) + local.get $0 + f64.ceil + local.tee $2 + local.get $2 + f64.const -1 + f64.add + local.get $2 + f64.const -0.5 + f64.add + local.get $0 + f64.le + select + local.get $1 + f64.const 0 + call $std/math/check + ) + (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 f64) + local.get $1 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $5 + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $4 + i32.gt_u + if + local.get $4 + local.get $5 + local.set $4 + local.set $5 + end + local.get $4 + f32.reinterpret_i32 + local.set $0 + block $__inlined_func$~lib/math/NativeMathf.hypot$24 (result f32) + local.get $5 + f32.reinterpret_i32 + local.tee $1 + local.get $5 + i32.const 2139095040 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 + drop + local.get $0 + local.get $1 + f32.add + local.get $5 + i32.eqz + local.get $4 + i32.const 2139095040 + i32.ge_u + i32.or + local.get $4 + local.get $5 + i32.sub + i32.const 209715200 + i32.ge_u + i32.or + br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 + drop + local.get $4 + i32.const 1568669696 + i32.ge_u + if (result f32) + local.get $0 + f32.const 8.077935669463161e-28 + f32.mul + local.set $0 + local.get $1 + f32.const 8.077935669463161e-28 + f32.mul + local.set $1 + f32.const 1237940039285380274899124e3 + else + local.get $5 + i32.const 562036736 + i32.lt_u + if (result f32) local.get $0 - f64.mul - local.set $7 - local.get $3 - local.get $7 - f64.add - local.tee $4 - f64.abs - f64.const 1 - f64.lt - if (result f64) - f64.const 1 - local.get $4 - f64.copysign - local.tee $8 - local.get $4 - f64.add - local.tee $0 - local.get $8 - local.get $0 - f64.sub - local.get $4 - f64.add - local.get $3 - local.get $4 - f64.sub - local.get $7 - f64.add - f64.add - f64.add - local.get $8 - f64.sub - local.tee $0 - f64.const 0 - f64.eq - if (result f64) - local.get $2 - i64.const -9223372036854775808 - i64.and - f64.reinterpret_i64 - else - local.get $0 - end - else - local.get $4 - end - f64.const 2.2250738585072014e-308 - f64.mul + f32.const 1237940039285380274899124e3 + f32.mul + local.set $0 + local.get $1 + f32.const 1237940039285380274899124e3 + f32.mul + local.set $1 + f32.const 8.077935669463161e-28 + else + f32.const 1 end - br $~lib/util/math/exp_lut|inlined.0 end - local.get $2 - f64.reinterpret_i64 - local.tee $3 - local.get $3 local.get $0 + f64.promote_f32 + local.tee $7 + local.get $7 + f64.mul + local.get $1 + f64.promote_f32 + local.tee $7 + local.get $7 f64.mul f64.add + f32.demote_f64 + f32.sqrt + f32.mul end + local.get $2 + local.get $3 + call $std/math/check ) - (func $std/math/test_cosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32) + (local $1 f64) + (local $2 i64) (local $3 i32) - (local $4 i64) + (local $4 i32) (local $5 f64) - block $__inlined_func$~lib/math/NativeMath.cosh$20 (result f64) + local.get $0 + f64.promote_f32 + local.set $1 + block $~lib/util/math/expf_lut|inlined.0 (result f32) local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $4 - f64.reinterpret_i64 - local.set $5 - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 + i32.reinterpret_f32 local.tee $3 - i32.const 1072049730 - i32.lt_u + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + local.tee $4 + i32.const 1067 + i32.ge_u if - f64.const 1 + f32.const 0 local.get $3 - i32.const 1045430272 - i32.lt_u - br_if $__inlined_func$~lib/math/NativeMath.cosh$20 + i32.const -8388608 + i32.eq + br_if $~lib/util/math/expf_lut|inlined.0 + drop + local.get $0 + local.get $0 + f32.add + local.get $4 + i32.const 2040 + i32.ge_u + br_if $~lib/util/math/expf_lut|inlined.0 + drop + local.get $0 + f32.const 1701411834604692317316873e14 + f32.mul + local.get $0 + f32.const 88.72283172607422 + f32.gt + br_if $~lib/util/math/expf_lut|inlined.0 + drop + f32.const 0 + local.get $0 + f32.const -103.97207641601562 + f32.lt + br_if $~lib/util/math/expf_lut|inlined.0 drop - local.get $5 - call $~lib/math/NativeMath.expm1 - local.tee $5 - local.get $5 - f64.mul - local.get $5 - local.get $5 - f64.add - f64.const 2 - f64.add - f64.div - f64.const 1 - f64.add - br $__inlined_func$~lib/math/NativeMath.cosh$20 - end - local.get $3 - i32.const 1082535490 - i32.lt_u - if - local.get $5 - call $~lib/math/NativeMath.exp - local.tee $5 - f64.const 1 - local.get $5 - f64.div - f64.add - f64.const 0.5 - f64.mul - br $__inlined_func$~lib/math/NativeMath.cosh$20 end + local.get $1 + f64.const 46.16624130844683 + f64.mul + local.tee $1 + f64.const 6755399441055744 + f64.add + local.tee $5 + i64.reinterpret_f64 + local.set $2 + local.get $1 local.get $5 - f64.const -1416.0996898839683 + f64.const -6755399441055744 f64.add - call $~lib/math/NativeMath.exp - f64.const 2247116418577894884661631e283 + f64.sub + local.tee $1 + f64.const 0.021660849396613134 f64.mul - f64.const 2247116418577894884661631e283 + f64.const 1 + f64.add + local.get $1 + f64.const 1.6938359250920212e-06 f64.mul - end - local.get $1 - local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.cosh + f64.const 2.3459809789509004e-04 + f64.add + local.get $1 local.get $1 + f64.mul + f64.mul + f64.add local.get $2 - call $std/math/check - else - i32.const 0 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.const 7712 + i32.add + i64.load + local.get $2 + i64.const 47 + i64.shl + i64.add + f64.reinterpret_i64 + f64.mul + f32.demote_f64 end ) - (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32) - (local $1 i32) + (func $std/math/test_roundf (param $0 f32) (param $1 f32) (result i32) (local $2 f32) + local.get $0 + f32.ceil + local.tee $2 + local.get $2 + f32.const -1 + f32.add + local.get $2 + f32.const -0.5 + f32.add + local.get $0 + f32.le + select + local.get $1 + f32.const 0 + call $std/math/check + ) + (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) + (local $1 i32) + (local $2 f64) (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 f32) - (local $7 f32) + (local $4 i32) + (local $5 i64) + (local $6 f64) + (local $7 f64) + (local $8 f64) local.get $0 - i32.reinterpret_f32 + i64.reinterpret_f64 local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 i32.const 2147483647 i32.and local.set $3 local.get $5 - i32.const 31 - i32.shr_u - local.set $5 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.set $4 local.get $3 - i32.const 1100331076 + i32.const 1078159482 i32.ge_u if - local.get $3 - i32.const 2139095040 - i32.gt_u + local.get $0 + local.get $0 + f64.ne if local.get $0 return end - local.get $5 + local.get $4 if - f32.const -1 + f64.const -1 return end - local.get $3 - i32.const 1118925335 - i32.gt_u + local.get $0 + f64.const 709.782712893384 + f64.gt if local.get $0 - f32.const 1701411834604692317316873e14 - f32.mul + f64.const 8988465674311579538646525e283 + f64.mul return end end local.get $3 - i32.const 1051816472 + i32.const 1071001154 i32.gt_u if local.get $0 i32.const 1 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.sub local.get $0 - f32.const 1.4426950216293335 - f32.mul - f32.const 0.5 + f64.const 1.4426950408889634 + f64.mul + f64.const 0.5 local.get $0 - f32.copysign - f32.add - i32.trunc_sat_f32_s + f64.copysign + f64.add + i32.trunc_sat_f64_s local.get $3 - i32.const 1065686418 + i32.const 1072734898 i32.lt_u select local.tee $1 - f32.convert_i32_s + f64.convert_i32_s local.tee $0 - f32.const 0.6931381225585938 - f32.mul - f32.sub + f64.const 0.6931471803691238 + f64.mul + f64.sub local.tee $2 local.get $2 local.get $0 - f32.const 9.05800061445916e-06 - f32.mul + f64.const 1.9082149292705877e-10 + f64.mul local.tee $2 - f32.sub + f64.sub local.tee $0 - f32.sub + f64.sub local.get $2 - f32.sub + f64.sub local.set $2 else local.get $3 - i32.const 855638016 + i32.const 1016070144 i32.lt_u if local.get $0 return end end - f32.const 3 local.get $0 local.get $0 - f32.const 0.5 - f32.mul - local.tee $6 - f32.mul - local.tee $4 - local.get $4 - f32.const 1.5807170420885086e-03 - f32.mul - f32.const -0.03333321213722229 - f32.add - f32.mul - f32.const 1 - f32.add + f64.const 0.5 + f64.mul local.tee $7 + f64.mul + local.tee $6 local.get $6 - f32.mul - f32.sub - local.set $6 - local.get $4 + f64.mul + local.set $8 + f64.const 3 + local.get $6 + f64.const -0.03333333333333313 + f64.mul + f64.const 1 + f64.add + local.get $8 + local.get $6 + f64.const -7.93650757867488e-05 + f64.mul + f64.const 1.5873015872548146e-03 + f64.add + local.get $8 + local.get $6 + f64.const -2.0109921818362437e-07 + f64.mul + f64.const 4.008217827329362e-06 + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.tee $8 local.get $7 + f64.mul + f64.sub + local.set $7 local.get $6 - f32.sub - f32.const 6 + local.get $8 + local.get $7 + f64.sub + f64.const 6 local.get $0 - local.get $6 - f32.mul - f32.sub - f32.div - f32.mul - local.set $6 + local.get $7 + f64.mul + f64.sub + f64.div + f64.mul + local.set $7 local.get $1 i32.eqz if local.get $0 local.get $0 + local.get $7 + f64.mul local.get $6 - f32.mul - local.get $4 - f32.sub - f32.sub + f64.sub + f64.sub return end local.get $0 - local.get $6 + local.get $7 local.get $2 - f32.sub - f32.mul + f64.sub + f64.mul local.get $2 - f32.sub - local.get $4 - f32.sub + f64.sub + local.get $6 + f64.sub local.set $2 local.get $1 i32.const -1 @@ -5286,11 +6600,11 @@ if local.get $0 local.get $2 - f32.sub - f32.const 0.5 - f32.mul - f32.const -0.5 - f32.add + f64.sub + f64.const 0.5 + f64.mul + f64.const -0.5 + f64.add return end local.get $1 @@ -5298,34 +6612,35 @@ i32.eq if local.get $0 - f32.const -0.25 - f32.lt + f64.const -0.25 + f64.lt if local.get $2 local.get $0 - f32.const 0.5 - f32.add - f32.sub - f32.const -2 - f32.mul + f64.const 0.5 + f64.add + f64.sub + f64.const -2 + f64.mul return end local.get $0 local.get $2 - f32.sub - f32.const 2 - f32.mul - f32.const 1 - f32.add + f64.sub + f64.const 2 + f64.mul + f64.const 1 + f64.add return end local.get $1 - i32.const 127 - i32.add - i32.const 23 - i32.shl - f32.reinterpret_i32 - local.set $4 + i64.extend_i32_s + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret_i64 + local.set $6 local.get $1 i32.const 0 i32.lt_s @@ -5336,413 +6651,161 @@ if local.get $0 local.get $2 - f32.sub - f32.const 1 - f32.add + f64.sub + f64.const 1 + f64.add local.tee $0 local.get $0 - f32.add - f32.const 1701411834604692317316873e14 - f32.mul + f64.add + f64.const 8988465674311579538646525e283 + f64.mul local.get $0 - local.get $4 - f32.mul + local.get $6 + f64.mul local.get $1 - i32.const 128 + i32.const 1024 i32.eq select - f32.const -1 - f32.add + f64.const -1 + f64.add return end local.get $0 - f32.const 1 - i32.const 127 + f64.const 1 + i64.const 1023 local.get $1 - i32.sub - i32.const 23 - i32.shl - f32.reinterpret_i32 + i64.extend_i32_s + i64.sub + i64.const 52 + i64.shl + f64.reinterpret_i64 local.tee $0 - f32.sub + f64.sub local.get $2 - f32.sub - f32.const 1 + f64.sub + f64.const 1 local.get $2 local.get $0 - f32.add - f32.sub + f64.add + f64.sub local.get $1 i32.const 20 i32.lt_s select - f32.add - local.get $4 - f32.mul + f64.add + local.get $6 + f64.mul ) - (func $~lib/math/NativeMathf.exp (param $0 f32) (result f32) - (local $1 f64) - (local $2 i64) - (local $3 i32) + (func $std/math/test_atanhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 f32) (local $4 i32) - (local $5 f64) - block $~lib/util/math/expf_lut|inlined.0 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - local.tee $4 - i32.const 1067 + local.get $0 + f32.abs + local.set $3 + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 1056964608 + i32.lt_u + if (result f32) + local.get $4 + i32.const 796917760 i32.ge_u - if - f32.const 0 + if (result f32) + local.get $3 local.get $3 - i32.const -8388608 - i32.eq - br_if $~lib/util/math/expf_lut|inlined.0 - drop - local.get $0 - local.get $0 f32.add - local.get $4 - i32.const 2040 - i32.ge_u - br_if $~lib/util/math/expf_lut|inlined.0 - drop - local.get $0 - f32.const 1701411834604692317316873e14 - f32.mul - local.get $0 - f32.const 88.72283172607422 - f32.gt - br_if $~lib/util/math/expf_lut|inlined.0 - drop - f32.const 0 - local.get $0 - f32.const -103.97207641601562 - f32.lt - br_if $~lib/util/math/expf_lut|inlined.0 - drop - end - local.get $0 - f64.promote_f32 - f64.const 46.16624130844683 - f64.mul - local.tee $1 - f64.const 6755399441055744 - f64.add - local.tee $5 - i64.reinterpret_f64 - local.set $2 - local.get $1 - local.get $5 - f64.const -6755399441055744 - f64.add - f64.sub - local.tee $1 - f64.const 0.021660849396613134 - f64.mul - f64.const 1 - f64.add - local.get $1 - f64.const 1.6938359250920212e-06 - f64.mul - f64.const 2.3459809789509004e-04 - f64.add - local.get $1 - local.get $1 - f64.mul - f64.mul - f64.add - local.get $2 - i32.wrap_i64 - i32.const 31 - i32.and - i32.const 3 - i32.shl - i32.const 7712 - i32.add - i64.load - local.get $2 - i64.const 47 - i64.shl - i64.add - f64.reinterpret_i64 - f64.mul - f32.demote_f64 - end - ) - (func $std/math/test_coshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - block $__inlined_func$~lib/math/NativeMathf.cosh$21 (result f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $3 - f32.reinterpret_i32 - local.set $0 - local.get $3 - i32.const 1060205079 - i32.lt_u - if + local.get $3 f32.const 1 local.get $3 - i32.const 964689920 - i32.lt_u - br_if $__inlined_func$~lib/math/NativeMathf.cosh$21 - drop - local.get $0 - call $~lib/math/NativeMathf.expm1 - local.tee $0 - local.get $0 - f32.mul - local.get $0 - local.get $0 - f32.add - f32.const 2 - f32.add + f32.sub f32.div f32.const 1 f32.add - br $__inlined_func$~lib/math/NativeMathf.cosh$21 - end - local.get $3 - i32.const 1118925335 - i32.lt_u - if - local.get $0 - call $~lib/math/NativeMathf.exp - local.tee $0 - f32.const 0.5 f32.mul + call $~lib/math/NativeMathf.log1p f32.const 0.5 - local.get $0 - f32.div - f32.add - br $__inlined_func$~lib/math/NativeMathf.cosh$21 + f32.mul + else + local.get $3 end - local.get $0 - f32.const -162.88958740234375 - f32.add - call $~lib/math/NativeMathf.exp - f32.const 1661534994731144841129758e11 + else + local.get $3 + f32.const 1 + local.get $3 + f32.sub + f32.div + f32.const 2 f32.mul - f32.const 1661534994731144841129758e11 + call $~lib/math/NativeMathf.log1p + f32.const 0.5 f32.mul end + local.get $0 + f32.copysign local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_exp2 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i32) - (local $4 i64) + (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i64) + (local $4 f64) (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 i64) - (local $9 f64) - (local $10 f64) - block $~lib/util/math/exp2_lut|inlined.0 (result f64) - local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 52 - i64.shr_u - i32.wrap_i64 - i32.const 2047 - i32.and - local.tee $3 - i32.const 969 - i32.sub - local.tee $7 - i32.const 63 - i32.ge_u - if - f64.const 1 - local.get $7 - i32.const -2147483648 - i32.ge_u - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - local.get $3 - i32.const 1033 - i32.ge_u - if - f64.const 0 - local.get $4 - i64.const -4503599627370496 - i64.eq - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - local.get $0 - f64.const 1 - f64.add - local.get $3 - i32.const 2047 - i32.ge_u - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - f64.const inf - local.get $4 - i64.const 0 - i64.ge_s - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - f64.const 0 - local.get $4 - i64.const -4570929321408987136 - i64.ge_u - br_if $~lib/util/math/exp2_lut|inlined.0 - drop - end - local.get $3 - i32.const 0 + local.get $0 + f64.abs + local.set $5 + local.get $0 + i64.reinterpret_f64 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $3 + i64.const 1022 + i64.lt_u + if (result f64) + local.get $3 + i64.const 991 + i64.ge_u + if (result f64) + local.get $5 + local.get $5 + f64.add + local.tee $4 local.get $4 - i64.const 1 - i64.shl - i64.const -9143996093422370816 - i64.le_u - select - local.set $3 + local.get $5 + f64.mul + f64.const 1 + local.get $5 + f64.sub + f64.div + f64.add + call $~lib/math/NativeMath.log1p + f64.const 0.5 + f64.mul + else + local.get $5 end - local.get $0 - f64.const 52776558133248 - f64.add - local.tee $5 - i64.reinterpret_f64 - local.tee $8 - i64.const 127 - i64.and - i64.const 1 - i64.shl - i32.wrap_i64 - i32.const 3 - i32.shl - i32.const 5664 - i32.add - local.tee $7 - i64.load offset=8 - local.get $8 - i64.const 45 - i64.shl - i64.add - local.set $4 - local.get $0 - local.get $5 - f64.const -52776558133248 - f64.add - f64.sub - local.tee $5 - local.get $5 - f64.mul - local.set $6 - local.get $7 - f64.load - local.get $5 - f64.const 0.6931471805599453 - f64.mul - f64.add - local.get $6 + else local.get $5 - f64.const 0.0555041086686087 - f64.mul - f64.const 0.24022650695909065 - f64.add - f64.mul - f64.add - local.get $6 - local.get $6 - f64.mul + f64.const 1 local.get $5 - f64.const 1.3332074570119598e-03 - f64.mul - f64.const 0.009618131975721055 - f64.add + f64.sub + f64.div + f64.const 2 f64.mul - f64.add - local.set $5 - local.get $3 - i32.eqz - if - block $~lib/util/math/specialcase2|inlined.0 (result f64) - local.get $8 - i64.const 2147483648 - i64.and - i64.eqz - if - local.get $4 - i64.const 4503599627370496 - i64.sub - f64.reinterpret_i64 - local.tee $6 - local.get $5 - f64.mul - local.get $6 - f64.add - f64.const 2 - f64.mul - br $~lib/util/math/specialcase2|inlined.0 - end - local.get $4 - i64.const 4602678819172646912 - i64.add - f64.reinterpret_i64 - local.tee $6 - local.get $5 - f64.mul - local.tee $9 - local.get $6 - f64.add - local.tee $10 - f64.const 1 - f64.lt - if (result f64) - local.get $10 - f64.const 1 - f64.add - local.tee $5 - f64.const 1 - local.get $5 - f64.sub - local.get $10 - f64.add - local.get $6 - local.get $10 - f64.sub - local.get $9 - f64.add - f64.add - f64.add - f64.const -1 - f64.add - else - local.get $10 - end - f64.const 2.2250738585072014e-308 - f64.mul - end - br $~lib/util/math/exp2_lut|inlined.0 - end - local.get $4 - f64.reinterpret_i64 - local.tee $6 - local.get $5 + call $~lib/math/NativeMath.log1p + f64.const 0.5 f64.mul - local.get $6 - f64.add end + local.get $0 + f64.copysign local.get $1 local.get $2 call $std/math/check if (result i32) - f64.const 2 local.get $0 - call $~lib/bindings/dom/Math.pow + call $~lib/bindings/dom/Math.atanh local.get $1 local.get $2 call $std/math/check @@ -5750,842 +6813,720 @@ i32.const 0 end ) - (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f64) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 f64) - block $~lib/util/math/exp2f_lut|inlined.0 (result f32) + (func $~lib/math/NativeMathf.log1p (param $0 f32) (result f32) + (local $1 f32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + i32.const 1 + local.set $2 + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 31 + i32.shr_u + local.get $4 + i32.const 1054086096 + i32.lt_u + i32.or + if + local.get $4 + i32.const -1082130432 + i32.ge_u + if + local.get $0 + f32.const -1 + f32.eq + if + local.get $0 + f32.const 0 + f32.div + return + end + local.get $0 + local.get $0 + f32.sub + f32.const 0 + f32.div + return + end + local.get $4 + i32.const 1 + i32.shl + i32.const 1728053248 + i32.lt_u + if + local.get $0 + return + end + local.get $4 + i32.const -1097468391 + i32.le_u + if (result f32) + i32.const 0 + local.set $2 + local.get $0 + else + f32.const 0 + end + local.set $1 + else + local.get $4 + i32.const 2139095040 + i32.ge_u + if + local.get $0 + return + end + end + local.get $2 + if local.get $0 + f32.const 1 + f32.add + local.tee $1 i32.reinterpret_f32 - local.tee $5 - i32.const 20 + i32.const 4913933 + i32.add + local.tee $4 + i32.const 23 i32.shr_u - i32.const 2047 - i32.and - local.tee $6 - i32.const 1072 - i32.ge_u - if - f32.const 0 - local.get $5 - i32.const -8388608 - i32.eq - br_if $~lib/util/math/exp2f_lut|inlined.0 - drop + i32.const 127 + i32.sub + local.tee $2 + i32.const 25 + i32.lt_s + if (result f32) + f32.const 1 + local.get $1 local.get $0 + f32.sub + f32.sub local.get $0 + local.get $1 + f32.const -1 f32.add - local.get $6 - i32.const 2040 - i32.ge_u - br_if $~lib/util/math/exp2f_lut|inlined.0 - drop - local.get $0 - f32.const 1701411834604692317316873e14 - f32.mul - local.get $0 - f32.const 0 - f32.gt - br_if $~lib/util/math/exp2f_lut|inlined.0 - drop + f32.sub + local.get $2 + i32.const 2 + i32.ge_s + select + local.get $1 + f32.div + else f32.const 0 - local.get $0 - f32.const -150 - f32.le - br_if $~lib/util/math/exp2f_lut|inlined.0 - drop end - local.get $0 - f64.promote_f32 - local.tee $3 - f64.const 211106232532992 - f64.add - local.tee $7 - i64.reinterpret_f64 - local.set $4 - local.get $3 - local.get $7 - f64.const -211106232532992 - f64.add - f64.sub - local.tee $3 - f64.const 0.6931471806916203 - f64.mul - f64.const 1 - f64.add - local.get $3 - f64.const 0.05550361559341535 - f64.mul - f64.const 0.2402284522445722 - f64.add - local.get $3 - local.get $3 - f64.mul - f64.mul - f64.add + local.set $3 local.get $4 - i32.wrap_i64 - i32.const 31 + i32.const 8388607 i32.and - i32.const 3 - i32.shl - i32.const 7712 + i32.const 1060439283 i32.add - i64.load - local.get $4 - i64.const 47 - i64.shl - i64.add - f64.reinterpret_i64 - f64.mul - f32.demote_f64 + f32.reinterpret_i32 + f32.const -1 + f32.add + local.set $1 end local.get $1 - local.get $2 - call $std/math/check - ) - (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 f64) - (local $10 f64) - (local $11 f64) - (local $12 f64) - (local $13 f64) local.get $1 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and + f32.const 2 + f32.add + f32.div local.tee $5 + local.get $5 + f32.mul + local.tee $0 local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $4 - i64.gt_u + f32.mul + local.set $6 + local.get $5 + local.get $1 + f32.const 0.5 + f32.mul + local.get $1 + f32.mul + local.tee $5 + local.get $0 + local.get $6 + f32.const 0.2849878668785095 + f32.mul + f32.const 0.6666666269302368 + f32.add + f32.mul + local.get $6 + local.get $6 + f32.const 0.24279078841209412 + f32.mul + f32.const 0.40000972151756287 + f32.add + f32.mul + f32.add + f32.add + f32.mul + local.get $2 + f32.convert_i32_s + local.tee $0 + f32.const 9.05800061445916e-06 + f32.mul + local.get $3 + f32.add + f32.add + local.get $5 + f32.sub + local.get $1 + f32.add + local.get $0 + f32.const 0.6931381225585938 + f32.mul + f32.add + ) + (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 f32) + (local $7 f32) + local.get $0 + i32.reinterpret_f32 + local.tee $5 + i32.const 2147483647 + i32.and + local.set $3 + local.get $5 + i32.const 31 + i32.shr_u + local.set $5 + local.get $3 + i32.const 1100331076 + i32.ge_u if - local.get $4 + local.get $3 + i32.const 2139095040 + i32.gt_u + if + local.get $0 + return + end local.get $5 - local.set $4 - local.set $5 + if + f32.const -1 + return + end + local.get $3 + i32.const 1118925335 + i32.gt_u + if + local.get $0 + f32.const 1701411834604692317316873e14 + f32.mul + return + end end - local.get $5 - f64.reinterpret_i64 - local.tee $9 - local.set $0 - block $__inlined_func$~lib/math/NativeMath.hypot$23 + local.get $3 + i32.const 1051816472 + i32.gt_u + if + local.get $0 + i32.const 1 local.get $5 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $7 - i32.const 2047 - i32.eq - br_if $__inlined_func$~lib/math/NativeMath.hypot$23 - local.get $4 - f64.reinterpret_i64 + i32.const 1 + i32.shl + i32.sub + local.get $0 + f32.const 1.4426950216293335 + f32.mul + f32.const 0.5 + local.get $0 + f32.copysign + f32.add + i32.trunc_sat_f32_s + local.get $3 + i32.const 1065686418 + i32.lt_u + select local.tee $1 - local.set $0 - local.get $5 - i64.eqz + f32.convert_i32_s + local.tee $0 + f32.const 0.6931381225585938 + f32.mul + f32.sub + local.tee $2 + local.get $2 + local.get $0 + f32.const 9.05800061445916e-06 + f32.mul + local.tee $2 + f32.sub + local.tee $0 + f32.sub + local.get $2 + f32.sub + local.set $2 + else + local.get $3 + i32.const 855638016 + i32.lt_u + if + local.get $0 + return + end + end + f32.const 3 + local.get $0 + local.get $0 + f32.const 0.5 + f32.mul + local.tee $6 + f32.mul + local.tee $4 + local.get $4 + f32.const 1.5807170420885086e-03 + f32.mul + f32.const -0.03333321213722229 + f32.add + f32.mul + f32.const 1 + f32.add + local.tee $7 + local.get $6 + f32.mul + f32.sub + local.set $6 + local.get $4 + local.get $7 + local.get $6 + f32.sub + f32.const 6 + local.get $0 + local.get $6 + f32.mul + f32.sub + f32.div + f32.mul + local.set $6 + local.get $1 + i32.eqz + if + local.get $0 + local.get $0 + local.get $6 + f32.mul local.get $4 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $8 - i32.const 2047 - i32.eq - i32.or - br_if $__inlined_func$~lib/math/NativeMath.hypot$23 - local.get $1 - local.get $9 - f64.add - local.set $0 - local.get $8 - local.get $7 - i32.sub - i32.const 64 - i32.gt_s - br_if $__inlined_func$~lib/math/NativeMath.hypot$23 - f64.const 1 - local.set $0 - local.get $8 - i32.const 1533 - i32.gt_u - if (result f64) - f64.const 5260135901548373507240989e186 - local.set $0 - local.get $1 - f64.const 1.90109156629516e-211 - f64.mul - local.set $1 - local.get $9 - f64.const 1.90109156629516e-211 - f64.mul - else - local.get $7 - i32.const 573 - i32.lt_u - if (result f64) - f64.const 1.90109156629516e-211 - local.set $0 - local.get $1 - f64.const 5260135901548373507240989e186 - f64.mul - local.set $1 - local.get $9 - f64.const 5260135901548373507240989e186 - f64.mul - else - local.get $9 - end + f32.sub + f32.sub + return + end + local.get $0 + local.get $6 + local.get $2 + f32.sub + f32.mul + local.get $2 + f32.sub + local.get $4 + f32.sub + local.set $2 + local.get $1 + i32.const -1 + i32.eq + if + local.get $0 + local.get $2 + f32.sub + f32.const 0.5 + f32.mul + f32.const -0.5 + f32.add + return + end + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + f32.const -0.25 + f32.lt + if + local.get $2 + local.get $0 + f32.const 0.5 + f32.add + f32.sub + f32.const -2 + f32.mul + return end - local.set $11 - local.get $1 - local.get $1 - local.get $1 - f64.const 134217729 - f64.mul - local.tee $9 - f64.sub - local.get $9 - f64.add - local.tee $9 - f64.sub - local.set $12 - local.get $11 - local.get $11 - local.get $11 - f64.const 134217729 - f64.mul - local.tee $10 - f64.sub - local.get $10 - f64.add - local.tee $10 - f64.sub - local.set $13 local.get $0 - local.get $10 - local.get $10 - f64.mul - local.get $11 - local.get $11 - f64.mul + local.get $2 + f32.sub + f32.const 2 + f32.mul + f32.const 1 + f32.add + return + end + local.get $1 + i32.const 127 + i32.add + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.set $4 + local.get $1 + i32.const 0 + i32.lt_s + local.get $1 + i32.const 56 + i32.gt_s + i32.or + if + local.get $0 + local.get $2 + f32.sub + f32.const 1 + f32.add local.tee $0 - f64.sub - local.get $10 - local.get $10 - f64.add - local.get $13 - f64.add - local.get $13 - f64.mul - f64.add - local.get $9 - local.get $9 - f64.mul - local.get $1 - local.get $1 - f64.mul - local.tee $1 - f64.sub - local.get $9 - local.get $9 - f64.add - local.get $12 - f64.add - local.get $12 - f64.mul - f64.add - f64.add local.get $0 - f64.add + f32.add + f32.const 1701411834604692317316873e14 + f32.mul + local.get $0 + local.get $4 + f32.mul local.get $1 - f64.add - f64.sqrt - f64.mul - local.set $0 + i32.const 128 + i32.eq + select + f32.const -1 + f32.add + return end local.get $0 + f32.const 1 + i32.const 127 + local.get $1 + i32.sub + i32.const 23 + i32.shl + f32.reinterpret_i32 + local.tee $0 + f32.sub local.get $2 - local.get $3 - call $std/math/check + f32.sub + f32.const 1 + local.get $2 + local.get $0 + f32.add + f32.sub + local.get $1 + i32.const 20 + i32.lt_s + select + f32.add + local.get $4 + f32.mul ) - (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) - (local $4 i32) + (func $~lib/math/NativeMath.log1p (param $0 f64) (result f64) + (local $1 f64) + (local $2 i32) + (local $3 i64) + (local $4 f64) (local $5 i32) - (local $6 i32) + (local $6 f64) (local $7 f64) - local.get $1 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $5 + i32.const 1 + local.set $2 local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $4 - i32.gt_u + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $5 + i32.const 31 + i32.shr_u + local.get $5 + i32.const 1071284858 + i32.lt_u + i32.or if - local.get $4 - local.get $5 - local.set $4 - local.set $5 - end - local.get $4 - f32.reinterpret_i32 - local.set $0 - block $__inlined_func$~lib/math/NativeMathf.hypot$24 (result f32) - local.get $5 - f32.reinterpret_i32 - local.tee $1 - local.get $5 - i32.const 2139095040 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 - drop - local.get $0 - local.get $1 - f32.add - local.get $5 - i32.eqz - local.get $4 - i32.const 2139095040 - i32.ge_u - i32.or - local.get $4 local.get $5 - i32.sub - i32.const 209715200 - i32.ge_u - i32.or - br_if $__inlined_func$~lib/math/NativeMathf.hypot$24 - drop - local.get $4 - i32.const 1568669696 + i32.const -1074790400 i32.ge_u - if (result f32) + if local.get $0 - f32.const 8.077935669463161e-28 - f32.mul - local.set $0 - local.get $1 - f32.const 8.077935669463161e-28 - f32.mul - local.set $1 - f32.const 1237940039285380274899124e3 - else - local.get $5 - i32.const 562036736 - i32.lt_u - if (result f32) + f64.const -1 + f64.eq + if local.get $0 - f32.const 1237940039285380274899124e3 - f32.mul - local.set $0 - local.get $1 - f32.const 1237940039285380274899124e3 - f32.mul - local.set $1 - f32.const 8.077935669463161e-28 - else - f32.const 1 + f64.const 0 + f64.div + return end - end - local.get $0 - f64.promote_f32 - local.tee $7 - local.get $7 - f64.mul - local.get $1 - f64.promote_f32 - local.tee $7 - local.get $7 - f64.mul - f64.add - f32.demote_f64 - f32.sqrt - f32.mul - end - local.get $2 - local.get $3 - call $std/math/check - ) - (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 f64) - (local $8 f64) - (local $9 f64) - (local $10 f64) - (local $11 f64) - (local $12 f64) - block $__inlined_func$~lib/math/NativeMath.log10$1 (result f64) - local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 31 - i32.shr_u - local.tee $6 - local.get $3 - i32.const 1048576 - i32.lt_u - i32.or - if - f64.const -1 - local.get $0 - local.get $0 - f64.mul - f64.div - local.get $4 - i64.const 1 - i64.shl - i64.eqz - br_if $__inlined_func$~lib/math/NativeMath.log10$1 - drop local.get $0 local.get $0 f64.sub f64.const 0 f64.div - local.get $6 - br_if $__inlined_func$~lib/math/NativeMath.log10$1 - drop - i32.const -54 - local.set $5 - local.get $0 - f64.const 18014398509481984 - f64.mul - i64.reinterpret_f64 - local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $3 - else - local.get $3 - i32.const 2146435072 - i32.ge_u - if - local.get $0 - br $__inlined_func$~lib/math/NativeMath.log10$1 - else - f64.const 0 - local.get $4 - i64.const 32 - i64.shl - i64.eqz - local.get $3 - i32.const 1072693248 - i32.eq - i32.and - br_if $__inlined_func$~lib/math/NativeMath.log10$1 - drop - end + return end - local.get $4 - i64.const 4294967295 - i64.and - local.get $3 - i32.const 614242 - i32.add - local.tee $3 - i32.const 1048575 - i32.and - i32.const 1072079006 - i32.add - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - f64.const -1 - f64.add - local.tee $7 - f64.const 0.5 - f64.mul - local.get $7 - f64.mul - local.set $8 - local.get $7 - local.get $7 - f64.const 2 - f64.add - f64.div - local.tee $9 - local.get $9 - f64.mul - local.tee $10 - local.get $10 - f64.mul - local.set $11 - local.get $7 - local.get $7 - local.get $8 - f64.sub - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $12 - f64.sub - local.get $8 - f64.sub - local.get $9 - local.get $8 - local.get $10 - local.get $11 - local.get $11 - local.get $11 - f64.const 0.14798198605116586 - f64.mul - f64.const 0.1818357216161805 - f64.add - f64.mul - f64.const 0.2857142874366239 - f64.add - f64.mul - f64.const 0.6666666666666735 - f64.add - f64.mul - local.get $11 - local.get $11 - local.get $11 - f64.const 0.15313837699209373 - f64.mul - f64.const 0.22222198432149784 - f64.add - f64.mul - f64.const 0.3999999999940942 - f64.add - f64.mul - f64.add - f64.add - f64.mul - f64.add - local.set $8 local.get $5 - local.get $3 - i32.const 20 - i32.shr_u - i32.const 1023 - i32.sub - i32.add - f64.convert_i32_s - local.tee $9 - f64.const 0.30102999566361177 - f64.mul - local.tee $10 - local.get $12 - f64.const 0.4342944818781689 - f64.mul - local.tee $11 - f64.add - local.set $7 - local.get $9 - f64.const 3.694239077158931e-13 - f64.mul - local.get $8 - local.get $12 - f64.add - f64.const 2.5082946711645275e-11 - f64.mul - f64.add - local.get $8 - f64.const 0.4342944818781689 - f64.mul - f64.add - local.get $10 - local.get $7 - f64.sub - local.get $11 - f64.add - f64.add - local.get $7 - f64.add - end - local.get $1 - local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.log10 - local.get $1 - local.get $2 - call $std/math/check - else - i32.const 0 - end - ) - (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 f32) - (local $8 f32) - (local $9 f32) - (local $10 f32) - block $__inlined_func$~lib/math/NativeMathf.log10$25 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_u - local.tee $4 - local.get $3 - i32.const 8388608 + i32.const 1 + i32.shl + i32.const 2034237440 i32.lt_u - i32.or if - f32.const -1 - local.get $0 - local.get $0 - f32.mul - f32.div - local.get $3 - i32.const 1 - i32.shl - i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.log10$25 - drop - local.get $0 local.get $0 - f32.sub - f32.const 0 - f32.div - local.get $4 - br_if $__inlined_func$~lib/math/NativeMathf.log10$25 - drop - i32.const -25 - local.set $6 + return + end + local.get $5 + i32.const -1076707644 + i32.le_u + if (result f64) + i32.const 0 + local.set $2 local.get $0 - f32.const 33554432 - f32.mul - i32.reinterpret_f32 - local.set $3 else - local.get $3 - i32.const 2139095040 - i32.ge_u - if - local.get $0 - br $__inlined_func$~lib/math/NativeMathf.log10$25 - else - f32.const 0 - local.get $3 - i32.const 1065353216 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.log10$25 - drop - end + f64.const 0 end - local.get $3 - i32.const 4913933 - i32.add + local.set $1 + else + local.get $5 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + return + end + end + local.get $2 + if + local.get $0 + f64.const 1 + f64.add + i64.reinterpret_f64 local.tee $3 - i32.const 8388607 - i32.and - i32.const 1060439283 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 614242 i32.add - f32.reinterpret_i32 - f32.const -1 - f32.add - local.tee $8 - local.get $8 - f32.const 2 - f32.add - f32.div - local.tee $0 - local.get $0 - f32.mul local.tee $5 - local.get $5 - f32.mul - local.set $9 - local.get $6 - local.get $3 - i32.const 23 + i32.const 20 i32.shr_u - i32.const 127 + i32.const 1023 i32.sub - i32.add - f32.convert_i32_s - local.tee $7 - f32.const 7.903415166765626e-07 - f32.mul - local.get $8 - local.get $8 - local.get $8 - f32.const 0.5 - f32.mul - local.get $8 - f32.mul - local.tee $8 - f32.sub - i32.reinterpret_f32 - i32.const -4096 - i32.and - f32.reinterpret_i32 - local.tee $10 - f32.sub - local.get $8 - f32.sub - local.get $0 - local.get $8 + local.tee $2 + i32.const 54 + i32.lt_s + if (result f64) + f64.const 1 + local.get $3 + f64.reinterpret_i64 + local.tee $1 + local.get $0 + f64.sub + f64.sub + local.get $0 + local.get $1 + f64.const -1 + f64.add + f64.sub + local.get $2 + i32.const 2 + i32.ge_s + select + local.get $1 + f64.div + else + f64.const 0 + end + local.set $4 + local.get $3 + i64.const 4294967295 + i64.and local.get $5 - local.get $9 - f32.const 0.2849878668785095 - f32.mul - f32.const 0.6666666269302368 - f32.add - f32.mul - local.get $9 - local.get $9 - f32.const 0.24279078841209412 - f32.mul - f32.const 0.40000972151756287 - f32.add - f32.mul - f32.add - f32.add - f32.mul - f32.add - local.tee $0 - local.get $10 - f32.add - f32.const -3.168997136526741e-05 - f32.mul - f32.add - local.get $0 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $10 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $7 - f32.const 0.3010292053222656 - f32.mul - f32.add + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + f64.const -1 + f64.add + local.set $1 end local.get $1 + local.get $1 + f64.const 2 + f64.add + f64.div + local.tee $6 + local.get $6 + f64.mul + local.tee $7 + local.get $7 + f64.mul + local.set $0 + local.get $6 + local.get $1 + f64.const 0.5 + f64.mul + local.get $1 + f64.mul + local.tee $6 + local.get $7 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.14798198605116586 + f64.mul + f64.const 0.1818357216161805 + f64.add + f64.mul + f64.const 0.2857142874366239 + f64.add + f64.mul + f64.const 0.6666666666666735 + f64.add + f64.mul + local.get $0 + local.get $0 + local.get $0 + f64.const 0.15313837699209373 + f64.mul + f64.const 0.22222198432149784 + f64.add + f64.mul + f64.const 0.3999999999940942 + f64.add + f64.mul + f64.add + f64.add + f64.mul local.get $2 - call $std/math/check + f64.convert_i32_s + local.tee $0 + f64.const 1.9082149292705877e-10 + f64.mul + local.get $4 + f64.add + f64.add + local.get $6 + f64.sub + local.get $1 + f64.add + local.get $0 + f64.const 0.6931471803691238 + f64.mul + f64.add ) - (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i64) (local $4 f64) (local $5 f64) (local $6 f64) - (local $7 f64) - (local $8 f64) - (local $9 f64) - (local $10 i32) - block $~lib/util/math/log2_lut|inlined.0 (result f64) + (local $7 i32) + block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 local.tee $1 - i64.const 4606800540372828160 + i64.const 4606619468846596096 i64.sub - i64.const 581272283906048 + i64.const 854320534781952 i64.lt_u if local.get $0 f64.const -1 f64.add - local.tee $5 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $6 - f64.const 1.4426950407214463 - f64.mul - local.set $7 - local.get $5 - local.get $5 + local.tee $0 + local.get $0 f64.mul - local.tee $8 - local.get $8 + local.tee $4 + local.get $0 f64.mul - local.set $0 - local.get $7 - local.get $8 - local.get $5 - f64.const 0.48089834696298744 + local.tee $5 + local.get $0 + f64.const -0.24999999999998432 f64.mul - f64.const -0.7213475204444817 + f64.const 0.3333333333333352 f64.add + local.get $4 + f64.const 0.19999999999320328 f64.mul - local.tee $4 f64.add - local.tee $9 local.get $5 - local.get $6 - f64.sub - f64.const 1.4426950407214463 + local.get $0 + f64.const 0.14285715076560868 + f64.mul + f64.const -0.16666666669929706 + f64.add + local.get $4 + f64.const -0.12499997863982555 f64.mul + f64.add local.get $5 - f64.const 1.6751713164886512e-10 + local.get $0 + f64.const -0.10000486757818193 f64.mul + f64.const 0.11110712032936046 f64.add - local.get $7 - local.get $9 - f64.sub local.get $4 + f64.const 0.09181994006195467 + f64.mul f64.add - f64.add - local.get $0 local.get $5 - f64.const 0.2885390081805197 + f64.const -0.08328363062289341 f64.mul - f64.const -0.360673760222145 f64.add - local.get $8 - local.get $5 - f64.const 0.2060992861022954 f64.mul - f64.const -0.24044917405728863 f64.add f64.mul f64.add + f64.mul local.get $0 - local.get $5 - f64.const 0.1603032746063156 + local.get $0 + local.get $0 + local.get $0 + f64.const 134217728 f64.mul - f64.const -0.18033596705327856 + local.tee $4 f64.add - local.get $8 - local.get $5 - f64.const 0.13046826811283835 + local.get $4 + f64.sub + local.tee $4 + local.get $4 f64.mul - f64.const -0.14483316576701266 - f64.add + f64.const -0.5 f64.mul + local.tee $5 + f64.add + local.tee $6 + f64.sub + local.get $5 f64.add + local.get $0 + local.get $4 + f64.sub + f64.const -0.5 f64.mul + local.get $4 + local.get $0 f64.add f64.mul f64.add f64.add - br $~lib/util/math/log2_lut|inlined.0 + local.get $6 + f64.add + br $~lib/util/math/log_lut|inlined.0 end local.get $1 i64.const 48 @@ -6606,13 +7547,13 @@ i64.const 1 i64.shl i64.eqz - br_if $~lib/util/math/log2_lut|inlined.0 + br_if $~lib/util/math/log_lut|inlined.0 drop local.get $0 local.get $1 i64.const 9218868437227405312 i64.eq - br_if $~lib/util/math/log2_lut|inlined.0 + br_if $~lib/util/math/log_lut|inlined.0 drop i32.const 1 local.get $2 @@ -6631,7 +7572,7 @@ local.tee $0 local.get $0 f64.div - br $~lib/util/math/log2_lut|inlined.0 + br $~lib/util/math/log_lut|inlined.0 end local.get $0 f64.const 4503599627370496 @@ -6645,25 +7586,28 @@ i64.const 4604367669032910848 i64.sub local.tee $3 - i64.const 46 + i64.const 45 i64.shr_u - i64.const 63 + i64.const 127 i64.and i32.wrap_i64 i32.const 4 i32.shl local.tee $2 - i32.const 7968 + i32.const 1088 i32.add - local.set $10 + local.set $7 local.get $3 i64.const 52 i64.shr_s f64.convert_i64_s - local.get $10 + local.tee $0 + f64.const 0.6931471805598903 + f64.mul + local.get $7 f64.load offset=8 f64.add - local.tee $0 + local.tee $4 local.get $1 local.get $3 i64.const -4503599627370496 @@ -6671,7 +7615,7 @@ i64.sub f64.reinterpret_i64 local.get $2 - i32.const 8992 + i32.const 3136 i32.add local.tee $2 f64.load @@ -6679,3391 +7623,2843 @@ local.get $2 f64.load offset=8 f64.sub - local.get $10 + local.get $7 f64.load f64.mul - local.tee $4 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 local.tee $5 - f64.const 1.4426950407214463 - f64.mul - local.tee $6 - f64.add - local.set $7 - local.get $0 - local.get $7 - f64.sub - local.get $6 f64.add + local.set $6 local.get $4 - local.get $5 + local.get $6 f64.sub - f64.const 1.4426950407214463 - f64.mul - local.get $4 - f64.const 1.6751713164886512e-10 - f64.mul + local.get $5 f64.add + local.get $0 + f64.const 5.497923018708371e-14 + f64.mul f64.add - local.get $4 - local.get $4 + local.get $5 + local.get $5 f64.mul local.tee $0 - local.get $4 - f64.const 0.4808983469629985 + f64.const -0.5000000000000001 f64.mul - f64.const -0.7213475204444882 f64.add + local.get $5 local.get $0 - local.get $4 - f64.const 0.2885390073180969 f64.mul - f64.const -0.36067375954075914 - f64.add + local.get $5 + f64.const -0.2499999999622955 f64.mul + f64.const 0.33333333331825593 f64.add local.get $0 - local.get $0 - f64.mul - local.get $4 - f64.const 0.2061202382173603 + local.get $5 + f64.const -0.16667054827627667 f64.mul - f64.const -0.2404693555628422 + f64.const 0.20000304511814496 f64.add f64.mul f64.add f64.mul f64.add - local.get $7 + local.get $6 f64.add end ) - (func $std/math/test_log2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 f64) - (local $5 f64) - (local $6 i32) - (local $7 i32) - block $~lib/util/math/log2f_lut|inlined.0 (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 8388608 - i32.sub - i32.const 2130706432 - i32.ge_u + (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f32) + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 1065353216 + i32.ge_u + if + local.get $1 + i32.const 1065353216 + i32.eq if - f32.const -inf - local.get $3 - i32.const 1 - i32.shl - local.tee $6 - i32.eqz - br_if $~lib/util/math/log2f_lut|inlined.0 - drop - local.get $0 - local.get $3 - i32.const 2139095040 - i32.eq - br_if $~lib/util/math/log2f_lut|inlined.0 - drop - local.get $3 - i32.const 31 - i32.shr_u - local.get $6 - i32.const -16777216 - i32.ge_u - i32.or - if - local.get $0 - local.get $0 - f32.sub - local.tee $0 - local.get $0 - f32.div - br $~lib/util/math/log2f_lut|inlined.0 - end - local.get $0 - f32.const 8388608 - f32.mul - i32.reinterpret_f32 - i32.const 192937984 - i32.sub - local.set $3 + f32.const 3.141592502593994 + f32.const 0 + local.get $2 + i32.const 0 + i32.lt_s + select + return end - local.get $3 - i32.const 1060306944 - i32.sub - local.tee $6 - i32.const 19 - i32.shr_u - i32.const 15 - i32.and - i32.const 4 - i32.shl - i32.const 10016 - i32.add - local.set $7 - local.get $3 - local.get $6 - i32.const -8388608 - i32.and - i32.sub - f32.reinterpret_i32 - f64.promote_f32 - local.get $7 - f64.load - f64.mul - f64.const -1 - f64.add - local.tee $4 - local.get $4 - f64.mul - local.set $5 - local.get $4 - f64.const 0.4811247078767291 - f64.mul - f64.const -0.7213476299867769 - f64.add - local.get $5 - f64.const -0.36051725506874704 - f64.mul - f64.add - local.get $5 - f64.mul - local.get $4 - f64.const 1.4426950186867042 - f64.mul - local.get $7 - f64.load offset=8 - local.get $6 - i32.const 23 - i32.shr_s - f64.convert_i32_s - f64.add - f64.add - f64.add - f32.demote_f64 + f32.const 0 + local.get $0 + local.get $0 + f32.sub + f32.div + return end local.get $1 + i32.const 1056964608 + i32.lt_u + if + local.get $1 + i32.const 847249408 + i32.le_u + if + f32.const 1.570796251296997 + return + end + f32.const 1.570796251296997 + local.get $0 + f32.const 7.549789415861596e-08 + local.get $0 + local.get $0 + local.get $0 + f32.mul + local.tee $0 + local.get $0 + local.get $0 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $0 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + f32.mul + f32.sub + f32.sub + f32.sub + return + end local.get $2 - call $std/math/check - ) - (func $std/math/test_max (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - local.get $0 - local.get $1 - f64.max - local.get $2 - f64.const 0 - call $std/math/check - if (result i32) + i32.const 0 + i32.lt_s + if + f32.const 1.570796251296997 + local.get $0 + f32.const 0.5 + f32.mul + f32.const 0.5 + f32.add + local.tee $0 + f32.sqrt + local.tee $3 + local.get $0 + local.get $0 + local.get $0 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul local.get $0 - local.get $1 - call $~lib/bindings/dom/Math.max - local.get $2 - f64.const 0 - call $std/math/check - else - i32.const 0 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + local.get $3 + f32.mul + f32.const -7.549789415861596e-08 + f32.add + f32.add + f32.sub + f32.const 2 + f32.mul + return end - ) - (func $std/math/test_min (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + f32.const 0.5 local.get $0 - local.get $1 - f64.min - local.get $2 - f64.const 0 - call $std/math/check - if (result i32) - local.get $0 - local.get $1 - call $~lib/bindings/dom/Math.min - local.get $2 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + f32.const 0.5 + f32.mul + f32.sub + local.tee $3 + f32.sqrt + local.tee $4 + i32.reinterpret_f32 + i32.const -4096 + i32.and + f32.reinterpret_i32 + local.tee $0 + local.get $3 + local.get $3 + local.get $3 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $3 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + local.get $4 + f32.mul + local.get $3 + local.get $0 + local.get $0 + f32.mul + f32.sub + local.get $4 + local.get $0 + f32.add + f32.div + f32.add + f32.add + f32.const 2 + f32.mul ) - (func $std/math/test_mod (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i64) + (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 f64) (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 f64) - (local $9 i64) - (local $10 i64) - block $__inlined_func$~lib/math/NativeMath.mod$2 (result f64) + block $__inlined_func$~lib/math/NativeMath.acosh$8 (result f64) local.get $0 local.get $0 - f64.trunc f64.sub - local.get $0 - f64.copysign - local.get $1 - f64.abs - f64.const 1 - f64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$2 - drop - local.get $1 - i64.reinterpret_f64 - local.tee $7 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $9 - local.get $7 - i64.const 1 - i64.shl - local.tee $5 - i64.eqz + f64.const 0 + f64.div local.get $0 i64.reinterpret_f64 local.tee $4 + i64.const 4607182418800017408 + i64.lt_s + br_if $__inlined_func$~lib/math/NativeMath.acosh$8 + drop + local.get $4 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $10 - i64.const 2047 - i64.eq - i32.or - local.get $1 - local.get $1 - f64.ne - i32.or - if - local.get $0 - local.get $1 - f64.mul - local.tee $8 - local.get $8 - f64.div - br $__inlined_func$~lib/math/NativeMath.mod$2 - end - local.get $4 - i64.const 1 - i64.shl - local.tee $3 - local.get $5 - i64.le_u + local.tee $4 + i64.const 1024 + i64.lt_u if local.get $0 + f64.const -1 + f64.add + local.tee $3 + local.get $3 local.get $3 - local.get $5 - i64.ne - f64.convert_i32_u f64.mul - br $__inlined_func$~lib/math/NativeMath.mod$2 - end - local.get $4 - i64.const 63 - i64.shr_u - local.set $6 - local.get $10 - i64.eqz - if (result i64) - local.get $4 - i64.const 1 - local.get $10 - local.get $4 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $10 - i64.sub - i64.shl - else - local.get $4 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - end - local.set $3 - local.get $9 - i64.eqz - if (result i64) - local.get $7 - i64.const 1 - local.get $9 - local.get $7 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $9 - i64.sub - i64.shl - else - local.get $7 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - end - local.set $4 - loop $while-continue|0 - local.get $9 - local.get $10 - i64.lt_s - if - local.get $3 - local.get $4 - i64.ge_u - if (result i64) - local.get $0 - f64.const 0 - f64.mul - local.get $3 - local.get $4 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$2 - drop - local.get $3 - local.get $4 - i64.sub - else - local.get $3 - end - i64.const 1 - i64.shl - local.set $3 - local.get $10 - i64.const 1 - i64.sub - local.set $10 - br $while-continue|0 - end + local.get $3 + local.get $3 + f64.add + f64.add + f64.sqrt + f64.add + call $~lib/math/NativeMath.log1p + br $__inlined_func$~lib/math/NativeMath.acosh$8 end - local.get $3 local.get $4 - i64.ge_u + i64.const 1049 + i64.lt_u if local.get $0 - f64.const 0 + local.get $0 + f64.add + f64.const 1 + local.get $0 + local.get $0 + local.get $0 f64.mul - local.get $3 - local.get $4 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$2 - drop - local.get $3 - local.get $4 - i64.sub - local.set $3 - end - local.get $10 - local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $5 - i64.sub - local.set $4 - local.get $3 - local.get $5 - i64.shl - local.set $3 - local.get $4 - i64.const 0 - i64.gt_s - if (result i64) - local.get $3 - i64.const 4503599627370496 - i64.sub - local.get $4 - i64.const 52 - i64.shl - i64.or - else - local.get $3 - i64.const 1 - local.get $4 - i64.sub - i64.shr_u + f64.const -1 + f64.add + f64.sqrt + f64.add + f64.div + f64.sub + call $~lib/math/NativeMath.log + br $__inlined_func$~lib/math/NativeMath.acosh$8 end - local.get $6 - i64.const 63 - i64.shl - i64.or - f64.reinterpret_i64 + local.get $0 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add end + local.get $1 local.get $2 - f64.const 0 call $std/math/check if (result i32) local.get $0 + call $~lib/bindings/dom/Math.acosh local.get $1 - call $std/math/mod local.get $2 - f64.const 0 call $std/math/check else i32.const 0 end ) - (func $~lib/math/NativeMathf.mod (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) - (local $3 i32) + (func $~lib/math/NativeMathf.log (param $0 f32) (result f32) + (local $1 i32) + (local $2 f64) + (local $3 f64) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $1 - f32.abs - f32.const 1 - f32.eq - if - local.get $0 - local.get $0 - f32.trunc - f32.sub - local.get $0 - f32.copysign - return - end - local.get $1 - i32.reinterpret_f32 - local.tee $6 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.set $7 - local.get $6 - i32.const 1 - i32.shl - local.tee $4 - i32.eqz - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.tee $8 - i32.const 255 - i32.eq - i32.or - local.get $1 - local.get $1 - f32.ne - i32.or - if - local.get $0 - local.get $1 - f32.mul - local.tee $0 - local.get $0 - f32.div - return - end - local.get $3 - i32.const 1 - i32.shl - local.tee $2 - local.get $4 - i32.le_u - if + block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 - local.get $2 - local.get $4 - i32.ne - f32.convert_i32_u - f32.mul - return - end - local.get $3 - i32.const -2147483648 - i32.and - local.set $5 - local.get $8 - if (result i32) - local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else - local.get $3 - i32.const 1 - local.get $8 - local.get $3 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $8 - i32.sub - i32.shl - end - local.set $2 - local.get $7 - if (result i32) - local.get $6 - i32.const 8388607 - i32.and + i32.reinterpret_f32 + local.tee $1 i32.const 8388608 - i32.or - else - local.get $6 - i32.const 1 - local.get $7 - local.get $6 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $7 i32.sub - i32.shl - end - local.set $3 - loop $while-continue|0 - local.get $7 - local.get $8 - i32.lt_s + i32.const 2130706432 + i32.ge_u if - local.get $2 - local.get $3 - i32.ge_u - if (result i32) - local.get $2 - local.get $3 - i32.eq - if - local.get $0 - f32.const 0 - f32.mul - return - end - local.get $2 - local.get $3 - i32.sub - else - local.get $2 - end + f32.const -inf + local.get $1 i32.const 1 i32.shl - local.set $2 - local.get $8 - i32.const 1 - i32.sub - local.set $8 - br $while-continue|0 - end - end - local.get $2 - local.get $3 - i32.ge_u - if - local.get $2 - local.get $3 - i32.eq - if + local.tee $4 + i32.eqz + br_if $~lib/util/math/logf_lut|inlined.0 + drop + local.get $0 + local.get $1 + i32.const 2139095040 + i32.eq + br_if $~lib/util/math/logf_lut|inlined.0 + drop + local.get $1 + i32.const 31 + i32.shr_u + local.get $4 + i32.const -16777216 + i32.ge_u + i32.or + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/logf_lut|inlined.0 + end local.get $0 - f32.const 0 + f32.const 8388608 f32.mul - return + i32.reinterpret_f32 + i32.const 192937984 + i32.sub + local.set $1 end - local.get $2 - local.get $3 + local.get $1 + i32.const 1060306944 i32.sub - local.set $2 - end - local.get $8 - local.get $2 - i32.const 8 - i32.shl - i32.clz - local.tee $4 - i32.sub - local.set $3 - local.get $2 - local.get $4 - i32.shl - local.set $2 - local.get $3 - i32.const 0 - i32.gt_s - if (result i32) - local.get $2 - i32.const 8388608 + local.tee $4 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and + i32.const 4 + i32.shl + i32.const 5184 + i32.add + local.set $5 + local.get $1 + local.get $4 + i32.const -8388608 + i32.and i32.sub + f32.reinterpret_i32 + f64.promote_f32 + local.get $5 + f64.load + f64.mul + f64.const -1 + f64.add + local.tee $2 + local.get $2 + f64.mul + local.set $3 + local.get $2 + f64.const 0.333456765744066 + f64.mul + f64.const -0.4999997485802103 + f64.add local.get $3 + f64.const -0.25089342214237154 + f64.mul + f64.add + local.get $3 + f64.mul + local.get $5 + f64.load offset=8 + local.get $4 i32.const 23 - i32.shl - i32.or - else + i32.shr_s + f64.convert_i32_s + f64.const 0.6931471805599453 + f64.mul + f64.add local.get $2 - i32.const 1 - local.get $3 - i32.sub - i32.shr_u + f64.add + f64.add + f32.demote_f64 end - local.get $5 - i32.or - f32.reinterpret_i32 ) - (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 f64) - (local $8 f64) - (local $9 f64) - (local $10 f64) - (local $11 i64) - (local $12 i64) - (local $13 f64) - (local $14 f64) - (local $15 f64) - (local $16 f64) - (local $17 f64) - (local $18 i32) - local.get $1 - f64.abs - f64.const 2 - f64.le + (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32) + (local $1 i32) + (local $2 f64) + (local $3 f32) + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 1065353216 + i32.ge_u if local.get $1 - f64.const 2 - f64.eq + i32.const 1065353216 + i32.eq if local.get $0 - local.get $0 - f64.mul + f32.const 1.5707963705062866 + f32.mul + f32.const 7.52316384526264e-37 + f32.add return end + f32.const 0 + local.get $0 + local.get $0 + f32.sub + f32.div + return + end + local.get $1 + i32.const 1056964608 + i32.lt_u + if local.get $1 - f64.const 0.5 - f64.eq - if - local.get $0 - f64.sqrt - f64.abs - f64.const inf - local.get $0 - f64.const -inf - f64.ne - select - return - end + i32.const 964689920 + i32.lt_u local.get $1 - f64.const -1 - f64.eq + i32.const 8388608 + i32.ge_u + i32.and if - f64.const 1 local.get $0 - f64.div return end - local.get $1 - f64.const 1 - f64.eq + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f32.mul + local.tee $0 + local.get $0 + local.get $0 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $0 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + f32.mul + f32.add + return + end + f64.const 1.5707963705062866 + f32.const 0.5 + local.get $0 + f32.abs + f32.const 0.5 + f32.mul + f32.sub + local.tee $3 + f64.promote_f32 + f64.sqrt + local.tee $2 + local.get $2 + local.get $3 + local.get $3 + local.get $3 + f32.const -0.008656363002955914 + f32.mul + f32.const -0.04274342209100723 + f32.add + f32.mul + f32.const 0.16666586697101593 + f32.add + f32.mul + local.get $3 + f32.const -0.7066296339035034 + f32.mul + f32.const 1 + f32.add + f32.div + f64.promote_f32 + f64.mul + f64.add + f64.const 2 + f64.mul + f64.sub + f32.demote_f64 + local.get $0 + f32.copysign + ) + (func $~lib/math/NativeMath.atan (param $0 f64) (result f64) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + local.get $0 + local.set $1 + local.get $0 + i64.reinterpret_f64 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 1141899264 + i32.ge_u + if + local.get $0 + local.get $0 + f64.ne if local.get $0 return end + f64.const 1.5707963267948966 local.get $1 - f64.const 0 - f64.eq + f64.copysign + return + end + local.get $2 + i32.const 1071382528 + i32.lt_u + if + local.get $2 + i32.const 1044381696 + i32.lt_u if - f64.const 1 + local.get $0 return end - end - block $~lib/util/math/pow_lut|inlined.0 (result f64) - local.get $1 - i64.reinterpret_f64 - local.tee $11 - i64.const 52 - i64.shr_u - local.set $6 + i32.const -1 + local.set $3 + else local.get $0 - i64.reinterpret_f64 - local.tee $2 - i64.const 52 - i64.shr_u - local.tee $5 - i64.const 1 - i64.sub - i64.const 2046 - i64.ge_u - if (result i32) - i32.const 1 - else - local.get $6 - i64.const 2047 - i64.and - i64.const 958 - i64.sub - i64.const 128 - i64.ge_u - end - if - local.get $11 - i64.const 1 - i64.shl - local.tee $12 - i64.const 1 - i64.sub - i64.const -9007199254740993 - i64.ge_u - if - f64.const 1 - local.get $12 - i64.eqz - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const nan:0x8000000000000 - local.get $2 - i64.const 4607182418800017408 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $0 - local.get $1 - f64.add - local.get $12 - i64.const -9007199254740992 - i64.gt_u - local.get $2 - i64.const 1 - i64.shl - local.tee $2 - i64.const -9007199254740992 - i64.gt_u - i32.or - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const nan:0x8000000000000 - local.get $2 - i64.const 9214364837600034816 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const 0 - local.get $11 - i64.const 63 - i64.shr_u - i64.eqz - local.get $2 - i64.const 9214364837600034816 - i64.lt_u - i32.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $1 - local.get $1 - f64.mul - br $~lib/util/math/pow_lut|inlined.0 - end + f64.abs + local.set $0 + local.get $2 + i32.const 1072889856 + i32.lt_u + if (result f64) local.get $2 - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740993 - i64.ge_u - if - f64.const 1 - local.get $0 - local.get $0 - f64.mul - local.tee $0 - f64.neg + i32.const 1072037888 + i32.lt_u + if (result f64) local.get $0 - local.get $2 - i64.const 63 - i64.shr_u - i32.wrap_i64 - if (result i32) - block $~lib/util/math/checkint|inlined.0 (result i32) - i32.const 0 - local.get $11 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $2 - i64.const 1023 - i64.lt_u - br_if $~lib/util/math/checkint|inlined.0 - drop - i32.const 2 - local.get $2 - i64.const 1075 - i64.gt_u - br_if $~lib/util/math/checkint|inlined.0 - drop - i32.const 0 - local.get $11 - i64.const 1 - i64.const 1075 - local.get $2 - i64.sub - i64.shl - local.tee $2 - i64.const 1 - i64.sub - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.0 - drop - i32.const 1 - local.get $2 - local.get $11 - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.0 - drop - i32.const 2 - end - i32.const 1 - i32.eq - else - i32.const 0 - end - select - local.tee $0 - f64.div local.get $0 - local.get $11 - i64.const 0 - i64.lt_s - select - br $~lib/util/math/pow_lut|inlined.0 - end - local.get $2 - i64.const 0 - i64.lt_s - if - block $~lib/util/math/checkint|inlined.1 (result i32) - i32.const 0 - local.get $11 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $12 - i64.const 1023 - i64.lt_u - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 2 - local.get $12 - i64.const 1075 - i64.gt_u - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 0 - local.get $11 - i64.const 1 - i64.const 1075 - local.get $12 - i64.sub - i64.shl - local.tee $12 - i64.const 1 - i64.sub - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 1 - local.get $11 - local.get $12 - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 2 - end - local.tee $3 - i32.eqz - if - local.get $0 - local.get $0 - f64.sub - local.tee $0 - local.get $0 - f64.div - br $~lib/util/math/pow_lut|inlined.0 - end - local.get $5 - i64.const 2047 - i64.and - local.set $5 - i32.const 262144 - i32.const 0 - local.get $3 + f64.add + f64.const -1 + f64.add + local.get $0 + f64.const 2 + f64.add + f64.div + else i32.const 1 - i32.eq - select - local.set $4 - local.get $2 - i64.const 9223372036854775807 - i64.and - local.set $2 - end - local.get $6 - i64.const 2047 - i64.and - local.tee $12 - i64.const 958 - i64.sub - i64.const 128 - i64.ge_u - if - f64.const 1 - local.get $2 - i64.const 4607182418800017408 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop + local.set $3 + local.get $0 + f64.const -1 + f64.add + local.get $0 f64.const 1 - local.get $12 - i64.const 958 - i64.lt_u - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const inf - f64.const 0 - local.get $6 - i64.const 2048 - i64.lt_u - local.get $2 - i64.const 4607182418800017408 - i64.gt_u - i32.eq - select - br $~lib/util/math/pow_lut|inlined.0 + f64.add + f64.div end - local.get $5 - i64.eqz - if + else + local.get $2 + i32.const 1073971200 + i32.lt_u + if (result f64) + i32.const 2 + local.set $3 local.get $0 - f64.const 4503599627370496 + f64.const -1.5 + f64.add + local.get $0 + f64.const 1.5 f64.mul - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - i64.const 234187180623265792 - i64.sub - local.set $2 + f64.const 1 + f64.add + f64.div + else + i32.const 3 + local.set $3 + f64.const -1 + local.get $0 + f64.div end end - local.get $2 - local.get $2 - i64.const 4604531861337669632 - i64.sub - local.tee $2 - i64.const -4503599627370496 - i64.and - i64.sub - local.tee $5 - i64.const 2147483648 - i64.add - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $7 - local.get $2 - i64.const 45 - i64.shr_u - i64.const 127 - i64.and - i32.wrap_i64 - i32.const 5 - i32.shl - i32.const 10272 - i32.add - local.tee $3 - f64.load - local.tee $8 - f64.mul - f64.const -1 - f64.add - local.set $9 - local.get $2 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $13 - f64.const 0.6931471805598903 - f64.mul - local.get $3 - f64.load offset=16 - f64.add - local.tee $0 - local.get $9 - local.get $5 - f64.reinterpret_i64 - local.get $7 - f64.sub - local.get $8 - f64.mul - local.tee $7 - f64.add - local.tee $14 - f64.add - local.set $15 - local.get $14 - local.get $14 - f64.const -0.5 - f64.mul - local.tee $8 - f64.mul - local.set $16 - local.get $15 - local.get $9 - local.get $9 - f64.const -0.5 - f64.mul - local.tee $17 - f64.mul - local.tee $9 - f64.add - local.tee $10 - local.get $10 - local.get $13 - f64.const 5.497923018708371e-14 - f64.mul - local.get $3 - f64.load offset=24 - f64.add + local.set $0 + end + local.get $0 + local.get $0 + f64.mul + local.tee $5 + local.get $5 + f64.mul + local.set $4 + local.get $0 + local.get $5 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + f64.const 0.016285820115365782 + f64.mul + f64.const 0.049768779946159324 + f64.add + f64.mul + f64.const 0.06661073137387531 + f64.add + f64.mul + f64.const 0.09090887133436507 + f64.add + f64.mul + f64.const 0.14285714272503466 + f64.add + f64.mul + f64.const 0.3333333333333293 + f64.add + f64.mul + local.get $4 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + f64.const -0.036531572744216916 + f64.mul + f64.const -0.058335701337905735 + f64.add + f64.mul + f64.const -0.0769187620504483 + f64.add + f64.mul + f64.const -0.11111110405462356 + f64.add + f64.mul + f64.const -0.19999999999876483 + f64.add + f64.mul + f64.add + f64.mul + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if local.get $0 - local.get $15 - f64.sub - local.get $14 - f64.add - f64.add - local.get $7 - local.get $8 - local.get $17 - f64.add - f64.mul - f64.add - local.get $15 - local.get $10 - f64.sub - local.get $9 - f64.add - f64.add - local.get $14 - local.get $16 - f64.mul - local.get $14 - f64.const 0.5000000000000007 - f64.mul - f64.const -0.6666666666666679 - f64.add - local.get $16 - local.get $14 - f64.const -0.6666666663487739 - f64.mul - f64.const 0.7999999995323976 - f64.add - local.get $16 - local.get $14 - f64.const 1.0000415263675542 - f64.mul - f64.const -1.142909628459501 - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.tee $0 - f64.add - local.tee $7 + local.get $4 f64.sub - local.get $0 - f64.add - global.set $~lib/util/math/log_tail - block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $11 - i64.const -134217728 - i64.and - f64.reinterpret_i64 - local.tee $0 - local.get $7 - i64.reinterpret_f64 - i64.const -134217728 - i64.and - f64.reinterpret_i64 - local.tee $8 - f64.mul - local.tee $9 - i64.reinterpret_f64 - local.tee $2 - i64.const 52 - i64.shr_u - i32.wrap_i64 - i32.const 2047 - i32.and - local.tee $3 - i32.const 969 - i32.sub - local.tee $18 - i32.const 63 - i32.ge_u - if - f64.const -1 - f64.const 1 - local.get $4 - select - local.get $18 - i32.const -2147483648 - i32.ge_u - br_if $~lib/util/math/exp_inline|inlined.0 - drop - f64.const -0 - f64.const 0 - local.get $4 - select - f64.const -inf - f64.const inf + return + end + block $break|0 (result f64) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + block $tablify|0 + local.get $3 + br_table $case0|0 $case1|0 $case2|0 $case3|0 $tablify|0 + end + unreachable + end + f64.const 0.4636476090008061 + local.get $4 + f64.const -2.2698777452961687e-17 + f64.add + local.get $0 + f64.sub + f64.sub + br $break|0 + end + f64.const 0.7853981633974483 local.get $4 - select - local.get $2 - i64.const 0 - i64.lt_s - select - local.get $3 - i32.const 1033 - i32.ge_u - br_if $~lib/util/math/exp_inline|inlined.0 - drop - i32.const 0 - local.set $3 + f64.const -3.061616997868383e-17 + f64.add + local.get $0 + f64.sub + f64.sub + br $break|0 end - local.get $9 - f64.const 184.6649652337873 - f64.mul - f64.const 6755399441055744 - f64.add - local.tee $10 - i64.reinterpret_f64 - local.tee $2 - i64.const 127 - i64.and - i64.const 1 - i64.shl - i32.wrap_i64 - i32.const 3 - i32.shl - i32.const 5664 - i32.add - local.tee $18 - i64.load offset=8 - local.get $2 + f64.const 0.982793723247329 local.get $4 - i64.extend_i32_u - i64.add - i64.const 45 - i64.shl - i64.add - local.set $5 - local.get $9 - local.get $10 - f64.const -6755399441055744 + f64.const -1.3903311031230998e-17 f64.add - local.tee $9 - f64.const -0.005415212348111709 - f64.mul - f64.add - local.get $9 - f64.const -1.2864023111638346e-14 - f64.mul - f64.add - local.get $1 local.get $0 f64.sub - local.get $8 - f64.mul - local.get $1 - local.get $7 - local.get $8 f64.sub - global.get $~lib/util/math/log_tail - f64.add - f64.mul - f64.add - f64.add - local.tee $0 - local.get $0 - f64.mul - local.set $1 - local.get $18 - f64.load - local.get $0 - f64.add - local.get $1 - local.get $0 - f64.const 0.16666666666665886 - f64.mul - f64.const 0.49999999999996786 - f64.add - f64.mul - f64.add - local.get $1 - local.get $1 - f64.mul - local.get $0 - f64.const 0.008333335853059549 - f64.mul - f64.const 0.0416666808410674 - f64.add - f64.mul - f64.add - local.set $0 - local.get $3 - i32.eqz - if - block $~lib/util/math/specialcase|inlined.1 (result f64) - local.get $2 - i64.const 2147483648 - i64.and - i64.eqz - if - local.get $5 - i64.const 4544132024016830464 - i64.sub - f64.reinterpret_i64 - local.tee $1 - local.get $1 - local.get $0 - f64.mul - f64.add - f64.const 5486124068793688683255936e279 - f64.mul - br $~lib/util/math/specialcase|inlined.1 - end - local.get $5 - i64.const 4602678819172646912 - i64.add - local.tee $2 - f64.reinterpret_i64 - local.tee $1 - local.get $0 - f64.mul - local.set $0 - local.get $1 - local.get $0 - f64.add - local.tee $7 - f64.abs - f64.const 1 - f64.lt - if (result f64) - f64.const 1 - local.get $7 - f64.copysign - local.tee $8 - local.get $7 - f64.add - local.tee $9 - local.get $8 - local.get $9 - f64.sub - local.get $7 - f64.add - local.get $1 - local.get $7 - f64.sub - local.get $0 - f64.add - f64.add - f64.add - local.get $8 - f64.sub - local.tee $0 - f64.const 0 - f64.eq - if (result f64) - local.get $2 - i64.const -9223372036854775808 - i64.and - f64.reinterpret_i64 - else - local.get $0 - end - else - local.get $7 - end - f64.const 2.2250738585072014e-308 - f64.mul - end - br $~lib/util/math/exp_inline|inlined.0 - end - local.get $5 - f64.reinterpret_i64 - local.tee $1 - local.get $1 - local.get $0 - f64.mul - f64.add + br $break|0 end - end - ) - (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - local.get $0 - local.get $1 - call $~lib/math/NativeMath.pow - local.get $2 - local.get $3 - call $std/math/check - if (result i32) + f64.const 1.5707963267948966 + local.get $4 + f64.const -6.123233995736766e-17 + f64.add local.get $0 - local.get $1 - call $~lib/bindings/dom/Math.pow - local.get $2 - local.get $3 - call $std/math/check - else - i32.const 0 + f64.sub + f64.sub end - ) - (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) local.get $1 - f32.abs - f32.const 2 - f32.le + f64.copysign + ) + (func $~lib/math/NativeMath.asin (param $0 f64) (result f64) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 f64) + (local $5 f64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 1072693248 + i32.ge_u if + local.get $2 + i32.wrap_i64 local.get $1 - f32.const 2 - f32.eq - if - local.get $0 - local.get $0 - f32.mul - return - end - local.get $1 - f32.const 0.5 - f32.eq + i32.const 1072693248 + i32.sub + i32.or + i32.eqz if local.get $0 - f32.sqrt - f32.abs - f32.const inf - local.get $0 - f32.const -inf - f32.ne - select + f64.const 1.5707963267948966 + f64.mul + f64.const 7.52316384526264e-37 + f64.add return end + f64.const 0 + local.get $0 + local.get $0 + f64.sub + f64.div + return + end + local.get $1 + i32.const 1071644672 + i32.lt_u + if local.get $1 - f32.const -1 - f32.eq - if - f32.const 1 - local.get $0 - f32.div - return - end + i32.const 1045430272 + i32.lt_u local.get $1 - f32.const 1 - f32.eq + i32.const 1048576 + i32.ge_u + i32.and if local.get $0 return end - local.get $1 - f32.const 0 - f32.eq - if - f32.const 1 - return - end + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.mul + local.tee $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.const 7.915349942898145e-04 + f64.add + f64.mul + f64.const -0.04005553450067941 + f64.add + f64.mul + f64.const 0.20121253213486293 + f64.add + f64.mul + f64.const -0.3255658186224009 + f64.add + f64.mul + f64.const 0.16666666666666666 + f64.add + f64.mul + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.07703815055590194 + f64.mul + f64.const -0.6882839716054533 + f64.add + f64.mul + f64.const 2.0209457602335057 + f64.add + f64.mul + f64.const -2.403394911734414 + f64.add + f64.mul + f64.const 1 + f64.add + f64.div + f64.mul + f64.add + return end - block $~lib/util/math/powf_lut|inlined.0 (result f32) - local.get $1 - i32.reinterpret_f32 - local.tee $8 - i32.const 1 - i32.shl - local.tee $6 - i32.const 1 - i32.sub - i32.const -16777217 - i32.ge_u - local.tee $7 + f64.const 0.5 + local.get $0 + f64.abs + f64.const 0.5 + f64.mul + f64.sub + local.tee $0 + f64.sqrt + local.set $4 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.const 7.915349942898145e-04 + f64.add + f64.mul + f64.const -0.04005553450067941 + f64.add + f64.mul + f64.const 0.20121253213486293 + f64.add + f64.mul + f64.const -0.3255658186224009 + f64.add + f64.mul + f64.const 0.16666666666666666 + f64.add + f64.mul + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.07703815055590194 + f64.mul + f64.const -0.6882839716054533 + f64.add + f64.mul + f64.const 2.0209457602335057 + f64.add + f64.mul + f64.const -2.403394911734414 + f64.add + f64.mul + f64.const 1 + f64.add + f64.div + local.set $5 + local.get $1 + i32.const 1072640819 + i32.ge_u + if (result f64) + f64.const 1.5707963267948966 + local.get $4 + local.get $4 + local.get $5 + f64.mul + f64.add + f64.const 2 + f64.mul + f64.const -6.123233995736766e-17 + f64.add + f64.sub + else + f64.const 0.7853981633974483 + local.get $4 + local.get $4 + f64.add + local.get $5 + f64.mul + f64.const 6.123233995736766e-17 local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 8388608 + local.get $4 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $0 + local.get $0 + f64.mul + f64.sub + local.get $4 + local.get $0 + f64.add + f64.div + f64.const 2 + f64.mul + f64.sub + f64.sub + f64.const 0.7853981633974483 + local.get $0 + local.get $0 + f64.add + f64.sub + f64.sub + f64.sub + end + local.tee $0 + f64.neg + local.get $0 + local.get $3 + i32.const 0 + i32.lt_s + select + ) + (func $~lib/math/NativeMath.acos (param $0 f64) (result f64) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 f64) + (local $5 f64) + local.get $0 + i64.reinterpret_f64 + local.tee $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 2147483647 + i32.and + local.tee $1 + i32.const 1072693248 + i32.ge_u + if + local.get $3 + i32.wrap_i64 + local.get $1 + i32.const 1072693248 i32.sub - i32.const 2130706432 - i32.ge_u i32.or + i32.eqz if - local.get $7 - if - f32.const 1 - local.get $6 - i32.eqz - br_if $~lib/util/math/powf_lut|inlined.0 - drop - f32.const nan:0x400000 - local.get $2 - i32.const 1065353216 - i32.eq - br_if $~lib/util/math/powf_lut|inlined.0 - drop - local.get $0 - local.get $1 - f32.add - local.get $6 - i32.const -16777216 - i32.gt_u - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - i32.const -16777216 - i32.gt_u - i32.or - br_if $~lib/util/math/powf_lut|inlined.0 - drop - f32.const nan:0x400000 - local.get $2 - i32.const 2130706432 - i32.eq - br_if $~lib/util/math/powf_lut|inlined.0 - drop - f32.const 0 - local.get $8 - i32.const 31 - i32.shr_u - i32.eqz - local.get $2 - i32.const 2130706432 - i32.lt_u - i32.eq - br_if $~lib/util/math/powf_lut|inlined.0 - drop - local.get $1 - local.get $1 - f32.mul - br $~lib/util/math/powf_lut|inlined.0 - end - local.get $2 - i32.const 1 - i32.shl - i32.const 1 - i32.sub - i32.const -16777217 - i32.ge_u - if - f32.const 1 - local.get $0 - local.get $0 - f32.mul - local.tee $0 - f32.neg - local.get $0 - local.get $2 - i32.const 31 - i32.shr_u - if (result i32) - block $~lib/util/math/checkintf|inlined.0 (result i32) - i32.const 0 - local.get $8 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.tee $2 - i32.const 127 - i32.lt_u - br_if $~lib/util/math/checkintf|inlined.0 - drop - i32.const 2 - local.get $2 - i32.const 150 - i32.gt_u - br_if $~lib/util/math/checkintf|inlined.0 - drop - i32.const 0 - local.get $8 - i32.const 1 - i32.const 150 - local.get $2 - i32.sub - i32.shl - local.tee $2 - i32.const 1 - i32.sub - i32.and - br_if $~lib/util/math/checkintf|inlined.0 - drop - i32.const 1 - local.get $2 - local.get $8 - i32.and - br_if $~lib/util/math/checkintf|inlined.0 - drop - i32.const 2 - end - i32.const 1 - i32.eq - else - i32.const 0 - end - select - local.tee $0 - f32.div - local.get $0 - local.get $8 - i32.const 0 - i32.lt_s - select - br $~lib/util/math/powf_lut|inlined.0 - end local.get $2 i32.const 0 i32.lt_s if - block $~lib/util/math/checkintf|inlined.1 (result i32) - i32.const 0 - local.get $8 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.tee $4 - i32.const 127 - i32.lt_u - br_if $~lib/util/math/checkintf|inlined.1 - drop - i32.const 2 - local.get $4 - i32.const 150 - i32.gt_u - br_if $~lib/util/math/checkintf|inlined.1 - drop - i32.const 0 - local.get $8 - i32.const 1 - i32.const 150 - local.get $4 - i32.sub - i32.shl - local.tee $4 - i32.const 1 - i32.sub - i32.and - br_if $~lib/util/math/checkintf|inlined.1 - drop - i32.const 1 - local.get $4 - local.get $8 - i32.and - br_if $~lib/util/math/checkintf|inlined.1 - drop - i32.const 2 - end - local.tee $4 - i32.eqz - if - local.get $0 - local.get $0 - f32.sub - local.tee $0 - local.get $0 - f32.div - br $~lib/util/math/powf_lut|inlined.0 - end - i32.const 65536 - i32.const 0 - local.get $4 - i32.const 1 - i32.eq - select - local.set $4 - local.get $2 - i32.const 2147483647 - i32.and - local.set $2 - end - local.get $2 - i32.const 8388608 - i32.lt_u - if - local.get $0 - f32.const 8388608 - f32.mul - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - i32.const 192937984 - i32.sub - local.set $2 + f64.const 3.141592653589793 + return end + f64.const 0 + return + end + f64.const 0 + local.get $0 + local.get $0 + f64.sub + f64.div + return + end + local.get $1 + i32.const 1071644672 + i32.lt_u + if + local.get $1 + i32.const 1012924416 + i32.le_u + if + f64.const 1.5707963267948966 + return end - local.get $2 - local.get $2 - i32.const 1060306944 - i32.sub - local.tee $2 - i32.const -8388608 - i32.and - local.tee $6 - i32.sub - f32.reinterpret_i32 - f64.promote_f32 - local.get $2 - i32.const 19 - i32.shr_u - i32.const 15 - i32.and - i32.const 4 - i32.shl - i32.const 10016 - i32.add - local.tee $2 - f64.load + f64.const 1.5707963267948966 + local.get $0 + f64.const 6.123233995736766e-17 + local.get $0 + local.get $0 + local.get $0 f64.mul - f64.const -1 + local.tee $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 3.479331075960212e-05 + f64.mul + f64.const 7.915349942898145e-04 f64.add - local.tee $3 - local.get $3 f64.mul - local.set $9 - local.get $1 - f64.promote_f32 - local.get $3 - f64.const 0.288457581109214 + f64.const -0.04005553450067941 + f64.add f64.mul - f64.const -0.36092606229713164 + f64.const 0.20121253213486293 f64.add - local.get $9 - local.get $9 f64.mul + f64.const -0.3255658186224009 + f64.add f64.mul - local.get $3 - f64.const 1.4426950408774342 + f64.const 0.16666666666666666 + f64.add f64.mul - local.get $2 - f64.load offset=8 - local.get $6 - i32.const 23 - i32.shr_s - f64.convert_i32_s + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.07703815055590194 + f64.mul + f64.const -0.6882839716054533 f64.add + f64.mul + f64.const 2.0209457602335057 f64.add - local.get $3 - f64.const 0.480898481472577 f64.mul - f64.const -0.7213474675006291 + f64.const -2.403394911734414 f64.add - local.get $9 f64.mul + f64.const 1 f64.add + f64.div + f64.mul + f64.sub + f64.sub + f64.sub + return + end + local.get $2 + i32.const 0 + i32.lt_s + if + f64.const 1.5707963267948966 + local.get $0 + f64.const 0.5 + f64.mul + f64.const 0.5 f64.add + local.tee $0 + f64.sqrt + local.tee $4 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 3.479331075960212e-05 f64.mul - local.tee $3 - i64.reinterpret_f64 - i64.const 47 - i64.shr_u - i64.const 65535 - i64.and - i64.const 32959 - i64.ge_u - if - f32.const -inf - f32.const inf - local.get $4 - select - local.get $3 - f64.const 127.99999995700433 - f64.gt - br_if $~lib/util/math/powf_lut|inlined.0 - drop - f32.const -0 - f32.const 0 - local.get $4 - select - local.get $3 - f64.const -150 - f64.le - br_if $~lib/util/math/powf_lut|inlined.0 - drop - end - local.get $3 - f64.const 211106232532992 + f64.const 7.915349942898145e-04 f64.add - local.tee $9 - i64.reinterpret_f64 - local.set $5 - local.get $3 - local.get $9 - f64.const -211106232532992 + f64.mul + f64.const -0.04005553450067941 f64.add - f64.sub - local.tee $3 - f64.const 0.6931471806916203 f64.mul - f64.const 1 + f64.const 0.20121253213486293 f64.add - local.get $3 - f64.const 0.05550361559341535 f64.mul - f64.const 0.2402284522445722 + f64.const -0.3255658186224009 f64.add - local.get $3 - local.get $3 f64.mul + f64.const 0.16666666666666666 + f64.add + f64.mul + local.get $0 + local.get $0 + local.get $0 + local.get $0 + f64.const 0.07703815055590194 f64.mul + f64.const -0.6882839716054533 f64.add - local.get $5 - i32.wrap_i64 - i32.const 31 - i32.and - i32.const 3 - i32.shl - i32.const 7712 - i32.add - i64.load - local.get $5 + f64.mul + f64.const 2.0209457602335057 + f64.add + f64.mul + f64.const -2.403394911734414 + f64.add + f64.mul + f64.const 1 + f64.add + f64.div local.get $4 - i64.extend_i32_u - i64.add - i64.const 47 - i64.shl - i64.add - f64.reinterpret_i64 f64.mul - f32.demote_f64 + f64.const -6.123233995736766e-17 + f64.add + f64.add + f64.sub + f64.const 2 + f64.mul + return end - ) - (func $~lib/math/NativeMath.seedRandom (param $0 i64) - (local $1 i32) - (local $2 i64) - i64.const -7046029254386353131 - local.get $0 + f64.const 0.5 local.get $0 - i64.eqz - select + f64.const 0.5 + f64.mul + f64.sub + local.tee $4 + f64.sqrt + local.tee $5 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 local.tee $0 - i64.const 33 - i64.shr_u + local.get $4 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + local.get $4 + f64.const 3.479331075960212e-05 + f64.mul + f64.const 7.915349942898145e-04 + f64.add + f64.mul + f64.const -0.04005553450067941 + f64.add + f64.mul + f64.const 0.20121253213486293 + f64.add + f64.mul + f64.const -0.3255658186224009 + f64.add + f64.mul + f64.const 0.16666666666666666 + f64.add + f64.mul + local.get $4 + local.get $4 + local.get $4 + local.get $4 + f64.const 0.07703815055590194 + f64.mul + f64.const -0.6882839716054533 + f64.add + f64.mul + f64.const 2.0209457602335057 + f64.add + f64.mul + f64.const -2.403394911734414 + f64.add + f64.mul + f64.const 1 + f64.add + f64.div + local.get $5 + f64.mul + local.get $4 local.get $0 - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $2 - i64.const 33 - i64.shr_u - local.get $2 - i64.xor - global.set $~lib/math/random_state1_64 local.get $0 - i32.wrap_i64 - i32.const 1831565813 - i32.add - local.tee $1 - i32.const 1 - i32.or - local.get $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.mul - local.tee $1 - i32.const 61 - i32.or - local.get $1 - local.get $1 - i32.const 7 - i32.shr_u - i32.xor - i32.mul - local.get $1 - i32.add - local.get $1 - i32.xor - local.tee $1 - i32.const 14 - i32.shr_u - local.get $1 - i32.xor - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - i32.const 1831565813 - i32.add - local.tee $1 - i32.const 1 - i32.or - local.get $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.mul - local.tee $1 - i32.const 61 - i32.or - local.get $1 - local.get $1 - i32.const 7 - i32.shr_u - i32.xor - i32.mul - local.get $1 - i32.add - local.get $1 - i32.xor - local.tee $1 - i32.const 14 - i32.shr_u - local.get $1 - i32.xor - global.set $~lib/math/random_state1_32 - i32.const 1 - global.set $~lib/math/random_seeded - ) - (func $std/math/test_round (param $0 f64) (param $1 f64) (result i32) - (local $2 f64) + f64.mul + f64.sub + local.get $5 local.get $0 - f64.ceil - local.tee $2 - local.get $2 - f64.const -1 f64.add - local.get $2 - f64.const -0.5 + f64.div f64.add - local.get $0 - f64.le - select - local.get $1 - f64.const 0 - call $std/math/check + f64.add + f64.const 2 + f64.mul ) - (func $std/math/test_roundf (param $0 f32) (param $1 f32) (result i32) - (local $2 f32) - local.get $0 - f32.ceil - local.tee $2 - local.get $2 - f32.const -1 - f32.add - local.get $2 - f32.const -0.5 - f32.add - local.get $0 - f32.le - select + (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 f64) + (local $4 i32) + (local $5 f64) + (local $6 i32) + (local $7 f64) + (local $8 f64) + block $__inlined_func$~lib/math/NativeMathf.cbrt$19 (result f32) + local.get $0 + local.get $0 + f32.add + local.get $0 + i32.reinterpret_f32 + local.tee $4 + i32.const 2147483647 + i32.and + local.tee $6 + i32.const 2139095040 + i32.ge_u + br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 + drop + local.get $6 + i32.const 8388608 + i32.lt_u + if (result i32) + local.get $0 + local.get $6 + i32.eqz + br_if $__inlined_func$~lib/math/NativeMathf.cbrt$19 + drop + local.get $0 + f32.const 16777216 + f32.mul + i32.reinterpret_f32 + local.tee $4 + i32.const 2147483647 + i32.and + i32.const 3 + i32.div_u + i32.const 642849266 + i32.add + else + local.get $6 + i32.const 3 + i32.div_u + i32.const 709958130 + i32.add + end + local.get $4 + i32.const -2147483648 + i32.and + i32.or + f32.reinterpret_i32 + f64.promote_f32 + local.tee $3 + local.get $3 + f64.mul + local.get $3 + f64.mul + local.set $7 + local.get $3 + local.get $0 + f64.promote_f32 + local.tee $5 + local.get $5 + f64.add + local.tee $3 + local.get $7 + f64.add + f64.mul + local.get $5 + local.get $7 + f64.add + local.get $7 + f64.add + f64.div + local.tee $7 + local.get $7 + f64.mul + local.get $7 + f64.mul + local.set $8 + local.get $7 + local.get $3 + local.get $8 + f64.add + f64.mul + local.get $5 + local.get $8 + f64.add + local.get $8 + f64.add + f64.div + f32.demote_f64 + end local.get $1 - f32.const 0 + local.get $2 call $std/math/check ) - (func $std/math/test_sign (param $0 f64) (param $1 f64) (result i32) - f64.const 1 - f64.const -1 - local.get $0 + (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 f64) + (local $4 i32) + (local $5 i64) + (local $6 f64) local.get $0 - f64.const 0 - f64.lt - select local.get $0 - f64.const 0 - f64.gt - select + f64.add + local.set $3 + block $__inlined_func$~lib/math/NativeMath.cbrt$18 + local.get $0 + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $4 + i32.const 2146435072 + i32.ge_u + br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 + local.get $4 + i32.const 1048576 + i32.lt_u + if (result i32) + local.get $0 + local.tee $3 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $4 + i32.eqz + br_if $__inlined_func$~lib/math/NativeMath.cbrt$18 + local.get $4 + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + else + local.get $4 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + end + local.set $4 + local.get $5 + i64.const -9223372036854775808 + i64.and + local.get $4 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + local.tee $3 + local.get $3 + f64.mul + local.get $3 + local.get $0 + f64.div + f64.mul + local.set $6 + local.get $0 + local.get $3 + local.get $6 + local.get $6 + f64.const 1.6214297201053545 + f64.mul + f64.const -1.8849797954337717 + f64.add + f64.mul + f64.const 1.87595182427177 + f64.add + local.get $6 + local.get $6 + f64.mul + local.get $6 + f64.mul + local.get $6 + f64.const 0.14599619288661245 + f64.mul + f64.const -0.758397934778766 + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.tee $3 + local.get $3 + f64.mul + f64.div + local.set $6 + local.get $3 + local.get $3 + local.get $6 + local.get $3 + f64.sub + local.get $3 + local.get $3 + f64.add + local.get $6 + f64.add + f64.div + f64.mul + f64.add + local.set $3 + end + local.get $3 local.get $1 - f64.const 0 + local.get $2 call $std/math/check if (result i32) local.get $0 - call $~lib/bindings/dom/Math.sign + call $~lib/bindings/dom/Math.cbrt local.get $1 - f64.const 0 + local.get $2 call $std/math/check else i32.const 0 end ) - (func $std/math/test_signf (param $0 f32) (param $1 f32) (result i32) - f32.const 1 - f32.const -1 + (func $~lib/math/NativeMathf.atan (param $0 f32) (result f32) + (local $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f32) local.get $0 + local.set $1 local.get $0 - f32.const 0 - f32.lt - select + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 1283457024 + i32.ge_u + if + local.get $0 + local.get $0 + f32.ne + if + local.get $0 + return + end + f32.const 1.570796251296997 + local.get $1 + f32.copysign + return + end + local.get $2 + i32.const 1054867456 + i32.lt_u + if + local.get $2 + i32.const 964689920 + i32.lt_u + if + local.get $0 + return + end + i32.const -1 + local.set $3 + else + local.get $0 + f32.abs + local.set $0 + local.get $2 + i32.const 1066926080 + i32.lt_u + if (result f32) + local.get $2 + i32.const 1060110336 + i32.lt_u + if (result f32) + local.get $0 + local.get $0 + f32.add + f32.const -1 + f32.add + local.get $0 + f32.const 2 + f32.add + f32.div + else + i32.const 1 + local.set $3 + local.get $0 + f32.const -1 + f32.add + local.get $0 + f32.const 1 + f32.add + f32.div + end + else + local.get $2 + i32.const 1075576832 + i32.lt_u + if (result f32) + i32.const 2 + local.set $3 + local.get $0 + f32.const -1.5 + f32.add + local.get $0 + f32.const 1.5 + f32.mul + f32.const 1 + f32.add + f32.div + else + i32.const 3 + local.set $3 + f32.const -1 + local.get $0 + f32.div + end + end + local.set $0 + end local.get $0 - f32.const 0 - f32.gt - select + local.get $0 + f32.mul + local.tee $5 + local.get $5 + f32.mul + local.set $4 + local.get $0 + local.get $5 + local.get $4 + local.get $4 + f32.const 0.06168760731816292 + f32.mul + f32.const 0.14253635704517365 + f32.add + f32.mul + f32.const 0.333333283662796 + f32.add + f32.mul + local.get $4 + local.get $4 + f32.const -0.106480173766613 + f32.mul + f32.const -0.19999158382415771 + f32.add + f32.mul + f32.add + f32.mul + local.set $4 + local.get $3 + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $4 + f32.sub + return + end + block $break|0 (result f32) + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + block $tablify|0 + local.get $3 + br_table $case0|0 $case1|0 $case2|0 $case3|0 $tablify|0 + end + unreachable + end + f32.const 0.46364760398864746 + local.get $4 + f32.const -5.01215824399992e-09 + f32.add + local.get $0 + f32.sub + f32.sub + br $break|0 + end + f32.const 0.7853981256484985 + local.get $4 + f32.const -3.774894707930798e-08 + f32.add + local.get $0 + f32.sub + f32.sub + br $break|0 + end + f32.const 0.9827936887741089 + local.get $4 + f32.const -3.447321716976148e-08 + f32.add + local.get $0 + f32.sub + f32.sub + br $break|0 + end + f32.const 1.570796251296997 + local.get $4 + f32.const -7.549789415861596e-08 + f32.add + local.get $0 + f32.sub + f32.sub + end local.get $1 - f32.const 0 - call $std/math/check + f32.copysign ) - (func $~lib/math/NativeMath.rem (param $0 f64) (param $1 f64) (result f64) - (local $2 i64) + (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) + (local $1 i64) + (local $2 i32) (local $3 i64) - (local $4 i64) - (local $5 i32) - (local $6 i64) - (local $7 i64) + (local $4 f64) + (local $5 f64) + (local $6 f64) + (local $7 f64) (local $8 f64) - local.get $1 - i64.reinterpret_f64 - local.tee $7 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.set $4 - local.get $7 - i64.const 1 - i64.shl - i64.eqz - local.get $0 - i64.reinterpret_f64 - local.tee $6 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $3 - i64.const 2047 - i64.eq - i32.or - local.get $1 - local.get $1 - f64.ne - i32.or - if + (local $9 f64) + (local $10 i32) + block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 + i64.reinterpret_f64 + local.tee $1 + i64.const 4606800540372828160 + i64.sub + i64.const 581272283906048 + i64.lt_u + if + local.get $0 + f64.const -1 + f64.add + local.tee $5 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $6 + f64.const 1.4426950407214463 + f64.mul + local.set $7 + local.get $5 + local.get $5 + f64.mul + local.tee $8 + local.get $8 + f64.mul + local.set $0 + local.get $7 + local.get $8 + local.get $5 + f64.const 0.48089834696298744 + f64.mul + f64.const -0.7213475204444817 + f64.add + f64.mul + local.tee $4 + f64.add + local.tee $9 + local.get $5 + local.get $6 + f64.sub + f64.const 1.4426950407214463 + f64.mul + local.get $5 + f64.const 1.6751713164886512e-10 + f64.mul + f64.add + local.get $7 + local.get $9 + f64.sub + local.get $4 + f64.add + f64.add + local.get $0 + local.get $5 + f64.const 0.2885390081805197 + f64.mul + f64.const -0.360673760222145 + f64.add + local.get $8 + local.get $5 + f64.const 0.2060992861022954 + f64.mul + f64.const -0.24044917405728863 + f64.add + f64.mul + f64.add + local.get $0 + local.get $5 + f64.const 0.1603032746063156 + f64.mul + f64.const -0.18033596705327856 + f64.add + local.get $8 + local.get $5 + f64.const 0.13046826811283835 + f64.mul + f64.const -0.14483316576701266 + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.add + br $~lib/util/math/log2_lut|inlined.0 + end + local.get $1 + i64.const 48 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 16 + i32.sub + i32.const 32736 + i32.ge_u + if + f64.const -1 + local.get $0 + local.get $0 + f64.mul + f64.div + local.get $1 + i64.const 1 + i64.shl + i64.eqz + br_if $~lib/util/math/log2_lut|inlined.0 + drop + local.get $0 + local.get $1 + i64.const 9218868437227405312 + i64.eq + br_if $~lib/util/math/log2_lut|inlined.0 + drop + i32.const 1 + local.get $2 + i32.const 32752 + i32.and + i32.const 32752 + i32.eq + local.get $2 + i32.const 32768 + i32.and + select + if + local.get $0 + local.get $0 + f64.sub + local.tee $0 + local.get $0 + f64.div + br $~lib/util/math/log2_lut|inlined.0 + end + local.get $0 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + i64.const 234187180623265792 + i64.sub + local.set $1 + end + local.get $1 + i64.const 4604367669032910848 + i64.sub + local.tee $3 + i64.const 46 + i64.shr_u + i64.const 63 + i64.and + i32.wrap_i64 + i32.const 4 + i32.shl + local.tee $2 + i32.const 7968 + i32.add + local.set $10 + local.get $3 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.get $10 + f64.load offset=8 + f64.add + local.tee $0 local.get $1 + local.get $3 + i64.const -4503599627370496 + i64.and + i64.sub + f64.reinterpret_i64 + local.get $2 + i32.const 8992 + i32.add + local.tee $2 + f64.load + f64.sub + local.get $2 + f64.load offset=8 + f64.sub + local.get $10 + f64.load + f64.mul + local.tee $4 + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $5 + f64.const 1.4426950407214463 + f64.mul + local.tee $6 + f64.add + local.set $7 + local.get $0 + local.get $7 + f64.sub + local.get $6 + f64.add + local.get $4 + local.get $5 + f64.sub + f64.const 1.4426950407214463 + f64.mul + local.get $4 + f64.const 1.6751713164886512e-10 + f64.mul + f64.add + f64.add + local.get $4 + local.get $4 f64.mul local.tee $0 + local.get $4 + f64.const 0.4808983469629985 + f64.mul + f64.const -0.7213475204444882 + f64.add local.get $0 - f64.div - return - end - local.get $6 - i64.const 1 - i64.shl - i64.eqz - if + local.get $4 + f64.const 0.2885390073180969 + f64.mul + f64.const -0.36067375954075914 + f64.add + f64.mul + f64.add local.get $0 - return + local.get $0 + f64.mul + local.get $4 + f64.const 0.2061202382173603 + f64.mul + f64.const -0.2404693555628422 + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.get $7 + f64.add end - local.get $3 - i64.eqz - if (result i64) - local.get $6 - i64.const 1 - local.get $3 - local.get $6 - i64.const 12 - i64.shl - i64.clz - i64.sub + ) + (func $std/math/test_log2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) + block $~lib/util/math/log2f_lut|inlined.0 (result f32) + local.get $0 + i32.reinterpret_f32 local.tee $3 - i64.sub - i64.shl - else + i32.const 8388608 + i32.sub + i32.const 2130706432 + i32.ge_u + if + f32.const -inf + local.get $3 + i32.const 1 + i32.shl + local.tee $6 + i32.eqz + br_if $~lib/util/math/log2f_lut|inlined.0 + drop + local.get $0 + local.get $3 + i32.const 2139095040 + i32.eq + br_if $~lib/util/math/log2f_lut|inlined.0 + drop + local.get $3 + i32.const 31 + i32.shr_u + local.get $6 + i32.const -16777216 + i32.ge_u + i32.or + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/log2f_lut|inlined.0 + end + local.get $0 + f32.const 8388608 + f32.mul + i32.reinterpret_f32 + i32.const 192937984 + i32.sub + local.set $3 + end + local.get $3 + i32.const 1060306944 + i32.sub + local.tee $6 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and + i32.const 4 + i32.shl + i32.const 10016 + i32.add + local.set $7 + local.get $3 local.get $6 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - end - local.set $2 - local.get $4 - i64.eqz - if (result i64) - local.get $7 - i64.const 1 - local.get $4 + i32.const -8388608 + i32.and + i32.sub + f32.reinterpret_i32 + f64.promote_f32 local.get $7 - i64.const 12 - i64.shl - i64.clz - i64.sub + f64.load + f64.mul + f64.const -1 + f64.add local.tee $4 - i64.sub - i64.shl - else + local.get $4 + f64.mul + local.set $5 + local.get $4 + f64.const 0.4811247078767291 + f64.mul + f64.const -0.7213476299867769 + f64.add + local.get $5 + f64.const -0.36051725506874704 + f64.mul + f64.add + local.get $5 + f64.mul + local.get $4 + f64.const 1.4426950186867042 + f64.mul local.get $7 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or + f64.load offset=8 + local.get $6 + i32.const 23 + i32.shr_s + f64.convert_i32_s + f64.add + f64.add + f64.add + f32.demote_f64 end - local.set $7 - block $do-break|0 + local.get $1 + local.get $2 + call $std/math/check + ) + (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 f32) + (local $10 f32) + block $__inlined_func$~lib/math/NativeMathf.log10$25 (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_u + local.tee $4 local.get $3 - local.get $4 - i64.lt_s + i32.const 8388608 + i32.lt_u + i32.or if + f32.const -1 + local.get $0 + local.get $0 + f32.mul + f32.div local.get $3 - i64.const 1 - i64.add + i32.const 1 + i32.shl + i32.eqz + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 + drop + local.get $0 + local.get $0 + f32.sub + f32.const 0 + f32.div local.get $4 - i64.eq - br_if $do-break|0 + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 + drop + i32.const -25 + local.set $6 local.get $0 - return - end - loop $while-continue|1 + f32.const 33554432 + f32.mul + i32.reinterpret_f32 + local.set $3 + else local.get $3 - local.get $4 - i64.gt_s + i32.const 2139095040 + i32.ge_u if - local.get $2 - local.get $7 - i64.ge_u - if (result i64) - local.get $5 - i32.const 1 - i32.add - local.set $5 - local.get $2 - local.get $7 - i64.sub - else - local.get $2 - end - i64.const 1 - i64.shl - local.set $2 - local.get $5 - i32.const 1 - i32.shl - local.set $5 + local.get $0 + br $__inlined_func$~lib/math/NativeMathf.log10$25 + else + f32.const 0 local.get $3 - i64.const 1 - i64.sub - local.set $3 - br $while-continue|1 + i32.const 1065353216 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.log10$25 + drop end end - local.get $2 + local.get $3 + i32.const 4913933 + i32.add + local.tee $3 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret_i32 + f32.const -1 + f32.add + local.tee $8 + local.get $8 + f32.const 2 + f32.add + f32.div + local.tee $0 + local.get $0 + f32.mul + local.tee $5 + local.get $5 + f32.mul + local.set $9 + local.get $6 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + i32.add + f32.convert_i32_s + local.tee $7 + f32.const 7.903415166765626e-07 + f32.mul + local.get $8 + local.get $8 + local.get $8 + f32.const 0.5 + f32.mul + local.get $8 + f32.mul + local.tee $8 + f32.sub + i32.reinterpret_f32 + i32.const -4096 + i32.and + f32.reinterpret_i32 + local.tee $10 + f32.sub + local.get $8 + f32.sub + local.get $0 + local.get $8 + local.get $5 + local.get $9 + f32.const 0.2849878668785095 + f32.mul + f32.const 0.6666666269302368 + f32.add + f32.mul + local.get $9 + local.get $9 + f32.const 0.24279078841209412 + f32.mul + f32.const 0.40000972151756287 + f32.add + f32.mul + f32.add + f32.add + f32.mul + f32.add + local.tee $0 + local.get $10 + f32.add + f32.const -3.168997136526741e-05 + f32.mul + f32.add + local.get $0 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $10 + f32.const 0.434326171875 + f32.mul + f32.add local.get $7 - i64.ge_u + f32.const 0.3010292053222656 + f32.mul + f32.add + end + local.get $1 + local.get $2 + call $std/math/check + ) + (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 f64) + block $__inlined_func$~lib/math/NativeMath.log10$1 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 31 + i32.shr_u + local.tee $6 + local.get $3 + i32.const 1048576 + i32.lt_u + i32.or if - local.get $5 - i32.const 1 - i32.add + f64.const -1 + local.get $0 + local.get $0 + f64.mul + f64.div + local.get $4 + i64.const 1 + i64.shl + i64.eqz + br_if $__inlined_func$~lib/math/NativeMath.log10$1 + drop + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.div + local.get $6 + br_if $__inlined_func$~lib/math/NativeMath.log10$1 + drop + i32.const -54 local.set $5 - local.get $2 - local.get $7 - i64.sub - local.set $2 - end - local.get $2 - i64.eqz - if - i64.const -60 + local.get $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 local.set $3 else local.get $3 - local.get $2 - i64.const 11 - i64.shl - i64.clz - local.tee $7 - i64.sub - local.set $3 - local.get $2 - local.get $7 - i64.shl - local.set $2 - end - end - local.get $1 - f64.abs - local.set $1 - local.get $3 - i64.const 0 - i64.gt_s - if (result i64) - local.get $2 - i64.const 4503599627370496 - i64.sub + i32.const 2146435072 + i32.ge_u + if + local.get $0 + br $__inlined_func$~lib/math/NativeMath.log10$1 + else + f64.const 0 + local.get $4 + i64.const 32 + i64.shl + i64.eqz + local.get $3 + i32.const 1072693248 + i32.eq + i32.and + br_if $__inlined_func$~lib/math/NativeMath.log10$1 + drop + end + end + local.get $4 + i64.const 4294967295 + i64.and local.get $3 - i64.const 52 + i32.const 614242 + i32.add + local.tee $3 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_i32_u + i64.const 32 i64.shl i64.or - else - local.get $2 - i64.const 1 + f64.reinterpret_i64 + f64.const -1 + f64.add + local.tee $7 + f64.const 0.5 + f64.mul + local.get $7 + f64.mul + local.set $8 + local.get $7 + local.get $7 + f64.const 2 + f64.add + f64.div + local.tee $9 + local.get $9 + f64.mul + local.tee $10 + local.get $10 + f64.mul + local.set $11 + local.get $7 + local.get $7 + local.get $8 + f64.sub + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $12 + f64.sub + local.get $8 + f64.sub + local.get $9 + local.get $8 + local.get $10 + local.get $11 + local.get $11 + local.get $11 + f64.const 0.14798198605116586 + f64.mul + f64.const 0.1818357216161805 + f64.add + f64.mul + f64.const 0.2857142874366239 + f64.add + f64.mul + f64.const 0.6666666666666735 + f64.add + f64.mul + local.get $11 + local.get $11 + local.get $11 + f64.const 0.15313837699209373 + f64.mul + f64.const 0.22222198432149784 + f64.add + f64.mul + f64.const 0.3999999999940942 + f64.add + f64.mul + f64.add + f64.add + f64.mul + f64.add + local.set $8 + local.get $5 local.get $3 - i64.sub - i64.shr_u + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + i32.add + f64.convert_i32_s + local.tee $9 + f64.const 0.30102999566361177 + f64.mul + local.tee $10 + local.get $12 + f64.const 0.4342944818781689 + f64.mul + local.tee $11 + f64.add + local.set $7 + local.get $9 + f64.const 3.694239077158931e-13 + f64.mul + local.get $8 + local.get $12 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + local.get $8 + f64.const 0.4342944818781689 + f64.mul + f64.add + local.get $10 + local.get $7 + f64.sub + local.get $11 + f64.add + f64.add + local.get $7 + f64.add end - f64.reinterpret_i64 - local.tee $0 - local.get $0 - f64.add - local.set $8 - local.get $0 local.get $1 - f64.sub - local.get $0 - local.get $3 - local.get $4 - i64.eq + local.get $2 + call $std/math/check if (result i32) - i32.const 1 + local.get $0 + call $~lib/bindings/dom/Math.log10 + local.get $1 + local.get $2 + call $std/math/check else + i32.const 0 + end + ) + (func $std/math/test_acoshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) + block $__inlined_func$~lib/math/NativeMathf.acosh$9 (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 2147483647 + i32.and + i32.const 1073741824 + i32.lt_u + if + local.get $0 + f32.const -1 + f32.add + local.tee $0 + local.get $0 + local.get $0 + f32.const 2 + f32.add + f32.mul + f32.sqrt + f32.add + call $~lib/math/NativeMathf.log1p + br $__inlined_func$~lib/math/NativeMathf.acosh$9 + end local.get $3 - i64.const 1 - i64.add - local.get $4 - i64.eq - if (result i32) - local.get $5 - i32.const 1 - i32.and - local.get $1 - local.get $8 - f64.eq - i32.and - local.get $1 - local.get $8 - f64.lt - i32.or - else - i32.const 0 + i32.const 1166016512 + i32.lt_u + if + local.get $0 + local.get $0 + f32.add + f32.const 1 + local.get $0 + local.get $0 + local.get $0 + f32.mul + f32.const -1 + f32.add + f32.sqrt + f32.add + f32.div + f32.sub + call $~lib/math/NativeMathf.log + br $__inlined_func$~lib/math/NativeMathf.acosh$9 end + local.get $0 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add end - select - local.tee $0 - f64.neg - local.get $0 - local.get $6 - i64.const 0 - i64.lt_s - select + local.get $1 + local.get $2 + call $std/math/check ) - (func $~lib/math/NativeMathf.rem (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) + (func $std/math/test_tanhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f32) - local.get $1 - i32.reinterpret_f32 - local.tee $7 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.set $4 - local.get $7 - i32.const 1 - i32.shl - i32.eqz + (local $4 f32) local.get $0 i32.reinterpret_f32 - local.tee $6 - i32.const 23 - i32.shr_u - i32.const 255 + i32.const 2147483647 i32.and local.tee $3 - i32.const 255 - i32.eq - i32.or - local.get $1 - local.get $1 - f32.ne - i32.or - if - local.get $0 - local.get $1 - f32.mul - local.tee $0 - local.get $0 - f32.div - return - end - local.get $6 - i32.const 1 - i32.shl - i32.eqz - if - local.get $0 - return - end + f32.reinterpret_i32 + local.set $4 local.get $3 - if (result i32) - local.get $6 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else - local.get $6 - i32.const 1 + i32.const 1057791828 + i32.gt_u + if (result f32) local.get $3 - local.get $6 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $3 - i32.sub - i32.shl - end - local.set $2 - local.get $4 - if (result i32) - local.get $7 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or + i32.const 1092616192 + i32.gt_u + if (result f32) + f32.const 0 + local.get $4 + f32.div + f32.const 1 + f32.add + else + f32.const 1 + f32.const 2 + local.get $4 + local.get $4 + f32.add + call $~lib/math/NativeMathf.expm1 + f32.const 2 + f32.add + f32.div + f32.sub + end else - local.get $7 - i32.const 1 - local.get $4 - local.get $7 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $4 - i32.sub - i32.shl - end - local.set $7 - block $do-break|0 local.get $3 - local.get $4 - i32.lt_s - if - local.get $3 - i32.const 1 - i32.add + i32.const 1048757624 + i32.gt_u + if (result f32) local.get $4 - i32.eq - br_if $do-break|0 - local.get $0 - return - end - loop $while-continue|1 - local.get $3 local.get $4 - i32.gt_s - if - local.get $2 - local.get $7 - i32.ge_u - if (result i32) - local.get $5 - i32.const 1 - i32.add - local.set $5 - local.get $2 - local.get $7 - i32.sub - else - local.get $2 - end - i32.const 1 - i32.shl - local.set $2 - local.get $5 - i32.const 1 - i32.shl - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 + f32.add + call $~lib/math/NativeMathf.expm1 + local.tee $4 + local.get $4 + f32.const 2 + f32.add + f32.div + else + local.get $3 + i32.const 8388608 + i32.ge_u + if (result f32) + local.get $4 + f32.const -2 + f32.mul + call $~lib/math/NativeMathf.expm1 + local.tee $4 + f32.neg + local.get $4 + f32.const 2 + f32.add + f32.div + else + local.get $4 end end - local.get $2 - local.get $7 - i32.ge_u - if + end + local.get $0 + f32.copysign + local.get $1 + local.get $2 + call $std/math/check + ) + (func $std/math/test_tanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $4 + f64.reinterpret_i64 + local.set $5 + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 1071748074 + i32.gt_u + if (result f64) + local.get $3 + i32.const 1077149696 + i32.gt_u + if (result f64) + f64.const 1 + f64.const 0 local.get $5 - i32.const 1 - i32.add - local.set $5 - local.get $2 - local.get $7 - i32.sub - local.set $2 + f64.div + f64.sub + else + f64.const 1 + f64.const 2 + local.get $5 + local.get $5 + f64.add + call $~lib/math/NativeMath.expm1 + f64.const 2 + f64.add + f64.div + f64.sub end - local.get $2 - if - local.get $3 - local.get $2 - i32.const 8 - i32.shl - i32.clz - local.tee $7 - i32.sub - local.set $3 - local.get $2 - local.get $7 - i32.shl - local.set $2 + else + local.get $3 + i32.const 1070618798 + i32.gt_u + if (result f64) + local.get $5 + local.get $5 + f64.add + call $~lib/math/NativeMath.expm1 + local.tee $5 + local.get $5 + f64.const 2 + f64.add + f64.div else - i32.const -30 - local.set $3 + local.get $3 + i32.const 1048576 + i32.ge_u + if (result f64) + local.get $5 + f64.const -2 + f64.mul + call $~lib/math/NativeMath.expm1 + local.tee $5 + f64.neg + local.get $5 + f64.const 2 + f64.add + f64.div + else + local.get $5 + end end end + local.get $0 + f64.copysign local.get $1 - f32.abs - local.set $1 - local.get $3 - i32.const 0 - i32.gt_s + local.get $2 + call $std/math/check if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.tanh + local.get $1 local.get $2 - i32.const 8388608 - i32.sub - local.get $3 - i32.const 23 - i32.shl - i32.or + call $std/math/check else - local.get $2 - i32.const 1 - local.get $3 - i32.sub - i32.shr_u + i32.const 0 end - f32.reinterpret_i32 - local.tee $0 - local.get $0 - f32.add - local.set $8 + ) + (func $std/math/test_sinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 f32) + (local $4 i32) + (local $5 f32) local.get $0 - local.get $1 - f32.sub + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $4 + f32.reinterpret_i32 + local.set $5 + f32.const 0.5 local.get $0 - local.get $3 - local.get $4 - i32.eq - if (result i32) - i32.const 1 - else - local.get $3 - i32.const 1 - i32.add + f32.copysign + local.set $3 + block $__inlined_func$~lib/math/NativeMathf.sinh$36 local.get $4 - i32.eq - if (result i32) + i32.const 1118925335 + i32.lt_u + if local.get $5 - i32.const 1 - i32.and - local.get $1 - local.get $8 - f32.eq - i32.and - local.get $1 - local.get $8 - f32.lt - i32.or - else - i32.const 0 + call $~lib/math/NativeMathf.expm1 + local.set $5 + local.get $4 + i32.const 1065353216 + i32.lt_u + if + local.get $4 + i32.const 964689920 + i32.lt_u + br_if $__inlined_func$~lib/math/NativeMathf.sinh$36 + local.get $3 + local.get $5 + local.get $5 + f32.add + local.get $5 + local.get $5 + f32.mul + local.get $5 + f32.const 1 + f32.add + f32.div + f32.sub + f32.mul + local.set $0 + br $__inlined_func$~lib/math/NativeMathf.sinh$36 + end + local.get $3 + local.get $5 + local.get $5 + local.get $5 + f32.const 1 + f32.add + f32.div + f32.add + f32.mul + local.set $0 + br $__inlined_func$~lib/math/NativeMathf.sinh$36 end + local.get $5 + f32.const -162.88958740234375 + f32.add + call $~lib/math/NativeMathf.exp + local.get $3 + local.get $3 + f32.add + f32.const 1661534994731144841129758e11 + f32.mul + f32.mul + f32.const 1661534994731144841129758e11 + f32.mul + local.set $0 end - select - local.tee $0 - f32.neg local.get $0 - local.get $6 - i32.const 0 - i32.lt_s - select + local.get $1 + local.get $2 + call $std/math/check ) - (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) - (local $1 f64) - (local $2 f64) - (local $3 i32) + (func $std/math/test_sinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 f64) (local $4 i32) (local $5 i64) - (local $6 i32) - (local $7 f64) - (local $8 f64) - (local $9 f64) + (local $6 f64) local.get $0 i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 31 - i32.shr_u + f64.reinterpret_i64 local.set $6 - local.get $3 - i32.const 2147483647 - i32.and - local.tee $3 - i32.const 1072243195 - i32.le_u - if - local.get $3 - i32.const 1045430272 - i32.lt_u - if - local.get $0 - return - end - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $1 - local.get $0 - f64.mul - local.get $1 - local.get $1 - local.get $1 - f64.const 2.7557313707070068e-06 - f64.mul - f64.const -1.984126982985795e-04 - f64.add - f64.mul - f64.const 0.00833333333332249 - f64.add - local.get $1 - local.get $1 - local.get $1 - f64.mul - f64.mul - local.get $1 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 - f64.add - f64.mul - f64.add - f64.mul - f64.const -0.16666666666666632 - f64.add - f64.mul - f64.add - return - end - local.get $3 - i32.const 2146435072 - i32.ge_u - if - local.get $0 - local.get $0 - f64.sub - return - end - block $~lib/math/rempio2|inlined.1 (result i32) + f64.const 0.5 + local.get $0 + f64.copysign + local.set $3 + block $__inlined_func$~lib/math/NativeMath.sinh$35 (result f64) local.get $5 i64.const 32 i64.shr_u i32.wrap_i64 - i32.const 2147483647 - i32.and local.tee $4 - i32.const 1073928572 + i32.const 1082535490 i32.lt_u if - i32.const 1 - local.set $3 local.get $6 - if (result f64) - local.get $0 - f64.const 1.5707963267341256 - f64.add - local.set $0 - i32.const -1 - local.set $3 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const 6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const 6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const 6.077100506303966e-11 - f64.add - local.tee $1 - f64.const 2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const 2.0222662487959506e-21 - f64.add - end - else - local.get $0 - f64.const -1.5707963267341256 - f64.add - local.set $0 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const -6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const -6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const -6.077100506303966e-11 - f64.add - local.tee $1 - f64.const -2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const -2.0222662487959506e-21 - f64.add - end - end - local.get $0 - global.set $~lib/math/rempio2_y0 - global.set $~lib/math/rempio2_y1 - local.get $3 - br $~lib/math/rempio2|inlined.1 - end - local.get $4 - i32.const 1094263291 - i32.lt_u - if + call $~lib/math/NativeMath.expm1 + local.set $6 local.get $4 - i32.const 20 - i32.shr_u - local.tee $3 - local.get $0 - local.get $0 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.tee $7 - f64.const 1.5707963267341256 - f64.mul - f64.sub - local.tee $0 - local.get $7 - f64.const 6.077100506506192e-11 - f64.mul - local.tee $2 - f64.sub - local.tee $1 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 16 - i32.gt_u + i32.const 1072693248 + i32.lt_u if - local.get $7 - f64.const 2.0222662487959506e-21 - f64.mul local.get $0 - local.get $0 - local.get $7 - f64.const 6.077100506303966e-11 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $2 + local.get $4 + i32.const 1045430272 + i32.lt_u + br_if $__inlined_func$~lib/math/NativeMath.sinh$35 + drop local.get $3 - local.get $0 - local.get $2 + local.get $6 + local.get $6 + f64.add + local.get $6 + local.get $6 + f64.mul + local.get $6 + f64.const 1 + f64.add + f64.div f64.sub - local.tee $1 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 49 - i32.gt_u - if - local.get $7 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 - local.get $0 - local.get $7 - f64.const 2.0222662487111665e-21 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $2 - local.get $0 - local.get $2 - f64.sub - local.set $1 - end + f64.mul + br $__inlined_func$~lib/math/NativeMath.sinh$35 end - local.get $1 - global.set $~lib/math/rempio2_y0 - local.get $0 - local.get $1 - f64.sub - local.get $2 - f64.sub - global.set $~lib/math/rempio2_y1 - local.get $7 - i32.trunc_sat_f64_s - br $~lib/math/rempio2|inlined.1 - end - i32.const 0 - local.get $5 - call $~lib/math/pio2_large_quot - local.tee $3 - i32.sub - local.get $3 - local.get $6 - select - end - local.set $3 - global.get $~lib/math/rempio2_y0 - local.set $2 - global.get $~lib/math/rempio2_y1 - local.set $7 - local.get $3 - i32.const 1 - i32.and - if (result f64) - local.get $2 - local.get $2 - f64.mul - local.tee $0 - local.get $0 - f64.mul - local.set $1 - f64.const 1 - local.get $0 - f64.const 0.5 - f64.mul - local.tee $8 - f64.sub - local.tee $9 - f64.const 1 - local.get $9 - f64.sub - local.get $8 - f64.sub - local.get $0 - local.get $0 - local.get $0 - local.get $0 - f64.const 2.480158728947673e-05 - f64.mul - f64.const -0.001388888888887411 - f64.add - f64.mul - f64.const 0.0416666666666666 - f64.add - f64.mul - local.get $1 - local.get $1 - f64.mul - local.get $0 - local.get $0 - f64.const -1.1359647557788195e-11 - f64.mul - f64.const 2.087572321298175e-09 - f64.add - f64.mul - f64.const -2.7557314351390663e-07 - f64.add - f64.mul - f64.add - f64.mul - local.get $2 - local.get $7 - f64.mul - f64.sub - f64.add - f64.add - else - local.get $2 - local.get $2 - f64.mul - local.tee $0 - local.get $2 - f64.mul - local.set $1 - local.get $2 - local.get $0 - local.get $7 - f64.const 0.5 - f64.mul - local.get $1 - local.get $0 - local.get $0 - f64.const 2.7557313707070068e-06 - f64.mul - f64.const -1.984126982985795e-04 - f64.add - f64.mul - f64.const 0.00833333333332249 + local.get $3 + local.get $6 + local.get $6 + local.get $6 + f64.const 1 + f64.add + f64.div + f64.add + f64.mul + br $__inlined_func$~lib/math/NativeMath.sinh$35 + end + local.get $6 + f64.const -1416.0996898839683 f64.add - local.get $0 - local.get $0 - local.get $0 - f64.mul - f64.mul - local.get $0 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 + call $~lib/math/NativeMath.exp + local.get $3 + local.get $3 f64.add + f64.const 2247116418577894884661631e283 f64.mul - f64.add f64.mul - f64.sub + f64.const 2247116418577894884661631e283 f64.mul - local.get $7 - f64.sub + end + local.get $1 + local.get $2 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.sinh local.get $1 - f64.const -0.16666666666666632 - f64.mul - f64.sub - f64.sub + local.get $2 + call $std/math/check + else + i32.const 0 end - local.tee $0 - f64.neg - local.get $0 - local.get $3 - i32.const 2 - i32.and - select ) - (func $~lib/math/NativeMathf.sin (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) + (func $std/math/test_coshf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) - (local $4 f64) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) local.get $0 i32.reinterpret_f32 + i32.const 2147483647 + i32.and local.tee $3 - i32.const 31 - i32.shr_u - local.set $6 - block $folding-inner0 + f32.reinterpret_i32 + local.set $0 + block $__inlined_func$~lib/math/NativeMathf.cosh$21 (result f32) local.get $3 - i32.const 2147483647 - i32.and - local.tee $3 - i32.const 1061752794 - i32.le_u + i32.const 1060205079 + i32.lt_u if + f32.const 1 local.get $3 i32.const 964689920 i32.lt_u - if - local.get $0 - return - end + br_if $__inlined_func$~lib/math/NativeMathf.cosh$21 + drop local.get $0 - f64.promote_f32 - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - local.set $4 - br $folding-inner0 - end - local.get $3 - i32.const 1081824209 - i32.le_u - if - local.get $3 - i32.const 1075235811 - i32.le_u - if - local.get $6 - if (result f32) - local.get $0 - f64.promote_f32 - f64.const 1.5707963267948966 - f64.add - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - f32.neg - else - local.get $0 - f64.promote_f32 - f64.const -1.5707963267948966 - f64.add - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - end - return - end + call $~lib/math/NativeMathf.expm1 + local.tee $0 local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 3.141592653589793 - f64.add - local.get $1 - f64.const -3.141592653589793 - f64.add - local.get $6 - select - f64.neg - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - local.set $4 - br $folding-inner0 - end - local.get $3 - i32.const 1088565717 - i32.le_u - if - local.get $3 - i32.const 1085271519 - i32.le_u - if - local.get $6 - if (result f32) - local.get $0 - f64.promote_f32 - f64.const 4.71238898038469 - f64.add - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - else - local.get $0 - f64.promote_f32 - f64.const -4.71238898038469 - f64.add - local.tee $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - f32.neg - end - return - end + f32.mul local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 6.283185307179586 - f64.add - local.get $1 - f64.const -6.283185307179586 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $2 - f64.mul - local.set $4 - br $folding-inner0 + local.get $0 + f32.add + f32.const 2 + f32.add + f32.div + f32.const 1 + f32.add + br $__inlined_func$~lib/math/NativeMathf.cosh$21 end local.get $3 - i32.const 2139095040 - i32.ge_u + i32.const 1118925335 + i32.lt_u if local.get $0 + call $~lib/math/NativeMathf.exp + local.tee $0 + f32.const 0.5 + f32.mul + f32.const 0.5 local.get $0 - f32.sub - return - end - block $~lib/math/rempio2f|inlined.1 (result i32) - local.get $3 - i32.const 1305022427 - i32.lt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.set $2 - local.get $1 - local.get $2 - f64.const 1.5707963109016418 - f64.mul - f64.sub - local.get $2 - f64.const 1.5893254773528196e-08 - f64.mul - f64.sub - global.set $~lib/math/rempio2f_y - local.get $2 - i32.trunc_sat_f64_s - br $~lib/math/rempio2f|inlined.1 - end - local.get $3 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.tee $7 - i32.const 63 - i32.and - i64.extend_i32_s - local.set $8 - local.get $7 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $7 - i64.load offset=8 - local.set $5 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $3 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 - i64.load - local.get $8 - i64.shl - local.get $5 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $8 - i64.const 32 - i64.gt_u - if (result i64) - local.get $5 - local.get $8 - i64.const 32 - i64.sub - i64.shl - local.get $7 - i64.load offset=16 - i64.const 96 - local.get $8 - i64.sub - i64.shr_u - i64.or - else - local.get $5 - i64.const 32 - local.get $8 - i64.sub - i64.shr_u - end - local.get $9 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 2 - i64.shl - local.tee $8 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - i32.const 0 - local.get $5 - i64.const 62 - i64.shr_u - local.get $8 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.tee $3 - i32.sub - local.get $3 - local.get $6 - select - end - local.set $3 - global.get $~lib/math/rempio2f_y - local.set $1 - local.get $3 - i32.const 1 - i32.and - if (result f32) - local.get $1 - local.get $1 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $2 - local.get $1 - f64.const -0.499999997251031 - f64.mul - f64.const 1 - f64.add - local.get $2 - f64.const 0.04166662332373906 - f64.mul - f64.add - local.get $2 - local.get $1 - f64.mul - local.get $1 - f64.const 2.439044879627741e-05 - f64.mul - f64.const -0.001388676377460993 - f64.add - f64.mul - f64.add - f32.demote_f64 - else - local.get $1 - local.get $1 - local.get $1 - f64.mul - local.tee $2 - local.get $1 - f64.mul - local.tee $1 - local.get $2 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $1 - local.get $2 - local.get $2 - f64.mul - f64.mul - local.get $2 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 + f32.div + f32.add + br $__inlined_func$~lib/math/NativeMathf.cosh$21 end - local.tee $0 - f32.neg local.get $0 - local.get $3 - i32.const 2 - i32.and - select - return - end - local.get $2 - local.get $4 - local.get $1 - f64.const 0.008333329385889463 - f64.mul - f64.const -0.16666666641626524 - f64.add - f64.mul - f64.add - local.get $4 - local.get $1 - local.get $1 - f64.mul - f64.mul + f32.const -162.88958740234375 + f32.add + call $~lib/math/NativeMathf.exp + f32.const 1661534994731144841129758e11 + f32.mul + f32.const 1661534994731144841129758e11 + f32.mul + end local.get $1 - f64.const 2.718311493989822e-06 - f64.mul - f64.const -1.9839334836096632e-04 - f64.add - f64.mul - f64.add - f32.demote_f64 + local.get $2 + call $std/math/check ) - (func $std/math/test_sinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 f64) - (local $4 i32) - (local $5 i64) - (local $6 f64) - block $__inlined_func$~lib/math/NativeMath.sinh$35 (result f64) - local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $5 - f64.reinterpret_i64 - local.set $6 - f64.const 0.5 - local.get $0 - f64.copysign - local.set $3 - local.get $5 + (func $std/math/test_cosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i64) + (local $5 f64) + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $4 + f64.reinterpret_i64 + local.set $5 + block $__inlined_func$~lib/math/NativeMath.cosh$20 (result f64) + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 - i32.const 1082535490 + local.tee $3 + i32.const 1072049730 i32.lt_u if - local.get $6 - call $~lib/math/NativeMath.expm1 - local.set $6 - local.get $4 - i32.const 1072693248 - i32.lt_u - if - local.get $0 - local.get $4 - i32.const 1045430272 - i32.lt_u - br_if $__inlined_func$~lib/math/NativeMath.sinh$35 - drop - local.get $3 - local.get $6 - local.get $6 - f64.add - local.get $6 - local.get $6 - f64.mul - local.get $6 - f64.const 1 - f64.add - f64.div - f64.sub - f64.mul - br $__inlined_func$~lib/math/NativeMath.sinh$35 - end + f64.const 1 local.get $3 - local.get $6 - local.get $6 - local.get $6 + i32.const 1045430272 + i32.lt_u + br_if $__inlined_func$~lib/math/NativeMath.cosh$20 + drop + local.get $5 + call $~lib/math/NativeMath.expm1 + local.tee $5 + local.get $5 + f64.mul + local.get $5 + local.get $5 + f64.add + f64.const 2 + f64.add + f64.div f64.const 1 f64.add + br $__inlined_func$~lib/math/NativeMath.cosh$20 + end + local.get $3 + i32.const 1082535490 + i32.lt_u + if + local.get $5 + call $~lib/math/NativeMath.exp + local.tee $5 + f64.const 1 + local.get $5 f64.div f64.add + f64.const 0.5 f64.mul - br $__inlined_func$~lib/math/NativeMath.sinh$35 + br $__inlined_func$~lib/math/NativeMath.cosh$20 end - local.get $6 + local.get $5 f64.const -1416.0996898839683 f64.add call $~lib/math/NativeMath.exp - local.get $3 - local.get $3 - f64.add f64.const 2247116418577894884661631e283 f64.mul - f64.mul f64.const 2247116418577894884661631e283 f64.mul end @@ -10072,7 +10468,7 @@ call $std/math/check if (result i32) local.get $0 - call $~lib/bindings/dom/Math.sinh + call $~lib/bindings/dom/Math.cosh local.get $1 local.get $2 call $std/math/check @@ -10080,332 +10476,318 @@ i32.const 0 end ) - (func $std/math/test_sinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 f32) - (local $4 i32) - (local $5 f32) + (func $std/math/test_asinhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) + (local $4 f32) local.get $0 i32.reinterpret_f32 i32.const 2147483647 i32.and - local.tee $4 + local.tee $3 f32.reinterpret_i32 - local.set $5 - f32.const 0.5 - local.get $0 - f32.copysign - local.set $3 - block $__inlined_func$~lib/math/NativeMathf.sinh$36 + local.set $4 + local.get $3 + i32.const 1166016512 + i32.ge_u + if (result f32) local.get $4 - i32.const 1118925335 - i32.lt_u - if - local.get $5 - call $~lib/math/NativeMathf.expm1 - local.set $5 + call $~lib/math/NativeMathf.log + f32.const 0.6931471824645996 + f32.add + else + local.get $3 + i32.const 1073741824 + i32.ge_u + if (result f32) local.get $4 - i32.const 1065353216 - i32.lt_u - if + local.get $4 + f32.add + f32.const 1 + local.get $4 + local.get $4 + f32.mul + f32.const 1 + f32.add + f32.sqrt + local.get $4 + f32.add + f32.div + f32.add + call $~lib/math/NativeMathf.log + else + local.get $3 + i32.const 964689920 + i32.ge_u + if (result f32) + local.get $4 + local.get $4 local.get $4 - i32.const 964689920 - i32.lt_u - br_if $__inlined_func$~lib/math/NativeMathf.sinh$36 - local.get $3 - local.get $5 - local.get $5 - f32.add - local.get $5 - local.get $5 f32.mul - local.get $5 + local.tee $4 + local.get $4 + f32.const 1 + f32.add + f32.sqrt f32.const 1 f32.add f32.div - f32.sub - f32.mul - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.sinh$36 + f32.add + call $~lib/math/NativeMathf.log1p + else + local.get $4 end - local.get $3 - local.get $5 - local.get $5 - local.get $5 - f32.const 1 - f32.add - f32.div - f32.add - f32.mul - local.set $0 - br $__inlined_func$~lib/math/NativeMathf.sinh$36 end - local.get $5 - f32.const -162.88958740234375 - f32.add - call $~lib/math/NativeMathf.exp - local.get $3 - local.get $3 - f32.add - f32.const 1661534994731144841129758e11 - f32.mul - f32.mul - f32.const 1661534994731144841129758e11 - f32.mul - local.set $0 end local.get $0 + f32.copysign local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/tan_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64) - (local $3 i32) - (local $4 i32) + (func $std/math/test_asinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (local $3 i64) + (local $4 i64) (local $5 f64) - (local $6 f64) - (local $7 f64) local.get $0 i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 2147483647 - i32.and - i32.const 1072010280 - i32.ge_u local.tee $4 - if - f64.const 0.7853981633974483 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.set $3 + local.get $4 + i64.const 9223372036854775807 + i64.and + f64.reinterpret_i64 + local.set $5 + local.get $3 + i64.const 1049 + i64.ge_u + if (result f64) + local.get $5 + call $~lib/math/NativeMath.log + f64.const 0.6931471805599453 + f64.add + else local.get $3 - i32.const 0 - i32.lt_s + i64.const 1024 + i64.ge_u if (result f64) - local.get $1 - f64.neg - local.set $1 - local.get $0 - f64.neg + local.get $5 + local.get $5 + f64.add + f64.const 1 + local.get $5 + local.get $5 + f64.mul + f64.const 1 + f64.add + f64.sqrt + local.get $5 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log else - local.get $0 + local.get $3 + i64.const 997 + i64.ge_u + if (result f64) + local.get $5 + local.get $5 + local.get $5 + f64.mul + local.tee $5 + local.get $5 + f64.const 1 + f64.add + f64.sqrt + f64.const 1 + f64.add + f64.div + f64.add + call $~lib/math/NativeMath.log1p + else + local.get $5 + end end - f64.sub - f64.const 3.061616997868383e-17 - local.get $1 - f64.sub - f64.add - local.set $0 - f64.const 0 - local.set $1 end local.get $0 - local.get $0 - f64.mul - local.tee $5 - local.get $5 - f64.mul - local.set $6 - local.get $0 + f64.copysign local.get $1 - local.get $5 - local.get $5 + local.get $2 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.asinh + local.get $1 + local.get $2 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64) + (local $2 i32) + (local $3 i64) + (local $4 f64) + (local $5 i64) local.get $0 - f64.mul - local.tee $7 - local.get $6 - local.get $6 - local.get $6 - local.get $6 - local.get $6 - f64.const -1.8558637485527546e-05 - f64.mul - f64.const 7.817944429395571e-05 - f64.add - f64.mul - f64.const 5.880412408202641e-04 - f64.add - f64.mul - f64.const 3.5920791075913124e-03 - f64.add - f64.mul - f64.const 0.021869488294859542 - f64.add - f64.mul - f64.const 0.13333333333320124 - f64.add - local.get $5 - local.get $6 - local.get $6 - local.get $6 - local.get $6 - local.get $6 - f64.const 2.590730518636337e-05 - f64.mul - f64.const 7.140724913826082e-05 - f64.add - f64.mul - f64.const 2.464631348184699e-04 - f64.add - f64.mul - f64.const 1.4562094543252903e-03 - f64.add - f64.mul - f64.const 0.0088632398235993 - f64.add - f64.mul - f64.const 0.05396825397622605 - f64.add - f64.mul - f64.add - f64.mul local.get $1 f64.add - f64.mul - f64.add - local.get $7 - f64.const 0.3333333333333341 - f64.mul - f64.add - local.tee $1 - f64.add - local.set $5 + local.tee $4 local.get $4 + f64.sub + f64.const 0 + f64.ne if - f64.const 1 - local.get $3 - i32.const 30 - i32.shr_s - i32.const 2 - i32.and - f64.convert_i32_s - f64.sub - local.get $2 - f64.convert_i32_s - local.tee $6 + f64.const 0 + return + end + local.get $0 + i64.reinterpret_f64 + local.tee $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $5 + i64.const 1053 + i64.le_u + if (result i32) local.get $0 + i32.trunc_sat_f64_s + else local.get $5 - local.get $5 - f64.mul - local.get $5 - local.get $6 - f64.add - f64.div - local.get $1 - f64.sub - f64.sub - f64.const 2 - f64.mul - f64.sub - f64.mul - return + i64.const 1106 + i64.le_u + if (result i32) + i32.const 0 + local.get $3 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + local.get $5 + i64.const 1043 + i64.sub + i64.shl + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.sub + local.get $2 + local.get $3 + i64.const 0 + i64.lt_s + select + else + i32.const 0 + end end - local.get $2 - i32.const 1 - i32.eq - if + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $5 + i64.const 1053 + i64.le_u + if (result i32) + local.get $1 + i32.trunc_sat_f64_s + else local.get $5 - return + i64.const 1106 + i64.le_u + if (result i32) + i32.const 0 + local.get $3 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + local.get $5 + i64.const 1043 + i64.sub + i64.shl + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.sub + local.get $2 + local.get $3 + i64.const 0 + i64.lt_s + select + else + i32.const 0 + end end - f64.const -1 - local.get $5 - f64.div - local.tee $6 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $7 - local.get $6 - local.get $7 - local.get $5 - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $5 - f64.mul - f64.const 1 - f64.add - local.get $7 - local.get $1 - local.get $5 - local.get $0 - f64.sub - f64.sub - f64.mul - f64.add - f64.mul - f64.add + i32.mul + f64.convert_i32_s ) - (func $~lib/math/NativeMath.tan (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sincos (param $0 f64) (local $1 f64) - (local $2 i32) - (local $3 i64) - (local $4 f64) + (local $2 f64) + (local $3 i32) + (local $4 i64) (local $5 f64) (local $6 i32) - (local $7 i32) local.get $0 i64.reinterpret_f64 - local.tee $3 + local.tee $4 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $2 + local.tee $6 i32.const 31 i32.shr_u - local.set $6 - local.get $2 + local.set $3 + local.get $6 i32.const 2147483647 i32.and - local.tee $2 + local.tee $6 i32.const 1072243195 i32.le_u if - local.get $2 - i32.const 1044381696 + local.get $6 + i32.const 1044816030 i32.lt_u if - local.get $0 return end - local.get $0 - f64.const 0 - i32.const 1 - call $~lib/math/tan_kern return end - local.get $2 - i32.const 2146435072 + local.get $6 + i32.const 2139095040 i32.ge_u if - local.get $0 - local.get $0 - f64.sub return end - block $~lib/math/rempio2|inlined.2 - local.get $3 + block $~lib/math/rempio2|inlined.3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $7 + local.tee $6 i32.const 1073928572 i32.lt_u if - i32.const 1 - local.set $2 - local.get $6 + local.get $3 if (result f64) local.get $0 f64.const 1.5707963267341256 f64.add local.set $0 - i32.const -1 - local.set $2 - local.get $7 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -10436,7 +10818,7 @@ f64.const -1.5707963267341256 f64.add local.set $0 - local.get $7 + local.get $6 i32.const 1073291771 i32.ne if (result f64) @@ -10466,30 +10848,30 @@ local.get $0 global.set $~lib/math/rempio2_y0 global.set $~lib/math/rempio2_y1 - br $~lib/math/rempio2|inlined.2 + br $~lib/math/rempio2|inlined.3 end - local.get $7 + local.get $6 i32.const 1094263291 i32.lt_u if - local.get $7 + local.get $6 i32.const 20 i32.shr_u - local.tee $2 + local.tee $3 local.get $0 local.get $0 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $4 + local.tee $5 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $4 + local.get $5 f64.const 6.077100506506192e-11 f64.mul - local.tee $5 + local.tee $2 f64.sub local.tee $1 i64.reinterpret_f64 @@ -10504,25 +10886,25 @@ i32.const 16 i32.gt_u if - local.get $4 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 + local.get $3 local.get $0 - local.get $4 + local.tee $1 + local.get $5 f64.const 6.077100506303966e-11 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $0 - f64.sub + local.get $5 + f64.const 2.0222662487959506e-21 + f64.mul local.get $1 + local.get $0 f64.sub - f64.sub - local.set $5 local.get $2 - local.get $0 - local.get $5 + f64.sub + f64.sub + local.tee $2 f64.sub local.tee $1 i64.reinterpret_f64 @@ -10537,24 +10919,24 @@ i32.const 49 i32.gt_u if - local.get $4 - f64.const 8.4784276603689e-32 - f64.mul local.get $0 - local.get $0 - local.get $4 + local.tee $1 + local.get $5 f64.const 2.0222662487111665e-21 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $0 - f64.sub + local.get $5 + f64.const 8.4784276603689e-32 + f64.mul local.get $1 + local.get $0 f64.sub + local.get $2 f64.sub - local.set $5 - local.get $0 - local.get $5 + f64.sub + local.tee $2 f64.sub local.set $1 end @@ -10564,1380 +10946,743 @@ local.get $0 local.get $1 f64.sub - local.get $5 + local.get $2 f64.sub global.set $~lib/math/rempio2_y1 - local.get $4 - i32.trunc_sat_f64_s - local.set $2 - br $~lib/math/rempio2|inlined.2 + br $~lib/math/rempio2|inlined.3 end - i32.const 0 - local.get $3 + local.get $4 call $~lib/math/pio2_large_quot - local.tee $2 - i32.sub - local.get $2 - local.get $6 - select - local.set $2 + drop end global.get $~lib/math/rempio2_y0 - global.get $~lib/math/rempio2_y1 - i32.const 1 - local.get $2 - i32.const 1 - i32.and - i32.const 1 - i32.shl - i32.sub - call $~lib/math/tan_kern + local.tee $0 + local.get $0 + f64.mul + local.set $0 ) - (func $~lib/math/NativeMathf.tan (param $0 f32) (result f32) - (local $1 f64) - (local $2 f64) + (func $std/math/test_exp2f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f64) - (local $4 i32) - (local $5 i64) + (local $4 i64) + (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) + (local $7 f64) local.get $0 - i32.reinterpret_f32 - local.tee $4 - i32.const 31 - i32.shr_u - local.set $6 - block $folding-inner1 - block $folding-inner0 - local.get $4 - i32.const 2147483647 - i32.and - local.tee $4 - i32.const 1061752794 - i32.le_u - if - local.get $4 - i32.const 964689920 - i32.lt_u - if - local.get $0 - return - end - local.get $0 - f64.promote_f32 - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner0 - end - local.get $4 - i32.const 1081824209 - i32.le_u - if - local.get $4 - i32.const 1075235811 - i32.le_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 1.5707963267948966 - f64.add - local.get $1 - f64.const -1.5707963267948966 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner1 - else - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 3.141592653589793 - f64.add - local.get $1 - f64.const -3.141592653589793 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner0 - end - unreachable - end - local.get $4 - i32.const 1088565717 - i32.le_u - if - local.get $4 - i32.const 1085271519 - i32.le_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 4.71238898038469 - f64.add - local.get $1 - f64.const -4.71238898038469 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner1 - else - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 6.283185307179586 - f64.add - local.get $1 - f64.const -6.283185307179586 - f64.add - local.get $6 - select - local.tee $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 - br $folding-inner0 - end - unreachable - end - local.get $4 - i32.const 2139095040 - i32.ge_u - if - local.get $0 - local.get $0 - f32.sub - return - end - block $~lib/math/rempio2f|inlined.2 (result i32) - local.get $4 - i32.const 1305022427 - i32.lt_u - if - local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.set $2 - local.get $1 - local.get $2 - f64.const 1.5707963109016418 - f64.mul - f64.sub - local.get $2 - f64.const 1.5893254773528196e-08 - f64.mul - f64.sub - global.set $~lib/math/rempio2f_y - local.get $2 - i32.trunc_sat_f64_s - br $~lib/math/rempio2f|inlined.2 - end - local.get $4 - i32.const 23 - i32.shr_s - i32.const 152 - i32.sub - local.tee $7 - i32.const 63 - i32.and - i64.extend_i32_s - local.set $8 - local.get $7 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $7 - i64.load offset=8 - local.set $5 - f64.const 8.515303950216386e-20 - local.get $0 - f64.promote_f32 - f64.copysign - local.get $4 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - i64.extend_i32_s - local.tee $9 - local.get $7 - i64.load - local.get $8 - i64.shl - local.get $5 - i64.const 64 - local.get $8 - i64.sub - i64.shr_u - i64.or - i64.mul - local.get $8 - i64.const 32 - i64.gt_u - if (result i64) - local.get $5 - local.get $8 - i64.const 32 - i64.sub - i64.shl - local.get $7 - i64.load offset=16 - i64.const 96 - local.get $8 - i64.sub - i64.shr_u - i64.or - else - local.get $5 - i64.const 32 - local.get $8 - i64.sub - i64.shr_u - end - local.get $9 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 2 - i64.shl - local.tee $8 - f64.convert_i64_s - f64.mul - global.set $~lib/math/rempio2f_y - i32.const 0 - local.get $5 - i64.const 62 - i64.shr_u - local.get $8 - i64.const 63 - i64.shr_u - i64.add - i32.wrap_i64 - local.tee $4 - i32.sub - local.get $4 - local.get $6 - select - end - local.set $4 - global.get $~lib/math/rempio2f_y - local.tee $1 - local.get $1 - f64.mul - local.tee $2 - local.get $2 - f64.mul - local.set $3 - f64.const -1 - local.get $1 - local.get $2 - local.get $1 - f64.mul - local.tee $1 - local.get $2 - f64.const 0.13339200271297674 - f64.mul - f64.const 0.3333313950307914 - f64.add - f64.mul - f64.add - local.get $1 - local.get $3 - f64.mul - local.get $2 - f64.const 0.024528318116654728 - f64.mul - f64.const 0.05338123784456704 - f64.add - local.get $3 - local.get $2 - f64.const 0.009465647849436732 - f64.mul - f64.const 0.002974357433599673 - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.tee $1 - f64.div - local.get $1 - local.get $4 - i32.const 1 - i32.and - select - f32.demote_f64 - return + f64.promote_f32 + local.set $3 + block $~lib/util/math/exp2f_lut|inlined.0 (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $5 + i32.const 20 + i32.shr_u + i32.const 2047 + i32.and + local.tee $6 + i32.const 1072 + i32.ge_u + if + f32.const 0 + local.get $5 + i32.const -8388608 + i32.eq + br_if $~lib/util/math/exp2f_lut|inlined.0 + drop + local.get $0 + local.get $0 + f32.add + local.get $6 + i32.const 2040 + i32.ge_u + br_if $~lib/util/math/exp2f_lut|inlined.0 + drop + local.get $0 + f32.const 1701411834604692317316873e14 + f32.mul + local.get $0 + f32.const 0 + f32.gt + br_if $~lib/util/math/exp2f_lut|inlined.0 + drop + f32.const 0 + local.get $0 + f32.const -150 + f32.le + br_if $~lib/util/math/exp2f_lut|inlined.0 + drop end - local.get $2 - local.get $1 - local.get $2 - f64.mul - local.tee $2 - local.get $1 - f64.const 0.13339200271297674 - f64.mul - f64.const 0.3333313950307914 + local.get $3 + f64.const 211106232532992 + f64.add + local.tee $7 + i64.reinterpret_f64 + local.set $4 + local.get $3 + local.get $7 + f64.const -211106232532992 f64.add + f64.sub + local.tee $3 + f64.const 0.6931471806916203 f64.mul + f64.const 1 f64.add - local.get $2 local.get $3 + f64.const 0.05550361559341535 f64.mul - local.get $1 - f64.const 0.024528318116654728 - f64.mul - f64.const 0.05338123784456704 + f64.const 0.2402284522445722 f64.add local.get $3 - local.get $1 - f64.const 0.009465647849436732 + local.get $3 f64.mul - f64.const 0.002974357433599673 - f64.add f64.mul f64.add + local.get $4 + i32.wrap_i64 + i32.const 31 + i32.and + i32.const 3 + i32.shl + i32.const 7712 + i32.add + i64.load + local.get $4 + i64.const 47 + i64.shl + i64.add + f64.reinterpret_i64 f64.mul - f64.add f32.demote_f64 - return end - f64.const -1 + local.get $1 local.get $2 + call $std/math/check + ) + (func $std/math/test_signf (param $0 f32) (param $1 f32) (result i32) + f32.const 1 + f32.const -1 + local.get $0 + local.get $0 + f32.const 0 + f32.lt + select + local.get $0 + f32.const 0 + f32.gt + select + local.get $1 + f32.const 0 + call $std/math/check + ) + (func $std/math/test_sign (param $0 f64) (param $1 f64) (result i32) + f64.const 1 + f64.const -1 + local.get $0 + local.get $0 + f64.const 0 + f64.lt + select + local.get $0 + f64.const 0 + f64.gt + select + local.get $1 + f64.const 0 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/dom/Math.sign + local.get $1 + f64.const 0 + call $std/math/check + else + i32.const 0 + end + ) + (func $~lib/math/pio2_large_quot (param $0 i64) (result i32) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 f64) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i64) + local.get $0 + i64.const 9223372036854775807 + i64.and + i64.const 52 + i64.shr_u + i64.const 1045 + i64.sub + local.tee $1 + i64.const 63 + i64.and + local.set $6 local.get $1 + i64.const 6 + i64.shr_s + i32.wrap_i64 + i32.const 3 + i32.shl + i32.const 5440 + i32.add + local.tee $4 + i64.load + local.set $3 + local.get $4 + i64.load offset=8 + local.set $2 + local.get $4 + i64.load offset=16 + local.set $1 + local.get $6 + i64.const 0 + i64.ne + if + local.get $3 + local.get $6 + i64.shl + local.get $2 + i64.const 64 + local.get $6 + i64.sub + local.tee $7 + i64.shr_u + i64.or + local.set $3 + local.get $2 + local.get $6 + i64.shl + local.get $1 + local.get $7 + i64.shr_u + i64.or + local.set $2 + local.get $1 + local.get $6 + i64.shl + local.get $4 + i64.load offset=24 + local.get $7 + i64.shr_u + i64.or + local.set $1 + end + local.get $0 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + local.tee $6 + i64.const 4294967295 + i64.and + local.set $7 local.get $2 - f64.mul + i64.const 4294967295 + i64.and + local.tee $8 + local.get $6 + i64.const 32 + i64.shr_u + local.tee $9 + i64.mul + local.get $2 + i64.const 32 + i64.shr_u local.tee $2 - local.get $1 - f64.const 0.13339200271297674 - f64.mul - f64.const 0.3333313950307914 - f64.add - f64.mul - f64.add + local.get $7 + i64.mul + local.get $7 + local.get $8 + i64.mul + local.tee $7 + i64.const 32 + i64.shr_u + i64.add + local.tee $8 + i64.const 4294967295 + i64.and + i64.add + local.set $10 local.get $2 - local.get $3 - f64.mul + local.get $9 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $10 + i64.const 32 + i64.shr_u + i64.add + global.set $~lib/math/res128_hi + local.get $9 local.get $1 - f64.const 0.024528318116654728 - f64.mul - f64.const 0.05338123784456704 - f64.add + i64.const 32 + i64.shr_u + i64.mul + local.tee $1 + local.get $7 + i64.const 4294967295 + i64.and + local.get $10 + i64.const 32 + i64.shl + i64.add + i64.add + local.tee $2 + local.get $1 + i64.lt_u + i64.extend_i32_u + global.get $~lib/math/res128_hi local.get $3 + local.get $6 + i64.mul + i64.add + i64.add + local.tee $3 + i64.const 2 + i64.shl + local.get $2 + i64.const 62 + i64.shr_u + i64.or + local.tee $6 + i64.const 63 + i64.shr_s + local.tee $7 + local.get $2 + i64.const 2 + i64.shl + i64.xor + local.set $2 + local.get $6 + local.get $7 + i64.const 1 + i64.shr_s + i64.xor + local.tee $1 + i64.clz + local.set $8 local.get $1 - f64.const 0.009465647849436732 + local.get $8 + i64.shl + local.get $2 + i64.const 64 + local.get $8 + i64.sub + i64.shr_u + i64.or + local.tee $9 + i64.const 4294967295 + i64.and + local.set $1 + local.get $9 + i64.const 32 + i64.shr_u + local.tee $10 + i64.const 560513588 + i64.mul + local.get $1 + i64.const 3373259426 + i64.mul + local.get $1 + i64.const 560513588 + i64.mul + local.tee $11 + i64.const 32 + i64.shr_u + i64.add + local.tee $12 + i64.const 4294967295 + i64.and + i64.add + local.set $1 + local.get $10 + i64.const 3373259426 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + i64.const 32 + i64.shr_u + i64.add + global.set $~lib/math/res128_hi + local.get $9 + f64.convert_i64_u + f64.const 3.753184150245214e-04 f64.mul - f64.const 0.002974357433599673 - f64.add + local.get $2 + local.get $8 + i64.shl + f64.convert_i64_u + f64.const 3.834951969714103e-04 f64.mul f64.add + i64.trunc_sat_f64_u + local.tee $2 + local.get $11 + i64.const 4294967295 + i64.and + local.get $1 + i64.const 32 + i64.shl + i64.add + local.tee $1 + i64.gt_u + i64.extend_i32_u + global.get $~lib/math/res128_hi + local.tee $9 + i64.const 11 + i64.shr_u + i64.add + f64.convert_i64_u + global.set $~lib/math/rempio2_y0 + local.get $9 + i64.const 53 + i64.shl + local.get $1 + i64.const 11 + i64.shr_u + i64.or + local.get $2 + i64.add + f64.convert_i64_u + f64.const 5.421010862427522e-20 f64.mul - f64.add - f64.div - f32.demote_f64 - ) - (func $std/math/test_tanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i32) - (local $4 i64) - (local $5 f64) + global.set $~lib/math/rempio2_y1 + global.get $~lib/math/rempio2_y0 + i64.const 4372995238176751616 + local.get $8 + i64.const 52 + i64.shl + i64.sub local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 + local.get $6 + i64.xor + i64.const -9223372036854775808 i64.and - local.tee $4 + i64.or f64.reinterpret_i64 - local.set $5 - local.get $4 - i64.const 32 - i64.shr_u + local.tee $5 + f64.mul + global.set $~lib/math/rempio2_y0 + global.get $~lib/math/rempio2_y1 + local.get $5 + f64.mul + global.set $~lib/math/rempio2_y1 + local.get $3 + i64.const 62 + i64.shr_s + local.get $7 + i64.sub i32.wrap_i64 - local.tee $3 - i32.const 1071748074 - i32.gt_u - if (result f64) - local.get $3 - i32.const 1077149696 - i32.gt_u - if (result f64) - f64.const 1 - f64.const 0 - local.get $5 - f64.div - f64.sub - else - f64.const 1 - f64.const 2 - local.get $5 - local.get $5 - f64.add - call $~lib/math/NativeMath.expm1 - f64.const 2 - f64.add - f64.div - f64.sub - end - else - local.get $3 - i32.const 1070618798 - i32.gt_u - if (result f64) - local.get $5 - local.get $5 - f64.add - call $~lib/math/NativeMath.expm1 - local.tee $5 - local.get $5 - f64.const 2 - f64.add - f64.div - else - local.get $3 - i32.const 1048576 - i32.ge_u - if (result f64) - local.get $5 - f64.const -2 - f64.mul - call $~lib/math/NativeMath.expm1 - local.tee $5 - f64.neg - local.get $5 - f64.const 2 - f64.add - f64.div - else - local.get $5 - end - end - end + ) + (func $~lib/math/NativeMath.seedRandom (param $0 i64) + (local $1 i32) + (local $2 i64) + i64.const -7046029254386353131 local.get $0 - f64.copysign - local.get $1 + local.get $0 + i64.eqz + select + local.tee $0 + i64.const 33 + i64.shr_u + local.get $0 + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $2 + i64.const 33 + i64.shr_u + local.get $2 + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $2 + i64.const 33 + i64.shr_u + local.get $2 + i64.xor + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + local.tee $2 + i64.const 33 + i64.shr_u + local.get $2 + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $2 + i64.const 33 + i64.shr_u local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/dom/Math.tanh - local.get $1 - local.get $2 - call $std/math/check - else - i32.const 0 - end - ) - (func $std/math/test_tanhf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) - (local $4 f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $3 - f32.reinterpret_i32 - local.set $4 - local.get $3 - i32.const 1057791828 - i32.gt_u - if (result f32) - local.get $3 - i32.const 1092616192 - i32.gt_u - if (result f32) - f32.const 0 - local.get $4 - f32.div - f32.const 1 - f32.add - else - f32.const 1 - f32.const 2 - local.get $4 - local.get $4 - f32.add - call $~lib/math/NativeMathf.expm1 - f32.const 2 - f32.add - f32.div - f32.sub - end - else - local.get $3 - i32.const 1048757624 - i32.gt_u - if (result f32) - local.get $4 - local.get $4 - f32.add - call $~lib/math/NativeMathf.expm1 - local.tee $4 - local.get $4 - f32.const 2 - f32.add - f32.div - else - local.get $3 - i32.const 8388608 - i32.ge_u - if (result f32) - local.get $4 - f32.const -2 - f32.mul - call $~lib/math/NativeMathf.expm1 - local.tee $4 - f32.neg - local.get $4 - f32.const 2 - f32.add - f32.div - else - local.get $4 - end - end - end + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $2 + i64.const 33 + i64.shr_u + local.get $2 + i64.xor + global.set $~lib/math/random_state1_64 local.get $0 - f32.copysign + i32.wrap_i64 + i32.const 1831565813 + i32.add + local.tee $1 + i32.const 1 + i32.or local.get $1 - local.get $2 - call $std/math/check + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.mul + local.tee $1 + i32.const 61 + i32.or + local.get $1 + local.get $1 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + local.get $1 + i32.add + local.get $1 + i32.xor + local.tee $1 + i32.const 14 + i32.shr_u + local.get $1 + i32.xor + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + i32.const 1831565813 + i32.add + local.tee $1 + i32.const 1 + i32.or + local.get $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.mul + local.tee $1 + i32.const 61 + i32.or + local.get $1 + local.get $1 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + local.get $1 + i32.add + local.get $1 + i32.xor + local.tee $1 + i32.const 14 + i32.shr_u + local.get $1 + i32.xor + global.set $~lib/math/random_state1_32 + i32.const 1 + global.set $~lib/math/random_seeded ) - (func $~lib/math/NativeMath.sincos (param $0 f64) - (local $1 f64) - (local $2 f64) + (func $~lib/math/tan_kern (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 i32) + (local $5 f64) + (local $6 f64) (local $7 f64) - (local $8 f64) - (local $9 f64) - (local $10 f64) local.get $0 i64.reinterpret_f64 - local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 local.tee $3 - i32.const 31 - i32.shr_u - local.set $6 - local.get $3 i32.const 2147483647 i32.and - local.tee $3 - i32.const 1072243195 - i32.le_u + i32.const 1072010280 + i32.ge_u + local.tee $4 if + f64.const 0.7853981633974483 local.get $3 - i32.const 1044816030 - i32.lt_u - if + i32.const 0 + i32.lt_s + if (result f64) + local.get $1 + f64.neg + local.set $1 + local.get $0 + f64.neg + else local.get $0 - global.set $~lib/math/NativeMath.sincos_sin - f64.const 1 - global.set $~lib/math/NativeMath.sincos_cos - return end - local.get $0 - local.get $0 - local.get $0 - f64.mul - local.tee $1 - local.get $0 - f64.mul - local.get $1 - local.get $1 - local.get $1 - f64.const 2.7557313707070068e-06 - f64.mul - f64.const -1.984126982985795e-04 - f64.add - f64.mul - f64.const 0.00833333333332249 - f64.add - local.get $1 - local.get $1 - local.get $1 - f64.mul - local.tee $2 - f64.mul - local.get $1 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 - f64.add - f64.mul - f64.add - f64.mul - f64.const -0.16666666666666632 - f64.add - f64.mul - f64.add - global.set $~lib/math/NativeMath.sincos_sin - f64.const 1 - local.get $1 - f64.const 0.5 - f64.mul - local.tee $7 - f64.sub - local.tee $8 - f64.const 1 - local.get $8 - f64.sub - local.get $7 f64.sub + f64.const 3.061616997868383e-17 local.get $1 - local.get $1 - local.get $1 - local.get $1 - f64.const 2.480158728947673e-05 - f64.mul - f64.const -0.001388888888887411 - f64.add - f64.mul - f64.const 0.0416666666666666 - f64.add - f64.mul - local.get $2 - local.get $2 - f64.mul - local.get $1 - local.get $1 - f64.const -1.1359647557788195e-11 - f64.mul - f64.const 2.087572321298175e-09 - f64.add - f64.mul - f64.const -2.7557314351390663e-07 - f64.add - f64.mul - f64.add - f64.mul - local.get $0 - f64.const 0 - f64.mul f64.sub f64.add - f64.add - global.set $~lib/math/NativeMath.sincos_cos - return - end - local.get $3 - i32.const 2139095040 - i32.ge_u - if - local.get $0 - local.get $0 - f64.sub - local.tee $0 - global.set $~lib/math/NativeMath.sincos_sin - local.get $0 - global.set $~lib/math/NativeMath.sincos_cos - return - end - block $~lib/math/rempio2|inlined.3 (result i32) - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $4 - i32.const 1073928572 - i32.lt_u - if - i32.const 1 - local.set $3 - local.get $6 - if (result f64) - local.get $0 - f64.const 1.5707963267341256 - f64.add - local.set $0 - i32.const -1 - local.set $3 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const 6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const 6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const 6.077100506303966e-11 - f64.add - local.tee $1 - f64.const 2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const 2.0222662487959506e-21 - f64.add - end - else - local.get $0 - f64.const -1.5707963267341256 - f64.add - local.set $0 - local.get $4 - i32.const 1073291771 - i32.ne - if (result f64) - local.get $0 - local.get $0 - f64.const -6.077100506506192e-11 - f64.add - local.tee $0 - f64.sub - f64.const -6.077100506506192e-11 - f64.add - else - local.get $0 - f64.const -6.077100506303966e-11 - f64.add - local.tee $1 - f64.const -2.0222662487959506e-21 - f64.add - local.set $0 - local.get $1 - local.get $0 - f64.sub - f64.const -2.0222662487959506e-21 - f64.add - end - end - local.get $0 - global.set $~lib/math/rempio2_y0 - global.set $~lib/math/rempio2_y1 - local.get $3 - br $~lib/math/rempio2|inlined.3 - end - local.get $4 - i32.const 1094263291 - i32.lt_u - if - local.get $4 - i32.const 20 - i32.shr_u - local.tee $3 - local.get $0 - local.get $0 - f64.const 0.6366197723675814 - f64.mul - f64.nearest - local.tee $7 - f64.const 1.5707963267341256 - f64.mul - f64.sub - local.tee $0 - local.get $7 - f64.const 6.077100506506192e-11 - f64.mul - local.tee $1 - f64.sub - local.tee $2 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 16 - i32.gt_u - if - local.get $7 - f64.const 2.0222662487959506e-21 - f64.mul - local.get $0 - local.get $0 - local.get $7 - f64.const 6.077100506303966e-11 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $1 - local.get $3 - local.get $0 - local.get $1 - f64.sub - local.tee $2 - i64.reinterpret_f64 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 20 - i32.shr_u - i32.const 2047 - i32.and - i32.sub - i32.const 49 - i32.gt_u - if - local.get $7 - f64.const 8.4784276603689e-32 - f64.mul - local.get $0 - local.get $0 - local.get $7 - f64.const 2.0222662487111665e-21 - f64.mul - local.tee $1 - f64.sub - local.tee $0 - f64.sub - local.get $1 - f64.sub - f64.sub - local.set $1 - local.get $0 - local.get $1 - f64.sub - local.set $2 - end - end - local.get $2 - global.set $~lib/math/rempio2_y0 - local.get $0 - local.get $2 - f64.sub - local.get $1 - f64.sub - global.set $~lib/math/rempio2_y1 - local.get $7 - i32.trunc_sat_f64_s - br $~lib/math/rempio2|inlined.3 - end - i32.const 0 - local.get $5 - call $~lib/math/pio2_large_quot - local.tee $3 - i32.sub - local.get $3 - local.get $6 - select + local.set $0 + f64.const 0 + local.set $1 end - local.set $3 - global.get $~lib/math/rempio2_y0 - local.tee $7 - local.get $7 - f64.mul - local.tee $8 - local.tee $0 - local.get $7 - f64.mul - local.set $1 - local.get $7 - local.get $0 - global.get $~lib/math/rempio2_y1 - local.tee $9 - f64.const 0.5 - f64.mul - local.get $1 local.get $0 local.get $0 - f64.const 2.7557313707070068e-06 f64.mul - f64.const -1.984126982985795e-04 - f64.add + local.tee $5 + local.get $5 f64.mul - f64.const 0.00833333333332249 - f64.add - local.get $0 + local.set $6 local.get $0 + local.get $1 + local.get $5 + local.get $5 local.get $0 f64.mul + local.tee $7 + local.get $6 + local.get $6 + local.get $6 + local.get $6 + local.get $6 + f64.const -1.8558637485527546e-05 f64.mul - local.get $0 - f64.const 1.58969099521155e-10 - f64.mul - f64.const -2.5050760253406863e-08 + f64.const 7.817944429395571e-05 f64.add f64.mul + f64.const 5.880412408202641e-04 f64.add f64.mul - f64.sub - f64.mul - local.get $9 - f64.sub - local.get $1 - f64.const -0.16666666666666632 - f64.mul - f64.sub - f64.sub - local.tee $2 - local.set $0 - f64.const 1 - local.get $8 - f64.const 0.5 + f64.const 3.5920791075913124e-03 + f64.add f64.mul - local.tee $1 - f64.sub - local.tee $10 - f64.const 1 - local.get $10 - f64.sub - local.get $1 - f64.sub - local.get $8 - local.get $8 - local.get $8 - local.get $8 - f64.const 2.480158728947673e-05 + f64.const 0.021869488294859542 + f64.add f64.mul - f64.const -0.001388888888887411 + f64.const 0.13333333333320124 f64.add + local.get $5 + local.get $6 + local.get $6 + local.get $6 + local.get $6 + local.get $6 + f64.const 2.590730518636337e-05 f64.mul - f64.const 0.0416666666666666 + f64.const 7.140724913826082e-05 f64.add f64.mul - local.get $8 - local.get $8 + f64.const 2.464631348184699e-04 + f64.add f64.mul - local.tee $1 - local.get $1 + f64.const 1.4562094543252903e-03 + f64.add f64.mul - local.get $8 - local.get $8 - f64.const -1.1359647557788195e-11 + f64.const 0.0088632398235993 + f64.add f64.mul - f64.const 2.087572321298175e-09 + f64.const 0.05396825397622605 f64.add f64.mul - f64.const -2.7557314351390663e-07 f64.add f64.mul + local.get $1 f64.add f64.mul + f64.add local.get $7 - local.get $9 + f64.const 0.3333333333333341 f64.mul - f64.sub f64.add + local.tee $1 f64.add - local.set $1 - local.get $3 - i32.const 1 - i32.and + local.set $5 + local.get $4 if - local.get $1 - local.set $0 + f64.const 1 + local.get $3 + i32.const 30 + i32.shr_s + i32.const 2 + i32.and + f64.convert_i32_s + f64.sub local.get $2 - f64.neg - local.set $1 - end - local.get $3 - i32.const 2 - i32.and - if (result f64) - local.get $1 - f64.neg - local.set $1 - local.get $0 - f64.neg - else + f64.convert_i32_s + local.tee $6 local.get $0 + local.get $5 + local.get $5 + f64.mul + local.get $5 + local.get $6 + f64.add + f64.div + local.get $1 + f64.sub + f64.sub + f64.const 2 + f64.mul + f64.sub + f64.mul + return end - global.set $~lib/math/NativeMath.sincos_sin - local.get $1 - global.set $~lib/math/NativeMath.sincos_cos - ) - (func $std/math/test_sincos (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) - (local $5 f64) - local.get $0 - f64.reinterpret_i64 - call $~lib/math/NativeMath.sincos - global.get $~lib/math/NativeMath.sincos_sin - local.get $1 - f64.reinterpret_i64 local.get $2 - f64.reinterpret_i64 - call $std/math/check - if - global.get $~lib/math/NativeMath.sincos_cos - local.get $3 - f64.reinterpret_i64 - local.get $4 - f64.reinterpret_i64 - call $std/math/check - drop - end - ) - (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64) - (local $2 i32) - (local $3 i64) - (local $4 f64) - (local $5 i64) - local.get $0 - local.get $1 - f64.add - local.tee $4 - local.get $4 - f64.sub - f64.const 0 - f64.ne + i32.const 1 + i32.eq if - f64.const 0 + local.get $5 return end - local.get $0 + f64.const -1 + local.get $5 + f64.div + local.tee $6 i64.reinterpret_f64 - local.tee $3 - i64.const 52 - i64.shr_u - i64.const 2047 + i64.const -4294967296 i64.and - local.tee $5 - i64.const 1053 - i64.le_u - if (result i32) - local.get $0 - i32.trunc_sat_f64_s - else - local.get $5 - i64.const 1106 - i64.le_u - if (result i32) - i32.const 0 - local.get $3 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - local.get $5 - i64.const 1043 - i64.sub - i64.shl - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $2 - i32.sub - local.get $2 - local.get $3 - i64.const 0 - i64.lt_s - select - else - i32.const 0 - end - end - local.get $1 + f64.reinterpret_i64 + local.tee $7 + local.get $6 + local.get $7 + local.get $5 i64.reinterpret_f64 - local.tee $3 - i64.const 52 - i64.shr_u - i64.const 2047 + i64.const -4294967296 i64.and + f64.reinterpret_i64 local.tee $5 - i64.const 1053 - i64.le_u - if (result i32) - local.get $1 - i32.trunc_sat_f64_s - else - local.get $5 - i64.const 1106 - i64.le_u - if (result i32) - i32.const 0 - local.get $3 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or - local.get $5 - i64.const 1043 - i64.sub - i64.shl - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $2 - i32.sub - local.get $2 - local.get $3 - i64.const 0 - i64.lt_s - select - else - i32.const 0 - end - end - i32.mul - f64.convert_i32_s - ) - (func $~lib/math/ipow64 (param $0 i64) (param $1 i64) (result i64) - (local $2 i64) - i64.const 1 - local.set $2 - local.get $0 - i64.const 2 - i64.eq - if - i64.const 1 - local.get $1 - i64.shl - i64.const 0 - local.get $1 - i64.const 64 - i64.lt_u - select - return - end + f64.mul + f64.const 1 + f64.add + local.get $7 local.get $1 - i64.const 0 - i64.le_s - if - local.get $0 - i64.const -1 - i64.eq - if - i64.const -1 - i64.const 1 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - return - end - local.get $1 - i64.eqz - i64.extend_i32_u - local.get $0 - i64.const 1 - i64.eq - i64.extend_i32_u - i64.or - return - else - local.get $1 - i64.const 1 - i64.eq - if - local.get $0 - return - else - local.get $1 - i64.const 2 - i64.eq - if - local.get $0 - local.get $0 - i64.mul - return - else - local.get $1 - i64.const 64 - i64.lt_s - if - block $break|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - i32.const 63 - local.get $1 - i64.clz - i32.wrap_i64 - i32.sub - br_table $case5|0 $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i64.const 1 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - end - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - end - local.get $2 - return - end - end - end - end - loop $while-continue|1 - local.get $1 - i64.const 0 - i64.ne - if - local.get $0 - local.get $2 - i64.mul - local.get $2 - local.get $1 - i64.const 1 - i64.and - i32.wrap_i64 - select - local.set $2 - local.get $1 - i64.const 1 - i64.shr_u - local.set $1 - local.get $0 - local.get $0 - i64.mul - local.set $0 - br $while-continue|1 - end - end - local.get $2 + local.get $5 + local.get $0 + f64.sub + f64.sub + f64.mul + f64.add + f64.mul + f64.add + ) + (func $~start + call $start:std/math ) (func $start:std/math (local $0 f64) @@ -49889,7 +49634,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -49933,7 +49678,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -49955,7 +49700,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50021,7 +49766,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50087,7 +49832,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50153,7 +49898,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50241,7 +49986,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50351,7 +50096,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -50505,7 +50250,7 @@ call $~lib/builtins/abort unreachable end - f64.const -nan:0x8000000000000 + f64.const nan:0x8000000000000 f64.const nan:0x8000000000000 f64.const 0 call $std/math/check @@ -51737,7 +51482,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51763,7 +51508,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51776,7 +51521,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51815,7 +51560,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51854,7 +51599,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51893,7 +51638,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -51945,7 +51690,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -52010,7 +51755,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -52036,7 +51781,7 @@ call $~lib/builtins/abort unreachable end - f32.const -nan:0x400000 + f32.const nan:0x400000 f32.const nan:0x400000 f32.const 0 call $std/math/check @@ -55559,66 +55304,26 @@ call $~lib/builtins/abort unreachable end - i64.const -4602641186874283791 - i64.const -4616392916911125550 - i64.const -4628956453976145920 - i64.const -4626592471448962314 - i64.const -4630808324688838656 - call $std/math/test_sincos - i64.const 4616578323568966759 - i64.const -4616789907589610460 - i64.const -4632356642145435648 - i64.const -4623234040091605244 - i64.const -4630954342839484416 - call $std/math/test_sincos - i64.const -4602464091242371353 - i64.const -4617413764247143988 - i64.const -4630245256623816704 - i64.const -4620663195860462557 - i64.const -4641537901929168896 - call $std/math/test_sincos - i64.const -4604332007749985084 - i64.const -4625343132137557201 - i64.const -4629629133364658176 - i64.const 4606905765568473756 - i64.const -4621075345754292224 - call $std/math/test_sincos - i64.const 4621406507342668262 - i64.const 4594826987695694788 - i64.const -4639197561901547520 - i64.const -4616301417154991689 - i64.const 4602463851227643904 - call $std/math/test_sincos - i64.const 4604137858433287319 - i64.const 4603711805189578650 - i64.const -4631518618864058368 - i64.const 4605279855905985745 - i64.const 4593746800099196928 - call $std/math/test_sincos - i64.const -4622375691843501615 - i64.const -4622575858842575876 - i64.const -4623091339515396096 - i64.const 4606448054996611351 - i64.const -4624994927539912704 - call $std/math/test_sincos - i64.const 4603235101512779211 - i64.const 4602973141375866126 - i64.const -4623304571219869696 - i64.const 4605798183832360369 - i64.const -4624249509122146304 - call $std/math/test_sincos - i64.const 4605148163534189634 - i64.const 4604472244479532466 - i64.const -4621996155604041728 - i64.const 4604615492473651755 - i64.const -4632555521679818752 - call $std/math/test_sincos - i64.const -4619083057392940530 - i64.const -4619541816298850243 - i64.const -4622804297187328000 - i64.const 4605185968576882368 - i64.const 4599236402884902912 - call $std/math/test_sincos + f64.const -8.06684839057968 + call $~lib/math/NativeMath.sincos + f64.const 4.345239849338305 + call $~lib/math/NativeMath.sincos + f64.const -8.38143342755525 + call $~lib/math/NativeMath.sincos + f64.const -6.531673581913484 + call $~lib/math/NativeMath.sincos + f64.const 9.267056966972586 + call $~lib/math/NativeMath.sincos + f64.const 0.6619858980995045 + call $~lib/math/NativeMath.sincos + f64.const -0.4066039223853553 + call $~lib/math/NativeMath.sincos + f64.const 0.5617597462207241 + call $~lib/math/NativeMath.sincos + f64.const 0.7741522965913037 + call $~lib/math/NativeMath.sincos + f64.const -0.6787637026394024 + call $~lib/math/NativeMath.sincos f64.const 2 f64.const 4 call $~lib/math/NativeMath.imul @@ -56192,7 +55897,4 @@ unreachable end ) - (func $~start - call $start:std/math - ) ) diff --git a/tests/compiler/std/mod.release.wat b/tests/compiler/std/mod.release.wat index 1fbd3592bf..568ccb771c 100644 --- a/tests/compiler/std/mod.release.wat +++ b/tests/compiler/std/mod.release.wat @@ -1,11 +1,11 @@ (module (type $0 (func)) - (type $1 (func (param f64 f64) (result f64))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param f64 f64 f64) (result i32))) - (type $3 (func (param i32 i32 i32 i32))) - (type $4 (func (param f32 f32 f32) (result i32))) - (import "mod" "mod" (func $std/mod/mod (param f64 f64) (result f64))) + (type $3 (func (param f32 f32 f32) (result i32))) + (type $4 (func (param f64 f64) (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "mod" "mod" (func $std/mod/mod (param f64 f64) (result f64))) (memory $0 1) (data $0 (i32.const 1036) ",") (data $0.1 (i32.const 1048) "\02\00\00\00\14\00\00\00s\00t\00d\00/\00m\00o\00d\00.\00t\00s") @@ -507,6 +507,9 @@ f32.eq end ) + (func $~start + call $start:std/mod + ) (func $start:std/mod f64.const 3 f64.const 2 @@ -2264,7 +2267,4 @@ unreachable end ) - (func $~start - call $start:std/mod - ) ) diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index 012ec7a6db..98131dbec6 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -4,8 +4,8 @@ (type $2 (func (param i32 i32))) (type $3 (func (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (param i32) (result i32))) + (type $5 (func (param i32) (result i32))) + (type $6 (func (param i32 i32 i64))) (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)) @@ -33,57 +33,6 @@ (data $8 (i32.const 1440) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $std/new/aClass - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -628,6 +577,171 @@ i32.or i32.store offset=4 ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $std/new/AClass + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $std/new/AClass $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34240 + i32.const 0 + i32.store + i32.const 35808 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34240 + i32.add + i32.const 0 + i32.store 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 34240 + i32.add + i32.const 0 + i32.store 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 34240 + i32.const 35812 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34240 + global.set $~lib/rt/tlsf/ROOT + ) (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) (local $4 i32) @@ -742,85 +856,152 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize + (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + global.get $std/new/aClass + local.tee $0 if - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - i32.const 34240 - i32.const 0 - i32.store - i32.const 35808 - i32.const 0 - i32.store - loop $for-loop|0 + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.ne if local.get $0 - i32.const 2 - i32.shl - i32.const 34240 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 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 34240 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|0 + br $while-continue|0 end end - i32.const 34240 - i32.const 35812 + ) + (func $~start + (local $0 i32) memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34240 - global.set $~lib/rt/tlsf/ROOT + i32.const 16 + i32.shl + i32.const 34232 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1464 + i32.lt_s + if + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 2 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $0 + i32.load + i32.const 1 + i32.add + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 3 + f32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $std/new/aClass ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1082,63 +1263,6 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) (func $~lib/rt/itcms/__new (result i32) (local $0 i32) (local $1 i32) @@ -1195,12 +1319,11 @@ local.tee $0 i32.eqz if - memory.size - local.tee $0 i32.const 4 local.get $1 i32.load offset=1568 - local.get $0 + memory.size + local.tee $0 i32.const 16 i32.shl i32.const 4 @@ -1213,7 +1336,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.set $2 + local.get $0 + local.get $2 local.get $0 local.get $2 i32.gt_s @@ -1367,128 +1492,4 @@ i64.store align=1 local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $std/new/AClass - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $std/new/AClass $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 34232 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1464 - i32.lt_s - if - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 2 - f32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $0 - i32.load - i32.const 1 - i32.add - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 3 - f32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $std/new/aClass - ) ) diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 1efa8f2c5c..d352f0f211 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -5,9 +5,9 @@ (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 i32))) + (type $6 (func (param i32 i32 i32))) + (type $7 (func (param i32 i32 i64))) + (type $8 (func (result i32))) (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)) @@ -107,48 +107,6 @@ (data $11 (i32.const 1584) "\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 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -301,330 +259,517 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $std/operator-overloading/Tester#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - 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 $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + 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 1620 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.store offset=4 + local.get $2 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $std/operator-overloading/TesterElementAccess#__get (param $0 i32) (param $1 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 1620 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.load offset=8 - local.set $5 + i32.store local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 + call $~lib/string/String.__eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 end - local.get $1 - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$68 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$68 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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.set $3 + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end local.get $1 i32.load - local.tee $3 - i32.const 1 + i32.const -4 i32.and - i32.eqz + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 203 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 - i32.const 4 - i32.add + call $~lib/rt/tlsf/removeBlock local.get $1 i32.load + local.tee $3 i32.const -4 i32.and - i32.add + i32.const 28 + i32.sub local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + i32.const 16 + i32.ge_u 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.const 2 i32.and - i32.add - local.tee $3 + i32.const 28 + i32.or i32.store local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + i32.const 32 i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 + local.tee $3 + local.get $4 i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - 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 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else local.get $1 - call $~lib/rt/tlsf/removeBlock + local.get $3 + i32.const -2 + i32.and + i32.store local.get $1 - local.get $6 i32.const 4 i32.add - local.get $3 + local.get $1 + i32.load i32.const -4 i32.and i32.add - local.tee $3 + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and i32.store end - local.get $4 + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 8 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 local.get $2 - i32.const 2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and i32.or - i32.store - local.get $3 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load 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 + global.set $~lib/rt/itcms/total local.get $1 - i32.store - local.get $2 + i32.const 20 + i32.add + local.tee $0 + i64.const 0 + i64.store align=1 + local.get $0 + ) + (func $std/operator-overloading/TesterInlineStatic#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1620 + i32.lt_s + if + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $std/operator-overloading/TesterInlineInstance#constructor (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1620 + i32.lt_s + if + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $std/operator-overloading/TesterElementAccess#__set (param $0 i32) (param $1 i32) (param $2 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 1620 + i32.lt_s + if + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/string/String.__eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.store + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 i32.const 256 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 4 i32.shr_u else i32.const 31 i32.const 1073741820 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1073741820 i32.ge_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.tee $3 + local.tee $4 i32.const 7 i32.sub - local.set $5 - local.get $2 + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -632,1867 +777,1723 @@ if i32.const 0 i32.const 1392 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 382 + i32.const 201 i32.const 14 call $~lib/builtins/abort unreachable end local.get $1 - i32.const 19 - i32.add - i32.const -16 + i32.load + 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.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 + i32.const 4 + i32.add local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 + i32.load + i32.const -4 + i32.and i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if local.get $1 - i32.gt_u + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1392 - i32.const 402 - i32.const 5 + 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 end + local.get $4 local.get $2 - i32.wrap_i64 - i32.const -16 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 + local.tee $2 + i32.const 12 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 i32.const 4 i32.add - local.get $3 + local.get $2 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.ne if + i32.const 0 + i32.const 1392 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort unreachable end - i32.const 34400 - i32.const 0 - i32.store - i32.const 35968 - i32.const 0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34400 - i32.add - i32.const 0 - i32.store 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 34400 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $std/operator-overloading/TesterElementAccess + block $std/operator-overloading/TesterInlineInstance + block $std/operator-overloading/TesterInlineStatic + block $std/operator-overloading/Tester + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $std/operator-overloading/Tester $std/operator-overloading/TesterInlineStatic $std/operator-overloading/TesterInlineInstance $std/operator-overloading/TesterElementAccess $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return end + return end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + return end + return end - i32.const 34400 - i32.const 35972 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34400 - global.set $~lib/rt/tlsf/ROOT + unreachable ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) + (func $~lib/string/String.__eq (param $0 i32) (result 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 + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1620 + i32.lt_s + if + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.const 1536 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $0 + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 1536 + i32.store + local.get $2 + i32.const 1532 + i32.load + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1536 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 1536 + i32.store offset=4 + i32.const 1 + local.get $0 + local.tee $1 + i32.const 7 + i32.and + local.get $2 + local.tee $0 + i32.const 4 + i32.lt_u + select + i32.eqz + if + loop $do-loop|0 + local.get $1 + i64.load + local.get $3 + i64.load + i64.eq + if + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|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 offset=4 - i32.const -4 - i32.and - local.set $0 + end + block $__inlined_func$~lib/util/string/compareImpl$199 loop $while-continue|1 local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 if - local.get $0 - global.set $~lib/rt/itcms/iter local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and + i32.load16_u + local.tee $4 + local.get $3 + i32.load16_u + local.tee $5 + i32.sub + local.set $2 + local.get $4 + local.get $5 i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 + br_if $__inlined_func$~lib/util/string/compareImpl$199 + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $3 + i32.const 2 + i32.add + local.set $3 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 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 34388 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + local.set $2 end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 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 229 - i32.const 20 + i32.const 1392 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34388 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34388 - i32.ge_u + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34400 + i32.const 0 + i32.store + i32.const 35968 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34400 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 16 + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT 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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34400 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.add + local.set $1 + br $for-loop|1 end end - i32.const 10 - return + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 + end + i32.const 34400 + i32.const 35972 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34400 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + call $~lib/rt/__visit_globals + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 local.get $0 local.get $1 - i32.ctz - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -2 - i32.and - local.tee $1 - if (result i32) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 + i32.const 1120 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result 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 + i32.const 1 + local.set $2 + local.get $0 + i32.const 2 + i32.eq if - block $__inlined_func$~lib/rt/itcms/interrupt$68 - i32.const 2048 - local.set $1 - loop $do-loop|0 + i32.const 1 + local.get $1 + i32.shl + i32.const 0 + local.get $1 + i32.const 32 + i32.lt_u + select + return + end + local.get $1 + i32.const 0 + i32.le_s + if + local.get $0 + i32.const -1 + i32.eq + if + i32.const -1 + i32.const 1 + local.get $1 + i32.const 1 + i32.and + select + return + end + local.get $1 + i32.eqz + local.get $0 + i32.const 1 + i32.eq + i32.or + return + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + return + else + local.get $1 + i32.const 2 + i32.eq + if + local.get $0 + local.get $0 + i32.mul + return + else local.get $1 - call $~lib/rt/itcms/step - i32.sub - local.set $1 - global.get $~lib/rt/itcms/state - i32.eqz + i32.const 32 + i32.lt_s if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + i32.const 31 + local.get $1 + i32.clz + i32.sub + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $0 + i32.const 1 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + end + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + end + local.get $2 + return end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 - local.tee $1 - i32.const 4 - local.get $2 - i32.load 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 - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 + loop $while-continue|1 local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $2 + i32.mul + local.get $2 + local.get $1 + i32.const 1 + i32.and + select + local.set $2 + local.get $1 + i32.const 1 + i32.shr_u + local.set $1 + local.get $0 + local.get $0 + i32.mul + local.set $0 + br $while-continue|1 end end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + local.get $2 + ) + (func $std/operator-overloading/Tester.notEquals (param $0 i32) (param $1 i32) (result i32) + (local $2 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 1620 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 + i32.const 34416 + i32.const 34464 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.store local.get $1 i32.load - 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 - 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.ne + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - i32.const -2 - i32.and i32.store local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + i32.load offset=4 + i32.ne + else + i32.const 0 end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 8 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 - i32.const 20 - i32.add - local.tee $0 - i64.const 0 - i64.store align=1 - local.get $0 + global.set $~lib/memory/__stack_pointer ) - (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) + (func $std/operator-overloading/Tester.equals (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - i32.const 1 - local.set $2 - local.get $0 - i32.const 2 - i32.eq + 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 1620 + i32.lt_s if + i32.const 34416 + i32.const 34464 i32.const 1 - local.get $1 - i32.shl - i32.const 0 - local.get $1 - i32.const 32 - i32.lt_u - select - return + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.le_s - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const -1 - i32.eq - if - i32.const -1 - i32.const 1 - local.get $1 - i32.const 1 - i32.and - select - return - end - local.get $1 - i32.eqz + i32.store local.get $0 - i32.const 1 - i32.eq - i32.or - return - else + i32.load offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 + i32.store + local.get $1 + i32.load offset=4 i32.eq - if - local.get $0 - return - else - local.get $1 - i32.const 2 - i32.eq - if - local.get $0 - local.get $0 - i32.mul + else + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:std/operator-overloading + ) + (func $~lib/rt/itcms/step (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 - else - local.get $1 - i32.const 32 - i32.lt_s + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load 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 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - i32.const 31 - local.get $1 - i32.clz - i32.sub - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.const 1 - local.get $1 - i32.const 1 - i32.and - select - local.set $2 - local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 - local.get $0 - i32.mul - local.set $0 - end - local.get $0 - local.get $2 - i32.mul - local.get $2 - local.get $1 - i32.const 1 - i32.and - select - local.set $2 - local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 - local.get $0 - i32.mul - local.set $0 - end - local.get $0 - local.get $2 - i32.mul - local.get $2 - local.get $1 - i32.const 1 - i32.and - select - local.set $2 - local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 - local.get $0 - i32.mul - local.set $0 - end + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34388 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if local.get $0 local.get $2 - i32.mul - local.get $2 - local.get $1 - i32.const 1 + i32.const -4 i32.and - select - local.set $2 local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 + i32.or + i32.store offset=4 local.get $0 - i32.mul - local.set $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members end local.get $0 - local.get $2 - i32.mul - local.get $2 - local.get $1 - i32.const 1 + i32.load offset=4 + i32.const -4 i32.and - select - local.set $2 + local.set $0 + br $while-continue|2 end - local.get $2 - return 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 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 - end - loop $while-continue|1 - local.get $1 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if local.get $0 - local.get $2 - i32.mul - local.get $2 - local.get $1 - i32.const 1 + i32.load offset=4 + local.tee $1 + i32.const -4 i32.and - select - local.set $2 + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz local.get $1 - i32.const 1 - i32.shr_u - local.set $1 - local.get $0 - local.get $0 - i32.mul - local.set $0 - br $while-continue|1 - end - end - local.get $2 - ) - (func $~lib/rt/__visit_globals - (local $0 i32) - global.get $std/operator-overloading/a1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/a2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/a - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/s1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/s2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/s - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/m1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/m2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/m - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/d1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/d2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/d - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/f1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/f2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/f - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/p1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/p2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/p - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/n1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/n2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/n - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/o1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/o2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/o - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/x1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/x2 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/x - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/operator-overloading/eq1 - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34388 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34388 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $std/operator-overloading/eq2 + i32.const 0 + ) + (func $~lib/rt/__visit_globals + (local $0 i32) + global.get $std/operator-overloading/a1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/eq3 + global.get $std/operator-overloading/a2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/eq4 + global.get $std/operator-overloading/a local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/gt1 + global.get $std/operator-overloading/s1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/gt2 + global.get $std/operator-overloading/s2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/gte1 + global.get $std/operator-overloading/s local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/gte2 + global.get $std/operator-overloading/m1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/le1 + global.get $std/operator-overloading/m2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/le2 + global.get $std/operator-overloading/m local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/leq1 + global.get $std/operator-overloading/d1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/leq2 + global.get $std/operator-overloading/d2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/shr + global.get $std/operator-overloading/d local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/sres + global.get $std/operator-overloading/f1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/shu + global.get $std/operator-overloading/f2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/ures + global.get $std/operator-overloading/f local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/shl + global.get $std/operator-overloading/p1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/pos + global.get $std/operator-overloading/p2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/pres + global.get $std/operator-overloading/p local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/neg + global.get $std/operator-overloading/n1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/nres + global.get $std/operator-overloading/n2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/not + global.get $std/operator-overloading/n local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/res + global.get $std/operator-overloading/o1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/excl + global.get $std/operator-overloading/o2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/incdec + global.get $std/operator-overloading/o local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/tmp + global.get $std/operator-overloading/x1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/ais1 + global.get $std/operator-overloading/x2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/ais2 + global.get $std/operator-overloading/x local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/ais + global.get $std/operator-overloading/eq1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/aii1 + global.get $std/operator-overloading/eq2 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/aii2 + global.get $std/operator-overloading/eq3 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/aii + global.get $std/operator-overloading/eq4 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit end - global.get $std/operator-overloading/tea + global.get $std/operator-overloading/gt1 local.tee $0 if local.get $0 call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $std/operator-overloading/TesterElementAccess - block $std/operator-overloading/TesterInlineInstance - block $std/operator-overloading/TesterInlineStatic - block $std/operator-overloading/Tester - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $std/operator-overloading/Tester $std/operator-overloading/TesterInlineStatic $std/operator-overloading/TesterInlineInstance $std/operator-overloading/TesterElementAccess $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - return - end - return - end - unreachable - ) - (func $~start - call $start:std/operator-overloading - ) - (func $std/operator-overloading/Tester#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1620 - i32.lt_s - if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/operator-overloading/Tester.equals (param $0 i32) (param $1 i32) (result i32) - (local $2 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 1620 - i32.lt_s + end + global.get $std/operator-overloading/gt2 + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/gte1 + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/gte2 + local.tee $0 + if local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - i32.eq - else - i32.const 0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/operator-overloading/Tester.notEquals (param $0 i32) (param $1 i32) (result i32) - (local $2 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 1620 - i32.lt_s + global.get $std/operator-overloading/le1 + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load - i32.ne - if (result i32) - global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/le2 + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/leq1 + local.tee $0 + if local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - i32.ne - else - i32.const 0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/operator-overloading/TesterInlineStatic#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1620 - i32.lt_s + global.get $std/operator-overloading/leq2 + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $std/operator-overloading/TesterInlineInstance#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1620 - i32.lt_s + global.get $std/operator-overloading/shr + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String.__eq (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1620 - i32.lt_s + global.get $std/operator-overloading/sres + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.const 1536 - i32.eq + global.get $std/operator-overloading/shu + local.tee $0 if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ures + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/shl + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/pos + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit end - block $folding-inner0 + global.get $std/operator-overloading/pres + local.tee $0 + if local.get $0 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/neg + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/nres + local.tee $0 + if local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store - local.get $2 - i32.const 1532 - i32.load - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/not + local.tee $0 + if local.get $0 - i32.store - i32.const 1536 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 1536 - i32.store offset=4 - i32.const 1 + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/res + local.tee $0 + if local.get $0 - local.tee $1 - i32.const 7 - i32.and - local.get $2 - local.tee $0 - i32.const 4 - i32.lt_u - select - i32.eqz - if - loop $do-loop|0 - local.get $1 - i64.load - local.get $3 - i64.load - i64.eq - if - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$199 - loop $while-continue|1 - local.get $0 - local.tee $2 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - if - local.get $1 - i32.load16_u - local.tee $4 - local.get $3 - i32.load16_u - local.tee $5 - i32.sub - local.set $2 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$199 - local.get $1 - i32.const 2 - i32.add - local.set $1 - local.get $3 - i32.const 2 - i32.add - local.set $3 - br $while-continue|1 - end - end - i32.const 0 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.eqz - return + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $std/operator-overloading/TesterElementAccess#__set (param $0 i32) (param $1 i32) (param $2 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 1620 - i32.lt_s + global.get $std/operator-overloading/excl + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/string/String.__eq + global.get $std/operator-overloading/incdec + local.tee $0 if - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/tmp + local.tee $0 + if local.get $0 - local.get $2 - i32.store - else - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ais1 + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/ais2 + local.tee $0 + if local.get $0 - local.get $2 - i32.store offset=4 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/operator-overloading/TesterElementAccess#__get (param $0 i32) (param $1 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 1620 - i32.lt_s + global.get $std/operator-overloading/ais + local.tee $0 if - i32.const 34416 - i32.const 34464 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/string/String.__eq - if (result i32) - global.get $~lib/memory/__stack_pointer + global.get $std/operator-overloading/aii1 + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/aii2 + local.tee $0 + if local.get $0 - i32.load - else - global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/aii + local.tee $0 + if local.get $0 - i32.store + call $~lib/rt/itcms/__visit + end + global.get $std/operator-overloading/tea + local.tee $0 + if local.get $0 - i32.load offset=4 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit ) (func $start:std/operator-overloading (local $0 i32) diff --git a/tests/compiler/std/pointer.release.wat b/tests/compiler/std/pointer.release.wat index d014421032..59ac04a1e5 100644 --- a/tests/compiler/std/pointer.release.wat +++ b/tests/compiler/std/pointer.release.wat @@ -12,6 +12,9 @@ (data $0.1 (i32.const 1048) "\02\00\00\00\1c\00\00\00s\00t\00d\00/\00p\00o\00i\00n\00t\00e\00r\00.\00t\00s") (export "memory" (memory $0)) (start $~start) + (func $~start + call $start:std/pointer + ) (func $start:std/pointer (local $0 i32) (local $1 i32) @@ -366,7 +369,4 @@ unreachable end ) - (func $~start - call $start:std/pointer - ) ) diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index 22fd0d652b..e48a3d3f19 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -3,24 +3,24 @@ (type $1 (func (param i32 i32) (result i32))) (type $2 (func)) (type $3 (func (result i32))) - (type $4 (func (param i32))) - (type $5 (func (param i32) (result i32))) - (type $6 (func (param i32 i32 i32) (result i32))) - (type $7 (func (param i32 i64))) + (type $4 (func (param i32) (result i32))) + (type $5 (func (param i32))) + (type $6 (func (param i32 i64))) + (type $7 (func (param i32 i32 i32) (result i32))) (type $8 (func (param i32 i32 i32))) (type $9 (func (param i32 i32 i32 i32))) - (type $10 (func (param i32 i32 i64))) - (type $11 (func (param i32 i64 i32) (result i32))) - (type $12 (func (param i32 i64) (result i32))) - (type $13 (func (param i32 i32) (result i64))) - (type $14 (func (param i32 f32))) - (type $15 (func (param i32 f64))) - (type $16 (func (param i32 f32 i32) (result i32))) + (type $10 (func (param i32 i64) (result i32))) + (type $11 (func (param i32 f64))) + (type $12 (func (param i32 f32))) + (type $13 (func (param i32 i64 i32) (result i32))) + (type $14 (func (param i32 i32 i64))) + (type $15 (func (param i32 i32) (result i64))) + (type $16 (func (param i32 f64) (result i32))) (type $17 (func (param i32 f32) (result i32))) - (type $18 (func (param i32 i32) (result f32))) - (type $19 (func (param i32 f64 i32) (result i32))) - (type $20 (func (param i32 f64) (result i32))) - (type $21 (func (param i32 i32) (result f64))) + (type $18 (func (param i32 f64 i32) (result i32))) + (type $19 (func (param i32 f32 i32) (result i32))) + (type $20 (func (param i32 i32) (result f64))) + (type $21 (func (param i32 i32) (result f32))) (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)) @@ -55,1719 +55,1547 @@ (data $12 (i32.const 1648) "\18\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00H\08\00\00B\08\00\00H\00\00\00B\00\00\00\88\08\00\00\82\08\00\00\88\00\00\00\82\00\00\00\08\t\00\00\02\t\00\00\08\01\00\00\02\01\00\00\08\n\00\00\02\n\00\00\08\02\00\00\02\02\00\00\08\19\00\00\02\19\00\00\08\1a\00\00\02\1a") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1456 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + (func $~lib/set/Set#get:size (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 1748 + i32.lt_s if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$904 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34516 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$904 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + i32.const 34544 + i32.const 34592 i32.const 1 - else - local.get $1 - i32.const 1648 - i32.load - i32.gt_u - if - i32.const 1248 - i32.const 1312 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1652 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 + i32.store local.get $0 - i32.store offset=8 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 i32.eqz if return end - global.get $~lib/rt/itcms/white local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 20 + i32.sub + i32.load 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 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - 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 $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + (func $~lib/arraybuffer/ArrayBuffer#constructor (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 1748 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 270 - i32.const 14 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1073741820 + i32.gt_u if - i32.const 0 - i32.const 1392 - i32.const 284 - i32.const 14 + i32.const 1456 + i32.const 1504 + i32.const 52 + i32.const 43 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $3 i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (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 $1 - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 201 - i32.const 14 + i32.const 1056 + i32.const 1120 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - i32.const 0 - i32.const 1392 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 i32.add - local.tee $4 - i32.load local.tee $2 - i32.const 1 - i32.and + i32.const 1073741820 + i32.gt_u 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + i32.const 1056 + i32.const 1392 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 i32.add - local.tee $4 - i32.load - local.set $2 + i32.const -16 + i32.and + i32.const 4 + i32.sub end - local.get $3 - i32.const 2 - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $1 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if i32.const 0 i32.const 1392 - i32.const 221 + i32.const 499 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 end - local.get $4 + local.get $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1392 - i32.const 233 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $1 - i32.const 4 - i32.add local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 i32.add - i32.ne + i32.const 15 + i32.and if i32.const 0 i32.const 1392 - i32.const 234 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store local.get $2 i32.const 4 - i32.shr_u + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - i32.const 31 - i32.const 1073741820 local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.clz - i32.sub + i32.load + i32.const -4 + i32.and + i32.add 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 + i32.load + i32.const -3 + i32.and + i32.store 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 offset=96 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 local.set $3 + local.get $2 local.get $1 - i32.const 0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $3 i32.store offset=8 local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 + local.get $3 i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl + i32.const 3 + i32.and i32.or i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable - end local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 i32.and i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end + i32.add + i32.add + global.set $~lib/rt/itcms/total local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill local.get $1 + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s if - return + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 0 - i32.store offset=8 local.get $1 - i32.const 4 - i32.add - local.get $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - local.tee $3 - i32.const 2 - i32.store + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - local.get $3 - i32.store offset=1568 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 + 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 + call $~lib/set/Set#find i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (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 1748 + i32.lt_s if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort unreachable end - i32.const 34528 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 36096 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34528 - i32.add - i32.const 0 - i32.store 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 34528 - i32.add - i32.const 0 - i32.store 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 + local.get $0 + local.get $1 + 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 + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 34528 - i32.const 36100 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34528 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34516 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34516 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34516 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + (func $~lib/set/Set#has (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 + call $~lib/set/Set#find i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 256 - i32.lt_u + 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 + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 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 1748 + i32.lt_s if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.shr_u + i32.xor + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) + (local $2 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 1748 + i32.lt_s if - i32.const 0 - i32.const 1392 - i32.const 334 - i32.const 14 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + local.get $1 + 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 - i32.const 2 - i32.shl + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - i32.const 1073741804 - i32.ge_u + 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 + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (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 1748 + i32.lt_s if - i32.const 1056 - i32.const 1120 - i32.const 261 - i32.const 31 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $~lib/set/Set#find + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s if - i32.const 1056 - i32.const 1392 - i32.const 461 - i32.const 29 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + local.get $2 + i32.shr_u + i32.gt_u if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 + local.get $1 + i32.const 1073741820 local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 i32.shr_u - local.tee $3 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select local.get $2 + i32.shl + local.set $1 local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s + i32.const 1073741820 + local.get $5 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $1 + end + block $__inlined_func$~lib/rt/itcms/__renew$893 + local.get $4 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u if - unreachable + local.get $3 + local.get $1 + i32.store offset=16 + local.get $4 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$893 end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $4 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $1 + local.get $3 + i32.lt_u + select + memory.copy end - local.get $4 local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz + i32.ne if - i32.const 0 - i32.const 1392 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link end + local.get $0 + local.get $1 + i32.store offset=8 end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.const 15 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $6 - i32.const -4 - i32.and - local.get $5 + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store + global.set $~lib/rt/itcms/visitCount end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 + ) + (func $~lib/set/Set#clear (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - global.get $~lib/rt/itcms/white - i32.or i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.const 3 - i32.and - i32.or i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 local.get $1 - local.get $2 i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - memory.fill - local.get $1 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - local.get $1 - i32.eqz + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s if - return + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 + local.tee $3 + call $~lib/set/Set#find i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 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 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load - call $~lib/rt/itcms/__visit + i32.load offset=20 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=8 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner2 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 i32.load - call $~lib/rt/itcms/__visit + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - memory.size - i32.const 16 - i32.shl - i32.const 34516 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/testNumeric - call $std/set/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 + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - global.set $~lib/rt/itcms/threshold + global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1785,153 +1613,179 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 i32.store local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 local.get $1 - i32.store offset=8 - local.get $0 + 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/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s + 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 + local.tee $2 + call $~lib/set/Set#find + i32.eqz if - i32.const 34544 - i32.const 34592 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 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 @@ -1946,236 +1800,341 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.extend8_s i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor + i32.xor local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $7 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne + call $~lib/set/Set#find + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $4 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $4 - i32.load8_s - local.tee $8 - i32.store8 - local.get $2 - local.get $5 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|0 + call $~lib/set/Set#rehash end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 + i32.store local.get $0 - i32.load offset=20 - i32.store offset=16 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 + local.tee $3 + call $~lib/set/Set#find + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.store16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -2236,7 +2195,7 @@ local.get $2 i32.xor local.tee $3 - call $~lib/set/Set#find + call $~lib/set/Set#find i32.eqz if global.get $~lib/memory/__stack_pointer @@ -2354,248 +2313,16 @@ i32.store end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#get:size (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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $5 - local.get $2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 1073741820 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - local.get $2 - i32.shl - local.set $1 - local.get $3 - if - i32.const 1073741820 - local.get $5 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $1 - end - block $__inlined_func$~lib/rt/itcms/__renew$893 - local.get $4 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $3 - local.get $1 - i32.store offset=16 - local.get $4 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$893 - end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $4 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_u - select - memory.copy - end - local.get $2 - local.get $4 - i32.ne - if - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/rt/itcms/__link - end - local.get $0 - local.get $1 - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 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 @@ -2610,102 +2337,180 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/array/ensureCapacity + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#get:length (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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 + 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 - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1748 - i32.lt_s + 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 + local.tee $2 + call $~lib/set/Set#find + i32.eqz if - i32.const 34544 - i32.const 34592 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2730,119 +2535,340 @@ local.get $0 local.get $1 local.get $1 - i32.extend8_s i32.const -1028477379 i32.mul - i32.const 374761394 + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $2 i32.const 15 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $2 i32.const 13 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $2 i32.const 16 i32.shr_u - local.get $1 + local.get $2 i32.xor - call $~lib/set/Set#find - local.tee $1 + local.tee $3 + call $~lib/set/Set#find i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 + i32.const 8 i32.sub - i32.store offset=20 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 local.get $1 - i32.const 1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add - i32.const 4 - local.get $0 - i32.load offset=20 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.tee $2 + i32.const 15 + i32.shr_u local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) + 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 + local.tee $3 + call $~lib/set/Set#find + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=20 + i32.load offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + i32.shl + i32.add + local.tee $2 + local.get $1 + i32.store16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 local.get $1 - call $~lib/set/Set#rehash + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $2 + i32.store end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#clear (param $0 i32) - (local $1 i32) + (func $~lib/set/Set#add (param $0 i32) (param $1 f64) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2864,657 +2890,616 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 local.get $1 - i32.store offset=8 - local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + 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 $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + call $~lib/set/Set#find + i32.eqz + if global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 + local.get $0 i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - if + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#add + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 local.get $0 + i32.load offset=4 i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.shl + i32.const 1 + i32.or end + call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=8 - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $4 + local.get $1 + f64.store global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $6 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 - i32.const 0 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $0 + i32.load + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 + local.get $0 + i32.store + local.get $4 + local.get $5 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $4 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + local.tee $2 + call $~lib/set/Set#find + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 + local.get $0 + i32.store + local.get $0 + i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 1073741820 - i32.gt_u + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + local.get $0 + i32.store + local.get $0 + i32.load offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 + local.get $0 i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 + local.get $0 i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + f32.store global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 + i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 local.get $0 - call $~lib/array/Array#set:length + i32.load + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/step (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 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 - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s + 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 offset=4 + i32.const -4 + i32.and + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34516 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + global.get $~lib/rt/itcms/iter + i32.load 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + global.set $~lib/rt/itcms/toSpace local.get $1 + global.set $~lib/rt/itcms/white local.get $0 - 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 $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.load 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/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 local.get $0 - i32.const 50 - i32.lt_s + i32.load 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34516 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store offset=4 - local.get $1 local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - call $~lib/set/Set#has + i32.const 4 + i32.add + local.tee $0 + i32.const 34516 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - 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 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 0 ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3529,78 +3514,66 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 i32.store local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i32.load global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - i32.store offset=8 + i32.store + local.get $2 local.get $0 - local.get $1 - call $~lib/rt/itcms/__link + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3623,55 +3596,60 @@ local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - 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 + i32.load + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.store + local.get $2 local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load 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 + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3686,177 +3664,142 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 - i32.load offset=8 - local.set $4 + i32.load global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $4 + i32.store + local.get $2 local.get $0 - i32.load offset=16 - i32.const 3 + i32.load offset=4 + i32.and + i32.const 2 i32.shl i32.add - local.set $7 - local.get $3 - local.set $2 + i32.load + local.set $0 loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne + local.get $0 if - local.get $4 + local.get $0 i32.load offset=4 + local.tee $2 i32.const 1 i32.and - i32.eqz - if - local.get $2 - local.get $4 - i32.load8_u - local.tee $8 - i32.store8 - local.get $2 - local.get $5 + if (result i32) + i32.const 0 + else local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 + local.get $0 i32.load - i32.store offset=4 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 8 + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $4 - i32.const 8 - i32.add - local.set $4 + local.get $2 + i32.const -2 + i32.and + local.set $0 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 - i32.store offset=8 + i32.load global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 + i32.store + local.get $2 local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3871,167 +3814,143 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.const 255 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 + i32.const 2 + i32.shl 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 - local.tee $3 - call $~lib/set/Set#find - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load + local.set $0 + loop $while-continue|0 local.get $0 - i32.load offset=12 - i32.eq if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + i32.const 0 else - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=4 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + return end - call $~lib/set/Set#rehash + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/set/Set#clear (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - local.get $1 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $1 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $2 - i32.store + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4053,35 +3972,61 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $2 local.get $0 i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - i32.load8_u + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i32.load + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4096,705 +4041,736 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - 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 - call $~lib/set/Set#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $2 local.get $0 i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 + i32.and + i32.const 2 + i32.shl i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load + local.set $0 + loop $while-continue|0 local.get $0 - local.get $1 - call $~lib/set/Set#rehash + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + f64.load + f64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/set/Set#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.load offset=4 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else local.get $1 local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + f32.load + f32.eq end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + i32.const 4 i32.add - local.set $0 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer + local.get $0 + return end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + 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 $3 + i32.const -4 + i32.and + local.tee $3 + 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 $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.tee $4 + i32.const 7 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i32.xor + end + local.tee $3 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 + i32.const 1392 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 local.get $5 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + end + local.get $5 + if local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $3 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add + i32.load + i32.const -2 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.rotl + i32.and + i32.store end end - global.get $~lib/memory/__stack_pointer + end + ) + (func $~lib/rt/tlsf/insertBlock (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 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if local.get $0 - i32.store offset=4 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + 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 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + call $~lib/rt/tlsf/removeBlock local.get $1 - call $~lib/set/Set#get:size + local.get $6 + i32.const 4 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + 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 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if local.get $0 - i32.ne + i32.load offset=8 + local.tee $1 + i32.eqz if i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 + i32.const 1120 + i32.const 148 + i32.const 30 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 - loop $for-loop|3 + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$904 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if local.get $0 - i32.const 50 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34516 i32.lt_u + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1120 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$904 end - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne + i32.const 1648 + i32.load + i32.gt_u if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 + i32.const 1248 + i32.const 1312 + i32.const 21 + i32.const 28 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 2 + i32.shl + i32.const 1652 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1748 + i32.lt_s + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer return @@ -4806,11 +4782,9 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4825,154 +4799,25 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 i32.store local.get $0 local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4991,49 +4836,23 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.const 0 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - 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 - call $~lib/set/Set#find - i32.const 0 - i32.ne + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5115,16 +4934,16 @@ if local.get $2 local.get $4 - i32.load16_s + i32.load8_u local.tee $8 - i32.store16 + i32.store8 local.get $2 local.get $5 local.get $1 local.get $8 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -5195,216 +5014,37 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - 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 - local.tee $3 - call $~lib/set/Set#find - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - local.get $1 - i32.store16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $1 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $2 - i32.store - end + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $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 global.get $~lib/memory/__stack_pointer @@ -5419,61 +5059,131 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 - i32.load offset=12 - i32.ge_u + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + 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 + call $~lib/set/Set#find + local.tee $1 + i32.eqz if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.const 1 - call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 i32.const 1 - i32.shl i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 local.get $2 - i32.store16 - global.get $~lib/memory/__stack_pointer i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5488,77 +5198,88 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.const 0 - call $~lib/array/ensureCapacity + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.store local.get $0 local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 - i32.store local.get $1 + i32.store offset=8 local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + local.get $1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5576,713 +5297,1160 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl 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 - call $~lib/set/Set#find - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $8 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $4 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $5 + local.get $1 + local.get $6 + 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 $6 + 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 $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=8 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 + end + local.get $4 + i32.const 16 + i32.add + local.set $4 + br $while-continue|0 + end end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 + local.get $7 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/set/Set#rehash - end + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - 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.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 + call $~lib/set/Set#find + local.tee $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $6 + local.get $0 i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 + local.get $0 i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end + end + if global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 i32.const 1 - i32.shl - local.tee $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s + i32.ne + if + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if + local.get $2 local.get $4 + i32.load + local.tee $8 + i32.store local.get $2 - i32.const 3 - i32.shl + local.get $5 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 local.get $2 - i32.const 1 + i32.store + local.get $2 + i32.const 8 i32.add local.set $2 - br $for-loop|00 end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 + return + end + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end + local.get $0 + i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $~lib/set/Set#get:size - local.set $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $2 + local.get $4 + i32.load16_u + local.tee $8 + i32.store16 + local.get $2 + local.get $5 local.get $1 - local.get $0 - 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 $0 - i32.const 1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl i32.add - local.set $0 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34544 - i32.const 34592 + local.get $1 + local.get $1 + i32.load offset=4 i32.const 1 + i32.or + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/set/Set#constructor (result i32) (local $0 i32) @@ -6354,89 +6522,27 @@ local.get $0 i32.store offset=4 local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - 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 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.store offset=4 local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/set/Set#find i32.const 0 - i32.ne + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6518,16 +6624,16 @@ if local.get $2 local.get $4 - i32.load16_u + i32.load8_s local.tee $8 - i32.store16 + i32.store8 local.get $2 local.get $5 local.get $1 local.get $8 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -6606,255 +6712,26 @@ call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - 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 - local.tee $3 - call $~lib/set/Set#find - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - local.get $1 - i32.store16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $1 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $2 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.store offset=8 local.get $0 - i32.store - local.get $1 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=12 local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u + local.get $0 + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -6880,11 +6757,10 @@ local.get $0 local.get $1 local.get $1 - i32.const 65535 - i32.and + i32.extend8_s i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -6909,7 +6785,7 @@ i32.shr_u local.get $1 i32.xor - call $~lib/set/Set#find + call $~lib/set/Set#find local.tee $1 i32.eqz if @@ -6941,650 +6817,1330 @@ local.get $0 i32.store local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - 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.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.load offset=8 - local.set $4 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~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 1748 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + else i32.const 0 - i32.store offset=8 + end + if global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 536870910 - i32.gt_u + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $8 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $4 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $4 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $5 + local.get $1 + local.get $6 + 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 $6 + 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 $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=8 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 + end + local.get $4 + i32.const 16 + i32.add + local.set $4 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 i32.const 1 - i32.shl - local.tee $0 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + 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 + call $~lib/set/Set#find + local.tee $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 + local.get $0 i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if + local.get $2 local.get $4 + i32.load + local.tee $8 + i32.store local.get $2 - i32.const 3 + local.get $5 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 i32.shl i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 local.get $2 - i32.const 1 + i32.store + local.get $2 + i32.const 8 i32.add local.set $2 - br $for-loop|00 end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end + return + end + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - call $~lib/set/Set#get:size - local.set $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end + end + if global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/set/Set#rehash (param $0 i32) (param $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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $4 + i32.load16_s + local.tee $8 + i32.store16 + local.get $2 + local.get $5 local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 i32.add - local.set $0 - br $for-loop|4 + local.set $2 end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + 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 + call $~lib/set/Set#find + local.tee $1 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 34544 - i32.const 34592 + local.get $1 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.or + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 i32.const 1 + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (result i32) + (func $~lib/set/Set#constructor (result i32) (local $0 i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -7610,7 +8166,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 24 - i32.const 12 + i32.const 8 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -7674,148 +8230,16 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $~lib/set/Set#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f64) + (local $9 i64) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -7854,7 +8278,7 @@ i32.const 3 i32.div_s local.tee $6 - i32.const 3 + i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $3 @@ -7871,7 +8295,7 @@ local.get $4 local.get $0 i32.load offset=16 - i32.const 3 + i32.const 4 i32.shl i32.add local.set $7 @@ -7883,64 +8307,78 @@ i32.ne if local.get $4 - i32.load offset=4 + i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 local.get $4 - i32.load + f64.load local.tee $8 - i32.store + f64.store local.get $2 local.get $5 local.get $1 local.get $8 + i64.reinterpret_f64 + local.tee $9 + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.get $9 + 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 $10 i32.const 15 i32.shr_u + local.get $10 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $10 i32.const 13 i32.shr_u + local.get $10 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $10 i32.const 16 i32.shr_u + local.get $10 i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $10 i32.load - i32.store offset=4 - local.get $8 + i32.store offset=8 + local.get $10 local.get $2 i32.store local.get $2 - i32.const 8 + i32.const 16 i32.add local.set $2 end local.get $4 - i32.const 8 + i32.const 16 i32.add local.set $4 br $while-continue|0 @@ -7997,8 +8435,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) + (local $2 i64) (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer @@ -8025,229 +8463,135 @@ local.get $0 local.get $1 local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761401 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $2 + 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 $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor + call $~lib/set/Set#find local.tee $3 - call $~lib/set/Set#find i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $1 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 8 i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $2 - i32.store + global.set $~lib/memory/__stack_pointer + return end + local.get $3 + local.get $3 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $3 + i32.const 1 + i32.add + i32.const 4 local.get $0 - i32.load offset=12 + i32.load offset=20 + local.tee $4 + local.get $4 + i32.const 4 + i32.lt_u + select i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $3 - i32.store offset=12 + call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8262,27 +8606,87 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 2 - i32.const 0 - call $~lib/array/ensureCapacity + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.store local.get $0 local.get $1 - i32.store offset=12 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/set/Set#rehash (param $0 i32) (param $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 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8297,40 +8701,176 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $7 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $4 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $4 + i32.load + local.set $8 + local.get $2 + local.get $4 + f32.load + f32.store + local.get $2 + local.get $5 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=4 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 8 + i32.add + local.set $2 + end + local.get $4 + i32.const 8 + i32.add + local.set $4 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $0 + local.get $5 i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + i32.store offset=8 local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + local.get $6 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8355,6 +8895,7 @@ local.get $0 local.get $1 local.get $1 + i32.reinterpret_f32 i32.const -1028477379 i32.mul i32.const 374761397 @@ -8363,27 +8904,27 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $2 i32.const 15 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $2 i32.const 13 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $2 i32.const 16 i32.shr_u - local.get $1 + local.get $2 i32.xor - call $~lib/set/Set#find - local.tee $1 + call $~lib/set/Set#find + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -8392,8 +8933,8 @@ global.set $~lib/memory/__stack_pointer return end - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 1 i32.or @@ -8417,18 +8958,18 @@ i32.load offset=4 i32.const 1 i32.shr_u - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $2 i32.const 1 i32.add i32.const 4 local.get $0 i32.load offset=20 - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 4 i32.lt_u select @@ -8436,632 +8977,692 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - 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.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.store + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer - i32.const 1748 + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store + local.get $0 + local.get $2 + call $~lib/set/Set#rehash + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.shr_u + local.set $1 + else local.get $1 - i32.store + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 31 + local.get $1 + i32.clz i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select + i32.const 1392 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + i32.load offset=96 + else local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.load + i32.const -1 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.const 0 + i32.const 1392 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34528 + i32.const 0 + i32.store + i32.const 36096 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34528 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - local.get $0 - call $~lib/set/Set#has + 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 34528 + i32.add i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + end + i32.const 34528 + i32.const 36100 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34528 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne + i32.gt_u if i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 + i32.const 1392 + i32.const 389 + i32.const 16 call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/memory/__stack_pointer + else + local.get $0 + i32.const 1572 + i32.add local.get $1 - i32.store offset=4 + i32.gt_u + if + i32.const 0 + i32.const 1392 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1456 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 local.get $1 - call $~lib/set/Set#get:size - i32.const 50 i32.ne if - i32.const 0 - i32.const 1568 - i32.const 45 + local.get $0 + i32.load offset=4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 + i32.and i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34544 - i32.const 34592 - i32.const 1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9076,78 +9677,140 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store local.get $0 local.get $1 - call $~lib/rt/itcms/__link + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store local.get $1 - i32.store offset=8 local.get $0 - local.get $1 - call $~lib/rt/itcms/__link + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + local.get $1 local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.store offset=12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + local.get $1 local.get $0 - i32.const 0 - i32.store offset=16 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store + local.get $1 local.get $0 - i32.const 0 - i32.store offset=20 + i32.load offset=4 + i32.add + i32.load8_s global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9170,58 +9833,105 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 - i32.load + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=4 - i32.and - i32.const 2 + local.get $1 + i32.const 3 i32.shl i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9243,54 +9953,56 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + i32.store local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $~lib/set/Set#find - i32.const 0 - i32.ne + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9305,177 +10017,77 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store + local.get $1 local.get $0 - i32.load offset=8 - local.set $4 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $4 + i32.store local.get $0 - i32.load offset=16 - i32.const 3 + i32.load offset=4 + local.get $1 + i32.const 2 i32.shl i32.add - local.set $7 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $4 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $4 - i32.load - local.tee $8 - i32.store - local.get $2 - local.get $5 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=4 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 8 - i32.add - local.set $2 - end - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|0 - end - end + i32.load global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 0 + i32.store local.get $0 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 + local.get $1 i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9490,165 +10102,109 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - local.tee $3 - call $~lib/set/Set#find - i32.eqz + local.get $0 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $1 + i32.const 0 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/set/Set#rehash + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $2 local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 i32.const 1 i32.add - i32.store offset=20 + local.tee $3 + i32.const 1 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $1 local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $2 - i32.store + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9688,19 +10244,19 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + f64.load global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9715,135 +10271,125 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $~lib/set/Set#find - local.tee $1 - i32.eqz + local.get $0 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1248 + i32.const 1616 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - i32.const 1 + i32.const 2 + i32.shl i32.add + f32.load + global.get $~lib/memory/__stack_pointer i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + memory.size + i32.const 16 + i32.shl + i32.const 34516 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + call $std/set/testNumeric + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/set/Set#rehash + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end end - global.get $~lib/memory/__stack_pointer - i32.const 8 + 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/memory/__stack_pointer + global.set $~lib/rt/itcms/threshold ) - (func $std/set/testNumeric - (local $0 i32) + (func $~lib/set/Set#values (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -9852,148 +10398,257 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~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 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 0 - i32.const 20 - memory.fill + i32.store offset=4 global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 134217727 + i32.gt_u if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 call $~lib/builtins/abort unreachable end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has + local.get $3 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f64.load + 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 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s @@ -10002,15 +10657,15 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=8 - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=16 local.set $5 global.get $~lib/memory/__stack_pointer @@ -10030,7 +10685,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 15 + i32.const 21 call $~lib/rt/itcms/__new local.tee $6 i32.store @@ -10122,14 +10777,12 @@ global.set $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + loop $for-loop|0 local.get $2 local.get $5 i32.lt_s if - local.get $4 + local.get $3 local.get $2 i32.const 3 i32.shl @@ -10143,114 +10796,131 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store + local.get $1 + local.tee $0 + i32.const 1 + i32.add + local.set $1 + local.get $7 + f32.load + 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 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $6 + i32.store local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set + local.get $6 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 local.get $0 - i32.const 1 + i32.const 2 + i32.shl i32.add - local.set $0 + local.get $4 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|00 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer local.get $6 i32.store local.get $6 - local.get $0 + local.get $1 call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 + i32.const 1748 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end i32.const 0 - local.set $0 - loop $for-loop|3 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $0 - i32.const 50 + i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer @@ -10258,12 +10928,11 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/set/Set#has - i32.eqz + call $~lib/set/Set#has if i32.const 0 i32.const 1568 - i32.const 31 + i32.const 6 i32.const 5 call $~lib/builtins/abort unreachable @@ -10273,17 +10942,18 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/set/Set#delete + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $0 - call $~lib/set/Set#has + call $~lib/set/Set#has + i32.eqz if i32.const 0 i32.const 1568 - i32.const 33 + i32.const 8 i32.const 5 call $~lib/builtins/abort unreachable @@ -10292,7 +10962,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|3 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -10300,21 +10970,21 @@ i32.store offset=4 local.get $1 call $~lib/set/Set#get:size - i32.const 50 + i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 35 + i32.const 10 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 + i32.const 50 local.set $0 - loop $for-loop|4 + loop $for-loop|1 local.get $0 - i32.const 50 + i32.const 100 i32.lt_u if global.get $~lib/memory/__stack_pointer @@ -10322,32 +10992,12 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 i32.const 1568 - i32.const 41 + i32.const 14 i32.const 5 call $~lib/builtins/abort unreachable @@ -10357,1086 +11007,482 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/set/Set#delete + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $0 - call $~lib/set/Set#has + call $~lib/set/Set#has + i32.eqz if i32.const 0 i32.const 1568 - i32.const 43 + i32.const 16 i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - 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 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load 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 - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable + end local.get $0 - return + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/set/Set#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $8 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 i32.ne if - local.get $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $4 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $5 - local.get $1 - local.get $6 - 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 $6 - 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 $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=8 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $4 - i32.const 16 - i32.add - local.set $4 - br $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~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 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - local.tee $2 - call $~lib/set/Set#find - i32.eqz - if + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store + local.get $6 local.get $0 - i32.load offset=16 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - else + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 i32.const 1 - i32.or + i32.add + local.set $2 + br $for-loop|2 end - call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 4 - i32.shl - i32.add - local.tee $3 - local.get $1 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + call $~lib/set/Set#get:size + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 0 - i32.lt_s + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/set/Set#find - local.tee $2 - i32.eqz - if + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + 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 $2 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + i32.const 34544 + i32.const 34592 i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#clear (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) (local $1 i32) (local $2 i64) @@ -11461,20 +11507,20 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $1 i32.store loop $for-loop|0 local.get $2 i64.const 100 - i64.lt_s + i64.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -11488,13 +11534,13 @@ i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11531,14 +11577,14 @@ loop $for-loop|1 local.get $2 i64.const 100 - i64.lt_s + i64.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11553,13 +11599,13 @@ i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11635,7 +11681,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 17 + i32.const 19 call $~lib/rt/itcms/__new local.tee $8 i32.store @@ -11776,7 +11822,7 @@ local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store offset=12 i32.const 0 @@ -11799,8 +11845,8 @@ local.get $1 local.get $8 local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#has + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11819,8 +11865,8 @@ local.get $0 local.get $8 local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#add + call $~lib/array/Array#__get + call $~lib/set/Set#add local.get $3 i32.const 1 i32.add @@ -11854,14 +11900,14 @@ loop $for-loop|3 local.get $2 i64.const 50 - i64.lt_s + i64.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11876,13 +11922,13 @@ i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#delete + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -11918,14 +11964,14 @@ loop $for-loop|4 local.get $2 i64.const 50 - i64.lt_s + i64.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -11939,13 +11985,13 @@ i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -11960,13 +12006,13 @@ i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#delete + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $2 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -12028,844 +12074,607 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/set/Set#constructor (result i32) + (func $std/set/testNumeric (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + local.set $0 + br $for-loop|1 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/set/Set#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $8 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 i32.ne if - local.get $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $4 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $5 - local.get $1 - local.get $6 - 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 $6 - 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 $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=8 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $4 - i32.const 16 - i32.add - local.set $4 - br $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~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 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - local.tee $2 - call $~lib/set/Set#find - i32.eqz - if + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store + local.get $6 local.get $0 - i32.load offset=16 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.eq + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.load offset=12 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=4 - else + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|4 end - call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 4 - i32.shl - i32.add - local.tee $3 local.get $1 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/set/Set#find - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/set/Set#rehash + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -12880,20 +12689,20 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $1 i32.store loop $for-loop|0 - local.get $2 - i64.const 100 - i64.lt_u + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -12906,14 +12715,14 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#add + local.get $0 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12923,10 +12732,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i64.const 1 - i64.add - local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|0 end end @@ -12945,19 +12754,19 @@ call $~lib/builtins/abort unreachable end - i64.const 50 - local.set $2 + i32.const 50 + local.set $0 loop $for-loop|1 - local.get $2 - i64.const 100 - i64.lt_u + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12971,14 +12780,14 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#add + local.get $0 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -12988,10 +12797,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i64.const 1 - i64.add - local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|1 end end @@ -13030,13 +12839,13 @@ i32.store local.get $1 i32.load offset=8 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=16 - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16 @@ -13054,39 +12863,39 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 19 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 - local.get $8 + local.get $6 i32.const 0 i32.store - local.get $8 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 - local.get $8 + local.get $6 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 - local.get $8 + local.get $6 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 - local.get $8 + local.get $6 i32.const 0 i32.store offset=12 - local.get $6 - i32.const 134217727 + local.get $5 + i32.const 536870910 i32.gt_u if i32.const 1456 @@ -13098,128 +12907,130 @@ 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.const 1 i32.shl - local.tee $9 + local.tee $0 i32.const 1 call $~lib/rt/itcms/__new local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=12 - local.get $8 + local.get $6 local.get $7 i32.store - local.get $8 + local.get $6 local.get $7 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 - local.get $8 + local.get $6 local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 - local.get $8 - local.get $9 + local.get $6 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 - local.get $8 local.get $6 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 + i32.const 0 + local.set $0 loop $for-loop|00 - local.get $3 - local.get $6 + local.get $2 + local.get $5 i32.lt_s if - local.get $5 - local.get $3 - i32.const 4 + local.get $4 + local.get $2 + i32.const 3 i32.shl i32.add local.tee $7 - i32.load offset=8 + i32.load offset=4 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store - local.get $8 + local.get $6 local.get $0 local.get $7 - i64.load - call $~lib/array/Array#__set + i32.load16_u + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store - local.get $8 + local.get $6 local.get $0 - call $~lib/array/Array#set:length + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store offset=12 i32.const 0 - local.set $3 + local.set $2 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=4 - local.get $8 + local.get $6 call $~lib/array/Array#get:length - local.get $3 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=16 local.get $1 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#has + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -13233,17 +13044,17 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=16 local.get $0 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $3 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|2 end end @@ -13268,19 +13079,19 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $2 + i32.const 0 + local.set $0 loop $for-loop|3 - local.get $2 - i64.const 50 - i64.lt_u + local.get $0 + i32.const 50 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -13294,14 +13105,14 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#delete + local.get $0 + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -13310,10 +13121,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - i64.const 1 - i64.add - local.set $2 + local.get $0 + i32.const 1 + i32.add + local.set $0 br $for-loop|3 end end @@ -13332,19 +13143,19 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - local.set $2 + i32.const 0 + local.set $0 loop $for-loop|4 - local.get $2 - i64.const 50 - i64.lt_u + local.get $0 + i32.const 50 + i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -13357,14 +13168,14 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#add + local.get $0 + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -13378,2171 +13189,2010 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#delete + local.get $0 + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $2 - call $~lib/set/Set#has + local.get $0 + call $~lib/set/Set#has if i32.const 0 i32.const 1568 i32.const 43 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - 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 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/set/Set#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - f32.load - f32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + local.set $0 + br $for-loop|4 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + 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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 f32) (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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $~lib/set/Set#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 i32) 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $7 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 i32.ne if - local.get $4 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s if - local.get $2 - local.get $4 - f32.load - local.tee $8 - f32.store - local.get $2 - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $8 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - local.get $9 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - local.get $9 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - local.get $9 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~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 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 i32.shl i32.add - local.tee $9 - i32.load + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $9 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 local.get $2 - i32.store + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 local.get $2 - i32.const 8 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 i32.add local.set $2 + br $for-loop|2 end - local.get $4 - i32.const 8 - i32.add - local.set $4 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - local.tee $2 - call $~lib/set/Set#find - i32.eqz - if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=16 + call $~lib/set/Set#get:size + local.set $0 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1568 + i32.const 27 i32.const 3 - i32.mul - i32.const 4 - i32.div_s + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 i32.lt_s - if (result i32) + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=4 - else + 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 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + 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 $0 - i32.load offset=4 - i32.const 1 - i32.shl i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|3 end - call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 local.get $1 - f32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 i32.store offset=4 - local.get $6 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.store offset=8 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 + local.get $1 + call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + return + end + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/set/testNumeric + (local $0 i32) + (local $1 i32) + (local $2 i64) + (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 + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store loop $for-loop|0 local.get $2 - local.get $5 - i32.lt_s + i64.const 100 + i64.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f32.load - 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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $4 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $2 + loop $for-loop|1 + local.get $2 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i32.const 1 - i32.add + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add local.set $2 - br $for-loop|0 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - call $~lib/array/Array#set:length + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $~lib/set/Set#find - local.tee $2 - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 - i32.add + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 1 - i32.or - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $8 i32.store - local.get $0 - i32.load offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else + local.get $8 i32.const 0 - end - if + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/set/Set#rehash - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/set/testNumeric - (local $0 i32) - (local $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store - loop $for-loop|0 - local.get $1 - f32.const 100 - f32.lt + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 134217727 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#has - i32.eqz + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $8 + local.get $7 + i32.store + local.get $8 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 + local.get $3 + local.get $6 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $7 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 50 - local.set $1 - loop $for-loop|1 - local.get $1 - f32.const 100 - f32.lt - if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#has - i32.eqz + local.get $8 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $1 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $0 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#has - i32.eqz + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + 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 $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + 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 $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/set/Set#values - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $4 - i32.store offset=12 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $0 - local.get $3 + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz + i64.const 50 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + 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 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $4 - local.get $3 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/set/Set#get:size - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.get $2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 0 - local.set $1 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer local.get $1 - f32.const 50 - f32.lt + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f32.const 0 - local.set $1 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer local.get $1 - f32.const 50 - f32.lt + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - f32.const 1 - f32.add - local.set $1 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 49 + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - 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 + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/set/Set#constructor (result i32) + (func $std/set/testNumeric (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/set/Set#find (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 local.get $0 - f64.load - f64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + local.set $0 + br $for-loop|1 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) - (local $2 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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 - call $~lib/set/Set#find - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f64) - (local $9 i64) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $4 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $7 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 i32.ne if - local.get $4 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $4 - f64.load - local.tee $8 - f64.store - local.get $2 - local.get $5 - local.get $1 - local.get $8 - i64.reinterpret_f64 - local.tee $9 - 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 $9 - 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 $10 - i32.const 15 - i32.shr_u - local.get $10 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $10 - i32.const 13 - i32.shr_u - local.get $10 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $10 - i32.const 16 - i32.shr_u - local.get $10 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $10 - i32.load - i32.store offset=8 - local.get $10 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $4 - i32.const 16 - i32.add - local.set $4 - br $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~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 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $0 - local.get $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 f64) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - 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 $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $3 - call $~lib/set/Set#find - i32.eqz - if + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store + local.get $6 local.get $0 - i32.load offset=16 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.eq + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $4 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.load offset=12 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 i32.const 3 - i32.mul - i32.const 4 - i32.div_s + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 i32.lt_s - if (result i32) + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=4 - else + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|4 end - call $~lib/set/Set#rehash end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $4 local.get $1 - f64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + local.get $1 + call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $5 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 20 i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $4 - i32.store + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/set/Set#values (param $0 i32) (result i32) + (func $std/set/testNumeric + (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + 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.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1748 i32.lt_s @@ -15551,15 +15201,15 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=8 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=16 local.set $5 global.get $~lib/memory/__stack_pointer @@ -15579,7 +15229,7 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 23 + i32.const 9 call $~lib/rt/itcms/__new local.tee $6 i32.store @@ -15611,7 +15261,7 @@ i32.const 0 i32.store offset=12 local.get $5 - i32.const 134217727 + i32.const 536870910 i32.gt_u if i32.const 1456 @@ -15628,7 +15278,7 @@ i32.const 8 i32.le_u select - i32.const 3 + i32.const 1 i32.shl local.tee $0 i32.const 1 @@ -15671,112 +15321,300 @@ global.set $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - loop $for-loop|0 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $2 local.get $5 i32.lt_s if - local.get $3 + local.get $4 local.get $2 - i32.const 4 + i32.const 3 i32.shl i32.add local.tee $7 - i32.load offset=8 + i32.load offset=4 i32.const 1 i32.and i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f64.load - 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 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + 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 $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1568 + i32.const 43 + 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|4 end end global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 local.get $1 - call $~lib/array/Array#set:length + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + 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 - local.get $6 return end i32.const 34544 @@ -15786,10 +15624,14 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) + (func $std/set/testNumeric + (local $0 i32) + (local $1 f64) + (local $2 i32) + (local $3 i32) + (local $4 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 @@ -15804,193 +15646,394 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store + loop $for-loop|0 + local.get $1 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 50 + local.set $1 + loop $for-loop|1 + local.get $1 + f64.const 100 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + i32.store offset=4 local.get $0 - i32.load offset=12 - i32.ge_u + call $~lib/set/Set#get:size + i32.const 100 + i32.ne if - i32.const 1248 - i32.const 1616 - i32.const 114 - i32.const 42 + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load + call $~lib/set/Set#values + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) - (local $2 i64) - (local $3 i32) - (local $4 i32) + call $~lib/set/Set#constructor + local.tee $4 + i32.store offset=12 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $0 + local.get $3 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $4 + local.get $3 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $~lib/set/Set#get:size + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.get $2 + i32.ne if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + f64.const 0 + local.set $1 + loop $for-loop|3 + local.get $1 + f64.const 50 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|3 + end + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - local.get $1 - 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 $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - call $~lib/set/Set#find - local.tee $3 - i32.eqz + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + local.set $1 + loop $for-loop|4 + local.get $1 + f64.const 50 + f64.lt + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + f64.const 1 + f64.add + local.set $1 + br $for-loop|4 + end end - local.get $3 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $3 + call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - i32.const 1 - i32.add - i32.const 4 + i32.store offset=4 local.get $0 - i32.load offset=20 - local.tee $4 - local.get $4 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end + call $~lib/set/Set#get:size if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - call $~lib/set/Set#rehash + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/set/testNumeric + (func $std/set/testNumeric (local $0 i32) - (local $1 f64) + (local $1 f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16014,20 +16057,20 @@ i32.const 20 memory.fill global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $0 i32.store loop $for-loop|0 local.get $1 - f64.const 100 - f64.lt + f32.const 100 + f32.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -16041,13 +16084,13 @@ i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16058,8 +16101,8 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|0 end @@ -16079,19 +16122,19 @@ call $~lib/builtins/abort unreachable end - f64.const 50 + f32.const 50 local.set $1 loop $for-loop|1 local.get $1 - f64.const 100 - f64.lt + f32.const 100 + f32.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16106,13 +16149,13 @@ i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16123,8 +16166,8 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|1 end @@ -16149,11 +16192,11 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/set/Set#values + call $~lib/set/Set#values local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor + call $~lib/set/Set#constructor local.tee $4 i32.store offset=12 loop $for-loop|2 @@ -16174,8 +16217,8 @@ local.get $0 local.get $3 local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has + call $~lib/array/Array#__get + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16194,8 +16237,8 @@ local.get $4 local.get $3 local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add + call $~lib/array/Array#__get + call $~lib/set/Set#add local.get $2 i32.const 1 i32.add @@ -16224,19 +16267,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|3 local.get $1 - f64.const 50 - f64.lt + f32.const 50 + f32.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16251,13 +16294,13 @@ i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#delete + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -16267,8 +16310,8 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|3 end @@ -16288,19 +16331,19 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f32.const 0 local.set $1 loop $for-loop|4 local.get $1 - f64.const 50 - f64.lt + f32.const 50 + f32.lt if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -16314,13 +16357,13 @@ i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#add + call $~lib/set/Set#add global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has i32.eqz if i32.const 0 @@ -16335,13 +16378,13 @@ i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#delete + call $~lib/set/Set#delete global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 local.get $1 - call $~lib/set/Set#has + call $~lib/set/Set#has if i32.const 0 i32.const 1568 @@ -16351,8 +16394,8 @@ unreachable end local.get $1 - f64.const 1 - f64.add + f32.const 1 + f32.add local.set $1 br $for-loop|4 end @@ -16376,7 +16419,7 @@ local.get $0 i32.store offset=4 local.get $0 - call $~lib/set/Set#clear + call $~lib/set/Set#clear global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16395,46 +16438,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (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 1748 - i32.lt_s - if - i32.const 34544 - i32.const 34592 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - 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 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 263534f48a..14b3ca07e7 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -4,12 +4,12 @@ (type $2 (func (param i32 i32))) (type $3 (func (param i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32) (result i32))) - (type $8 (func (param i32) (result i64))) - (type $9 (func (param i32) (result f32))) - (type $10 (func (param i32) (result f64))) + (type $5 (func (param i32) (result i64))) + (type $6 (func (param i32) (result f64))) + (type $7 (func (param i32) (result f32))) + (type $8 (func (param i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64))) + (type $10 (func (result i32))) (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)) @@ -59,193 +59,6 @@ (data $19 (i32.const 1952) "\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\02\t\00\00\02\n\00\00\02\19\00\00\02\1a") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 1264 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 1472 - call $~lib/rt/itcms/__visit - i32.const 1584 - call $~lib/rt/itcms/__visit - i32.const 1632 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$155 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 34756 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$155 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 1952 - i32.load - i32.gt_u - if - i32.const 1472 - i32.const 1824 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 1956 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) (func $~lib/rt/itcms/__visit (param $0 i32) local.get $0 i32.eqz @@ -270,900 +83,842 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 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 1988 + i32.lt_s if - i32.const 0 - i32.const 1904 - i32.const 268 - i32.const 14 + i32.const 34784 + i32.const 34832 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.tee $2 + local.get $1 + i32.shr_u + i32.eqz if - i32.const 0 - i32.const 1904 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1904 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 + i32.shr_u i32.eqz if - local.get $0 + i32.const 1584 + i32.const 1536 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$145 + i32.const 1073741820 local.get $2 - i32.const 2 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $1 i32.shl - i32.add local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 local.get $1 + local.get $2 + i32.lt_u + select + local.tee $3 + local.get $0 + i32.load + local.tee $2 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $4 + local.get $3 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$145 + end + local.get $4 + i32.load offset=12 + local.set $6 local.get $3 - i32.store offset=4 - local.get $3 + i32.const 1073741804 + i32.ge_u + if + i32.const 1632 + i32.const 1696 + i32.const 261 + 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$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.set $7 + local.get $3 + i32.const 16 + i32.add + local.tee $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1632 + i32.const 1904 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $1 + i32.const 19 + i32.add + i32.const -16 i32.and - i32.store + i32.const 4 + i32.sub end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1904 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1904 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1904 - 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 - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1904 - 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 1904 - 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 - 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 1904 - 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1904 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1904 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1904 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34768 - i32.const 0 - i32.store - i32.const 36336 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 34768 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + local.tee $8 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + local.get $8 + i32.const 256 + i32.ge_u + if (result i32) + local.get $8 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $8 + i32.const 1 + i32.const 27 + local.get $8 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $8 + end + else + local.get $8 + end + i32.const 4 + local.get $7 + i32.load offset=1568 + memory.size + local.tee $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $5 + local.get $1 + local.get $5 + local.get $1 + local.get $5 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $5 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $7 local.get $1 i32.const 16 - i32.lt_u + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $7 + local.get $8 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 34768 - i32.add i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.const 1904 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end end - local.get $0 - i32.const 1 + local.get $8 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1904 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $7 + local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $9 + local.get $8 + i32.const 4 i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 34768 - i32.const 36340 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34768 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 15 + i32.and + if 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 + i32.const 1904 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 + local.get $9 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end + local.get $8 + i32.sub + local.tee $5 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $8 + local.get $9 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $8 + i32.add + local.tee $8 + local.get $5 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $7 + local.get $8 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $9 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $5 + local.get $5 + i32.load + i32.const -3 + i32.and + i32.store 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 + local.get $1 + local.get $6 + i32.store offset=12 + local.get $1 + local.get $3 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $5 + i32.load offset=8 + local.set $6 + local.get $1 + local.get $5 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $6 + i32.store offset=8 + local.get $6 + local.get $1 + local.get $6 i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $5 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load i32.const -4 i32.and - i32.eq + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $1 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $3 + memory.fill + local.get $1 + local.get $2 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_u + select + memory.copy + end + local.get $1 + local.get $2 + i32.ne + if + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $1 if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 34756 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - local.set $0 - loop $while-continue|2 + i32.eq + if local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 + 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 - i32.ne if - local.get $0 - local.get $2 - i32.const -4 - i32.and local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#makeGray end - local.get $0 - i32.load 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 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 + local.get $0 + local.get $3 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + 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 1988 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1904 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1904 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1904 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if local.get $0 - i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add local.tee $1 - i32.const -4 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz + local.set $3 local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34756 - i32.lt_u + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 i32.load - i32.const -4 + i32.const -2 + local.get $2 + i32.rotl 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 34756 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1904 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end + i32.store end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1904 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1904 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1904 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1904 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + local.get $4 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1904 + 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 + local.get $2 i32.const 256 i32.lt_u - if - local.get $1 + if (result i32) + local.get $2 i32.const 4 i32.shr_u - local.set $1 else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 i32.const 31 - local.get $1 + 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 $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $2 i32.const 16 i32.lt_u - local.get $2 + local.get $5 i32.const 23 i32.lt_u i32.and @@ -1171,78 +926,198 @@ if i32.const 0 i32.const 1904 - i32.const 334 + 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 offset=4 - i32.const -1 + i32.load offset=96 + local.set $3 local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store offset=4 + end + local.get $0 + local.get $5 + i32.const 4 i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$155 local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl + i32.load offset=4 + i32.const -4 i32.and local.tee $1 - if (result i32) + i32.eqz + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 34756 + i32.lt_u + i32.and i32.eqz if i32.const 0 - i32.const 1904 - i32.const 347 + i32.const 1696 + i32.const 128 i32.const 18 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else + br $__inlined_func$~lib/rt/itcms/Object#unlink$155 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if i32.const 0 + i32.const 1696 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 1952 + i32.load + i32.gt_u + if + i32.const 1472 + i32.const 1824 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 1956 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -1299,10 +1174,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~start - call $start:std/static-array - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) + (func $~lib/array/Array#__get (param $0 i32) (result i64) + (local $1 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1322,10 +1195,30 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store local.get $0 + i32.const 1196 + i32.load + i32.ge_u + if + i32.const 1472 + i32.const 1536 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1184 i32.store + i32.const 1188 + i32.load local.get $0 - i32.load offset=12 + i32.const 3 + i32.shl + i32.add + i64.load global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -1380,15 +1273,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $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) + (func $~lib/array/Array#__get (param $0 i32) (result f64) + (local $1 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1408,609 +1294,724 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer + i32.const 1360 + i32.store local.get $0 + i32.const 1372 + i32.load + i32.ge_u + if + i32.const 1472 + i32.const 1536 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1360 i32.store + i32.const 1364 + i32.load local.get $0 - i32.load offset=8 - local.tee $2 + i32.const 3 + i32.shl + i32.add + f64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__get (param $0 i32) (result f32) + (local $1 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 1988 + 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 + global.get $~lib/memory/__stack_pointer + i32.const 1264 + i32.store + local.get $0 + i32.const 1276 + i32.load + i32.ge_u + if + i32.const 1472 + i32.const 1536 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1264 + i32.store + i32.const 1268 + i32.load + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 - i32.shr_u - i32.eqz + i32.const 256 + i32.lt_u if - i32.const 1073741820 local.get $1 + i32.const 4 i32.shr_u - i32.eqz + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u if - i32.const 1584 - i32.const 1536 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable + 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.set $1 end - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1904 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else local.get $0 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$145 - i32.const 1073741820 - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 + i32.load + 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.shl + i32.ctz local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $3 - local.get $0 - i32.load + i32.const 2 + i32.shl + i32.add + i32.load offset=4 local.tee $2 - i32.const 20 - i32.sub - local.tee $4 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $4 - local.get $3 - i32.store offset=16 - local.get $2 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$145 - end - local.get $4 - i32.load offset=12 - local.set $6 - local.get $3 - i32.const 1073741804 - i32.ge_u - if - i32.const 1632 - i32.const 1696 - i32.const 261 - 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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $7 - local.get $3 - i32.const 16 - i32.add - local.tee $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1632 + i32.const 0 i32.const 1904 - i32.const 461 - i32.const 29 + i32.const 347 + i32.const 18 call $~lib/builtins/abort unreachable end - local.get $7 + local.get $0 + local.get $2 + i32.ctz local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $8 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $8 - i32.const 256 - i32.ge_u - if (result i32) - local.get $8 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $8 - i32.const 1 - i32.const 27 - local.get $8 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $8 - end - else - local.get $8 - end - i32.const 4 - local.get $7 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $5 - local.get $1 - local.get $5 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $5 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $7 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 34768 + i32.const 0 + i32.store + i32.const 36336 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 34768 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $7 - local.get $8 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz + i32.lt_u if + local.get $0 + i32.const 4 + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 34768 + i32.add i32.const 0 - i32.const 1904 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end end - local.get $8 - local.get $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 34768 + i32.const 36340 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34768 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1904 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1904 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 i32.load - i32.const -4 + local.set $4 + local.get $5 + 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 1904 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1184 + call $~lib/rt/itcms/__visit + i32.const 1264 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1472 + call $~lib/rt/itcms/__visit + i32.const 1584 + call $~lib/rt/itcms/__visit + i32.const 1632 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 i32.and - i32.gt_u + i32.const 3 + i32.ne if i32.const 0 - i32.const 1904 - i32.const 501 - i32.const 14 + i32.const 1696 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end - local.get $7 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $9 - local.get $8 - i32.const 4 + local.get $0 + i32.const 20 i32.add - i32.const 15 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~start + call $start:std/static-array + ) + (func $~lib/rt/itcms/step (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 offset=4 + i32.const -4 i32.and - if - i32.const 0 - i32.const 1904 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - local.get $9 + 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 offset=4 i32.const -4 i32.and - local.get $8 - i32.sub - local.tee $5 - i32.const 16 - i32.ge_u + i32.eq if - local.get $1 - local.get $8 - local.get $9 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $8 - i32.add - local.tee $8 - local.get $5 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $7 - local.get $8 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $9 - i32.const -2 + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34756 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 offset=4 + i32.const -4 i32.and - i32.store - local.get $1 - i32.const 4 - i32.add + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 - i32.load + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 i32.const -4 i32.and - i32.add - local.tee $5 - local.get $5 - i32.load - i32.const -3 - i32.and - i32.store + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - local.get $1 - local.get $6 - i32.store offset=12 - local.get $1 - local.get $3 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $5 - i32.load offset=8 - local.set $6 - local.get $1 - local.get $5 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $6 - i32.store offset=8 - local.get $6 - local.get $1 - local.get $6 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $5 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - 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 $1 - i32.const 0 - local.get $3 - memory.fill - local.get $1 - local.get $2 - local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_u - select - memory.copy + global.get $~lib/rt/itcms/visitCount + return end - local.get $1 - local.get $2 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $0 + i32.load 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.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34756 + i32.lt_u if local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.eq + 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 34756 + 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.get $0 - i32.const 20 + i32.const 4 i32.sub - i32.load offset=4 - i32.const 3 + local.set $2 + local.get $0 + i32.const 15 i32.and - local.tee $2 - 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 + local.get $0 + select + if (result i32) i32.const 1 - i32.eq + else local.get $2 - i32.const 3 - i32.eq + i32.load + i32.const 1 i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end end + if + i32.const 0 + i32.const 1904 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end + i32.const 10 + return end - local.get $0 - local.get $3 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (result i64) - (local $1 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 1988 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store - local.get $0 - i32.const 1196 - i32.load - i32.ge_u - if - i32.const 1472 - i32.const 1536 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store - i32.const 1188 - i32.load - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (result f32) - (local $1 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 1988 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1264 - i32.store - local.get $0 - i32.const 1276 - i32.load - i32.ge_u - if - i32.const 1472 - i32.const 1536 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1264 - i32.store - i32.const 1268 - i32.load - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#__get (param $0 i32) (result f64) - (local $1 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 1988 - 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 - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store - local.get $0 - i32.const 1372 - i32.load - i32.ge_u - if - i32.const 1472 - i32.const 1536 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1360 - i32.store - i32.const 1364 - i32.load - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) (func $start:std/static-array global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index f04e217e60..f83e7fdb29 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -5,12 +5,12 @@ (type $3 (func)) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32))) - (type $6 (func (param i32 i32 i32 i32) (result i32))) - (type $7 (func (param i32) (result i32))) + (type $6 (func (param i32) (result i32))) + (type $7 (func (param i32 i32 i32 i32) (result i32))) (type $8 (func (param i32 i32 i32 i32))) (type $9 (func (result i32))) - (type $10 (func (param i32 i32 i64))) - (type $11 (func (param i32 i32 i32 i32 i32))) + (type $10 (func (param i32 i32 i32 i32 i32))) + (type $11 (func (param i32 i32 i64))) (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)) @@ -172,206 +172,169 @@ (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|3 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|7 $start:std/staticarray~anonymous|8 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $start:std/staticarray~anonymous|5 $start:std/staticarray~anonymous|6 $~lib/util/sort/COMPARATOR~anonymous|0) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1280 - call $~lib/rt/itcms/__visit - global.get $std/staticarray/arr3 - local.tee $0 + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.const 1073741804 + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 1344 + i32.const 1408 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - global.get $std/staticarray/arr4 - local.tee $0 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 1680 - call $~lib/rt/itcms/__visit - i32.const 2336 - call $~lib/rt/itcms/__visit - i32.const 1344 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 i32.const 0 - i32.const 1408 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - local.get $0 - i32.const 20 + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/threshold end end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1408 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$267 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 36728 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1408 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$267 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1408 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + call $~lib/rt/tlsf/initialize end - global.get $~lib/rt/itcms/toSpace - local.set $2 + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.load offset=12 + i32.const 16 + i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 3888 - i32.load - i32.gt_u - if - i32.const 1088 - i32.const 1536 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 3892 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.load offset=8 local.set $3 local.get $2 - i32.load offset=8 - local.set $1 - local.get $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 offset=4 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 + local.get $3 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $0 i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 - i32.eqz + memory.fill + local.get $1 + ) + (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 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 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1088 + i32.const 1152 + i32.const 78 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz if return end @@ -393,668 +356,1068 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + 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 3960 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 268 - i32.const 14 + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - i32.const 0 - i32.const 1616 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + local.get $1 + i32.const 20 i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $3 - local.get $4 + local.tee $0 i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1616 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 + i32.ge_u + if (result i32) local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const 7 i32.and - local.set $3 local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end + i32.const 7 + i32.and + i32.or + else + i32.const 1 end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$106 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$106 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end - ) - (func $~lib/rt/tlsf/insertBlock (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 1616 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + i32.eqz + if + return + end + local.get $0 i32.eqz if i32.const 0 - i32.const 1616 - i32.const 203 + i32.const 1408 + i32.const 295 i32.const 14 call $~lib/builtins/abort unreachable end + global.get $~lib/rt/itcms/white local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 i32.and + i32.eq 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 + i32.const 20 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + local.tee $0 + i32.load offset=4 + i32.const 3 i32.and + local.tee $3 + global.get $~lib/rt/itcms/white i32.eqz + i32.eq if - i32.const 0 - i32.const 1616 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end 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 end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $1 + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s if - i32.const 0 - i32.const 1616 - i32.const 234 - i32.const 14 + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $3 local.get $2 - i32.const 256 - i32.lt_u - if (result i32) + if + local.get $3 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 + local.get $4 + memory.copy end - local.tee $2 + local.get $3 + i32.store 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 1616 - 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 offset=96 - local.set $3 local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $3 + i32.store + local.get $1 + local.get $3 i32.const 0 - i32.store offset=4 + call $~lib/rt/itcms/__link local.get $1 local.get $3 + i32.store offset=4 + local.get $1 + local.get $4 i32.store offset=8 - local.get $3 + local.get $1 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/array/Array#get:length (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 3960 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 2 - i32.shl - i32.add + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=96 + i32.store local.get $0 + local.get $2 + local.get $1 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result 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 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store + local.get $1 local.get $0 - local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1088 + i32.const 1152 + i32.const 78 + i32.const 41 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add + i32.load local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + local.get $0 + i32.eqz if - i32.const 0 - i32.const 1616 - i32.const 382 - i32.const 14 + i32.const 2336 + i32.const 1152 + i32.const 82 + i32.const 40 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const -16 - i32.and + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=1568 - local.tee $3 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1616 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return + i32.const 1088 + i32.const 1776 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store + local.get $0 + i32.load offset=4 local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 + i32.const 2 + i32.shl i32.add - local.get $3 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - i32.const 2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - local.get $3 - i32.store offset=1568 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $4 local.get $0 local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 i32.const 0 - i32.le_s + i32.lt_s if (result i32) - i32.const 1 local.get $1 - i32.sub - memory.grow + local.get $4 + i32.add + local.tee $1 i32.const 0 - i32.lt_s - else + local.get $1 i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select end - if - unreachable + local.tee $5 + i32.const 2 + i32.shl + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select end - i32.const 36736 + local.get $5 + i32.sub + local.tee $0 i32.const 0 - i32.store - i32.const 38304 + local.get $0 i32.const 0 - i32.store - loop $for-loop|0 + i32.gt_s + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + loop $while-continue|0 local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + i32.gt_u if - local.get $0 - i32.const 2 - i32.shl - i32.const 36736 + local.get $1 + local.get $2 i32.add - i32.const 0 - i32.store 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 36736 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 + local.get $1 + local.get $3 + i32.add + i32.load + local.tee $4 + i32.store + local.get $2 + local.get $4 i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 4 i32.add - local.set $0 - br $for-loop|0 + local.set $1 + br $while-continue|0 end end - i32.const 36736 - i32.const 38308 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 36736 - global.set $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 36728 - i32.lt_u + (func $~lib/staticarray/StaticArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 3960 + i32.lt_s if - return + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 i32.eqz if - call $~lib/rt/tlsf/initialize + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and + local.get $2 + local.get $3 + i32.add + local.get $3 i32.const 1 - local.get $0 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s select - if (result i32) + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + ) + (func $~lib/staticarray/StaticArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 i32.const 1 - else - local.get $1 - i32.load i32.const 1 - i32.and + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return end + local.get $2 + i32.const 0 + i32.lt_s if + local.get $2 + local.get $3 + i32.add + local.tee $2 i32.const 0 - i32.const 1616 - i32.const 562 - i32.const 3 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 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 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/itcms/step (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 + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange 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 + unreachable end - global.get $~lib/rt/itcms/white - i32.eqz + i32.const 0 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.tee $3 + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $4 + local.get $1 + call $~lib/string/String.__eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.ge_s + return + end + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 36736 + i32.const 0 + i32.store + i32.const 38304 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 36736 + i32.add + i32.const 0 + i32.store 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 36736 + i32.add + i32.const 0 + i32.store 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 36736 + i32.const 38308 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 36736 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/itcms/step (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 offset=4 i32.const -4 i32.and local.set $0 @@ -1245,1006 +1608,988 @@ end i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $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 1616 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.get $3 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.sub + i32.const 1 + i32.add + local.tee $4 + local.get $3 + i32.sub + i32.const 1 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 - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 + i32.sub + local.get $4 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $6 + loop $for-loop|0 local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) + local.get $6 + i32.ge_s + if local.get $0 - local.get $1 - i32.ctz - local.tee $1 + local.get $6 i32.const 2 i32.shl i32.add + local.tee $3 i32.load offset=4 - local.tee $2 - i32.eqz + local.tee $5 + local.set $4 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s if - i32.const 0 - i32.const 1616 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $3 + local.set $4 + local.get $5 + local.set $3 + end + local.get $6 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $7 + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $7 + local.get $8 + i32.store offset=8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end end local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 + local.get $5 + i32.const 2 i32.shl i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $5 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $4 + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $7 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + end + local.get $0 + local.get $5 i32.const 2 i32.shl i32.add - i32.load offset=96 - else - i32.const 0 + local.get $4 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u + (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $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 3960 + i32.lt_s if - i32.const 1344 - i32.const 1616 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 12 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + i32.const 1 i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz if - memory.size - local.tee $1 - local.get $3 - i32.const 256 - i32.ge_u - if (result i32) - local.get $3 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $3 - end - else - local.get $3 - end - i32.const 4 - local.get $0 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $0 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const 1088 + i32.const 1152 + i32.const 93 + i32.const 41 + call $~lib/builtins/abort + unreachable end - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 i32.load - i32.const -4 + local.tee $3 + i32.const 1 i32.and - i32.gt_u + i32.eqz if i32.const 0 i32.const 1616 - i32.const 501 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $4 local.get $3 - i32.const 4 - i32.add - i32.const 15 + i32.const -4 i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1616 - i32.const 361 + i32.const 270 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const -4 - i32.and local.get $3 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 + i32.const 256 + i32.lt_u + if (result i32) local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 i32.const 4 - i32.add + i32.shr_u + else + i32.const 31 + i32.const 1073741820 local.get $3 - i32.add + local.get $3 + i32.const 1073741820 + i32.ge_u + select local.tee $3 - local.get $2 - i32.const 4 + i32.clz i32.sub - i32.const 1 - i32.or - i32.store - local.get $0 + local.tee $4 + i32.const 7 + i32.sub + local.set $2 local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 local.get $4 - i32.const -2 - i32.and - i32.store - local.get $1 i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store + i32.sub + i32.shr_u + i32.const 16 + i32.xor end - local.get $1 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u + local.tee $3 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - i32.const 1344 - i32.const 1408 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1616 + i32.const 284 + i32.const 14 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 + local.set $5 local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.eqz + local.tee $4 if - return + local.get $4 + local.get $5 + i32.store offset=8 end - local.get $0 - i32.eqz + local.get $5 if - i32.const 0 - i32.const 1408 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $4 + i32.store offset=4 end - global.get $~lib/rt/itcms/white local.get $1 - i32.const 20 - i32.sub + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + i32.load offset=96 i32.eq if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 i32.eqz - i32.eq if local.get $0 - local.get $1 local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 local.get $3 - i32.const 3 - i32.eq + i32.rotl i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end end end ) - (func $start:std/staticarray~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 1 - i32.add - ) - (func $start:std/staticarray~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) - global.get $std/staticarray/maxVal - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - global.set $std/staticarray/maxVal - ) - (func $start:std/staticarray~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 2 - i32.ge_s - ) - (func $start:std/staticarray~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $start:std/staticarray~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 2 - i32.eq - ) - (func $start:std/staticarray~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 4 - i32.eq - ) - (func $start:std/staticarray~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 3 - i32.le_s - ) - (func $start:std/staticarray~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 3 - i32.gt_s - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) local.get $1 - local.get $3 - local.get $2 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.sub + i32.load + local.tee $3 i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + 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 + i32.const -4 + i32.and i32.add local.tee $4 - local.get $3 - i32.sub + i32.load + local.tee $2 i32.const 1 i32.and - i32.sub - local.get $4 - i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $6 - loop $for-loop|0 + 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 - local.get $6 - i32.ge_s + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - local.tee $5 - local.set $4 - local.get $3 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $5 - i32.const 3872 - i32.load - call_indirect (type $0) i32.const 0 - i32.le_s - if - local.get $3 - local.set $4 - local.get $5 - local.set $3 - end - local.get $6 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|1 - local.get $1 - local.get $5 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $3 - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $7 - i32.store offset=8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|1 - end - end - end - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $5 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $4 - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $7 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - end - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $4 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $for-loop|0 + i32.const 1616 + 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 end - ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 + local.get $4 local.get $2 - i32.eq + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if - local.get $1 - return + i32.const 0 + i32.const 1616 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $0 + local.get $4 local.get $1 - i32.const 1 + i32.const 4 i32.add - local.tee $3 - i32.const 2 - i32.shl + local.get $2 i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.ne if - loop $while-continue|0 - local.get $2 - local.get $3 - i32.gt_s - if (result i32) - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load offset=4 - local.get $4 - i32.load - i32.const 2 - global.set $~argumentsLength - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|0 - end - end + i32.const 0 + i32.const 1616 + 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 + 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 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - local.set $5 - local.get $4 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $4 - local.get $5 - i32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end + 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 1616 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1344 + i32.const 1616 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 else - loop $while-continue|2 - local.get $2 + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) local.get $3 - i32.gt_s + i32.const 536870910 + i32.lt_u if (result i32) - local.get $0 local.get $3 - i32.const 2 + i32.const 1 + i32.const 27 + local.get $3 + i32.clz + i32.sub i32.shl i32.add - local.tee $1 - i32.load offset=4 - local.get $1 - i32.load - i32.const 2 - global.set $~argumentsLength - i32.const 3872 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s + i32.const 1 + i32.sub else - i32.const 0 - end - if local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|2 end + else + local.get $3 end - end - local.get $3 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $5 - local.get $3 - i32.add - local.set $6 - local.get $5 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $7 - local.get $4 - i32.add - local.get $0 - local.get $7 - i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $5 - i32.gt_s - if - local.get $4 - local.get $6 - local.get $5 - i32.sub - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|1 - end - end - loop $for-loop|2 + i32.const 4 + local.get $0 + i32.load offset=1568 + memory.size + local.tee $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 local.get $1 - local.get $3 - i32.le_s + local.get $2 + local.get $1 + local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - local.get $4 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - i32.const 3872 - i32.load - call_indirect (type $0) + memory.grow i32.const 0 i32.lt_s if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - local.get $5 - i32.const 1 - i32.sub - local.set $5 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 + unreachable end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + end + local.get $0 + local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $0 + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $3 + local.get $1 + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 local.get $1 + call $~lib/rt/tlsf/removeBlock + local.get $1 + i32.load + local.set $4 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1616 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const -4 + i32.and + local.get $3 i32.sub + local.tee $2 + i32.const 16 + i32.ge_u + if + local.get $1 + local.get $3 + local.get $4 + i32.const 2 + i32.and + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $0 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $4 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 ) - (func $~lib/staticarray/StaticArray~visit (param $0 i32) + (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 + i32.const 36728 + 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 $0 - i32.const 20 + i32.const 4 i32.sub - i32.load offset=16 - i32.add local.set $1 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $~lib/rt/itcms/__visit - end + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1408 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$267 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 36728 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1408 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$267 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1408 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 3888 + i32.load + i32.gt_u + if + i32.const 1088 + i32.const 1536 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable end + local.get $1 + i32.const 2 + i32.shl + i32.const 3892 + i32.add + i32.load + i32.const 32 + i32.and end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -2404,304 +2749,287 @@ call $~lib/builtins/abort unreachable ) - (func $~start - call $start:std/staticarray - ) - (func $~lib/staticarray/StaticArray#__get (param $0 i32) (param $1 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 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1088 - i32.const 1152 - i32.const 78 - i32.const 41 - call $~lib/builtins/abort - unreachable - end + (func $start:std/staticarray~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.eq ) - (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $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 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (func $start:std/staticarray~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 2 - i32.shr_u + i32.eq + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $2 i32.const 1 - i32.le_u - if - i32.const 1088 - i32.const 1152 - i32.const 93 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/staticarray/Ref#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 + local.tee $5 + local.get $3 + i32.add + local.set $6 + local.get $5 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $7 + local.get $4 + i32.add + local.get $0 + local.get $7 + i32.add + i32.load i32.store + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return end - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/array/Array#get:length (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 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $4 + local.get $6 + local.get $5 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $7 + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/staticarray/StaticArray.fromArray (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + local.get $2 + i32.eq if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length + local.get $1 i32.const 2 i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.add + i32.load local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 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 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1088 - i32.const 1776 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 + local.tee $3 i32.const 2 i32.shl i32.add i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 2 + global.set $~argumentsLength + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $3 + i32.gt_s + if (result i32) + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load offset=4 + local.get $4 + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|0 + end + end + local.get $3 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + local.set $5 + local.get $4 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $4 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $3 + i32.gt_s + if (result i32) + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + i32.const 3872 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|2 + end + end + end + local.get $3 ) - (func $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2734,11 +3062,7 @@ local.get $1 i32.store local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u + call $~lib/array/Array#get:length local.tee $2 local.get $3 i32.add @@ -2753,172 +3077,134 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 local.get $3 i32.const 2 i32.shl - local.tee $0 - memory.copy + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 - i32.add - local.get $1 - local.get $2 - i32.const 2 - i32.shl - memory.copy + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $4 - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 9 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u + local.get $3 + i32.load offset=4 local.set $4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $1 + i32.load offset=4 + local.set $6 i32.const 0 - i32.lt_s - if (result i32) + local.set $1 + loop $for-loop|0 local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select + local.get $5 + i32.lt_u + if + local.get $1 + local.get $4 + i32.add + local.get $0 + local.get $1 + i32.add + i32.load + local.tee $7 + i32.store + local.get $3 + local.get $7 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $for-loop|0 + end end - local.tee $5 - i32.const 2 - i32.shl + local.get $4 + local.get $5 i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 local.set $1 - global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $4 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $4 - local.get $2 - local.get $4 - i32.lt_s - select - end - local.get $5 - i32.sub - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select i32.const 2 i32.shl - local.tee $0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - loop $while-continue|0 + local.set $2 + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - local.get $1 - i32.gt_u + local.get $2 + i32.lt_u if + local.get $0 local.get $1 - local.get $2 i32.add - local.get $1 - local.get $3 + local.get $0 + local.get $6 i32.add i32.load local.tee $4 i32.store - local.get $2 + local.get $3 local.get $4 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 - br $while-continue|0 + local.set $0 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray~visit (param $0 i32) + (local $1 i32) + (local $2 i32) + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/staticarray/StaticArray#some (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 4 i32.sub @@ -2937,19 +3223,97 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - i32.const 0 - local.set $1 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - i32.const 2147483647 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/staticarray/StaticArray#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 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 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u local.set $2 end global.get $~lib/memory/__stack_pointer @@ -2958,15 +3322,17 @@ local.get $0 local.get $1 local.get $2 - call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> + call $~lib/staticarray/StaticArray#lastIndexOf global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2981,59 +3347,68 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - i32.ge_u - if - i32.const 1088 - i32.const 1152 - i32.const 78 - i32.const 41 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 2336 - i32.const 1152 - i32.const 82 - i32.const 40 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const -1 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3048,156 +3423,66 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $2 local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) + i32.lt_s + if + local.get $0 local.get $2 - i32.const 7 - i32.and + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$106 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$106 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end + return end - i32.const 0 - local.set $3 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const -1 ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3212,8 +3497,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3224,252 +3509,55 @@ i32.const 2 i32.shr_u local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.tee $2 - local.get $3 - i32.add - local.tee $4 - i32.const 268435455 - i32.gt_u - if - i32.const 1680 - i32.const 1152 - i32.const 178 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 2 - i32.shl - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 9 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $1 loop $for-loop|0 - local.get $1 - local.get $5 - i32.lt_u + local.get $2 + local.get $3 + i32.lt_s if - local.get $1 - local.get $4 - i32.add local.get $0 - local.get $1 + local.get $2 + i32.const 2 + i32.shl i32.add i32.load - local.tee $7 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $3 - local.get $7 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $4 - local.get $5 - i32.add - local.set $1 - local.get $2 - i32.const 2 - i32.shl - local.set $2 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_u - if + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $0 local.get $1 - i32.add - local.get $0 - local.get $6 - i32.add i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.tee $3 + call_indirect (type $1) i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $2 - br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $4 - local.get $1 - call $~lib/string/String.__eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.ge_s - return end - i32.const 36752 - i32.const 36800 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/staticarray/StaticArray#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> (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 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3484,8 +3572,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3495,162 +3583,67 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - ) - (func $~lib/staticarray/StaticArray#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 - i32.eqz + local.tee $2 + local.get $3 + i32.add + local.tee $4 + i32.const 268435455 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return + i32.const 1680 + i32.const 1152 + i32.const 178 + i32.const 7 + call $~lib/builtins/abort + unreachable end - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $0 local.get $3 + i32.const 2 + i32.shl + local.tee $0 + memory.copy + local.get $0 + local.get $4 i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select + local.get $1 local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end + i32.const 2 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $4 ) - (func $~lib/staticarray/StaticArray#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/staticarray/StaticArray.fromArray (param $0 i32) (result 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 global.get $~lib/memory/__stack_pointer @@ -3665,707 +3658,425 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $2 - end + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 + call $~lib/array/Array#get:length + i32.const 2 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $2 - call $~lib/staticarray/StaticArray#lastIndexOf + local.get $0 + i32.load offset=4 + local.get $1 + memory.copy global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 - i32.const 1 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s + i32.const 256 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2928 - return - end - local.get $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2928 - local.get $0 - select - return - end - loop $for-loop|0 local.get $1 - local.get $4 - i32.gt_s + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 + local.get $1 + i32.const 1 + i32.const 27 + local.get $1 + i32.clz + i32.sub i32.shl i32.add - i32.load - local.tee $6 - i32.store offset=4 - local.get $6 - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $3 - end - local.get $4 i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + i32.sub + local.set $1 end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - i32.const 0 - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 16 + i32.lt_u local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 23 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $5 - i32.mul + i32.const 2 + i32.shl i32.add - i32.const 1 + i32.load offset=4 + i32.const -1 + local.get $1 i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=12 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $3 + local.get $1 + i32.ctz + local.tee $1 i32.const 2 i32.shl i32.add - i32.load - local.tee $7 - i32.store offset=4 - local.get $7 + i32.load offset=4 + local.tee $2 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $7 - local.get $7 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $7 - i32.const 1 - i32.shl - memory.copy - local.get $4 - local.get $7 - i32.add - local.set $4 + i32.const 0 + i32.const 1616 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $2 + i32.ctz local.get $1 - if - local.get $6 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $4 - end - local.get $3 - i32.const 1 + i32.const 4 + i32.shl i32.add - local.set $3 - br $for-loop|1 + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $6 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1616 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $2 local.get $1 - call $~lib/util/string/joinStringArray - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/staticarray/StaticArray#filter (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const -16 + i32.and + i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 7 - i32.const 0 - call $~lib/rt/__newArray - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1616 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $7 - loop $for-loop|0 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 3 - global.set $~argumentsLength - local.get $8 - local.get $9 - local.get $0 - i32.const 3472 - i32.load - call_indirect (type $1) - if - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.load offset=12 - local.tee $6 - i32.const 1 - i32.add - local.tee $5 - 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 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $3 - local.get $10 - i32.load offset=8 - local.tee $1 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $3 - i32.const 268435455 - i32.gt_u - if - i32.const 1680 - i32.const 1776 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$224 - i32.const 1073741820 - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - local.get $1 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $3 - local.get $3 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $4 - local.get $10 - i32.load - local.tee $1 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $3 - local.get $4 - i32.store offset=16 - local.get $1 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$224 - end - local.get $4 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $1 - local.get $4 - local.get $3 - i32.load offset=16 - local.tee $3 - local.get $3 - local.get $4 - i32.gt_u - select - memory.copy - end - local.get $1 - local.get $2 - i32.ne - if - local.get $10 - local.get $2 - i32.store - local.get $10 - local.get $2 - i32.store offset=4 - local.get $10 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - end - local.get $10 - local.get $4 - i32.store offset=8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.load offset=4 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 - end + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1616 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return end - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/staticarray/StaticArray#some (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 4 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $3 + i32.store offset=1568 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1280 + call $~lib/rt/itcms/__visit + global.get $std/staticarray/arr3 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/staticarray/arr4 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 1680 + call $~lib/rt/itcms/__visit + i32.const 2336 + call $~lib/rt/itcms/__visit + i32.const 1344 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load offset=4 i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) + i32.and + i32.const 3 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + i32.const 0 + i32.const 1408 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.const 1 + local.get $0 + i32.const 20 i32.add - local.set $2 - br $for-loop|0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/staticarray/StaticArray#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $std/staticarray/Ref#constructor (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 - i32.const 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $2 - local.get $3 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3960 i32.lt_s - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 36752 + i32.const 36800 i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/staticarray/StaticArray#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $start:std/staticarray~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $~start + call $start:std/staticarray + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4380,134 +4091,201 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1 i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $3 + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2928 + return + end + local.get $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2928 + local.get $0 + select + return + end loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s + local.get $1 + local.get $4 + i32.gt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $4 i32.const 2 i32.shl i32.add i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) + local.tee $6 + i32.store offset=4 + local.get $6 if global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $6 + i32.store offset=8 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + local.set $3 end - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - ) - (func $~lib/staticarray/StaticArray#findLastIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 i32.const 20 i32.sub i32.load offset=16 - i32.const 2 + i32.const 1 i32.shr_u + local.tee $1 + local.get $5 + i32.mul + i32.add i32.const 1 - i32.sub - local.set $2 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=12 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $5 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) + local.tee $7 + i32.store offset=4 + local.get $7 if global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $7 + i32.store offset=8 + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $7 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 + i32.shl + memory.copy + local.get $4 + local.get $7 + i32.add + local.set $4 + end + local.get $1 + if + local.get $6 + local.get $4 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer local.get $2 - return + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $4 end - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $6 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $6 ) (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (local $2 i32) @@ -4821,132 +4599,419 @@ i32.gt_u if local.get $1 - i32.const 2 - i32.shl - local.tee $13 - local.get $9 - i32.add - local.tee $14 - i32.load - local.tee $7 - i32.const -1 + i32.const 2 + i32.shl + local.tee $13 + local.get $9 + i32.add + local.tee $14 + i32.load + local.tee $7 + i32.const -1 + i32.ne + if + local.get $10 + local.get $13 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store + local.get $0 + local.get $7 + local.get $2 + local.get $4 + local.get $11 + call $~lib/util/sort/mergeRuns + local.get $14 + i32.const -1 + i32.store + local.get $7 + local.set $2 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $6 + i32.const 2 + i32.shl + local.tee $1 + local.get $9 + i32.add + local.get $2 + i32.store + local.get $1 + local.get $10 + i32.add + local.get $4 + i32.store + local.get $5 + local.set $2 + local.get $3 + local.set $4 + local.get $6 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $2 + local.get $9 + i32.add + i32.load + local.tee $3 + i32.const -1 + i32.ne + if + local.get $2 + local.get $10 + i32.add + i32.load + i32.const 1 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store + local.get $0 + local.get $3 + local.get $2 + local.get $8 + local.get $11 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/staticarray/StaticArray#filter (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength + local.get $8 + local.get $9 + local.get $0 + i32.const 3472 + i32.load + call_indirect (type $1) + if + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.load offset=12 + local.tee $6 + i32.const 1 + i32.add + local.tee $5 + 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 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $3 + local.get $10 + i32.load offset=8 + local.tee $1 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $3 + i32.const 268435455 + i32.gt_u + if + i32.const 1680 + i32.const 1776 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$224 + i32.const 1073741820 + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + local.get $1 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $4 + local.get $10 + i32.load + local.tee $1 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $3 + local.get $4 + i32.store offset=16 + local.get $1 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$224 + end + local.get $4 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $1 + local.get $4 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $3 + local.get $4 + i32.gt_u + select + memory.copy + end + local.get $1 + local.get $2 i32.ne if local.get $10 - local.get $13 - i32.add - i32.load - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 3872 - i32.store - local.get $0 - local.get $7 local.get $2 - local.get $4 - local.get $11 - call $~lib/util/sort/mergeRuns - local.get $14 - i32.const -1 i32.store - local.get $7 - local.set $2 + local.get $10 + local.get $2 + i32.store offset=4 + local.get $10 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 + local.get $10 + local.get $4 + i32.store offset=8 end - end - local.get $6 - i32.const 2 - i32.shl - local.tee $1 - local.get $9 - i32.add - local.get $2 - i32.store - local.get $1 - local.get $10 - i32.add - local.get $4 - i32.store - local.get $5 - local.set $2 - local.get $3 - local.set $4 - local.get $6 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $2 - local.get $9 - i32.add - i32.load - local.tee $3 - i32.const -1 - i32.ne - if - local.get $2 - local.get $10 - i32.add - i32.load - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 3872 + local.get $10 i32.store - local.get $0 - local.get $3 - local.get $2 + local.get $10 + i32.load offset=4 + local.get $6 + i32.const 2 + i32.shl + i32.add local.get $8 - local.get $11 - call $~lib/util/sort/mergeRuns + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $1 + local.get $9 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $9 + br $for-loop|0 end end - local.get $11 - call $~lib/rt/tlsf/__free - local.get $9 - call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $10 return end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $start:std/staticarray~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.gt_s + ) + (func $start:std/staticarray~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.le_s + ) + (func $start:std/staticarray~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/staticarray~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/staticarray/maxVal + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + global.set $std/staticarray/maxVal + ) + (func $start:std/staticarray~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer ) (func $start:std/staticarray (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 f32) - (local $5 i32) + (local $3 i32) + (local $4 f64) + (local $5 f32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 104 i32.sub @@ -5117,17 +5182,17 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 1312 i32.const 12 memory.copy - local.get $5 + local.get $6 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -5142,9 +5207,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -5159,9 +5224,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -5176,9 +5241,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -5196,16 +5261,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -5221,17 +5286,17 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 1312 i32.const 12 memory.copy - local.get $5 + local.get $6 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $5 + local.tee $6 i32.store - local.get $5 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -5248,25 +5313,25 @@ i32.const 8 i32.const 6 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 call $std/staticarray/Ref#constructor - local.tee $6 + local.tee $7 i32.store - local.get $5 local.get $6 + local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $5 + local.get $6 call $std/staticarray/Ref#constructor - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $5 local.get $6 + local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $5 + local.get $6 global.set $std/staticarray/arr4 i32.const 0 global.set $std/staticarray/arr3 @@ -5288,18 +5353,18 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -5317,10 +5382,10 @@ end loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store local.get $0 - local.get $6 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -5329,9 +5394,9 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 local.get $0 call $~lib/staticarray/StaticArray#__get if @@ -5362,24 +5427,24 @@ global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/staticarray/StaticArray.fromArray - local.tee $5 + local.tee $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.get $6 + local.get $7 i32.ne if i32.const 0 @@ -5399,19 +5464,19 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 local.get $1 call $~lib/staticarray/StaticArray#__get - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 call $~lib/array/Array#__get - local.get $6 + local.get $7 i32.ne if i32.const 0 @@ -5462,35 +5527,35 @@ i32.const 8 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 1856 i64.load align=1 i64.store align=1 - local.get $1 + local.get $0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 1888 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=24 - local.get $1 - local.get $5 + local.get $0 + local.get $6 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $0 + local.tee $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -5507,37 +5572,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.const 1920 i32.const 0 memory.copy global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=24 - local.get $1 - local.get $5 + local.get $0 + local.get $6 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> - local.tee $0 + local.tee $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -5569,12 +5634,12 @@ i32.const 4 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.const 2080 i32.load align=1 i32.store align=1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5598,18 +5663,18 @@ i32.shr_u local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $0 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $7 - local.get $0 - i32.add local.tee $8 + i32.add + local.tee $9 i32.const 268435455 i32.gt_u if @@ -5623,69 +5688,69 @@ local.get $0 i32.const 2 i32.shl - local.set $0 + local.set $10 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.const 2 i32.shl i32.const 8 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $9 i32.store offset=4 loop $for-loop|03 - local.get $0 - local.get $2 - i32.gt_u + local.get $3 + local.get $10 + i32.lt_u if - local.get $2 - local.get $8 + local.get $3 + local.get $9 i32.add local.get $1 - local.get $2 + local.get $3 i32.add i32.load - local.tee $9 + local.tee $0 i32.store - local.get $8 local.get $9 + local.get $0 i32.const 1 call $~lib/rt/itcms/__link - local.get $2 + local.get $3 i32.const 4 i32.add - local.set $2 + local.set $3 br $for-loop|03 end end - local.get $0 - local.get $8 + local.get $9 + local.get $10 i32.add local.set $1 - local.get $7 + local.get $8 i32.const 2 i32.shl - local.set $2 + local.set $3 i32.const 0 local.set $0 loop $for-loop|14 local.get $0 - local.get $2 + local.get $3 i32.lt_u if local.get $0 local.get $1 i32.add local.get $0 - local.get $6 + local.get $7 i32.add i32.load - local.tee $7 + local.tee $8 i32.store + local.get $9 local.get $8 - local.get $7 i32.const 1 call $~lib/rt/itcms/__link local.get $0 @@ -5699,12 +5764,12 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 20 i32.sub i32.load offset=16 @@ -5724,36 +5789,36 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 2288 i32.const 20 memory.copy - local.get $2 + local.get $0 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $0 + local.tee $3 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -5772,10 +5837,10 @@ local.set $1 loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store local.get $1 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -5784,27 +5849,27 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=48 - local.get $2 + local.get $0 local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=48 - local.get $0 + local.get $3 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 offset=24 - local.get $5 local.get $6 + local.get $7 call $~lib/string/String.__eq i32.eqz if @@ -5823,19 +5888,19 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -5852,16 +5917,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 + local.get $3 i32.const 2144 call $~lib/string/String.__eq i32.eqz @@ -5874,16 +5939,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=24 - local.get $0 + local.get $1 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 2176 call $~lib/string/String.__eq i32.eqz @@ -5896,29 +5961,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -5936,28 +6001,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -5973,20 +6038,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 100 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6001,20 +6066,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>>@varargs - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6031,16 +6096,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 2240 call $~lib/string/String.__eq i32.eqz @@ -6053,19 +6118,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6080,10 +6145,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> @@ -6134,38 +6199,38 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2464 i32.const 20 memory.copy - local.get $1 + local.get $0 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 9 i32.const 2512 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=24 - local.get $1 - local.get $2 + local.get $0 + local.get $3 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -6181,31 +6246,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 9 i32.const 2576 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=24 - local.get $1 - local.get $2 + local.get $0 + local.get $3 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> - local.tee $0 + local.tee $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -6226,16 +6291,16 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2608 i32.const 20 memory.copy - local.get $1 + local.get $0 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2144 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -6250,9 +6315,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2544 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -6265,9 +6330,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2240 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -6280,9 +6345,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2240 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -6296,40 +6361,38 @@ call $~lib/builtins/abort unreachable end + i32.const 8 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 2656 + i64.load align=1 + i64.store align=1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 3960 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes$276 (result i32) - i32.const 8 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.const 2656 - i64.load align=1 - i64.store align=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $2 + local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -6342,16 +6405,16 @@ loop $while-continue|0 local.get $1 local.get $2 - i32.lt_s + i32.gt_s if local.get $0 - local.get $1 + local.get $2 i32.const 3 i32.shl i32.add f64.load - local.tee $3 - local.get $3 + local.tee $4 + local.get $4 f64.ne if global.get $~lib/memory/__stack_pointer @@ -6361,10 +6424,10 @@ i32.const 1 br $__inlined_func$~lib/staticarray/StaticArray#includes$276 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end @@ -6383,40 +6446,40 @@ call $~lib/builtins/abort unreachable end + i32.const 4 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.const 2688 + i32.load align=1 + i32.store align=1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes$277 (result i32) - i32.const 4 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.const 2688 - i32.load align=1 - i32.store align=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $2 + local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -6429,16 +6492,16 @@ loop $while-continue|030 local.get $1 local.get $2 - i32.lt_s + i32.gt_s if local.get $0 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 f32.ne if global.get $~lib/memory/__stack_pointer @@ -6448,10 +6511,10 @@ i32.const 1 br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $while-continue|030 end end @@ -6474,16 +6537,16 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2720 i32.const 12 memory.copy - local.get $1 + local.get $0 i32.store offset=64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -6496,9 +6559,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 7 i32.const 0 call $~lib/staticarray/StaticArray#indexOf @@ -6513,9 +6576,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 9 i32.const 2 call $~lib/staticarray/StaticArray#indexOf @@ -6530,9 +6593,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#indexOf @@ -6547,9 +6610,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const -3 call $~lib/staticarray/StaticArray#indexOf @@ -6565,18 +6628,18 @@ i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2752 i32.const 16 memory.copy - local.get $1 + local.get $0 i32.store offset=68 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#lastIndexOf@varargs i32.const 3 @@ -6590,11 +6653,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 7 call $~lib/staticarray/StaticArray#lastIndexOf@varargs i32.const -1 @@ -6608,9 +6671,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6625,9 +6688,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const 2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6640,9 +6703,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6655,9 +6718,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const -1 call $~lib/staticarray/StaticArray#lastIndexOf @@ -6675,23 +6738,23 @@ i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 2896 i32.const 12 memory.copy - local.get $1 + local.get $0 i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=24 - local.get $1 + local.get $0 i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 2992 call $~lib/string/String.__eq i32.eqz @@ -6704,16 +6767,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=24 - local.get $1 + local.get $0 i32.const 2928 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 3040 call $~lib/string/String.__eq i32.eqz @@ -6726,16 +6789,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=24 - local.get $1 + local.get $0 i32.const 3088 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 3120 call $~lib/string/String.__eq i32.eqz @@ -6748,16 +6811,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=24 - local.get $1 + local.get $0 i32.const 3168 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 3200 call $~lib/string/String.__eq i32.eqz @@ -6770,17 +6833,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6794,21 +6857,21 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2960 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=24 local.get $0 + i32.store offset=24 local.get $1 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6823,14 +6886,14 @@ i32.const 8 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 3264 i64.load align=1 i64.store align=1 - local.get $1 + local.get $0 i32.store offset=76 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength @@ -6846,7 +6909,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6860,37 +6923,40 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - i32.const 1 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $2 + local.set $2 + i32.const 1 + local.get $2 local.get $2 i32.const 1 - i32.gt_u + i32.gt_s select - local.set $0 + local.set $1 + local.get $2 + local.set $2 loop $for-loop|032 - local.get $0 + 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.const 1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|032 end end @@ -6903,9 +6969,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -6917,9 +6983,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -6936,14 +7002,14 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 3296 i32.const 12 memory.copy - local.get $1 + local.get $0 i32.store offset=80 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6957,9 +7023,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -6970,22 +7036,22 @@ i32.gt_u if i32.const 0 - local.set $0 + local.set $1 local.get $2 i32.const 1 i32.shr_u - local.set $5 + local.set $3 local.get $2 i32.const 1 i32.sub local.set $2 loop $while-continue|035 - local.get $0 - local.get $5 + local.get $1 + local.get $3 i32.lt_u if - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -6993,9 +7059,9 @@ i32.load local.set $7 local.get $6 - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 i32.sub i32.const 2 i32.shl @@ -7006,10 +7072,10 @@ local.get $6 local.get $7 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|035 end end @@ -7019,9 +7085,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7035,9 +7101,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7051,9 +7117,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -7070,14 +7136,14 @@ i32.const 20 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 3328 i32.const 20 memory.copy - local.get $1 + local.get $0 i32.store offset=84 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength @@ -7093,7 +7159,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -7107,47 +7173,55 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - local.get $1 - i32.const 3 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 + local.set $2 local.get $0 + local.get $0 + i32.const 3 + local.get $1 + local.get $1 i32.const 3 i32.gt_u select - local.tee $2 + local.tee $3 i32.const 2 i32.shl i32.add - local.get $0 + local.get $2 i32.const 0 i32.lt_s if (result i32) - local.get $0 - local.get $0 + local.get $1 + local.get $2 i32.add - local.tee $5 + local.tee $2 i32.const 0 - local.get $5 + local.get $2 i32.const 0 i32.gt_s select else - local.get $0 + local.get $2 + local.get $1 + local.get $1 + local.get $2 + i32.gt_s + select end - local.get $2 + local.get $3 i32.sub local.tee $2 - local.get $0 - local.get $0 + local.get $1 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select @@ -7163,9 +7237,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7179,9 +7253,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -7195,9 +7269,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7211,9 +7285,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -7227,9 +7301,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 4 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -7246,15 +7320,15 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 3376 i32.const 12 memory.copy - local.get $2 + local.get $0 i32.store offset=88 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3408 @@ -7271,16 +7345,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $3 i32.const 7 i32.const 0 call $~lib/rt/__newArray @@ -7293,22 +7367,22 @@ i32.load offset=4 local.set $7 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|038 - local.get $0 - local.get $5 + local.get $1 + local.get $3 i32.lt_s if local.get $0 + local.get $1 i32.const 2 i32.shl local.tee $8 - local.get $2 i32.add i32.load local.set $9 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 3 global.set $~argumentsLength @@ -7316,16 +7390,16 @@ local.get $8 i32.add local.get $9 + local.get $1 local.get $0 - local.get $2 i32.const 3408 i32.load call_indirect (type $1) i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|038 end end @@ -7384,7 +7458,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3440 @@ -7401,42 +7475,42 @@ i32.const 0 i32.store i32.const 0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $1 loop $for-loop|040 - local.get $0 local.get $1 + local.get $2 i32.gt_s if + local.get $0 local.get $2 - local.get $1 i32.const 2 i32.shl i32.add i32.load global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $1 local.get $2 + local.get $0 i32.const 3440 i32.load call_indirect (type $5) - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|040 end end @@ -7456,20 +7530,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 call $~lib/staticarray/StaticArray#filter - local.tee $0 + local.tee $1 i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -7482,9 +7556,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -7498,9 +7572,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -7514,13 +7588,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=24 i32.const 0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7533,46 +7607,46 @@ i32.const 0 i32.store i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $5 + local.set $3 loop $for-loop|042 - local.get $0 - local.get $5 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 4 global.set $~argumentsLength - local.get $1 + local.get $2 local.get $6 + local.get $1 local.get $0 - local.get $2 i32.const 3504 i32.load - call_indirect (type $6) - local.set $1 - local.get $0 + call_indirect (type $7) + local.set $2 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|042 end end @@ -7580,7 +7654,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 6 i32.ne if @@ -7592,13 +7666,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=24 i32.const 0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7611,9 +7685,9 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -7621,36 +7695,36 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|044 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store i32.const 4 global.set $~argumentsLength + local.get $2 + local.get $3 local.get $1 - local.get $5 local.get $0 - local.get $2 i32.const 3536 i32.load - call_indirect (type $6) - local.set $1 - local.get $0 + call_indirect (type $7) + local.set $2 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|044 end end @@ -7658,7 +7732,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 6 i32.ne if @@ -7670,12 +7744,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3568 call $~lib/staticarray/StaticArray#some i32.eqz @@ -7688,12 +7762,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3600 call $~lib/staticarray/StaticArray#some if @@ -7705,12 +7779,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3632 call $~lib/staticarray/StaticArray#every i32.eqz @@ -7723,12 +7797,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3664 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3664 call $~lib/staticarray/StaticArray#every if @@ -7740,12 +7814,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3696 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3696 call $~lib/staticarray/StaticArray#findIndex i32.const 1 @@ -7759,12 +7833,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3728 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3728 call $~lib/staticarray/StaticArray#findIndex i32.const -1 @@ -7778,12 +7852,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3760 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3760 call $~lib/staticarray/StaticArray#findLastIndex i32.const 1 @@ -7797,12 +7871,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 3792 i32.store offset=24 - local.get $2 + local.get $0 i32.const 3792 call $~lib/staticarray/StaticArray#findLastIndex i32.const -1 @@ -7819,14 +7893,14 @@ i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 3824 i32.const 16 memory.copy - local.get $1 + local.get $0 i32.store offset=100 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 global.set $~argumentsLength @@ -7848,7 +7922,7 @@ i32.const 3872 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 3872 @@ -7865,20 +7939,20 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 3872 i32.store - local.get $1 local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7889,9 +7963,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -7903,9 +7977,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -7919,9 +7993,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7935,9 +8009,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7998,68 +8072,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - if - i32.const 36752 - i32.const 36800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $3 - local.get $2 - if - local.get $3 - local.get $2 - local.get $4 - memory.copy - end - local.get $3 - i32.store - i32.const 16 - local.get $1 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.store offset=4 - local.get $1 - local.get $4 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=12 - 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/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index c93b01b017..dc43d6fcf3 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -5,15 +5,15 @@ (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32 i32))) - (type $6 (func (param i32 i32 i64))) - (type $7 (func (result i32))) - (type $8 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $9 (func (param i32 i32 i32))) - (type $10 (func (param i64) (result i32))) + (type $6 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $7 (func (param i64) (result i32))) + (type $8 (func (param i32 i32 i32))) + (type $9 (func (param i32 i32 i64))) + (type $10 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (import "string_casemapping" "toLowerCaseFromIndex" (func $std/string-casemapping/toLowerCaseFromIndex (param i32 i32) (result i32))) - (import "string_casemapping" "toUpperCaseFromIndex" (func $std/string-casemapping/toUpperCaseFromIndex (param i32 i32) (result i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (import "string_casemapping" "toUpperCaseFromIndex" (func $std/string-casemapping/toUpperCaseFromIndex (param i32 i32) (result i32))) + (import "string_casemapping" "toLowerCaseFromIndex" (func $std/string-casemapping/toLowerCaseFromIndex (param i32 i32) (result 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)) @@ -482,5274 +482,5275 @@ (data $178 (i32.const 21056) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\a4") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1280 - call $~lib/rt/itcms/__visit - i32.const 1088 - call $~lib/rt/itcms/__visit - i32.const 19632 - call $~lib/rt/itcms/__visit - i32.const 20688 - call $~lib/rt/itcms/__visit - i32.const 1488 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s + if + i32.const 53872 + i32.const 53920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 160 - 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 offset=4 - i32.const -4 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$81 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$81 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/itcms/__visit (param $0 i32) + (func $~lib/string/String#toLowerCase (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s if - return + i32.const 53872 + i32.const 53920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.const 20 i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + i32.eqz if - local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$143 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 53848 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$143 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 21056 - i32.load - i32.gt_u - if - i32.const 1280 - i32.const 1344 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 21060 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load 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 offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1424 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1424 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add + global.get $~lib/memory/__stack_pointer + local.get $6 i32.const 2 i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_u if local.get $0 - local.get $2 - i32.const 2 + local.get $3 + i32.const 1 i32.shl i32.add local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz + i32.load16_u + local.tee $4 + i32.const 7 + i32.shr_u if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1424 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1424 - 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 - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1424 - 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 1424 - 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 - 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 1424 - 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1424 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1424 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 53856 - i32.const 0 - i32.store - i32.const 55424 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 53856 - i32.add - i32.const 0 - i32.store 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 53856 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 + block $for-continue|0 + local.get $4 + i32.const 55295 + i32.sub + i32.const 1025 + i32.lt_u + local.get $3 + local.get $6 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 53856 - i32.const 55428 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 53856 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 + i32.sub + i32.lt_u i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 53848 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 + i32.load16_u offset=2 local.tee $2 - i32.const 3 - i32.and - i32.ne + i32.const 56319 + i32.sub + i32.const 1025 + i32.lt_u if - local.get $0 + local.get $3 + i32.const 1 + i32.add + local.set $3 local.get $2 - i32.const -4 + i32.const 1023 i32.and - local.get $1 + local.get $4 + local.tee $1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl i32.or - i32.store offset=4 - local.get $0 - i32.const 20 + i32.const 65536 i32.add - call $~lib/rt/__visit_members + local.tee $4 + i32.const 131072 + i32.ge_u + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $2 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-continue|0 + end end - local.get $0 - i32.load 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 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 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 1152 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 53848 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 53848 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz + local.get $4 + i32.const 304 + i32.eq if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - 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) + local.get $7 + local.get $8 i32.const 1 - else - local.get $2 - i32.load + i32.shl + i32.add + i32.const 50790505 + i32.store + local.get $8 i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1424 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1088 - i32.const 1152 - i32.const 261 - 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$70 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1088 - i32.const 1424 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1424 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $5 - local.get $2 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1424 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1424 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $6 - i32.const -4 - i32.and - local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/util/casemap/casemap (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - i32.const 8 - i32.shr_u - local.tee $2 - i32.const 6084 - i32.add - i32.load8_u - local.get $2 - i32.const 2444 - i32.add - i32.load8_u - i32.const 86 - i32.mul - i32.const 2444 - i32.add - local.get $0 - i32.const 255 - i32.and - local.tee $4 - i32.const 3 - i32.div_u - i32.add - i32.load8_u - local.get $4 - i32.const 3 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5112 - i32.add - i32.load - i32.mul - i32.const 11 - i32.shr_u - i32.const 6 - i32.rem_u - i32.add - i32.const 2 - i32.shl - i32.const 5124 - i32.add - i32.load - local.tee $2 - i32.const 255 - i32.and - local.set $3 - local.get $2 - i32.const 8 - i32.shr_s - local.set $2 - block $folding-inner0 - local.get $3 - i32.const 2 - i32.lt_u - br_if $folding-inner0 - local.get $2 - i32.const 255 - i32.and - local.set $3 - local.get $2 - i32.const 8 - i32.shr_u - local.set $2 - loop $while-continue|0 - local.get $3 - if - local.get $2 - local.get $3 - i32.const 1 - i32.shr_u - local.tee $7 - i32.add - i32.const 1 - i32.shl - i32.const 6596 - i32.add - local.tee $5 - i32.load8_u - local.tee $6 - local.get $4 - i32.eq - if (result i32) - local.get $5 - i32.load8_u offset=1 - i32.const 2 - i32.shl - i32.const 5124 - i32.add - i32.load - local.tee $2 - i32.const 255 - i32.and - local.set $3 - local.get $2 - i32.const 8 - i32.shr_s - local.set $2 - local.get $3 - i32.const 2 - i32.lt_u - br_if $folding-inner0 - local.get $0 - i32.const 1 - i32.add - local.get $1 - i32.const 1 - i32.shl - i32.sub - return - else - local.get $4 - local.get $6 - i32.lt_u - if (result i32) - local.get $7 - else - local.get $2 - local.get $7 - i32.add - local.set $2 - local.get $3 - local.get $7 - i32.sub - end - end - local.set $3 - br $while-continue|0 - end - end - local.get $0 - return - end - local.get $0 - local.get $2 - i32.const 0 - local.get $1 - local.get $3 - i32.xor - i32.sub - i32.and - i32.add - ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $3 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - memory.copy - local.get $2 - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i32.load - i32.store - else - local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/staticarray/StaticArray - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - call $start:std/string-casemapping - ) - (func $~lib/string/String#toUpperCase (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 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 21080 - i32.lt_s - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 6 - i32.mul - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1488 - i32.store - i32.const 1484 - i32.load - i32.const 1 - i32.shr_u - local.set $3 - loop $for-loop|0 - local.get $7 - local.get $8 - i32.lt_u - if - local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.tee $1 - i32.load16_u - local.tee $2 - i32.const 7 - i32.shr_u - if - block $for-continue|0 - local.get $2 - i32.const 55295 - i32.sub - i32.const 1025 - i32.lt_u - local.get $7 - local.get $8 - i32.const 1 - i32.sub - i32.lt_u - i32.and - if - local.get $1 - i32.load16_u offset=2 - local.tee $4 - i32.const 56319 - i32.sub - i32.const 1025 - i32.lt_u - if - local.get $7 - i32.const 1 - i32.add - local.set $7 - local.get $4 - i32.const 1023 - i32.and - local.get $2 - local.tee $1 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.or - i32.const 65536 - i32.add - local.tee $2 - i32.const 131072 - i32.ge_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $4 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-continue|0 - end - end - end - local.get $2 - i32.const 9424 - i32.sub - i32.const 25 - i32.le_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 26 - i32.sub - i32.store16 - else - local.get $2 - i32.const 223 - i32.sub - i32.const 64056 - i32.le_u - if (result i32) - local.get $3 - local.set $1 - i32.const 0 - local.set $9 - block $~lib/util/casemap/bsearch|inlined.0 - loop $while-continue|1 - local.get $1 - local.get $9 - i32.ge_s - if - local.get $1 - local.get $9 - i32.add - i32.const 3 - i32.shr_u - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - i32.shl - i32.const 1488 - i32.add - i32.load16_u - local.get $2 - i32.sub - local.tee $10 - i32.eqz - br_if $~lib/util/casemap/bsearch|inlined.0 - local.get $10 - i32.const 31 - i32.shr_u - if - local.get $4 - i32.const 4 - i32.add - local.set $9 - else - local.get $4 - i32.const 4 - i32.sub - local.set $1 - end - br $while-continue|1 - end - end - i32.const -1 - local.set $4 - end - local.get $4 - else - i32.const -1 - end - local.tee $1 - i32.const -1 - i32.xor - if - local.get $1 - i32.const 1 - i32.shl - i32.const 1488 - i32.add - local.tee $1 - i32.load16_u offset=6 - local.set $2 - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.tee $4 - local.get $1 - i32.load offset=2 - i32.store - local.get $4 - local.get $2 - i32.store16 offset=4 - local.get $5 - local.get $2 - i32.const 0 - i32.ne - i32.const 1 - i32.add - i32.add - local.set $5 - else - local.get $2 - i32.const 1 - call $~lib/util/casemap/casemap - i32.const 2097151 - i32.and - local.tee $1 - i32.const 65536 - i32.lt_u - if - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.store16 - else - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 65536 - i32.sub - local.tee $1 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $1 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - end - end - end - else - local.get $6 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.const 2316 - i32.add - i32.load8_u - i32.store16 - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $6 - local.get $5 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$81 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$81 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String#toLowerCase (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 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 21080 - i32.lt_s - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 2 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_u - if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $1 - i32.load16_u - local.tee $4 - i32.const 7 - i32.shr_u - if - block $for-continue|0 - local.get $4 - i32.const 55295 - i32.sub - i32.const 1025 - i32.lt_u - local.get $3 - local.get $6 - i32.const 1 - i32.sub - i32.lt_u - i32.and - if - local.get $1 - i32.load16_u offset=2 - local.tee $2 - i32.const 56319 - i32.sub - i32.const 1025 - i32.lt_u - if - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $2 - i32.const 1023 - i32.and - local.get $4 - local.tee $1 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.or - i32.const 65536 - i32.add - local.tee $4 - i32.const 131072 - i32.ge_u - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $2 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-continue|0 - end - end - end - local.get $4 - i32.const 304 - i32.eq - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - i32.const 50790505 - i32.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - else - local.get $4 - i32.const 931 - i32.eq - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - i32.const 962 - i32.const 963 - local.get $6 - i32.const 1 - i32.gt_u - if (result i32) - block $~lib/util/string/isFinalSigma|inlined.0 (result i32) - i32.const 0 - local.set $1 - local.get $3 - local.tee $2 - i32.const 30 - i32.sub - local.tee $4 - i32.const 0 - local.get $4 - i32.const 0 - i32.ge_s - select - local.set $5 - loop $while-continue|1 - local.get $2 - local.get $5 - i32.gt_s - if - i32.const -1 - local.set $4 - block $~lib/util/string/codePointBefore|inlined.0 - local.get $2 - i32.const 0 - i32.le_s - br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $9 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - local.get $2 - i32.const 2 - i32.sub - local.tee $4 - i32.const 0 - i32.ge_s - i32.and - if - local.get $9 - i32.const 1023 - i32.and - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $10 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - i32.const 65536 - i32.add - local.set $4 - local.get $10 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - br_if $~lib/util/string/codePointBefore|inlined.0 - end - i32.const 65533 - local.get $9 - local.get $9 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - select - local.set $4 - end - local.get $4 - i32.const 918000 - i32.lt_u - if (result i32) - local.get $4 - i32.const 8 - i32.shr_u - i32.const 7212 - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.const 7212 - i32.add - local.get $4 - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $4 - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - local.get $4 - i32.const 127370 - i32.lt_u - if (result i32) - local.get $4 - i32.const 8 - i32.shr_u - i32.const 10220 - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.const 10220 - i32.add - local.get $4 - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $4 - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - else - i32.const 0 - end - i32.eqz - br_if $~lib/util/string/isFinalSigma|inlined.0 - drop - i32.const 1 - local.set $1 - end - local.get $2 - local.get $4 - i32.const 65536 - i32.ge_s - i32.const 1 - i32.add - i32.sub - local.set $2 - br $while-continue|1 - end - end - i32.const 0 - local.get $1 - i32.eqz - br_if $~lib/util/string/isFinalSigma|inlined.0 - drop - local.get $3 - i32.const 1 - i32.add - local.tee $2 - i32.const 30 - i32.add - local.tee $1 - local.get $6 - local.get $1 - local.get $6 - i32.lt_s - select - local.set $4 - loop $while-continue|2 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u - local.tee $1 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - local.get $2 - i32.const 1 - i32.add - local.get $6 - i32.ne - i32.and - if - local.get $5 - i32.load16_u offset=2 - local.tee $5 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $1 - i32.const 10 - i32.shl - local.get $5 - i32.add - i32.const 56613888 - i32.sub - local.set $1 - end - end - local.get $1 - i32.const 918000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 8 - i32.shr_u - i32.const 7212 - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.const 7212 - i32.add - local.get $1 - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $1 - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - else - i32.const 0 - end - i32.eqz - if - local.get $1 - i32.const 127370 - i32.lt_u - if (result i32) - local.get $1 - i32.const 8 - i32.shr_u - i32.const 10220 - i32.add - i32.load8_u - i32.const 5 - i32.shl - i32.const 10220 - i32.add - local.get $1 - i32.const 255 - i32.and - i32.const 3 - i32.shr_u - i32.add - i32.load8_u - local.get $1 - i32.const 7 - i32.and - i32.shr_u - i32.const 1 - i32.and - else - i32.const 0 - end - i32.eqz - br $~lib/util/string/isFinalSigma|inlined.0 - end - local.get $2 - local.get $1 - i32.const 65536 - i32.ge_u - i32.const 1 - i32.add - i32.add - local.set $2 - br $while-continue|2 - end - end - i32.const 1 - end - else - i32.const 0 - end - select - i32.store16 - else - local.get $4 - i32.const 9398 - i32.sub - i32.const 25 - i32.le_u - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 26 - i32.add - i32.store16 - else - local.get $4 - i32.const 0 - call $~lib/util/casemap/casemap - i32.const 2097151 - i32.and - local.tee $1 - i32.const 65536 - i32.lt_u - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.store16 - else - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 65536 - i32.sub - local.tee $1 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $1 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - end - end - end - end - end - else - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $4 - i32.const 7084 - i32.add - i32.load8_u - i32.store16 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|0 - end - end - local.get $7 - local.get $8 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) - (local $2 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 21080 - i32.lt_s - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $1 - i32.le_u - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return - end - block $folding-inner0 - local.get $1 - i32.const 1 - i32.add - local.get $2 - i32.eq - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.tee $1 - i32.const 64512 - i32.and - i32.const 55296 - i32.ne - i32.or - br_if $folding-inner0 - local.get $0 - i32.load16_u offset=2 - local.tee $0 - i32.const 64512 - i32.and - i32.const 56320 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 10 - i32.shl - local.get $0 - i32.add - i32.const 56613888 - i32.sub - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$148 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#concat$148 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $start:std/string-casemapping - (local $0 i64) - (local $1 i64) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - 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 21080 - i32.lt_s - if - i32.const 53872 - i32.const 53920 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 53848 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace - i32.const 1056 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 8 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 9 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 11808 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 11856 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 10 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 11904 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 11952 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 11 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12000 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 12096 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 12 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12096 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 12192 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 13 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12288 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 12352 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 14 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12352 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 12416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 15 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12480 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 12576 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 16 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12576 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 12672 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 17 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12768 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 12864 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 12864 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 12960 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 13056 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 13136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 20 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 13216 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 13296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 21 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 13376 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 13440 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 22 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 13504 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 13584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 23 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 13664 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 13744 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 13824 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 13888 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 25 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 13952 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 14032 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 26 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 14112 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 14192 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 27 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 14272 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 14432 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 28 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 14272 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 14592 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 32 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 14752 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 14784 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 36 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 14816 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 14848 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 37 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 14880 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 38 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 14752 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 42 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 15328 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15360 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 43 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 15392 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15392 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 44 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 65536 - call $~lib/string/String.fromCodePoint - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 50 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 65536 - call $~lib/string/String.fromCodePoint - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 51 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 15680 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15712 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 54 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 15744 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15776 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 55 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 15808 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15840 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 56 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 15872 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15904 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 59 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 15936 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 15968 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 60 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16000 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16032 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 61 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16064 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16096 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 62 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16128 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16160 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 63 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16192 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16224 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 64 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16256 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16288 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 65 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + local.set $8 + else + local.get $4 + i32.const 931 + i32.eq + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + i32.const 962 + i32.const 963 + local.get $6 + i32.const 1 + i32.gt_u + if (result i32) + i32.const 0 + local.set $1 + local.get $3 + local.tee $2 + i32.const 30 + i32.sub + local.tee $4 + i32.const 0 + local.get $4 + i32.const 0 + i32.ge_s + select + local.set $5 + block $~lib/util/string/isFinalSigma|inlined.0 (result i32) + loop $while-continue|1 + local.get $2 + local.get $5 + i32.gt_s + if + i32.const -1 + local.set $4 + block $~lib/util/string/codePointBefore|inlined.0 + local.get $2 + i32.const 0 + i32.le_s + br_if $~lib/util/string/codePointBefore|inlined.0 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $9 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + local.get $2 + i32.const 2 + i32.sub + local.tee $4 + i32.const 0 + i32.ge_s + i32.and + if + local.get $9 + i32.const 1023 + i32.and + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $10 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + i32.const 65536 + i32.add + local.set $4 + local.get $10 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + br_if $~lib/util/string/codePointBefore|inlined.0 + end + i32.const 65533 + local.get $9 + local.get $9 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + select + local.set $4 + end + local.get $4 + i32.const 918000 + i32.lt_u + if (result i32) + local.get $4 + i32.const 8 + i32.shr_u + i32.const 7212 + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.const 7212 + i32.add + local.get $4 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $4 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + local.get $4 + i32.const 127370 + i32.lt_u + if (result i32) + local.get $4 + i32.const 8 + i32.shr_u + i32.const 10220 + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.const 10220 + i32.add + local.get $4 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $4 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + else + i32.const 0 + end + i32.eqz + br_if $~lib/util/string/isFinalSigma|inlined.0 + drop + i32.const 1 + local.set $1 + end + local.get $2 + local.get $4 + i32.const 65536 + i32.ge_s + i32.const 1 + i32.add + i32.sub + local.set $2 + br $while-continue|1 + end + end + i32.const 0 + local.get $1 + i32.eqz + br_if $~lib/util/string/isFinalSigma|inlined.0 + drop + local.get $3 + i32.const 1 + i32.add + local.tee $2 + i32.const 30 + i32.add + local.tee $1 + local.get $6 + local.get $1 + local.get $6 + i32.lt_s + select + local.set $4 + loop $while-continue|2 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u + local.tee $1 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + local.get $2 + i32.const 1 + i32.add + local.get $6 + i32.ne + i32.and + if + local.get $5 + i32.load16_u offset=2 + local.tee $5 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $1 + i32.const 10 + i32.shl + local.get $5 + i32.add + i32.const 56613888 + i32.sub + local.set $1 + end + end + local.get $1 + i32.const 918000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 8 + i32.shr_u + i32.const 7212 + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.const 7212 + i32.add + local.get $1 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $1 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + else + i32.const 0 + end + i32.eqz + if + local.get $1 + i32.const 127370 + i32.lt_u + if (result i32) + local.get $1 + i32.const 8 + i32.shr_u + i32.const 10220 + i32.add + i32.load8_u + i32.const 5 + i32.shl + i32.const 10220 + i32.add + local.get $1 + i32.const 255 + i32.and + i32.const 3 + i32.shr_u + i32.add + i32.load8_u + local.get $1 + i32.const 7 + i32.and + i32.shr_u + i32.const 1 + i32.and + else + i32.const 0 + end + i32.eqz + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.get $2 + local.get $1 + i32.const 65536 + i32.ge_u + i32.const 1 + i32.add + i32.add + local.set $2 + br $while-continue|2 + end + end + i32.const 1 + end + else + i32.const 0 + end + select + i32.store16 + else + local.get $4 + i32.const 9398 + i32.sub + i32.const 25 + i32.le_u + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 26 + i32.add + i32.store16 + else + local.get $4 + i32.const 0 + call $~lib/util/casemap/casemap + i32.const 2097151 + i32.and + local.tee $1 + i32.const 65536 + i32.lt_u + if + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.store16 + else + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 65536 + i32.sub + local.tee $1 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $1 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + local.get $8 + i32.const 1 + i32.add + local.set $8 + end + end + end + end + end + else + local.get $7 + local.get $8 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 7084 + i32.add + i32.load8_u + i32.store16 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|0 + end end - i32.const 16320 - call $~lib/string/String#toLowerCase - local.set $5 + local.get $7 + local.get $8 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16352 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 66 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16384 - call $~lib/string/String#toLowerCase - local.set $5 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#toUpperCase (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16416 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 67 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16448 - call $~lib/string/String#toLowerCase - local.set $5 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16480 - call $~lib/string/String.__eq - i32.eqz + i32.const 21080 + i32.lt_s if - i32.const 0 - i32.const 7024 - i32.const 68 + i32.const 53872 + i32.const 53920 + i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 16512 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $5 - i32.const 16544 - call $~lib/string/String.__eq + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $8 i32.eqz if - i32.const 0 - i32.const 7024 - i32.const 69 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - i32.const 16576 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 + i32.const 6 + i32.mul + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1488 i32.store - local.get $5 - i32.const 16608 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 70 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 1484 + i32.load + i32.const 1 + i32.shr_u + local.set $3 + loop $for-loop|0 + local.get $7 + local.get $8 + i32.lt_u + if + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.tee $1 + i32.load16_u + local.tee $2 + i32.const 7 + i32.shr_u + if + block $for-continue|0 + local.get $2 + i32.const 55295 + i32.sub + i32.const 1025 + i32.lt_u + local.get $7 + local.get $8 + i32.const 1 + i32.sub + i32.lt_u + i32.and + if + local.get $1 + i32.load16_u offset=2 + local.tee $4 + i32.const 56319 + i32.sub + i32.const 1025 + i32.lt_u + if + local.get $7 + i32.const 1 + i32.add + local.set $7 + local.get $4 + i32.const 1023 + i32.and + local.get $2 + local.tee $1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.or + i32.const 65536 + i32.add + local.tee $2 + i32.const 131072 + i32.ge_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $4 + i32.const 16 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-continue|0 + end + end + end + local.get $2 + i32.const 9424 + i32.sub + i32.const 25 + i32.le_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 26 + i32.sub + i32.store16 + else + local.get $2 + i32.const 223 + i32.sub + i32.const 64056 + i32.le_u + if (result i32) + local.get $3 + local.set $1 + i32.const 0 + local.set $9 + block $~lib/util/casemap/bsearch|inlined.0 + loop $while-continue|1 + local.get $1 + local.get $9 + i32.ge_s + if + local.get $1 + local.get $9 + i32.add + i32.const 3 + i32.shr_u + i32.const 2 + i32.shl + local.tee $4 + i32.const 1 + i32.shl + i32.const 1488 + i32.add + i32.load16_u + local.get $2 + i32.sub + local.tee $10 + i32.eqz + br_if $~lib/util/casemap/bsearch|inlined.0 + local.get $10 + i32.const 31 + i32.shr_u + if + local.get $4 + i32.const 4 + i32.add + local.set $9 + else + local.get $4 + i32.const 4 + i32.sub + local.set $1 + end + br $while-continue|1 + end + end + i32.const -1 + local.set $4 + end + local.get $4 + else + i32.const -1 + end + local.tee $1 + i32.const -1 + i32.xor + if + local.get $1 + i32.const 1 + i32.shl + i32.const 1488 + i32.add + local.tee $1 + i32.load16_u offset=6 + local.set $2 + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.tee $4 + local.get $1 + i32.load offset=2 + i32.store + local.get $4 + local.get $2 + i32.store16 offset=4 + local.get $5 + local.get $2 + i32.const 0 + i32.ne + i32.const 1 + i32.add + i32.add + local.set $5 + else + local.get $2 + i32.const 1 + call $~lib/util/casemap/casemap + i32.const 2097151 + i32.and + local.tee $1 + i32.const 65536 + i32.lt_u + if + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.store16 + else + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 65536 + i32.sub + local.tee $1 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $1 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + end + end + end + else + local.get $6 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.const 2316 + i32.add + i32.load8_u + i32.store16 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end end - i32.const 16640 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + local.get $6 local.get $5 - i32.const 16672 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 72 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 16704 - call $~lib/string/String#toLowerCase - local.set $5 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16736 - call $~lib/string/String.__eq + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 7024 - i32.const 73 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - i32.const 16768 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16800 - call $~lib/string/String.__eq - i32.eqz + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - i32.const 0 - i32.const 7024 - i32.const 74 + local.get $1 + global.get $~lib/rt/itcms/iter + i32.eq + if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$143 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 53848 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$143 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 21056 + i32.load + i32.gt_u + if + i32.const 1280 + i32.const 1344 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 21060 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + global.set $~lib/rt/itcms/visitCount end - i32.const 16832 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16864 - call $~lib/string/String.__eq - i32.eqz + ) + (func $~lib/rt/itcms/__new (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 0 - i32.const 7024 - i32.const 75 - i32.const 1 + i32.const 1088 + i32.const 1152 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - i32.const 16896 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16928 - call $~lib/string/String.__eq - i32.eqz + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 7024 - i32.const 78 - i32.const 1 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - i32.const 16960 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 16992 - call $~lib/string/String.__eq + global.get $~lib/rt/tlsf/ROOT i32.eqz if - i32.const 0 - i32.const 7024 - i32.const 79 - i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - i32.const 17024 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17056 - call $~lib/string/String.__eq - i32.eqz + 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 0 - i32.const 7024 - i32.const 80 - i32.const 1 + i32.const 1088 + i32.const 1424 + i32.const 461 + i32.const 29 call $~lib/builtins/abort unreachable end - i32.const 17088 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17120 - call $~lib/string/String.__eq + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow i32.const 0 - i32.const 7024 - i32.const 81 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable + end end - i32.const 17152 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store local.get $5 - i32.const 17184 - call $~lib/string/String.__eq - i32.eqz + local.get $2 + i32.load + i32.const -4 + i32.and + i32.gt_u if i32.const 0 - i32.const 7024 - i32.const 82 - i32.const 1 + i32.const 1424 + i32.const 501 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 17216 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + local.get $4 + local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 local.get $5 - i32.const 17248 - call $~lib/string/String.__eq - i32.eqz + i32.const 4 + i32.add + i32.const 15 + i32.and if i32.const 0 - i32.const 7024 - i32.const 83 - i32.const 1 + i32.const 1424 + i32.const 361 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 17280 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + local.get $6 + i32.const -4 + i32.and local.get $5 - i32.const 16352 - call $~lib/string/String.__eq - i32.eqz + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u if - i32.const 0 - i32.const 7024 - i32.const 84 + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 + local.get $3 + i32.load + i32.const -3 + i32.and + i32.store end - i32.const 17312 - call $~lib/string/String#toLowerCase - local.set $5 + local.get $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17344 - call $~lib/string/String.__eq - i32.eqz + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s if - i32.const 0 - i32.const 7024 - i32.const 85 + i32.const 53872 + i32.const 53920 + i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17376 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 i32.store - local.get $5 - i32.const 17408 - call $~lib/string/String.__eq - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $1 + i32.le_u if - i32.const 0 - i32.const 7024 - i32.const 86 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + block $folding-inner0 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + local.get $2 + i32.eq + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.tee $1 + i32.const 64512 + i32.and + i32.const 55296 + i32.ne + i32.or + br_if $folding-inner0 + local.get $0 + i32.load16_u offset=2 + local.tee $0 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 10 + i32.shl + local.get $0 + i32.add + i32.const 56613888 + i32.sub + return end - i32.const 17440 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17472 - call $~lib/string/String.__eq - i32.eqz + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/itoa64 (param $0 i64) (result 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.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s if - i32.const 0 - i32.const 7024 - i32.const 87 + i32.const 53872 + i32.const 53920 + i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17504 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 i32.store - local.get $5 - i32.const 17536 - call $~lib/string/String.__eq - i32.eqz + local.get $0 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 19200 + return + end + i64.const 0 + local.get $0 + i64.sub + local.get $0 + local.get $0 + i64.const 63 + i64.shr_u + i32.wrap_i64 + i32.const 1 + i32.shl + local.tee $2 + select + local.tee $0 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.wrap_i64 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $4 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $2 + local.get $3 + i32.add + local.get $1 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $2 + local.get $3 + i32.add + local.set $5 + loop $while-continue|0 + local.get $0 + i64.const 100000000 + i64.ge_u + if + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i64.const 100000000 + i64.div_u + local.tee $0 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $4 + i32.const 10000 + i32.rem_u + local.tee $6 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + local.get $6 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $5 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 10000 + i32.div_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $5 + local.get $0 + i32.wrap_i64 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + end + local.get $2 if - i32.const 0 - i32.const 7024 - i32.const 88 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 45 + i32.store16 end - i32.const 17568 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17600 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 89 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $2 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/string/String#concat$148 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1056 + local.set $0 + br $__inlined_func$~lib/string/String#concat$148 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $3 + memory.copy + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - i32.const 17632 - call $~lib/string/String#toLowerCase - local.set $5 + i32.const 53872 + i32.const 53920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17664 - call $~lib/string/String.__eq - i32.eqz + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21080 + i32.lt_s if - i32.const 0 - i32.const 7024 - i32.const 90 + i32.const 53872 + i32.const 53920 + i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 17696 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 i32.store - local.get $5 - i32.const 17728 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 91 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 17760 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 2 + local.get $0 + i32.const 65535 + i32.gt_u + local.tee $2 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - local.get $5 - i32.const 17792 - call $~lib/string/String.__eq - i32.eqz + local.get $2 if - i32.const 0 - i32.const 7024 - i32.const 92 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 1114111 + i32.gt_u + if + i32.const 0 + i32.const 15600 + i32.const 39 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.const 65536 + i32.sub + local.tee $0 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $0 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + else + local.get $1 + local.get $0 + i32.store16 end - i32.const 17824 - call $~lib/string/String#toLowerCase - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17856 - call $~lib/string/String.__eq + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if i32.const 0 - i32.const 7024 - i32.const 93 - i32.const 1 + i32.const 1424 + i32.const 268 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 17888 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17920 - call $~lib/string/String.__eq - i32.eqz + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u if i32.const 0 - i32.const 7024 - i32.const 94 - i32.const 1 + i32.const 1424 + i32.const 270 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 17952 - call $~lib/string/String#toLowerCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 17984 - call $~lib/string/String.__eq + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 7024 - i32.const 95 - i32.const 1 + i32.const 1424 + i32.const 284 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 18016 - call $~lib/string/String#toLowerCase + local.get $1 + i32.load offset=8 local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end local.get $5 - i32.const 18048 - call $~lib/string/String.__eq + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 7024 - i32.const 96 - i32.const 1 + i32.const 1424 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 18080 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 18112 - call $~lib/string/String.__eq + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and i32.eqz if i32.const 0 - i32.const 7024 - i32.const 99 - i32.const 1 + i32.const 1424 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 15328 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1424 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or i32.store - local.get $5 - i32.const 18144 - call $~lib/string/String.__eq - i32.eqz + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 - i32.const 7024 - i32.const 100 - i32.const 1 + i32.const 1424 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 18176 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 18208 - call $~lib/string/String.__eq - i32.eqz + local.get $4 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne if i32.const 0 - i32.const 7024 - i32.const 101 - i32.const 1 + i32.const 1424 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 18240 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store + 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 18272 - call $~lib/string/String.__eq + i32.const 23 + i32.lt_u + i32.and i32.eqz if i32.const 0 - i32.const 7024 - i32.const 102 - i32.const 1 + i32.const 1424 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 18304 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store + local.get $0 local.get $5 - i32.const 18336 - call $~lib/string/String.__eq - i32.eqz + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 if - i32.const 0 - i32.const 7024 - i32.const 103 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - i32.const 18368 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer + 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 local.get $5 + i32.shl + i32.or i32.store + local.get $0 local.get $5 - i32.const 18400 - call $~lib/string/String.__eq - i32.eqz + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/staticarray/StaticArray + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + unreachable + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u if - i32.const 0 - i32.const 7024 - i32.const 104 + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 end - i32.const 18432 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 18400 - call $~lib/string/String.__eq - i32.eqz + local.get $1 + i32.const 10 + i32.ge_u if - i32.const 0 - i32.const 7024 - i32.const 105 + local.get $0 + local.get $2 + i32.const 2 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 19212 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + ) + (func $~lib/util/casemap/casemap (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.const 8 + i32.shr_u + local.tee $2 + i32.const 6084 + i32.add + i32.load8_u + local.get $2 + i32.const 2444 + i32.add + i32.load8_u + i32.const 86 + i32.mul + i32.const 2444 + i32.add + local.get $0 + i32.const 255 + i32.and + local.tee $4 + i32.const 3 + i32.div_u + i32.add + i32.load8_u + local.get $4 + i32.const 3 + i32.rem_u + i32.const 2 + i32.shl + i32.const 5112 + i32.add + i32.load + i32.mul + i32.const 11 + i32.shr_u + i32.const 6 + i32.rem_u + i32.add + i32.const 2 + i32.shl + i32.const 5124 + i32.add + i32.load + local.tee $2 + i32.const 255 + i32.and + local.set $3 + local.get $2 + i32.const 8 + i32.shr_s + local.set $2 + block $folding-inner0 + local.get $3 + i32.const 2 + i32.lt_u + br_if $folding-inner0 + local.get $2 + i32.const 255 + i32.and + local.set $3 + local.get $2 + i32.const 8 + i32.shr_u + local.set $2 + loop $while-continue|0 + local.get $3 + if + local.get $2 + local.get $3 + i32.const 1 + i32.shr_u + local.tee $7 + i32.add + i32.const 1 + i32.shl + i32.const 6596 + i32.add + local.tee $5 + i32.load8_u + local.tee $6 + local.get $4 + i32.eq + if (result i32) + local.get $5 + i32.load8_u offset=1 + i32.const 2 + i32.shl + i32.const 5124 + i32.add + i32.load + local.tee $2 + i32.const 255 + i32.and + local.set $3 + local.get $2 + i32.const 8 + i32.shr_s + local.set $2 + local.get $3 + i32.const 2 + i32.lt_u + br_if $folding-inner0 + local.get $0 + i32.const 1 + i32.add + local.get $1 + i32.const 1 + i32.shl + i32.sub + return + else + local.get $4 + local.get $6 + i32.lt_u + if (result i32) + local.get $7 + else + local.get $2 + local.get $7 + i32.add + local.set $2 + local.get $3 + local.get $7 + i32.sub + end + end + local.set $3 + br $while-continue|0 + end + end + local.get $0 + return + end + local.get $0 + local.get $2 + i32.const 0 + local.get $1 + local.get $3 + i32.xor + i32.sub + i32.and + i32.add + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 end - i32.const 18464 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 18496 - call $~lib/string/String.__eq + local.get $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 7024 - i32.const 106 - i32.const 1 + i32.const 1424 + i32.const 334 + i32.const 14 call $~lib/builtins/abort unreachable end - i32.const 18528 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 18560 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 107 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1424 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end end - i32.const 18592 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 18624 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 7024 - i32.const 108 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 18656 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 18688 - call $~lib/string/String.__eq - i32.eqz - if + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else i32.const 0 - i32.const 7024 - i32.const 109 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 18720 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 18752 - call $~lib/string/String.__eq - i32.eqz if - i32.const 0 - i32.const 7024 - i32.const 110 - i32.const 1 - call $~lib/builtins/abort unreachable end - i32.const 18784 - call $~lib/string/String#toUpperCase - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 53856 + i32.const 0 i32.store - local.get $5 - i32.const 18816 - call $~lib/string/String.__eq - i32.eqz + i32.const 55424 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 53856 + i32.add + i32.const 0 + i32.store 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 53856 + i32.add + i32.const 0 + i32.store 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 53856 + i32.const 55428 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 53856 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if i32.const 0 - i32.const 7024 - i32.const 111 - i32.const 1 + i32.const 1424 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $4 - i32.const 1114111 - i32.le_s + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/string/String.fromCodePoint - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/string/String#toLowerCase - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 1424 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 local.get $5 - call $~lib/string/String#toUpperCase - local.tee $5 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + local.set $1 + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if i32.const 0 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 1 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.tee $1 - i64.const 0 - i64.ge_s + i32.const 1424 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1280 + call $~lib/rt/itcms/__visit + i32.const 1088 + call $~lib/rt/itcms/__visit + i32.const 19632 + call $~lib/rt/itcms/__visit + i32.const 20688 + call $~lib/rt/itcms/__visit + i32.const 1488 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - local.get $0 - local.get $1 - i64.const 16 - i64.shl - i64.add - local.set $0 + i32.const 0 + i32.const 1152 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.const 2 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.tee $1 - i64.const 0 - i64.ge_s - if (result i64) - local.get $0 - local.get $1 - i64.const 32 - i64.shl - i64.add - else - local.get $0 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $1 + i32.gt_u + select + memory.copy + local.get $2 + ) + (func $~start + call $start:std/string-casemapping + ) + (func $~lib/rt/itcms/step (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/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 0 - call $~lib/string/String#codePointAt - i64.extend_i32_s + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 1 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.tee $2 - i64.const 0 - i64.ge_s - if - local.get $0 - local.get $2 - i64.const 16 - i64.shl - i64.add - local.set $0 - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 2 - call $~lib/string/String#codePointAt - i64.extend_i32_s - local.tee $2 - i64.const 0 - i64.ge_s - if (result i64) - local.get $0 - local.get $2 - i64.const 32 - i64.shl - i64.add - else + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - local.set $2 - local.get $4 i32.const 0 - call $std/string-casemapping/toLowerCaseFromIndex - i64.extend_i32_s - local.set $0 - local.get $4 - i32.const 1 - call $std/string-casemapping/toLowerCaseFromIndex - i64.extend_i32_s - local.tee $3 - i64.const 0 - i64.ge_s + 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 offset=4 + i32.const -4 + i32.and + i32.eq if - local.get $0 - local.get $3 - i64.const 16 - i64.shl - i64.add + global.get $~lib/memory/__stack_pointer local.set $0 - end - local.get $4 - i32.const 2 - call $std/string-casemapping/toLowerCaseFromIndex - i64.extend_i32_s - local.tee $3 - i64.const 0 - i64.ge_s - if (result i64) - local.get $0 - local.get $3 - i64.const 32 - i64.shl - i64.add - else - local.get $0 - end - local.set $3 - local.get $4 - i32.const 0 - call $std/string-casemapping/toUpperCaseFromIndex - i64.extend_i32_s - local.set $0 - local.get $4 - i32.const 1 - call $std/string-casemapping/toUpperCaseFromIndex - i64.extend_i32_s - local.tee $7 - i64.const 0 - i64.ge_s - if - local.get $0 - local.get $7 - i64.const 16 - i64.shl - i64.add + loop $while-continue|0 + local.get $0 + i32.const 53848 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 offset=4 + i32.const -4 + i32.and local.set $0 - end - local.get $4 - i32.const 2 - call $std/string-casemapping/toUpperCaseFromIndex - i64.extend_i32_s - local.tee $7 - i64.const 0 - i64.ge_s - if - local.get $0 - local.get $7 - i64.const 32 - i64.shl - i64.add + loop $while-continue|2 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 - local.get $3 - i64.ne + i32.const 3 + i32.and + i32.ne if - i32.const 18848 - i32.const 1 - local.get $4 - f64.convert_i32_s - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - local.get $1 - call $~lib/util/number/itoa64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - i32.const 18944 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - local.get $3 - call $~lib/util/number/itoa64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - i32.const 20784 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace + i32.const 1152 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable end local.get $0 - local.get $2 - i64.ne + i32.const 53848 + i32.lt_u if - i32.const 20848 - i32.const 1 - local.get $4 - f64.convert_i32_s - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - local.get $2 - call $~lib/util/number/itoa64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - i32.const 20944 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace local.get $0 - call $~lib/util/number/itoa64 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 + i32.const 0 i32.store offset=4 - i32.const 21008 - local.get $5 - call $~lib/string/String.__concat - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + local.get $0 i32.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - f64.const 0 - call $~lib/builtins/trace + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 53848 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $start:std/string-casemapping + (local $0 i64) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + 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 21080 + i32.lt_s + if + i32.const 53872 + i32.const 53920 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + memory.size + i32.const 16 + i32.shl + i32.const 53848 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + i32.const 1056 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11808 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 11856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 10 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 11904 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 11952 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 11 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12000 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 12096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 12 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12096 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 12192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12288 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 12352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 14 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12352 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 12416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 15 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12480 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 12576 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12576 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 12672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 17 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12768 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 12864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 12864 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 12960 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13056 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 13136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13216 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 13296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13376 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 13440 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13504 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 13584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13664 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 13744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13824 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 13888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 25 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13952 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 14032 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 26 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14112 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 14192 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 27 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14272 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 14432 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 28 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14272 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 14592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 32 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14752 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 14784 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14816 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 14848 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 37 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14880 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14752 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 42 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15328 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15360 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15392 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 65536 + call $~lib/string/String.fromCodePoint + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 50 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 65536 + call $~lib/string/String.fromCodePoint + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 51 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15680 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 54 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15744 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 55 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15808 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15840 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 56 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15872 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 59 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15936 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 15968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 60 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16000 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16032 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 61 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16064 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 62 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16128 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16160 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 63 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16192 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16224 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 64 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16256 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16288 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 65 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16320 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 66 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16384 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 67 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16448 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16480 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 68 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16512 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16544 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 69 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16576 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16608 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 70 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16640 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 72 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16704 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16736 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 73 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16768 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16800 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16832 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 75 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16896 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16928 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 78 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 16960 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17024 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 80 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17088 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 81 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17152 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17184 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 82 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17216 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 83 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17280 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 16352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 84 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17312 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17344 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 85 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17376 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17408 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 86 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17440 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 87 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17504 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17536 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 88 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17568 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17632 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17664 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 90 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17696 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 91 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17760 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17824 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 93 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17888 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 94 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 17952 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 17984 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18016 + call $~lib/string/String#toLowerCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 96 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18080 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18112 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 99 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 15328 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18144 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 100 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 18176 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + local.get $5 + i32.store + local.get $5 + i32.const 18208 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 101 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18240 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18272 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 102 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18304 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s + local.get $5 + i32.store + local.get $5 + i32.const 18336 + call $~lib/string/String.__eq + i32.eqz if - i32.const 53872 - i32.const 53920 + i32.const 0 + i32.const 7024 + i32.const 103 i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18368 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18400 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 18432 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $5 i32.store + local.get $5 + i32.const 18400 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 105 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18464 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $0 - i32.const 65535 - i32.gt_u - local.tee $2 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $5 i32.store - local.get $2 + local.get $5 + i32.const 18496 + call $~lib/string/String.__eq + i32.eqz if - local.get $0 - i32.const 1114111 - i32.gt_u - if - i32.const 0 - i32.const 15600 - i32.const 39 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - i32.const 65536 - i32.sub - local.tee $0 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $0 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - else - local.get $1 - local.get $0 - i32.store16 + i32.const 0 + i32.const 7024 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable end + i32.const 18528 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/util/number/itoa64 (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + local.get $5 + i32.store + local.get $5 + i32.const 18560 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18592 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18624 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 108 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18656 + call $~lib/string/String#toUpperCase + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 21080 - i32.lt_s + local.get $5 + i32.store + local.get $5 + i32.const 18688 + call $~lib/string/String.__eq + i32.eqz if - i32.const 53872 - i32.const 53920 + i32.const 0 + i32.const 7024 + i32.const 109 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18720 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18752 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 110 i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 18784 + call $~lib/string/String#toUpperCase + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 18816 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 7024 + i32.const 111 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 19200 - return - end - i64.const 0 - local.get $0 - i64.sub - local.get $0 - local.get $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.const 1 - i32.shl - local.tee $2 - select - local.tee $0 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add + loop $for-loop|0 + local.get $4 + i32.const 1114111 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/string/String.fromCodePoint + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + call $~lib/string/String#toLowerCase + local.tee $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + call $~lib/string/String#toUpperCase + local.tee $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.const 0 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.const 1 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $1 + i64.const 0 + i64.ge_s + if + local.get $0 local.get $1 - i32.const 1000 - i32.ge_u - i32.add + i64.const 16 + i64.shl + i64.add + local.set $0 end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.const 2 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $1 + i64.const 0 + i64.ge_s + if (result i64) + local.get $0 local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + i64.const 32 + i64.shl + i64.add else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add + local.get $0 end - end - local.tee $4 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 1 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $2 + i64.const 0 + i64.ge_s + if local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add + local.get $2 + i64.const 16 + i64.shl + i64.add + local.set $0 + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 2 + call $~lib/string/String#codePointAt + i64.extend_i32_s + local.tee $2 + i64.const 0 + i64.ge_s + if (result i64) local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add + local.get $2 + i64.const 32 + i64.shl + i64.add else local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) + local.set $2 + local.get $4 + i32.const 0 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.set $0 + local.get $4 + i32.const 1 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.tee $3 + i64.const 0 + i64.ge_s + if local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else + local.get $3 + i64.const 16 + i64.shl + i64.add + local.set $0 + end + local.get $4 + i32.const 2 + call $std/string-casemapping/toLowerCaseFromIndex + i64.extend_i32_s + local.tee $3 + i64.const 0 + i64.ge_s + if (result i64) local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + local.get $3 + i64.const 32 + i64.shl + i64.add + else local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $2 - local.get $3 - i32.add - local.set $5 - loop $while-continue|0 - local.get $0 - i64.const 100000000 - i64.ge_u + local.set $3 + local.get $4 + i32.const 0 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.set $0 + local.get $4 + i32.const 1 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.tee $7 + i64.const 0 + i64.ge_s if - local.get $5 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add local.get $0 + local.get $7 + i64.const 16 + i64.shl + i64.add + local.set $0 + end + local.get $4 + i32.const 2 + call $std/string-casemapping/toUpperCaseFromIndex + i64.extend_i32_s + local.tee $7 + i64.const 0 + i64.ge_s + if local.get $0 - i64.const 100000000 - i64.div_u - local.tee $0 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $4 - i32.const 10000 - i32.rem_u - local.tee $6 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - local.get $6 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u + local.get $7 i64.const 32 i64.shl - i64.or - i64.store - local.get $5 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 + i64.add + local.set $0 + end + local.get $1 + local.get $3 + i64.ne + if + i32.const 18848 i32.const 1 - i32.shl - i32.add local.get $4 - i32.const 10000 - i32.div_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u + f64.convert_i32_s + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + local.get $1 + call $~lib/util/number/itoa64 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 18944 + local.get $5 + call $~lib/string/String.__concat + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + local.get $3 + call $~lib/util/number/itoa64 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 20784 + local.get $5 + call $~lib/string/String.__concat + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + end + local.get $0 + local.get $2 + i64.ne + if + i32.const 20848 + i32.const 1 local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 19212 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + f64.convert_i32_s + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + local.get $2 + call $~lib/util/number/itoa64 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 20944 + local.get $5 + call $~lib/string/String.__concat + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + local.get $0 + call $~lib/util/number/itoa64 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + i32.const 21008 + local.get $5 + call $~lib/string/String.__concat + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end - local.get $5 - local.get $0 - i32.wrap_i64 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - end - local.get $2 - if - local.get $3 - i32.const 45 - i32.store16 end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) ) diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index 1dd0f55a65..fb72c04a38 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -2,12 +2,12 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func)) (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) + (type $3 (func (param i32 i32 i32) (result i32))) (type $4 (func (param i32) (result i32))) - (type $5 (func (param i32 i32 i32) (result i32))) + (type $5 (func (param i32 i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) + (type $7 (func (result i32))) + (type $8 (func (param i32 i32 i64))) (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)) @@ -71,1227 +71,1069 @@ (data $26 (i32.const 22784) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1344 - call $~lib/rt/itcms/__visit - i32.const 1152 - call $~lib/rt/itcms/__visit - i32.const 1712 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s if - return + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + local.get $1 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$158 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 55572 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$158 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 22784 - i32.load - i32.gt_u - if - i32.const 1344 - i32.const 1408 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 22788 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.set $3 - local.get $2 - i32.load offset=8 - local.set $0 + global.get $~lib/memory/__stack_pointer local.get $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 + i32.store local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) local.get $3 + local.tee $0 i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1488 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 + if (result i32) local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const 7 i32.and - local.set $3 local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 local.get $2 - i32.rotl - i32.and - i32.store + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$94 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$94 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $1 - i32.eqz + (local $7 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 22804 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 201 - i32.const 14 + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 local.tee $3 - i32.const 1 - i32.and - i32.eqz + local.get $1 + i32.add + local.set $5 + local.get $3 + local.get $5 + i32.gt_u if i32.const 0 - i32.const 1488 - i32.const 203 - i32.const 14 + i32.const 1776 + i32.const 770 + i32.const 7 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.set $1 + loop $while-continue|0 local.get $3 - i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + local.get $5 + i32.lt_u + if + block $while-break|0 + local.get $3 + i32.load8_u + local.set $6 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $6 + i32.const 128 + i32.and + if + local.get $3 + local.get $5 + i32.eq + br_if $while-break|0 + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.set $7 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $6 + i32.const 224 + i32.and + i32.const 192 + i32.eq + if + local.get $1 + local.get $6 + i32.const 31 + i32.and + i32.const 6 + i32.shl + local.get $7 + i32.or + i32.store16 + else + local.get $3 + local.get $5 + i32.eq + br_if $while-break|0 + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.set $4 + local.get $3 + i32.const 1 + i32.add + local.set $3 + local.get $6 + i32.const 240 + i32.and + i32.const 224 + i32.eq + if + local.get $6 + i32.const 15 + i32.and + i32.const 12 + i32.shl + local.get $7 + i32.const 6 + i32.shl + i32.or + local.get $4 + i32.or + local.set $4 + else + local.get $3 + local.get $5 + i32.eq + br_if $while-break|0 + local.get $3 + i32.load8_u + i32.const 63 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.const 18 + i32.shl + local.get $7 + i32.const 12 + i32.shl + i32.or + local.get $4 + i32.const 6 + i32.shl + i32.or + i32.or + local.set $4 + local.get $3 + i32.const 1 + i32.add + local.set $3 + end + local.get $4 + i32.const 65536 + i32.lt_u + if + local.get $1 + local.get $4 + i32.store16 + else + local.get $1 + local.get $4 + i32.const 65536 + i32.sub + local.tee $4 + i32.const 10 + i32.shr_u + i32.const 55296 + i32.or + local.get $4 + i32.const 1023 + i32.and + i32.const 56320 + i32.or + i32.const 16 + i32.shl + i32.or + i32.store + local.get $1 + i32.const 2 + i32.add + local.set $1 + end + end + else + local.get $2 + local.get $6 + i32.eqz + i32.and + br_if $while-break|0 + local.get $1 + local.get $6 + i32.store16 + end + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 + end + end end - local.get $3 - i32.const 2 - i32.and - if + block $__inlined_func$~lib/rt/itcms/__renew$157 local.get $1 - i32.const 4 + local.get $0 i32.sub + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + local.tee $3 i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.const -4 i32.and - i32.eqz + i32.const 16 + i32.sub + i32.le_u if - i32.const 0 - i32.const 1488 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $2 + i32.store offset=16 + br $__inlined_func$~lib/rt/itcms/__renew$157 end + local.get $2 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add + local.get $2 local.get $3 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $2 + i32.gt_u + select + memory.copy + local.get $1 + local.set $0 end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1488 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $2 - i32.add - i32.ne + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/string/String.UTF8.encode@varargs (param $0 i32) (param $1 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 22804 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 234 - i32.const 14 + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - 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 + block $2of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $2of2 $2of2 $outOfRange + end + unreachable + end i32.const 0 - i32.const 1488 - i32.const 251 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.set $1 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store 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 offset=96 - local.set $3 local.get $1 i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end - local.get $0 - local.get $5 + call $~lib/string/String.UTF8.encode + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl i32.add - local.get $1 - i32.store offset=96 - local.get $0 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.UTF8.decode (param $0 i32) (param $1 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 22804 + i32.lt_s + if + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 local.get $1 - i64.extend_i32_u - i64.lt_u + call $~lib/string/String.UTF8.decodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.UTF16.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) + (local $2 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 22804 + i32.lt_s if - i32.const 0 - i32.const 1488 - i32.const 382 - i32.const 14 + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 19 - i32.add - i32.const -16 + i32.const -2 i32.and + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - local.set $1 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + local.set $2 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_u if - i32.const 0 - i32.const 1488 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1488 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + block $while-break|0 + local.get $0 + i32.load16_u + local.tee $3 + i32.const 128 + i32.lt_u + if (result i32) + local.get $1 + local.get $3 + i32.eqz + i32.and + br_if $while-break|0 + local.get $2 + i32.const 1 + i32.add + else + local.get $3 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $2 + i32.const 2 + i32.add + else + local.get $3 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + local.get $0 + i32.const 2 + i32.add + local.get $4 + i32.lt_u + i32.and + if + local.get $0 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $2 + i32.const 3 + i32.add + end + end + local.set $2 + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end end end local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz if return end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + global.get $~lib/rt/itcms/white local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.const 20 + i32.sub local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if - unreachable - end - i32.const 55584 - i32.const 0 - i32.store - i32.const 57152 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + global.get $~lib/rt/itcms/iter + i32.eq if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 2 - i32.shl - i32.const 55584 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$158 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if local.get $1 - i32.const 16 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 55572 i32.lt_u + i32.and + i32.eqz if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 55584 - i32.add i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.const 1216 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$158 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1216 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 55584 - i32.const 57156 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 55584 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 55572 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.or + i32.store offset=4 end - global.get $~lib/rt/itcms/iter - local.tee $0 global.get $~lib/rt/itcms/toSpace - i32.ne - if + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else local.get $0 - i32.load 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 + i32.const 22784 + i32.load + i32.gt_u if - i32.const 0 - i32.const 1216 - i32.const 229 - i32.const 20 + i32.const 1344 + i32.const 1408 + i32.const 21 + i32.const 28 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 55572 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 55572 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub + i32.const 2 i32.shl + i32.const 22788 i32.add - i32.const 1 - i32.sub - local.set $1 + i32.load + i32.const 32 + i32.and end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1488 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl - i32.and - local.tee $1 - if (result i32) + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 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 offset=96 - else local.get $0 - i32.load - i32.const -1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1488 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end + global.set $~lib/rt/itcms/visitCount end ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/string/String.UTF8.encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u + (local $7 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 22804 + i32.lt_s if - i32.const 1152 - i32.const 1216 - i32.const 261 - i32.const 31 + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 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$70 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + call $~lib/string/String.UTF8.byteLength + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $5 + local.set $4 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + i32.add + local.set $6 + block $__inlined_func$~lib/string/String.UTF8.encodeUnsafe$1 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.load16_u + local.tee $3 + i32.const 128 + i32.lt_u if - global.get $~lib/rt/itcms/total + local.get $4 + local.get $3 + i32.store8 + local.get $4 i32.const 1 - i32.shl - i32.const 1024 i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total + local.set $4 + local.get $1 + local.get $3 + i32.eqz + i32.and + br_if $__inlined_func$~lib/string/String.UTF8.encodeUnsafe$1 + else + local.get $3 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $4 + local.get $3 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.get $3 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $4 + i32.const 2 + i32.add + else + local.get $3 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if + local.get $3 + i32.const 56320 + i32.lt_u + local.get $0 + i32.const 2 + i32.add + local.get $6 + i32.lt_u + i32.and + if + local.get $0 + i32.load16_u offset=2 + local.tee $7 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $4 + local.get $3 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.const 65536 + i32.add + local.get $7 + i32.const 1023 + i32.and + i32.or + local.tee $3 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 24 + i32.shl + local.get $3 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 16 + i32.shl + i32.or + local.get $3 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.or + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $2 + if + local.get $2 + i32.const 2 + i32.eq + if + i32.const 1712 + i32.const 1776 + i32.const 742 + i32.const 49 + call $~lib/builtins/abort + unreachable + end + i32.const 65533 + local.set $3 + end + end + local.get $4 + local.get $3 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.get $3 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $4 + local.get $3 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + local.get $4 + i32.const 3 + i32.add + end + local.set $4 + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $1 + if + local.get $4 + i32.const 0 + i32.store8 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/rt/itcms/__new (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 1152 + i32.const 1216 + i32.const 261 + 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$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/total global.get $~lib/rt/itcms/threshold i32.sub @@ -1344,8 +1186,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1373,7 +1213,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1387,7 +1228,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1559,1309 +1402,1238 @@ memory.fill local.get $1 ) - (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $0 - local.get $0 - i32.const 20 + (func $~lib/string/String.UTF16.encode (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - i32.load offset=16 - i32.add - local.set $4 - local.get $1 - i32.const 0 - i32.ne - local.set $2 - loop $while-continue|0 - local.get $0 - local.get $4 - i32.lt_u - if - block $while-break|0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + if + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/rt/itcms/step (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 offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 local.get $0 - i32.load16_u - local.tee $3 - i32.const 128 - i32.lt_u - if (result i32) + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - local.get $3 - i32.eqz + local.get $0 + i32.load offset=4 + local.tee $2 + i32.const 3 i32.and - br_if $while-break|0 - local.get $2 - i32.const 1 - i32.add - else - local.get $3 - i32.const 2048 - i32.lt_u - if (result i32) + i32.ne + if + local.get $0 local.get $2 - i32.const 2 - i32.add - else - local.get $3 - i32.const 64512 + i32.const -4 i32.and - i32.const 55296 - i32.eq + local.get $1 + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 - i32.const 2 + i32.const 20 i32.add - local.get $4 - i32.lt_u + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load 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 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 55572 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 i32.and + i32.ne if local.get $0 - i32.load16_u offset=2 - i32.const 64512 + local.get $2 + i32.const -4 i32.and - i32.const 56320 - i32.eq - if - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members end - local.get $2 - i32.const 3 - i32.add + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 end end - local.set $2 + 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 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter i32.const 2 - i32.add - local.set $0 - br $while-continue|0 + global.set $~lib/rt/itcms/state end + global.get $~lib/rt/itcms/visitCount + return end - end - local.get $2 - ) - (func $start:std/string-encoding - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - i32.const 12 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1088 - i32.const 8 + local.get $0 + i32.load 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 - call $~lib/builtins/abort - unreachable + i32.and + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 55572 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 55572 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1488 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1488 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 55572 - i32.sub - i32.const 1 i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 + local.tee $4 + i32.const 7 i32.sub - i32.load offset=16 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 17 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 55 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 220 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 20 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - if - i32.const 0 - i32.const 1088 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - if - i32.const 0 - i32.const 1088 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 82 - i32.ne + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1488 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if - i32.const 0 - i32.const 1088 - i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1488 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1488 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if local.get $0 - i32.load8_u offset=9 - i32.const 216 - i32.ne + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if i32.const 0 - i32.const 1088 - i32.const 25 - i32.const 3 + i32.const 1488 + i32.const 221 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.load8_u offset=10 - i32.const 98 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 26 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=11 - i32.const 223 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - 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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/string/String.UTF16.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - 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 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - local.set $2 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end local.get $1 - i32.const 4 - i32.add - i32.const 2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/tlsf/removeBlock local.get $1 + local.get $6 i32.const 4 i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 8 + local.get $3 + i32.const -4 + i32.and i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $3 i32.store - local.get $0 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 12 - i32.add + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 48 - 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 - global.get $~lib/memory/__stack_pointer + i32.const 1488 + 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 1488 + 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 + 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 - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 55 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 11 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 7 + i32.sub + local.set $5 + local.get $2 + local.get $3 i32.const 4 - 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 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 + 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 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 + i32.const 1488 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 65 - i32.const 3 - 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 + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + return end local.get $0 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 183 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~lib/string/String.UTF16.decode (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 22804 + i32.lt_s + if + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + call $~lib/string/String.UTF16.decodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1088 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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.set $1 end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1488 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else local.get $0 - i32.load8_u offset=6 - i32.const 240 - i32.ne - if + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1488 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else i32.const 0 - i32.const 1088 - i32.const 70 - i32.const 3 - call $~lib/builtins/abort - unreachable end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 55584 + i32.const 0 + i32.store + i32.const 57152 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - i32.load8_u offset=7 - i32.const 164 - i32.ne + i32.const 23 + i32.lt_u if + local.get $0 + i32.const 2 + i32.shl + i32.const 55584 + i32.add i32.const 0 - i32.const 1088 - i32.const 71 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 173 - i32.ne - if + i32.store offset=4 i32.const 0 - i32.const 1088 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 162 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 73 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 55584 + i32.add + i32.const 0 + i32.store 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 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8EncodeNullTerminated - 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 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.const 0 + end + i32.const 55584 + i32.const 57156 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 55584 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + i32.const 1488 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1904 - call $~lib/string/String.__eq - i32.eqz + i32.gt_u if i32.const 0 - i32.const 1088 - i32.const 101 - i32.const 3 + i32.const 1488 + i32.const 389 + i32.const 16 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.const 0 - i32.const 1 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + local.get $3 local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz + i32.const 16 + i32.sub + local.tee $5 + i32.eq if - i32.const 0 - i32.const 1088 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.const 0 - i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + else local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.const 0 - i32.const 1 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + i32.const 1572 + i32.add local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz + i32.gt_u if i32.const 0 - i32.const 1088 - i32.const 108 - i32.const 3 + i32.const 1488 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end - 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 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 114 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 32 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1344 + call $~lib/rt/itcms/__visit + i32.const 1152 + call $~lib/rt/itcms/__visit + i32.const 1712 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2000 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 + local.get $1 i32.ne if - i32.const 0 - i32.const 1088 - i32.const 122 + local.get $0 + i32.load offset=4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 124 + i32.and i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store - i32.const 2048 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=8 - local.get $0 - i32.const 2048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 127 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=8 - local.get $0 - i32.const 2048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 129 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8DecodeUnsafe - i32.const 2112 - call $std/string-encoding/testRoundtrip - i32.const 15232 - call $std/string-encoding/testRoundtrip - 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 - return - end - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - call $start:std/string-encoding - ) - (func $~lib/string/String.UTF16.encode (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 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 + end + ) + (func $std/string-encoding/testRoundtrip (param $0 i32) + (local $1 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 22804 + i32.lt_s + if + i32.const 55600 + i32.const 55648 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer local.get $0 i32.store + i32.const 1 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - call $~lib/rt/itcms/__new + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=12 local.get $1 - ) - (func $~lib/string/String.UTF16.decode (param $0 i32) (result i32) + i32.const 0 + call $~lib/string/String.UTF8.decode + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s + local.get $0 + i32.store offset=8 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + i32.eqz if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1088 + i32.const 153 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/string/String.UTF16.encode + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/string/String.UTF16.decode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + local.get $1 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - call $~lib/string/String.UTF16.decodeUnsafe + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 155 + 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 $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~start + call $start:std/string-encoding + ) + (func $std/string-encoding/testUTF8EncodeNullTerminated + (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2878,590 +2650,142 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.eq + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 11 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + i32.const 0 + i32.const 1088 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$94 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$94 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String.UTF8.encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s + local.get $0 + i32.load8_u offset=1 + i32.const 144 + i32.ne if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1088 + i32.const 82 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $1 - call $~lib/string/String.UTF8.byteLength - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store - local.get $5 - local.set $4 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - i32.add - local.set $6 - block $__inlined_func$~lib/string/String.UTF8.encodeUnsafe$1 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - i32.load16_u - local.tee $3 - i32.const 128 - i32.lt_u - if - local.get $4 - local.get $3 - i32.store8 - local.get $4 - i32.const 1 - i32.add - local.set $4 - local.get $1 - local.get $3 - i32.eqz - i32.and - br_if $__inlined_func$~lib/string/String.UTF8.encodeUnsafe$1 - else - local.get $3 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $4 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.get $3 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 8 - i32.shl - i32.or - i32.store16 - local.get $4 - i32.const 2 - i32.add - else - local.get $3 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if - local.get $3 - i32.const 56320 - i32.lt_u - local.get $0 - i32.const 2 - i32.add - local.get $6 - i32.lt_u - i32.and - if - local.get $0 - i32.load16_u offset=2 - local.tee $7 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $4 - local.get $3 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.const 65536 - i32.add - local.get $7 - i32.const 1023 - i32.and - i32.or - local.tee $3 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 24 - i32.shl - local.get $3 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 16 - i32.shl - i32.or - local.get $3 - i32.const 12 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 8 - i32.shl - i32.or - local.get $3 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - i32.or - i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $2 - if - local.get $2 - i32.const 2 - i32.eq - if - i32.const 1712 - i32.const 1776 - i32.const 742 - i32.const 49 - call $~lib/builtins/abort - unreachable - end - i32.const 65533 - local.set $3 - end - end - local.get $4 - local.get $3 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.get $3 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 8 - i32.shl - i32.or - i32.store16 - local.get $4 - local.get $3 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.store8 offset=2 - local.get $4 - i32.const 3 - i32.add - end - local.set $4 - end - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $1 - if - local.get $4 - i32.const 0 - i32.store8 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $~lib/string/String.UTF8.encode@varargs (param $0 i32) (param $1 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 22804 - i32.lt_s + i32.load8_u offset=6 + i32.const 240 + i32.ne if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1088 + i32.const 87 + i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $2of2 $2of2 $outOfRange - end - unreachable - end + local.get $0 + i32.load8_u offset=7 + i32.const 164 + i32.ne + if i32.const 0 - local.set $1 + i32.const 1088 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.encode - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/string-encoding/testUTF8EncodeNullTerminated - (local $0 i32) - 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 22804 - i32.lt_s + i32.load8_u offset=8 + i32.const 173 + i32.ne if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 11 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 81 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 183 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 86 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 87 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - i32.const 164 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 88 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 173 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 89 - i32.const 3 + i32.const 0 + i32.const 1088 + i32.const 89 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -3530,40 +2854,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.UTF8.decode (param $0 i32) (param $1 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 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.get $1 - call $~lib/string/String.UTF8.decodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $std/string-encoding/testUTF8DecodeUnsafe (local $0 i32) (local $1 i32) @@ -3807,388 +3097,1099 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/string-encoding/testRoundtrip (param $0 i32) + (func $start:std/string-encoding + (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - i32.eqz - if + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1088 - i32.const 153 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/string/String.UTF16.encode - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/string/String.UTF16.decode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - i32.eqz - if + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 8 + 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 + memory.size + i32.const 16 + i32.shl + i32.const 55572 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 216 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 55 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 220 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 20 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + if + i32.const 0 + i32.const 1088 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + if + i32.const 0 + i32.const 1088 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 82 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 216 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=10 + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=11 + i32.const 223 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/string/String.UTF16.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + 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 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + local.set $2 + local.get $1 + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 4 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 8 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 12 + i32.add + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 48 + 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 + 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 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 56 + 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + i32.const 164 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 173 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 162 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8EncodeNullTerminated + 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 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1904 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1904 i32.const 0 - i32.const 1088 - i32.const 155 - 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/string/String.UTF16.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) - (local $2 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 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 - i32.const 1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const -2 - i32.and - local.tee $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - if - i32.const 55600 - i32.const 55648 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.const 0 i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.tee $3 - local.get $1 - i32.add - local.set $5 - local.get $3 - local.get $5 - i32.gt_u - if + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.const 0 - i32.const 1776 - i32.const 770 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.set $1 - loop $while-continue|0 - local.get $3 - local.get $5 - i32.lt_u + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz if - block $while-break|0 - local.get $3 - i32.load8_u - local.set $6 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $6 - i32.const 128 - i32.and - if - local.get $3 - local.get $5 - i32.eq - br_if $while-break|0 - local.get $3 - i32.load8_u - i32.const 63 - i32.and - local.set $7 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $6 - i32.const 224 - i32.and - i32.const 192 - i32.eq - if - local.get $1 - local.get $6 - i32.const 31 - i32.and - i32.const 6 - i32.shl - local.get $7 - i32.or - i32.store16 - else - local.get $3 - local.get $5 - i32.eq - br_if $while-break|0 - local.get $3 - i32.load8_u - i32.const 63 - i32.and - local.set $4 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $6 - i32.const 240 - i32.and - i32.const 224 - i32.eq - if - local.get $6 - i32.const 15 - i32.and - i32.const 12 - i32.shl - local.get $7 - i32.const 6 - i32.shl - i32.or - local.get $4 - i32.or - local.set $4 - else - local.get $3 - local.get $5 - i32.eq - br_if $while-break|0 - local.get $3 - i32.load8_u - i32.const 63 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.const 18 - i32.shl - local.get $7 - i32.const 12 - i32.shl - i32.or - local.get $4 - i32.const 6 - i32.shl - i32.or - i32.or - local.set $4 - local.get $3 - i32.const 1 - i32.add - local.set $3 - end - local.get $4 - i32.const 65536 - i32.lt_u - if - local.get $1 - local.get $4 - i32.store16 - else - local.get $1 - local.get $4 - i32.const 65536 - i32.sub - local.tee $4 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $4 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - end - else - local.get $2 - local.get $6 - i32.eqz - i32.and - br_if $while-break|0 - local.get $1 - local.get $6 - i32.store16 - end - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end + i32.const 0 + i32.const 1088 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - block $__inlined_func$~lib/rt/itcms/__renew$157 - local.get $1 - local.get $0 + 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 32 i32.sub - local.tee $2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2000 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 i32.const 20 i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.load offset=16 + i32.const 4 + i32.ne if - local.get $3 - local.get $2 - i32.store offset=16 - br $__inlined_func$~lib/rt/itcms/__renew$157 + i32.const 0 + i32.const 1088 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store + i32.const 2048 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - local.get $3 - i32.load offset=16 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 2048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs local.tee $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.gt_u - select - memory.copy - local.get $1 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 2048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8DecodeUnsafe + i32.const 2112 + call $std/string-encoding/testRoundtrip + i32.const 15232 + call $std/string-encoding/testRoundtrip + 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 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 55600 + i32.const 55648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/std/string-nonnull.release.wat b/tests/compiler/std/string-nonnull.release.wat index 63edc700be..b26fd35230 100644 --- a/tests/compiler/std/string-nonnull.release.wat +++ b/tests/compiler/std/string-nonnull.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func (result i32))) - (type $1 (func)) - (type $2 (func (param i32 i32 i32 i32))) + (type $0 (func)) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) (memory $0 1) @@ -9,6 +9,64 @@ (data $0.1 (i32.const 1048) "\02") (export "memory" (memory $0)) (start $~start) + (func $~lib/string/String.__eq + 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 1068 + i32.lt_s + if + i32.const 33856 + i32.const 33904 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.__ne (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1068 + i32.lt_s + if + i32.const 33856 + i32.const 33904 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=4 + call $~lib/string/String.__eq + i32.const 0 + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~start (local $0 i32) global.get $~lib/memory/__stack_pointer @@ -60,28 +118,22 @@ i32.const 1056 i32.store offset=4 call $~lib/string/String.__eq - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - i32.const 1052 - i32.load - drop - end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + i32.const 1052 + i32.load + drop global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 call $~lib/string/String.__eq - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - i32.const 1052 - i32.load - drop - end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + i32.const 1052 + i32.load + drop global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 @@ -130,62 +182,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/string/String.__eq (result 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 1068 - i32.lt_s - if - i32.const 33856 - i32.const 33904 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String.__ne (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1068 - i32.lt_s - if - i32.const 33856 - i32.const 33904 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=4 - call $~lib/string/String.__eq - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) ) diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index 57e9b4af89..ed9cf71122 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -2,25 +2,25 @@ (type $0 (func (param i32 i32) (result i32))) (type $1 (func (param i32 i32 i32) (result i32))) (type $2 (func (param i32) (result i32))) - (type $3 (func)) - (type $4 (func (param i32 i32))) + (type $3 (func (param i32 i32))) + (type $4 (func)) (type $5 (func (param i32))) (type $6 (func (result i32))) - (type $7 (func (param i32 i32 i32))) - (type $8 (func (param i32 i32) (result f64))) - (type $9 (func (param i32) (result f64))) - (type $10 (func (param i64 i32) (result i32))) + (type $7 (func (param i32) (result f64))) + (type $8 (func (param i64 i32) (result i32))) + (type $9 (func (param i32 i32) (result f64))) + (type $10 (func (param i32 i32 i32))) (type $11 (func (param i32 i32 i32 i32))) - (type $12 (func (param i32 i32 i32 i32) (result i32))) - (type $13 (func (param i32 i32 i64))) - (type $14 (func (param f64 i32) (result f64))) - (type $15 (func (param i32 i64 i32 i32))) - (type $16 (func (param i32 i64 i32))) - (type $17 (func (param i64 i64 i32 i64 i32) (result i32))) - (type $18 (func (param f64 i32) (result i32))) - (type $19 (func (result i64))) - (type $20 (func (param f64) (result i32))) - (type $21 (func (param f32) (result i32))) + (type $12 (func (param f64) (result i32))) + (type $13 (func (param i32 i32 i32 i32) (result i32))) + (type $14 (func (param i32 i64 i32 i32))) + (type $15 (func (param f32) (result i32))) + (type $16 (func (param f64 i32) (result i32))) + (type $17 (func (result i64))) + (type $18 (func (param i32 i64 i32))) + (type $19 (func (param i32 i32 i64))) + (type $20 (func (param f64 i32) (result f64))) + (type $21 (func (param i64 i64 i32 i64 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $std/string/str (mut i32) (i32.const 1056)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -984,1333 +984,854 @@ (export "getString" (func $std/string/getString)) (export "memory" (memory $0)) (start $~start) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $1 - local.get $3 - i32.const 4 - i32.ge_u - if (result i32) - local.get $1 - i32.const 7 - i32.and - local.get $2 - i32.const 7 - i32.and - i32.or - else + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.eqz + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - loop $do-loop|0 - local.get $1 - i64.load - local.get $2 - i64.load - i64.eq - if - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $3 - i32.const 4 - i32.sub - local.tee $3 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - loop $while-continue|1 - local.get $3 - local.tee $0 + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $2 + local.get $1 + i32.const 20 i32.sub - local.set $3 + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - if - local.get $1 - i32.load16_u - local.tee $0 - local.get $2 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $0 - local.get $4 - i32.sub - return - end - local.get $1 - i32.const 2 - i32.add - local.set $1 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 - end + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + i32.const 0 + local.get $1 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $std/string/str - local.tee $0 + (func $~lib/number/F64.parseFloat (param $0 i32) (result f64) + (local $1 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 26636 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1264 - call $~lib/rt/itcms/__visit - i32.const 14064 - call $~lib/rt/itcms/__visit - i32.const 15712 - call $~lib/rt/itcms/__visit - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 16640 - call $~lib/rt/itcms/__visit - i32.const 17696 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1440 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/util/string/strtod + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i64) (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + (local $4 i64) + (local $5 i64) + (local $6 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 26636 + i32.lt_s if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$287 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 59404 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$287 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1440 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + i32.const 59424 + i32.const 59472 i32.const 1 - else - local.get $1 - i32.const 26608 - i32.load - i32.gt_u - if - i32.const 1264 - i32.const 1568 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 26612 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $1 - local.get $0 + i32.const 2 + i32.lt_s local.get $1 - i32.load offset=4 - i32.const 3 - i32.and + i32.const 36 + i32.gt_s i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz if - i32.const 0 - i32.const 1648 - i32.const 268 - i32.const 14 + i32.const 16048 + i32.const 16176 + i32.const 401 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + local.get $0 + i64.eqz if - i32.const 0 - i32.const 1648 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1648 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3392 + return end local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 + i32.const 10 + i32.eq if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + local.get $0 + i64.const 4294967295 + i64.le_u if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add + i32.wrap_i64 local.tee $1 - i32.load offset=4 - i32.const -2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $6 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store local.get $3 - i32.rotl - i32.and - local.set $3 local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if + local.get $6 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end + local.tee $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $1 + call $~lib/util/number/utoa64_dec_lut end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1648 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1648 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if + else local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz + i32.const 16 + i32.eq if - i32.const 0 - i32.const 1648 - 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 + global.get $~lib/memory/__stack_pointer + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + loop $while-continue|0 + local.get $1 + i32.const 2 + i32.ge_u + if + local.get $3 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.const 16640 + i32.add + i32.load + i32.store + local.get $0 + i64.const 8 + i64.shr_u + local.set $0 + br $while-continue|0 + end + end + local.get $1 + i32.const 1 + i32.and + if + local.get $3 + local.get $0 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.const 16640 + i32.add + i32.load16_u + i32.store16 + end + else + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/util/number/ulog_base$180 (result i32) + local.get $1 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + br $__inlined_func$~lib/util/number/ulog_base$180 + end + local.get $1 + i64.extend_i32_s + local.tee $5 + local.set $4 + i32.const 1 + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $4 + i64.ge_u + if + local.get $2 + local.get $4 + i64.div_u + local.set $2 + local.get $4 + local.get $4 + i64.mul + local.set $4 + local.get $3 + i32.const 1 + i32.shl + local.set $3 + br $while-continue|01 + end + end + loop $while-continue|1 + local.get $2 + i64.const 0 + i64.ne + if + local.get $2 + local.get $5 + i64.div_u + local.set $2 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $while-continue|1 + end + end + local.get $3 + i32.const 1 + i32.sub + end + local.tee $6 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $6 + local.get $1 + call $~lib/util/number/utoa64_any_core + end end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u + ) + (func $~lib/util/number/dtoa (param $0 f64) (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 + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s if - i32.const 0 - i32.const 1648 - i32.const 233 - i32.const 14 + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 23280 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne + if + i32.const 7696 + local.set $1 + local.get $0 + local.get $0 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 8960 + i32.const 23312 + local.get $0 + f64.const 0 + f64.lt + select + local.set $1 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 23344 + local.get $2 + memory.copy + end + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $2 - i32.add - i32.ne + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 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 26636 + i32.lt_s if - i32.const 0 - i32.const 1648 - i32.const 234 - i32.const 14 + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - 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 1648 - 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 offset=96 - local.set $3 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 + i32.store local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 + i32.lt_s local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl + i32.const 36 + i32.gt_s i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u if - i32.const 0 - i32.const 1648 - i32.const 382 - i32.const 14 + i32.const 16048 + i32.const 16176 + i32.const 350 + i32.const 5 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 offset=1568 - local.tee $3 + i32.eqz if - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1648 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1648 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if + global.set $~lib/memory/__stack_pointer + i32.const 3392 return end local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.const 10 + i32.eq if - unreachable - end - i32.const 59408 - i32.const 0 - i32.store - i32.const 60976 - i32.const 0 - i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 23 + i32.const 100000 i32.lt_u - if + if (result i32) local.get $0 - i32.const 2 - i32.shl - i32.const 59408 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + local.get $1 + i32.const 16 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 31 + local.get $0 + i32.clz + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $0 + i64.extend_i32_u + local.set $3 + loop $while-continue|0 local.get $1 - i32.const 16 - i32.lt_u + i32.const 2 + i32.ge_u if - local.get $0 - i32.const 4 - i32.shl + local.get $2 local.get $1 - i32.add i32.const 2 + i32.sub + local.tee $1 + i32.const 1 i32.shl - i32.const 59408 i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 + local.get $3 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.const 16640 i32.add - local.set $1 - br $for-loop|1 + i32.load + i32.store + local.get $3 + i64.const 8 + i64.shr_u + local.set $3 + br $while-continue|0 end end - local.get $0 + local.get $1 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 59408 - i32.const 60980 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 59408 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 $2 + local.get $3 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.const 16640 + i32.add + i32.load16_u + i32.store16 + end + else + local.get $0 + i64.extend_i32_u + local.set $4 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/util/number/ulog_base$175 (result i32) + local.get $1 + i32.popcnt + i32.const 1 + i32.eq if - local.get $0 - global.set $~lib/rt/itcms/iter + i32.const 63 + local.get $4 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 local.get $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + br $__inlined_func$~lib/util/number/ulog_base$175 + end + local.get $1 + i64.extend_i32_s + local.tee $5 + local.set $3 + i32.const 1 + local.set $2 + loop $while-continue|01 + local.get $3 + local.get $4 + i64.le_u if - local.get $0 + local.get $4 + local.get $3 + i64.div_u + local.set $4 + local.get $3 + local.get $3 + i64.mul + local.set $3 local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 + i32.const 1 + i32.shl + local.set $2 + br $while-continue|01 end - local.get $0 - i32.load 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 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 59404 - i32.lt_u + loop $while-continue|1 + local.get $4 + i64.const 0 + i64.ne if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.const 4 + local.get $4 + local.get $5 + i64.div_u + local.set $4 + local.get $2 + i32.const 1 i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 + local.set $2 + br $while-continue|1 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + local.get $2 + i32.const 1 + i32.sub 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.tee $6 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz + i64.extend_i32_u + local.get $6 local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1440 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 59404 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add + call $~lib/util/number/utoa64_any_core + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/itcms/__new (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 1376 + i32.const 1440 + i32.const 261 + 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$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 59404 - i32.ge_u + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - 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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1648 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load + global.get $~lib/rt/itcms/total i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $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 1648 - i32.const 334 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1648 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1376 - i32.const 1440 - i32.const 261 - 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$70 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold end end global.get $~lib/rt/tlsf/ROOT @@ -2354,8 +1875,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -2383,7 +1902,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -2397,7 +1917,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -2569,1810 +2091,1749 @@ memory.fill local.get $1 ) - (func $~lib/string/String.fromCharCode@varargs (param $0 i32) (result i32) - (local $1 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const -1 - local.set $1 + (func $~lib/string/parseInt (param $0 i32) (param $1 i32) (result f64) + (local $2 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 local.get $1 - call $~lib/string/String.fromCharCode + call $~lib/util/string/strtol + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.eqz - if - return - end - local.get $0 - i32.eqz + (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result 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 26636 + i32.lt_s if - i32.const 0 - i32.const 1440 - i32.const 295 - i32.const 14 + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 20 - i32.sub - local.tee $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1264 + i32.const 15664 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.load offset=4 - i32.const 3 - i32.and - i32.eq + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end + i32.const 15712 + i32.const 15664 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/math/ipow32 (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - i32.const 5 - local.set $1 - i32.const 1 - local.set $2 + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.const 2 + i32.lt_s + local.get $1 + i32.const 36 + i32.gt_s + i32.or + if + i32.const 16048 + i32.const 16176 + i32.const 373 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3392 + return + end i32.const 0 - i32.le_s + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 + select + local.set $2 + local.get $1 + i32.const 10 + i32.eq if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store local.get $0 - i32.eqz - return + local.get $4 + i32.add + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut else - local.get $0 - i32.const 1 + local.get $1 + i32.const 16 i32.eq if - i32.const 5 - return - else - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 31 + local.get $2 + i32.clz + i32.sub i32.const 2 - i32.eq - if - i32.const 25 - return - else - local.get $0 - i32.const 32 - i32.lt_s + i32.shr_s + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $4 + i32.add + local.set $7 + local.get $2 + i64.extend_i32_u + local.set $3 + loop $while-continue|0 + local.get $1 + i32.const 2 + i32.ge_u if - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - i32.const 31 - local.get $0 - i32.clz - i32.sub - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - i32.const 5 - i32.const 1 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - i32.const 25 - local.set $1 - end - local.get $1 - local.get $2 - i32.mul - local.get $2 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - local.get $1 - local.get $1 - i32.mul - local.set $1 - end - local.get $1 - local.get $2 - i32.mul - local.get $2 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - local.get $1 - local.get $1 - i32.mul - local.set $1 - end - local.get $1 - local.get $2 - i32.mul - local.get $2 - local.get $0 - i32.const 1 - i32.and - select - local.set $2 - local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - local.get $1 - local.get $1 - i32.mul - local.set $1 - end - local.get $1 - local.get $2 - i32.mul - local.get $2 + local.get $7 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.const 16640 + i32.add + i32.load + i32.store + local.get $3 + i64.const 8 + i64.shr_u + local.set $3 + br $while-continue|0 + end + end + local.get $1 + i32.const 1 + i32.and + if + local.get $7 + local.get $3 + i32.wrap_i64 + i32.const 6 + i32.shl + i32.const 16640 + i32.add + i32.load16_u + i32.store16 + end + else + local.get $2 + i64.extend_i32_u + local.set $5 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/util/number/ulog_base$171 (result i32) + local.get $1 + i32.popcnt + i32.const 1 + i32.eq + if + i32.const 63 + local.get $5 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + br $__inlined_func$~lib/util/number/ulog_base$171 + end + local.get $1 + i64.extend_i32_s + local.tee $6 + local.set $3 + i32.const 1 + local.set $0 + loop $while-continue|01 + local.get $3 + local.get $5 + i64.le_u + if + local.get $5 + local.get $3 + i64.div_u + local.set $5 + local.get $3 + local.get $3 + i64.mul + local.set $3 local.get $0 i32.const 1 - i32.and - select - local.set $2 + i32.shl + local.set $0 + br $while-continue|01 + end + end + loop $while-continue|1 + local.get $5 + i64.const 0 + i64.ne + if + local.get $5 + local.get $6 + i64.div_u + local.set $5 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|1 end - local.get $2 - return end + local.get $0 + i32.const 1 + i32.sub end - end - end - loop $while-continue|1 - local.get $0 - if - local.get $1 - local.get $2 - i32.mul - local.get $2 - local.get $0 + local.tee $7 i32.const 1 - i32.and - select - local.set $2 + i32.shl + local.get $4 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store local.get $0 - i32.const 1 - i32.shr_u - local.set $0 - local.get $1 + local.get $4 + i32.add + local.get $2 + i64.extend_i32_u + local.get $7 local.get $1 - i32.mul - local.set $1 - br $while-continue|1 + call $~lib/util/number/utoa64_any_core end end - local.get $2 - ) - (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) - local.get $1 - i32.const 1023 - i32.gt_s - if (result f64) + local.get $4 + if local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - local.set $0 - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - i32.const 1023 - i32.gt_s - if (result f64) - i32.const 1023 - local.get $1 - i32.const 1023 - i32.sub - local.tee $1 - local.get $1 - i32.const 1023 - i32.ge_s - select - local.set $1 - local.get $0 - f64.const 8988465674311579538646525e283 - f64.mul - else - local.get $0 - end - else - local.get $1 - i32.const -1022 - i32.lt_s - if (result f64) - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - local.set $0 - local.get $1 - i32.const 969 - i32.add - local.tee $1 - i32.const -1022 - i32.lt_s - if (result f64) - i32.const -1022 - local.get $1 - i32.const 969 - i32.add - local.tee $1 - local.get $1 - i32.const -1022 - i32.le_s - select - local.set $1 - local.get $0 - f64.const 2.004168360008973e-292 - f64.mul - else - local.get $0 - end - else - local.get $0 - end + i32.const 45 + i32.store16 end - local.get $1 - i64.extend_i32_s - i64.const 1023 - i64.add - i64.const 52 - i64.shl - f64.reinterpret_i64 - f64.mul + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/string/String#replaceAll (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - local.get $1 - local.get $0 + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=16 - local.get $0 - return + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 + i32.store local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.gt_u - select - memory.copy - local.get $2 - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 + i32.store + block $folding-inner1 local.get $1 - i32.const 10000 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $8 + local.get $3 i32.ge_u if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + local.get $8 + i32.ge_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + local.set $0 + end + br $folding-inner1 end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i32.load i32.store - else - local.get $0 local.get $2 - i32.const 1 + i32.const 20 i32.sub + i32.load offset=16 i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) - (local $4 i64) - (local $5 i64) - local.get $3 - i64.extend_i32_s - local.set $5 - local.get $3 - local.get $3 - i32.const 1 - i32.sub - i32.and - if - loop $do-loop|1 - local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - local.get $5 - i64.div_u - local.tee $1 - local.get $5 - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.const 17696 - i32.add - i32.load16_u - i32.store16 - local.get $1 - i64.const 0 - i64.ne - br_if $do-loop|1 - end - else - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s + i32.shr_u local.set $4 - local.get $5 - i64.const 1 - i64.sub - local.set $5 - loop $do-loop|0 - local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.const 17696 - i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $4 - i64.shr_u - local.tee $1 - i64.const 0 - i64.ne - br_if $do-loop|0 - end - end - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u - if - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i64.const 100000000 - i64.div_u - local.tee $1 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u + block $folding-inner0 + local.get $8 + i32.eqz + if + local.get $4 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $3 + i32.const 1 + i32.add + local.get $4 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store offset=8 + local.get $11 + local.get $2 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $4 + local.set $1 + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_u + if + local.get $11 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $11 + local.get $1 + i32.const 1 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + br $folding-inner0 + end local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u + local.get $8 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store offset=12 + local.get $11 + local.get $0 + local.get $3 + memory.copy + loop $while-continue|1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $10 + call $~lib/string/String#indexOf + local.tee $3 + i32.const -1 + i32.xor + if + local.get $11 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $3 + local.get $8 + i32.add + local.set $10 + br $while-continue|1 + end + end + br $folding-inner0 + end local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 16220 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + local.set $5 + loop $while-continue|2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $10 + call $~lib/string/String#indexOf + local.tee $7 + i32.const -1 + i32.xor + if + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.store + local.get $11 + call $~lib/string/String.__not + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store offset=16 + end + local.get $7 + local.get $10 + i32.sub + local.tee $6 + local.get $9 + i32.add + local.get $4 + i32.add + local.get $5 + i32.gt_u + if + global.get $~lib/memory/__stack_pointer + local.get $11 + local.get $5 + i32.const 1 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $11 + i32.store offset=16 + end + local.get $11 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 1 + i32.shl + memory.copy + local.get $11 + local.get $6 + local.get $9 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.add + local.get $2 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $4 + local.get $6 + i32.add + local.set $9 + local.get $7 + local.get $8 + i32.add + local.set $10 + br $while-continue|2 + end + end + local.get $11 + if + local.get $3 + local.get $10 + i32.sub + local.tee $1 + local.get $9 + i32.add + local.get $5 + i32.gt_u + if + global.get $~lib/memory/__stack_pointer + local.get $11 + local.get $5 + i32.const 1 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $11 + i32.store offset=16 + end + local.get $1 + if + local.get $11 + local.get $9 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $10 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 1 + i32.shl + memory.copy + end + local.get $1 + local.get $9 + i32.add + local.tee $0 + local.get $5 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $11 + local.get $0 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $11 + i32.store offset=16 + end + br $folding-inner0 + end + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 - local.get $0 - i64.sub - local.set $10 - i64.const 1 + (func $~lib/array/Array#get:length (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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $11 - i64.extend_i32_s - local.tee $0 - i64.shl - local.tee $7 - i64.const 1 - i64.sub - local.tee $12 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $1 - i64.and - local.set $9 + i32.const 2 + i32.lt_s local.get $1 - local.get $0 - i64.shr_u + i32.const 36 + i32.gt_s + i32.or + if + i32.const 16048 + i32.const 16176 + i32.const 431 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3392 + return + end + i64.const 0 + local.get $0 + i64.sub + local.get $0 + local.get $0 + i64.const 63 + i64.shr_u i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u + i32.const 1 + i32.shl + local.tee $4 + select + local.set $0 + local.get $1 + i32.const 10 + i32.eq + if + local.get $0 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.wrap_i64 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $7 i32.const 1 + i32.shl + local.get $4 i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 + i32.add + local.get $1 + local.get $7 + call $~lib/util/number/utoa32_dec_lut else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $0 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $0 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $0 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $0 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $0 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $0 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $0 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + local.get $4 i32.add - local.get $5 - i32.const 1000 - i32.ge_u + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 i32.add + local.get $0 + local.get $1 + call $~lib/util/number/utoa64_dec_lut end else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 + local.get $1 + i32.const 16 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 63 + local.get $0 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 2 + i32.shr_s + i32.const 1 i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 i32.add - local.get $5 - i32.const 100000000 - i32.ge_u + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 i32.add - end - end - local.set $8 - loop $while-continue|0 - local.get $8 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $8 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $6 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $6 - i32.const 0 - local.set $5 - br $break|1 + local.set $7 + loop $while-continue|0 + local.get $1 + i32.const 2 + i32.ge_u + if + local.get $7 + local.get $1 + i32.const 2 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + i32.add + local.get $0 + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.const 16640 + i32.add + i32.load + i32.store + local.get $0 + i64.const 8 + i64.shr_u + local.set $0 + br $while-continue|0 end - i32.const 0 - local.set $6 end - local.get $4 - local.get $6 - i32.or + local.get $1 + i32.const 1 + i32.and if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 + local.get $7 + local.get $0 + i32.wrap_i64 + i32.const 6 i32.shl - i32.const 23344 - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 + i32.const 16640 i32.add + i32.load16_u i32.store16 end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $9 - i64.add - local.tee $0 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $8 - i32.const 2 - i32.shl - i32.const 24272 - i32.add - i64.load32_u + else + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/util/number/ulog_base$185 (result i32) local.get $1 - i64.shl - local.set $7 - local.get $4 + i32.popcnt i32.const 1 - i32.shl - i32.const 23342 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|3 - local.get $0 - local.get $10 - i64.lt_u - local.get $3 + i32.eq + if + i32.const 63 local.get $0 - i64.sub - local.get $7 + i64.clz + i32.wrap_i64 + i32.sub + i32.const 31 + local.get $1 + i32.clz + i32.sub + i32.div_u + i32.const 1 + i32.add + br $__inlined_func$~lib/util/number/ulog_base$185 + end + local.get $1 + i64.extend_i32_s + local.tee $6 + local.set $5 + i32.const 1 + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $5 i64.ge_u - i32.and - if (result i32) - local.get $10 - local.get $0 - local.get $7 - i64.add - local.tee $1 - i64.gt_u - local.get $10 - local.get $0 - i64.sub - local.get $1 - local.get $10 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 + if + local.get $2 + local.get $5 + i64.div_u + local.set $2 + local.get $5 + local.get $5 + i64.mul + local.set $5 + local.get $3 + i32.const 1 + i32.shl + local.set $3 + br $while-continue|01 end + end + loop $while-continue|1 + local.get $2 + i64.const 0 + i64.ne if + local.get $2 local.get $6 + i64.div_u + local.set $2 + local.get $3 i32.const 1 - i32.sub - local.set $6 - local.get $0 - local.get $7 - i64.add - local.set $0 - br $while-continue|3 + i32.add + local.set $3 + br $while-continue|1 end end - local.get $2 - local.get $6 - i32.store16 - local.get $4 - return + local.get $3 + i32.const 1 + i32.sub end - br $while-continue|0 - end - end - loop $while-continue|4 - local.get $3 - i64.const 10 - i64.mul - local.set $3 - local.get $9 - i64.const 10 - i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u - local.tee $0 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 + local.tee $7 i32.const 1 i32.shl - i32.const 23344 + local.get $4 i32.add - local.get $0 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $4 i32.add - i32.store16 - end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $1 - local.get $12 - i64.and - local.tee $9 - local.get $3 - i64.ge_u - br_if $while-continue|4 - end - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $10 - i32.const 0 - local.get $8 - i32.sub - i32.const 2 - i32.shl - i32.const 24272 - i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $4 - i32.const 1 - i32.shl - i32.const 23342 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|6 - local.get $1 - local.get $9 - i64.gt_u - local.get $3 - local.get $9 - i64.sub - local.get $7 - i64.ge_u - i32.and - if (result i32) - local.get $1 - local.get $7 - local.get $9 - i64.add - local.tee $0 - i64.gt_u - local.get $1 - local.get $9 - i64.sub local.get $0 - local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 local.get $7 - local.get $9 - i64.add - local.set $9 - br $while-continue|6 + local.get $1 + call $~lib/util/number/utoa64_any_core end end - local.get $2 - local.get $6 - i32.store16 local.get $4 + if + local.get $3 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - local.get $2 - i32.eqz + 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 26636 + i32.lt_s if - local.get $0 - local.get $1 + i32.const 59424 + i32.const 59472 i32.const 1 - i32.shl + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const 3145774 - i32.store - local.get $1 - i32.const 2 + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 return end - local.get $1 local.get $2 - i32.add - local.tee $3 - i32.const 21 - i32.le_s - local.get $1 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + local.set $2 + local.get $4 local.get $3 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 + i32.sub + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $2 local.get $1 local.get $3 - i32.lt_s + call $~lib/util/string/compareImpl + i32.eqz if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $1 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + local.get $2 + return end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $3 - i32.const 2 - i32.add - else - local.get $3 - i32.const 21 - i32.le_s - local.get $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + ) + (func $~lib/string/String#localeCompare (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 - i32.gt_s - i32.and - if (result i32) + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + i32.const 0 + local.get $1 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.tee $0 + local.get $2 + local.get $3 + i32.sub + local.get $0 + select + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + i32.gt_s + local.get $0 + i32.const 0 + i32.lt_s + i32.sub + ) + (func $~lib/string/String#replace (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $4 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.le_u + if + local.get $3 + local.get $4 + i32.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + local.set $0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/string/String#indexOf + local.tee $1 + i32.const -1 + i32.xor + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + local.get $4 + local.get $3 + i32.sub + local.tee $6 + i32.add + local.tee $4 + if + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1 i32.shl - i32.add - local.tee $0 i32.const 2 - i32.add + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + local.get $4 local.get $0 - i32.const 0 + local.get $1 + i32.const 1 + i32.shl + local.tee $7 + memory.copy + local.get $4 + local.get $7 + i32.add local.get $2 - i32.sub + local.get $5 i32.const 1 i32.shl memory.copy - local.get $0 - i32.const 46 - i32.store16 + local.get $4 local.get $1 + local.get $5 + i32.add i32.const 1 + i32.shl i32.add - else - local.get $3 - i32.const 0 - i32.le_s + local.get $0 + local.get $1 local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 - local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $4 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $1 - i32.const 2 - i32.add - end + i32.add + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $1 + i32.sub + i32.const 1 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/number/dtoa_core (param $0 f64) (param $1 i32) (result i32) - (local $2 i64) + (func $~lib/string/String.__gt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 i32) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - local.get $0 - f64.const 0 - f64.lt - local.tee $3 - if - i32.const 23344 - i32.const 45 - i32.store16 - local.get $0 - f64.neg - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - if (result i32) + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $folding-inner0 local.get $0 - f32.demote_f64 - i32.reinterpret_f32 - local.tee $5 - i32.const 2139095040 - i32.and - i32.const 23 - i32.shr_u - local.set $9 - local.get $5 - i32.const 8388607 - i32.and - i64.extend_i32_u - local.get $9 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 23 - i64.shl - i64.add - local.set $2 - local.get $9 + local.get $1 + i32.eq + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - local.get $9 - select - i32.const 150 + i32.shr_u + local.tee $2 + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 i32.sub - else + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer local.get $0 - i64.reinterpret_f64 - local.tee $2 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.set $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + i32.const 0 + local.get $1 local.get $2 - i64.const 4503599627370495 - i64.and - local.get $5 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add - local.set $2 - local.get $5 - i32.const 1 - local.get $5 + i32.gt_s + local.get $2 + local.get $3 + i32.gt_s + local.get $0 select - i32.const 1075 - i32.sub + return end - local.tee $9 - i32.const 1 - i32.sub - local.get $2 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $4 - i64.clz - i32.wrap_i64 - local.tee $10 - i32.sub - local.set $5 - local.get $4 - local.get $10 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $2 - local.get $2 - i64.const 8388608 - i64.const 4503599627370496 - local.get $1 - select - i64.eq - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $1 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $9 - local.get $1 - i32.sub - local.get $5 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $5 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.tee $0 - i32.trunc_sat_f64_s - local.tee $1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - f64.convert_i32_s + i32.store offset=4 local.get $0 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $1 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 i32.const 3 - i32.shl - local.tee $5 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - global.set $~lib/util/number/_K - local.get $5 - i32.const 23400 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 local.get $1 - i32.const 1 - i32.shl - i32.const 24096 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $2 - i64.const 4294967295 - i64.and - local.set $6 - global.get $~lib/util/number/_frc_pow - local.tee $11 - i64.const 4294967295 - i64.and - local.tee $12 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 - i64.mul - local.get $6 - local.get $12 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $7 - global.get $~lib/util/number/_frc_plus - local.tee $4 - i64.const 4294967295 - i64.and - local.set $13 - local.get $4 - i64.const 32 - i64.shr_u - local.tee $4 - local.get $12 - i64.mul - local.get $12 - local.get $13 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $8 - global.get $~lib/util/number/_frc_minus - local.tee $14 - i64.const 4294967295 - i64.and - local.set $15 - local.get $14 - i64.const 32 - i64.shr_u - local.tee $14 - local.get $12 - i64.mul - local.get $12 - local.get $15 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $12 - local.get $3 - i32.const 1 - i32.shl - i32.const 23344 - i32.add - local.get $2 - local.get $11 - i64.const 32 - i64.shr_u - local.tee $2 - i64.mul - local.get $7 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $6 - i64.mul - local.get $7 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $4 - i64.mul - local.get $8 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $13 - i64.mul - local.get $8 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $4 - global.get $~lib/util/number/_exp_pow - global.get $~lib/util/number/_exp - i32.add - i32.const -64 - i32.sub - local.get $4 - local.get $2 - local.get $14 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add local.get $2 - local.get $15 - i64.mul - local.get $12 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - local.get $3 - call $~lib/util/number/genDigits - local.get $3 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $3 + call $~lib/string/String#split + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/string/getString (result i32) - global.get $std/string/str - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__lt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/array/Array<~lib/string/String> - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array<~lib/string/String> $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - br $folding-inner1 - end - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - br $folding-inner1 - end - unreachable - end - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~start - call $start:std/string - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4391,46 +3852,42 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end block $folding-inner0 - local.get $1 - i32.eqz local.get $0 - i32.eqz - i32.or + local.get $1 + i32.eq br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $2 + local.tee $2 + i32.eqz + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $2 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - i32.ne - br_if $folding-inner0 + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -4440,13 +3897,25 @@ local.get $0 i32.const 0 local.get $1 + local.get $3 local.get $2 + local.get $2 + local.get $3 + i32.gt_s + local.tee $0 + select call $~lib/util/string/compareImpl - i32.eqz + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.lt_s + local.get $0 + local.get $1 + select return end global.get $~lib/memory/__stack_pointer @@ -4455,10 +3924,12 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/string/String#at (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (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 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4473,184 +3944,191 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 - i32.const 0 + local.set $4 local.get $1 i32.const 0 i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + if (result i32) + i32.const 1 + else + local.get $4 + i64.extend_i32_s + local.get $1 + i64.extend_i32_s + i64.mul + i64.const 268435456 + i64.gt_u + end if - i32.const 1264 + i32.const 14064 i32.const 1328 - i32.const 57 - i32.const 31 + i32.const 334 + i32.const 7 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 + local.get $4 + i32.eqz local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String#charAt (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s + i32.eqz + i32.or if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u - i32.ge_u + i32.eq if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1712 + local.get $0 return end global.get $~lib/memory/__stack_pointer - i32.const 2 + local.get $1 + local.get $4 + i32.mul + i32.const 1 + i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 + local.get $4 i32.const 1 i32.shl - i32.add - i32.load16_u - i32.store16 + local.tee $4 + local.get $1 + i32.mul + local.set $1 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.gt_u + if + local.get $2 + local.get $3 + i32.add + local.get $0 + local.get $4 + memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) - (func $~lib/string/String.__not (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $1 + local.get $3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 + i32.ge_u if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + local.get $1 + i32.const 7 + i32.and + local.get $2 + i32.const 7 + i32.and + i32.or else - i32.const 0 + i32.const 1 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer i32.eqz - ) - (func $~lib/array/Array#get:length (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 26636 - i32.lt_s if - i32.const 59424 - i32.const 59472 - i32.const 1 + loop $do-loop|0 + local.get $1 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $3 + i32.const 4 + i32.sub + local.tee $3 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + loop $while-continue|1 + local.get $3 + local.tee $0 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $3 + local.get $0 + if + local.get $1 + i32.load16_u + local.tee $0 + local.get $2 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $0 + local.get $4 + i32.sub + return + end + local.get $1 + i32.const 2 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.fromCharCodes (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4672,58 +4150,102 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $3 local.get $0 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $3 + i32.gt_s + select + local.tee $3 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + local.get $2 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $4 + local.get $3 + local.get $2 + local.get $2 + local.get $3 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $2 + local.get $4 + i32.sub + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end + local.get $4 + i32.eqz + local.get $2 local.get $1 i32.const 1 i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 local.get $0 - i32.load offset=4 - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + local.get $4 + i32.add + local.get $3 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) - (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4743,97 +4265,76 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u local.tee $3 - i32.eqz + local.get $1 + i32.const 0 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 - return + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 + local.get $1 i32.sub - i32.load offset=16 + local.tee $3 + local.get $2 + local.get $3 + i32.lt_s + select i32.const 1 - i32.shr_u - local.tee $4 - i32.eqz + i32.shl + local.tee $2 + i32.const 0 + i32.le_s if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + i32.const 1712 return end + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $4 - local.get $2 - local.get $4 - i32.lt_s - select - local.set $2 - local.get $4 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 local.get $3 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $1 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $3 ) (func $~lib/string/String#padStart (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5096,11 +4597,12 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $~lib/string/String#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5115,112 +4617,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 0 i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + i32.const 2 + i32.shl local.tee $4 - i32.eqz + i32.const 1 + call $~lib/rt/itcms/__new + local.set $3 + local.get $2 if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - return + local.get $3 + local.get $2 + local.get $4 + memory.copy end - local.get $2 - i32.const 0 - local.get $2 + local.get $3 + i32.store + i32.const 16 + local.get $1 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $3 + i32.store + local.get $1 + local.get $3 i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $4 + call $~lib/rt/itcms/__link + local.get $1 local.get $3 - i32.sub - local.tee $4 - local.get $2 + i32.store offset=4 + local.get $1 local.get $4 - i32.lt_s - select - local.set $2 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $1 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - end - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end - end + i32.store offset=8 + local.get $1 + local.get $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const -1 + local.get $1 ) - (func $~lib/string/String#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/strtob (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5235,145 +4681,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 2147483647 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#localeCompare (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 0 - local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.tee $0 - local.get $2 - local.get $3 - i32.sub - local.get $0 - select - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - i32.gt_s - local.get $0 - i32.const 0 - i32.lt_s - i32.sub - ) - (func $~lib/string/String#trimStart (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -5383,776 +4692,672 @@ i32.load offset=16 i32.const -2 i32.and - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if (result i32) - block $__inlined_func$~lib/util/string/isSpace (result i32) - local.get $0 - local.get $1 - i32.add - i32.load16_u - local.tee $3 - i32.const 5760 - i32.lt_u - if - local.get $3 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $3 - i32.const 9 + local.tee $1 + i32.const 8 + i32.gt_u + if (result i32) + loop $while-continue|0 + local.get $1 + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$4 (result i32) + local.get $0 + local.get $1 + i32.add + i32.const 2 i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace - end - i32.const 1 - local.get $3 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace - drop - block $break|0 - block $case6|0 - local.get $3 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8287 - i32.eq - br_if $case6|0 + i32.load16_u + local.tee $3 + i32.const 5760 + i32.lt_u + if local.get $3 - i32.const 12288 + i32.const 128 + i32.or + i32.const 160 i32.eq - br_if $case6|0 local.get $3 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$4 end i32.const 1 - br $__inlined_func$~lib/util/string/isSpace + local.get $3 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$4 + drop + block $break|0 + block $case6|0 + local.get $3 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$4 + end + i32.const 0 end + else i32.const 0 end - else - i32.const 0 + if + local.get $1 + i32.const 2 + i32.sub + local.set $1 + br $while-continue|0 + end end - if + local.get $1 + i32.const 8 + i32.gt_u + if (result i32) + loop $while-continue|1 + local.get $1 + local.get $2 + i32.gt_u + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$5 (result i32) + local.get $0 + local.get $2 + i32.add + i32.load16_u + local.tee $3 + i32.const 5760 + i32.lt_u + if + local.get $3 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $3 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$5 + end + i32.const 1 + local.get $3 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$5 + drop + block $break|00 + block $case6|01 + local.get $3 + i32.const 5760 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 8232 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 8233 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 8239 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 8287 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 12288 + i32.eq + br_if $case6|01 + local.get $3 + i32.const 65279 + i32.eq + br_if $case6|01 + br $break|00 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$5 + end + i32.const 0 + end + else + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end + end + local.get $1 + local.get $2 + i32.sub + else local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 end + else + local.get $1 end - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - local.get $1 - i32.sub - local.tee $2 - i32.eqz + i32.const 8 + i32.ne if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1712 + i32.const 0 return end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 local.get $0 - local.get $1 - i32.add local.get $2 - memory.copy + i32.add + i64.load + i64.const 28429475166421108 + i64.eq global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/string/String#trimEnd (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.set $1 loop $while-continue|0 local.get $1 - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$1 (result i32) - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.sub - i32.load16_u - local.tee $2 - i32.const 5760 - i32.lt_u - if - local.get $2 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $2 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$1 - end - i32.const 1 - local.get $2 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$1 - drop - block $break|0 - block $case6|0 - local.get $2 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $2 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $2 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $2 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $2 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $2 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $2 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$1 - end - i32.const 0 - end - else - i32.const 0 - end + i32.const 10000 + i32.ge_u if local.get $1 - i32.const 2 - i32.sub + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u local.set $1 - br $while-continue|0 - end - end - local.get $1 - i32.eqz + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 end local.get $1 - local.get $3 - i32.eq + i32.const 10 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i32.load + i32.store + else local.get $0 - return + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/string/String#trim (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 36 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.const 1 - i32.shl - local.set $1 - loop $while-continue|0 - local.get $1 - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$2 (result i32) - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.sub - i32.load16_u - local.tee $4 - i32.const 5760 - i32.lt_u - if - local.get $4 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $4 - i32.const 9 + block $folding-inner4 + block $folding-inner3 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 36 + memory.fill + local.get $2 + i32.eqz + br_if $folding-inner1 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=12 + i32.eqz + if + local.get $2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $folding-inner4 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$2 - end - i32.const 1 - local.get $4 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$2 - drop - block $break|0 - block $case6|0 - local.get $4 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$2 - end - i32.const 0 - end - else - i32.const 0 - end - if - local.get $1 - i32.const 2 - i32.sub - local.set $1 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $1 - local.get $2 - i32.gt_u - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$3 (result i32) - local.get $0 - local.get $2 - i32.add - i32.load16_u - local.tee $4 - i32.const 5760 - i32.lt_u - if - local.get $4 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $4 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$3 - end - i32.const 1 - local.get $4 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$3 - drop - block $break|00 - block $case6|01 - local.get $4 - i32.const 5760 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 8232 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 8233 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 8239 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 8287 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 12288 - i32.eq - br_if $case6|01 - local.get $4 - i32.const 65279 - i32.eq - br_if $case6|01 - br $break|00 - end + i32.load offset=16 i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$3 - end - i32.const 0 - end - else - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - br $while-continue|1 - end - end - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - local.get $2 - i32.eqz - local.get $1 - local.get $3 - i32.const 1 - i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $2 - i32.add - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/util/string/strtob (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $1 - i32.const 8 - i32.gt_u - if (result i32) - loop $while-continue|0 - local.get $1 - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$4 (result i32) - local.get $0 + i32.shr_u + local.set $6 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.add - i32.const 2 + i32.store offset=4 + i32.const 2147483647 + local.get $2 + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $8 + local.get $1 + i32.const 20 i32.sub - i32.load16_u - local.tee $3 - i32.const 5760 - i32.lt_u - if - local.get $3 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $3 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$4 - end + i32.load offset=16 i32.const 1 - local.get $3 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$4 - drop - block $break|0 - block $case6|0 - local.get $3 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 12288 - i32.eq - br_if $case6|0 + i32.shr_u + local.tee $4 + if + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.load offset=4 + i32.const 1712 + i32.store + br $folding-inner4 + end + else + local.get $6 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $8 + local.get $6 + local.get $8 + i32.lt_s + select + local.tee $3 + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 local.get $3 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=12 + local.get $5 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$4 + br $folding-inner4 end + global.get $~lib/memory/__stack_pointer i32.const 0 - end - else - i32.const 0 - end - if - local.get $1 - i32.const 2 - i32.sub - local.set $1 - br $while-continue|0 - end - end - local.get $1 - i32.const 8 - i32.gt_u - if (result i32) - loop $while-continue|1 - local.get $1 - local.get $2 - i32.gt_u - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$5 (result i32) + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=20 + loop $while-continue|1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.add - i32.load16_u - local.tee $3 - i32.const 5760 - i32.lt_u + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=24 + local.get $0 + local.get $1 + local.get $3 + call $~lib/string/String#indexOf + local.tee $9 + i32.const -1 + i32.xor if + local.get $9 local.get $3 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $3 - i32.const 9 i32.sub - i32.const 4 - i32.le_u - i32.or - br $__inlined_func$~lib/util/string/isSpace$5 - end - i32.const 1 - local.get $3 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$5 - drop - block $break|00 - block $case6|01 - local.get $3 - i32.const 5760 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 8232 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 8233 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 8239 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 8287 - i32.eq - br_if $case6|01 - local.get $3 - i32.const 12288 - i32.eq - br_if $case6|01 + local.tee $7 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + local.tee $10 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=28 + local.get $7 + local.get $0 local.get $3 - i32.const 65279 - i32.eq - br_if $case6|01 - br $break|00 + i32.const 1 + i32.shl + i32.add + local.get $10 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=24 + local.get $2 + local.get $7 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1712 + call $~lib/array/Array<~lib/string/String>#push end + local.get $5 i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$5 - end - i32.const 0 - end - else + i32.add + local.tee $5 + local.get $8 + i32.eq + br_if $folding-inner3 + local.get $4 + local.get $9 + i32.add + local.set $3 + br $while-continue|1 + end + end + local.get $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $2 + local.get $0 + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner3 + end + local.get $6 + local.get $3 + i32.sub + local.tee $1 i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=32 + local.get $4 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=24 + local.get $2 + local.get $4 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1712 + call $~lib/array/Array<~lib/string/String>#push + end + br $folding-inner4 end - if - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 - end + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $2 - i32.sub - else - local.get $1 + i32.const 0 + i32.const 5 + i32.const 0 + call $~lib/rt/__newArray + local.set $2 + br $folding-inner4 end - else - local.get $1 - end - i32.const 8 - i32.ne - if global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $2 return end - local.get $0 - local.get $2 - i32.add - i64.load - i64.const 28429475166421108 - i64.eq global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 36 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) + (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 f64) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6172,331 +5377,61 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer + i32.const 2 local.get $0 + i32.const 65535 + i32.gt_u + local.tee $2 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 i32.store - block $folding-inner0 + local.get $2 + if local.get $0 - i32.const 20 + i32.const 1114111 + i32.gt_u + if + i32.const 0 + i32.const 1328 + i32.const 39 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.const 65536 i32.sub - i32.load offset=16 - i32.const 1 + local.tee $0 + i32.const 10 i32.shr_u - local.tee $2 - i32.eqz - br_if $folding-inner0 + i32.const 55296 + i32.or local.get $0 - i32.load16_u - local.set $3 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$6 (result i32) - local.get $3 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $3 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $3 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$6 - drop - i32.const 1 - local.get $3 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$6 - drop - block $break|0 - block $case6|0 - local.get $3 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $3 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$6 - end - i32.const 0 - end - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $3 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - f64.const 1 - local.set $4 - local.get $3 - i32.const 45 - i32.eq - local.tee $6 - local.get $3 - i32.const 43 - i32.eq + i32.const 1023 + i32.and + i32.const 56320 i32.or - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.eqz - br_if $folding-inner0 - f64.const -1 - f64.const 1 - local.get $6 - select - local.set $4 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $3 - end + i32.const 16 + i32.shl + i32.or + i32.store + else local.get $1 - if - local.get $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - br_if $folding-inner0 - local.get $1 - i32.const 16 - i32.eq - if - local.get $3 - i32.const 48 - i32.eq - local.get $2 - i32.const 2 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.load16_u offset=2 - i32.const 32 - i32.or - i32.const 120 - i32.eq - else - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 - i32.const 4 - i32.add - local.set $0 - end - end - else - local.get $3 - i32.const 48 - i32.eq - local.get $2 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $0 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $3 - i32.const 98 - i32.ne - if - local.get $3 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $3 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 2 - local.set $1 - br $break|1 - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 8 - local.set $1 - br $break|1 - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 16 - local.set $1 - end - end - local.get $1 - i32.const 10 - local.get $1 - select - local.set $1 - end - local.get $2 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 - local.get $2 - local.tee $3 - i32.const 1 - i32.sub - local.set $2 - local.get $3 - if - block $while-break|2 - local.get $0 - i32.load16_u - local.tee $6 - i32.const 48 - i32.sub - local.tee $3 - i32.const 10 - i32.ge_u - if - local.get $6 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $6 - i32.const 55 - i32.sub - else - local.get $6 - i32.const 87 - i32.sub - local.get $6 - local.get $6 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - end - local.set $3 - end - local.get $1 - local.get $3 - i32.le_u - if - local.get $2 - local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 - end - local.get $5 - local.get $1 - f64.convert_i32_s - f64.mul - local.get $3 - f64.convert_i32_u - f64.add - local.set $5 - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $while-continue|2 - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - f64.mul - return + local.get $0 + i32.store16 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - f64.const nan:0x8000000000000 + local.get $1 ) - (func $~lib/string/parseInt (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) + (func $~lib/string/String.__gte (param $0 i32) (param $1 i32) (result 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 @@ -6511,36 +5446,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 local.get $1 - call $~lib/util/string/strtol + call $~lib/string/String.__lt + i32.eqz global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/strtod (param $0 i32) (result f64) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 f64) - (local $9 i32) - (local $10 f64) - (local $11 i32) - (local $12 i64) - (local $13 i64) - (local $14 i64) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result 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 @@ -6555,814 +5480,438 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $folding-inner1 - block $folding-inner0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.eqz - br_if $folding-inner0 - local.get $0 - i32.load16_u - local.set $4 - f64.const 1 - local.set $10 - loop $while-continue|0 - local.get $5 - if (result i32) - block $__inlined_func$~lib/util/string/isSpace$7 (result i32) - local.get $4 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $4 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $4 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$7 - drop - i32.const 1 - local.get $4 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$7 - drop - block $break|0 - block $case6|0 - local.get $4 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $4 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$7 - end - i32.const 0 - end - else - i32.const 0 - end - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|0 - end - end - local.get $5 - i32.eqz - br_if $folding-inner0 - local.get $4 - i32.const 45 - i32.eq - if (result i32) - local.get $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + call $~lib/string/String#concat + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 i32.sub - local.tee $5 - i32.eqz - br_if $folding-inner0 - f64.const -1 - local.set $10 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - else - local.get $4 - i32.const 43 - i32.eq - if (result i32) - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $folding-inner0 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - else - local.get $4 - end - end - local.tee $4 - i32.const 73 - i32.eq - local.get $5 - i32.const 8 - i32.ge_s - i32.and - if - local.get $0 - i64.load - i64.const 29555310648492105 - i64.eq - if (result i32) - local.get $0 - i64.load offset=8 - i64.const 34058970405077102 - i64.eq - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - f64.const inf - f64.mul - return - end - br $folding-inner0 - end - local.get $4 - i32.const 46 - i32.ne - local.get $4 - i32.const 48 - i32.sub - i32.const 10 - i32.ge_u - i32.and - br_if $folding-inner0 - local.get $0 - local.set $3 - loop $while-continue|1 - local.get $4 - i32.const 48 - i32.eq - if - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|1 - end + br_table $0of1 $1of1 $outOfRange end - local.get $5 - i32.const 0 - i32.le_s - br_if $folding-inner1 - local.get $4 - i32.const 46 - i32.eq - if - local.get $0 - local.get $3 - i32.eq - local.set $3 - local.get $0 - i32.const 2 - i32.add - local.set $0 - local.get $3 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - i32.and - br_if $folding-inner0 - i32.const 1 - local.set $9 - loop $for-loop|2 - local.get $0 - i32.load16_u - local.tee $4 - i32.const 48 - i32.eq - if - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $for-loop|2 - end - end - local.get $5 - i32.const 0 - i32.le_s - br_if $folding-inner1 - local.get $3 + unreachable + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + return + end + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $4 + local.get $3 + i32.sub + local.tee $4 + local.get $2 + local.get $4 + i32.lt_s + select + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $2 + local.get $1 + local.get $3 + call $~lib/util/string/compareImpl + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i32.eqz - i32.and - local.get $4 - i32.const 48 - i32.sub - i32.const 10 - i32.ge_u - i32.and - br_if $folding-inner0 + return end - local.get $4 - i32.const 48 + local.get $2 + i32.const 1 i32.sub - local.set $3 - loop $for-loop|3 - local.get $3 - i32.const 10 - i32.lt_u - local.tee $11 - local.get $9 - i32.eqz - local.get $4 - i32.const 46 - i32.eq - i32.and - i32.or - if - block $for-break3 - local.get $11 - if - local.get $1 - i32.const 19 - i32.lt_s - if (result i64) - local.get $3 - i64.extend_i32_u - local.get $6 - i64.const 10 - i64.mul - i64.add - else - local.get $6 - local.get $3 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.or - end - local.set $6 - local.get $1 - i32.const 1 - i32.add - local.set $1 - else - local.get $1 - local.set $2 - i32.const 1 - local.set $9 - end - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $for-break3 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.tee $4 - i32.const 48 - i32.sub - local.set $3 - br $for-loop|3 - end - end - end - block $~lib/util/string/scientific|inlined.0 - local.get $6 - i64.eqz - local.get $2 - local.get $1 - local.get $9 - select - i32.const 19 - local.get $1 - local.get $1 - i32.const 19 - i32.gt_s - select - i32.sub - block $~lib/util/string/parseExp|inlined.0 (result i32) - i32.const 1 - local.set $9 - i32.const 0 - local.set $4 - i32.const 0 - local.get $0 - i32.load16_u - i32.const 32 - i32.or - i32.const 101 - i32.ne - br_if $~lib/util/string/parseExp|inlined.0 - drop - i32.const 0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $~lib/util/string/parseExp|inlined.0 - drop - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.tee $1 - i32.const 45 - i32.eq - if (result i32) - i32.const 0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $~lib/util/string/parseExp|inlined.0 - drop - i32.const -1 - local.set $9 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - else - local.get $1 - i32.const 43 - i32.eq - if (result i32) - i32.const 0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $~lib/util/string/parseExp|inlined.0 - drop - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - else - local.get $1 - end - end - local.set $3 - loop $while-continue|4 - local.get $3 - i32.const 48 - i32.eq - if - i32.const 0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - i32.eqz - br_if $~lib/util/string/parseExp|inlined.0 - drop - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - local.set $3 - br $while-continue|4 - end - end - local.get $3 - i32.const 48 - i32.sub - local.set $3 - loop $for-loop|5 - local.get $3 - i32.const 10 - i32.lt_u - i32.const 0 - local.get $5 - select - if - local.get $9 - i32.const 3200 - i32.mul - local.get $4 - i32.const 3200 - i32.ge_s - br_if $~lib/util/string/parseExp|inlined.0 - drop - local.get $4 - i32.const 10 - i32.mul - local.get $3 - i32.add - local.set $4 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $0 - i32.const 2 - i32.add - local.tee $0 - i32.load16_u - i32.const 48 - i32.sub - local.set $3 - br $for-loop|5 - end - end - local.get $4 - local.get $9 - i32.mul - end - i32.add - local.tee $0 - i32.const -342 - i32.lt_s - i32.or - br_if $~lib/util/string/scientific|inlined.0 - f64.const inf - local.set $8 - local.get $0 - i32.const 308 - i32.gt_s - br_if $~lib/util/string/scientific|inlined.0 - local.get $6 - f64.convert_i64_u - local.set $8 - local.get $0 - i32.eqz - br_if $~lib/util/string/scientific|inlined.0 - local.get $0 - i32.const 37 - i32.le_s - local.get $0 - i32.const 22 - i32.gt_s - i32.and - if - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.const 4496 - i32.add - f64.load - f64.mul - local.set $8 - i32.const 22 - local.set $0 - end - local.get $6 - i64.const 9007199254740991 - i64.le_u - if (result i32) - local.get $0 - i32.const 31 - i32.shr_s - local.tee $1 - local.get $0 - local.get $1 - i32.add - i32.xor - i32.const 22 - i32.le_s - else - i32.const 0 - end - if (result f64) - local.get $0 - i32.const 0 - i32.gt_s - if - local.get $8 - local.get $0 - i32.const 3 - i32.shl - i32.const 4672 - i32.add - f64.load - f64.mul - local.set $8 - br $~lib/util/string/scientific|inlined.0 - end - local.get $8 - i32.const 0 - local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.const 4672 - i32.add - f64.load - f64.div - else - local.get $0 - i32.const 0 - i32.lt_s - if (result f64) - local.get $6 - local.get $6 - i64.clz - local.tee $7 - i64.shl - local.set $6 - local.get $0 - i64.extend_i32_s - local.get $7 - i64.sub - local.set $7 - loop $for-loop|6 - local.get $0 - i32.const -14 - i32.le_s - if - local.get $6 - i64.const 6103515625 - i64.rem_u - local.get $6 - i64.const 6103515625 - i64.div_u - local.tee $6 - i64.clz - local.tee $12 - i64.const 18 - i64.sub - i64.shl - f64.convert_i64_u - f64.const 0.00004294967296 - f64.mul - f64.nearest - i64.trunc_sat_f64_u - local.get $6 - local.get $12 - i64.shl - i64.add - local.set $6 - local.get $7 - local.get $12 - i64.sub - local.set $7 - local.get $0 - i32.const 14 - i32.add - local.set $0 - br $for-loop|6 - end - end - local.get $6 - i32.const 0 - local.get $0 - i32.sub - call $~lib/math/ipow32 - i64.extend_i32_s - local.tee $13 - i64.div_u - local.tee $14 - i64.clz - local.set $12 - local.get $6 - local.get $13 - i64.rem_u - f64.convert_i64_u - i64.reinterpret_f64 - local.get $12 - i64.const 52 - i64.shl - i64.add - f64.reinterpret_i64 - local.get $13 - f64.convert_i64_u - f64.div - i64.trunc_sat_f64_u - local.get $14 - local.get $12 - i64.shl - i64.add - f64.convert_i64_u - local.get $7 - local.get $12 - i64.sub - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn - else - local.get $6 - local.get $6 - i64.ctz - local.tee $7 - i64.shr_u - local.set $6 - local.get $7 - local.get $0 - i64.extend_i32_s - i64.add - global.set $~lib/util/string/__fixmulShift - loop $for-loop|7 - local.get $0 - i32.const 13 - i32.ge_s - if - i64.const 32 - local.get $6 - i64.const 32 - i64.shr_u - i64.const 1220703125 - i64.mul - local.get $6 - i64.const 4294967295 - i64.and - i64.const 1220703125 - i64.mul - local.tee $6 - i64.const 32 - i64.shr_u - i64.add - local.tee $7 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.clz - i64.extend_i32_u - local.tee $12 - i64.sub - local.tee $13 - global.get $~lib/util/string/__fixmulShift - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $6 - local.get $12 - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - local.get $7 - local.get $12 - i64.shl - local.get $6 - i64.const 4294967295 - i64.and - local.get $13 - i64.shr_u - i64.or - i64.add - local.set $6 - local.get $0 - i32.const 13 - i32.sub - local.set $0 - br $for-loop|7 - end - end - local.get $0 - call $~lib/math/ipow32 - i64.extend_i32_u - local.tee $7 - local.get $6 - i64.const 4294967295 - i64.and - i64.mul - local.set $12 - i64.const 32 - local.get $6 - i64.const 32 - i64.shr_u - local.get $7 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add - local.tee $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.clz - i64.extend_i32_u - local.tee $7 - i64.sub - local.tee $13 - global.get $~lib/util/string/__fixmulShift - i64.add - global.set $~lib/util/string/__fixmulShift - local.get $12 - local.get $7 - i64.shl - i64.const 31 - i64.shr_u - i64.const 1 - i64.and - local.get $6 - local.get $7 - i64.shl - local.get $12 - i64.const 4294967295 - i64.and - local.get $13 - i64.shr_u - i64.or - i64.add - f64.convert_i64_u - global.get $~lib/util/string/__fixmulShift - i32.wrap_i64 - call $~lib/math/NativeMath.scalbn - end - end - local.set $8 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $10 - f64.copysign - return + local.set $2 + br $for-loop|0 end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + ) + (func $~lib/string/String#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $3 + local.get $2 + i32.add + local.tee $4 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - f64.const nan:0x8000000000000 + i32.const 1712 return end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $4 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $0 + local.get $2 + memory.copy + local.get $2 + local.get $4 + i32.add + local.get $1 + local.get $3 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - f64.const 0 - f64.mul + local.get $4 ) - (func $~lib/number/F64.parseFloat (param $0 i32) (result f64) - (local $1 f64) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $0 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7385,23 +5934,54 @@ local.get $0 i32.store local.get $0 - call $~lib/util/string/strtod + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/string/strtol (result i32) - (local $0 i32) + (func $~lib/util/string/strtod (param $0 i32) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 4880 - local.set $2 + (local $6 i64) + (local $7 i64) + (local $8 f64) + (local $9 i32) + (local $10 f64) + (local $11 i32) + (local $12 i64) + (local $13 i64) + (local $14 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7421,663 +6001,988 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 4880 + local.get $0 i32.store - block $folding-inner0 - i32.const 4876 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.eqz - br_if $folding-inner0 - i32.const 4880 - i32.load16_u - local.set $1 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$8 (result i32) - local.get $1 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $1 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $1 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$8 - drop - i32.const 1 - local.get $1 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$8 - drop - block $break|0 - block $case6|0 - local.get $1 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 65279 + block $folding-inner1 + block $folding-inner0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.eqz + br_if $folding-inner0 + local.get $0 + i32.load16_u + local.set $4 + f64.const 1 + local.set $10 + loop $while-continue|0 + local.get $5 + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$7 (result i32) + local.get $4 + i32.const 128 + i32.or + i32.const 160 i32.eq - br_if $case6|0 - br $break|0 + local.get $4 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $4 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$7 + drop + i32.const 1 + local.get $4 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$7 + drop + block $break|0 + block $case6|0 + local.get $4 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$7 + end + i32.const 0 end + else + i32.const 0 + end + if + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $4 + local.get $5 i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$8 + i32.sub + local.set $5 + br $while-continue|0 end - i32.const 0 end - if - local.get $2 + local.get $5 + i32.eqz + br_if $folding-inner0 + local.get $4 + i32.const 45 + i32.eq + if (result i32) + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $folding-inner0 + f64.const -1 + local.set $10 + local.get $0 i32.const 2 i32.add - local.tee $2 + local.tee $0 i32.load16_u - local.set $1 + else + local.get $4 + i32.const 43 + i32.eq + if (result i32) + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $folding-inner0 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + else + local.get $4 + end + end + local.tee $4 + i32.const 73 + i32.eq + local.get $5 + i32.const 8 + i32.ge_s + i32.and + if local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|0 + i64.load + i64.const 29555310648492105 + i64.eq + if (result i32) + local.get $0 + i64.load offset=8 + i64.const 34058970405077102 + i64.eq + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + f64.const inf + f64.mul + return + end + br $folding-inner0 end - end - i32.const 1 - local.set $4 - local.get $1 - i32.const 45 - i32.eq - local.tee $6 - local.get $1 - i32.const 43 - i32.eq - i32.or - if (result i32) - local.get $0 - i32.const 1 + local.get $4 + i32.const 46 + i32.ne + local.get $4 + i32.const 48 i32.sub - local.tee $0 - i32.eqz + i32.const 10 + i32.ge_u + i32.and br_if $folding-inner0 - i32.const -1 - i32.const 1 - local.get $6 - select - local.set $4 - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - else - local.get $1 - end - i32.const 48 - i32.eq - local.get $0 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $2 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $1 - i32.const 98 - i32.ne + local.get $0 + local.set $3 + loop $while-continue|1 + local.get $4 + i32.const 48 + i32.eq + if + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $4 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + local.get $5 + i32.const 0 + i32.le_s + br_if $folding-inner1 + local.get $4 + i32.const 46 + i32.eq + if + local.get $0 + local.get $3 + i32.eq + local.set $3 + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $3 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + i32.and + br_if $folding-inner0 + i32.const 1 + local.set $9 + loop $for-loop|2 + local.get $0 + i32.load16_u + local.tee $4 + i32.const 48 + i32.eq + if + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $for-loop|2 + end + end + local.get $5 + i32.const 0 + i32.le_s + br_if $folding-inner1 + local.get $3 + local.get $1 + i32.eqz + i32.and + local.get $4 + i32.const 48 + i32.sub + i32.const 10 + i32.ge_u + i32.and + br_if $folding-inner0 + end + local.get $4 + i32.const 48 + i32.sub + local.set $3 + loop $for-loop|3 + local.get $3 + i32.const 10 + i32.lt_u + local.tee $11 + local.get $9 + i32.eqz + local.get $4 + i32.const 46 + i32.eq + i32.and + i32.or + if + block $for-break3 + local.get $11 if - local.get $1 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $1 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 + local.get $2 + i32.const 19 + i32.lt_s + if (result i64) + local.get $3 + i64.extend_i32_u + local.get $6 + i64.const 10 + i64.mul + i64.add + else + local.get $6 + local.get $3 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.or + end + local.set $6 + local.get $2 + i32.const 1 + i32.add + local.set $2 + else + local.get $2 + local.set $1 + i32.const 1 + local.set $9 end - local.get $2 - i32.const 4 - i32.add - local.set $2 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $for-break3 local.get $0 i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.tee $4 + i32.const 48 i32.sub - local.set $0 - i32.const 2 local.set $3 - br $break|1 + br $for-loop|3 end - local.get $2 - i32.const 4 + end + end + local.get $1 + local.get $2 + local.get $9 + select + local.set $1 + i32.const 1 + local.set $9 + i32.const 0 + local.set $4 + block $~lib/util/string/scientific|inlined.0 + local.get $6 + i64.eqz + block $~lib/util/string/parseExp|inlined.0 (result i32) + i32.const 0 + local.get $0 + i32.load16_u + i32.const 32 + i32.or + i32.const 101 + i32.ne + br_if $~lib/util/string/parseExp|inlined.0 + drop + i32.const 0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $~lib/util/string/parseExp|inlined.0 + drop + local.get $0 + i32.const 2 i32.add - local.set $2 + local.tee $0 + i32.load16_u + local.tee $3 + i32.const 45 + i32.eq + if (result i32) + i32.const 0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $~lib/util/string/parseExp|inlined.0 + drop + i32.const -1 + local.set $9 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + else + local.get $3 + i32.const 43 + i32.eq + if (result i32) + i32.const 0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $~lib/util/string/parseExp|inlined.0 + drop + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + else + local.get $3 + end + end + local.set $3 + loop $while-continue|4 + local.get $3 + i32.const 48 + i32.eq + if + i32.const 0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.eqz + br_if $~lib/util/string/parseExp|inlined.0 + drop + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $3 + br $while-continue|4 + end + end + local.get $3 + i32.const 48 + i32.sub + local.set $3 + loop $for-loop|5 + local.get $3 + i32.const 10 + i32.lt_u + i32.const 0 + local.get $5 + select + if + local.get $9 + i32.const 3200 + i32.mul + local.get $4 + i32.const 3200 + i32.ge_s + br_if $~lib/util/string/parseExp|inlined.0 + drop + local.get $4 + i32.const 10 + i32.mul + local.get $3 + i32.add + local.set $4 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + i32.const 48 + i32.sub + local.set $3 + br $for-loop|5 + end + end + local.get $4 + local.get $9 + i32.mul + end + local.get $1 + i32.const 19 + local.get $2 + local.get $2 + i32.const 19 + i32.gt_s + select + i32.sub + i32.add + local.tee $0 + i32.const -342 + i32.lt_s + i32.or + br_if $~lib/util/string/scientific|inlined.0 + f64.const inf + local.set $8 + local.get $0 + i32.const 308 + i32.gt_s + br_if $~lib/util/string/scientific|inlined.0 + local.get $6 + f64.convert_i64_u + local.set $8 + local.get $0 + i32.eqz + br_if $~lib/util/string/scientific|inlined.0 + local.get $0 + i32.const 37 + i32.le_s + local.get $0 + i32.const 22 + i32.gt_s + i32.and + if + local.get $8 local.get $0 - i32.const 2 - i32.sub + i32.const 3 + i32.shl + i32.const 4496 + i32.add + f64.load + f64.mul + local.set $8 + i32.const 22 local.set $0 - i32.const 8 - local.set $3 - br $break|1 end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 16 - local.set $3 - end - end - local.get $3 - i32.const 10 - local.get $3 - select - local.set $6 - local.get $0 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - if - block $while-break|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 - i32.sub + local.get $6 + i64.const 9007199254740991 + i64.le_u + if (result i32) + local.get $0 + i32.const 31 + i32.shr_s local.tee $1 - i32.const 10 - i32.ge_u + local.get $0 + local.get $1 + i32.add + i32.xor + i32.const 22 + i32.le_s + else + i32.const 0 + end + if (result f64) + local.get $0 + i32.const 0 + i32.gt_s if - local.get $3 - i32.const 65 + local.get $8 + local.get $0 + i32.const 3 + i32.shl + i32.const 4672 + i32.add + f64.load + f64.mul + local.set $8 + br $~lib/util/string/scientific|inlined.0 + end + local.get $8 + i32.const 0 + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.const 4672 + i32.add + f64.load + f64.div + else + local.get $0 + i32.const 0 + i32.lt_s + if (result f64) + local.get $6 + local.get $6 + i64.clz + local.tee $7 + i64.shl + local.set $6 + local.get $0 + i64.extend_i32_s + local.get $7 + i64.sub + local.set $7 + loop $for-loop|6 + local.get $0 + i32.const -14 + i32.le_s + if + local.get $6 + i64.const 6103515625 + i64.rem_u + local.get $6 + i64.const 6103515625 + i64.div_u + local.tee $6 + i64.clz + local.tee $12 + i64.const 18 + i64.sub + i64.shl + f64.convert_i64_u + f64.const 0.00004294967296 + f64.mul + f64.nearest + i64.trunc_sat_f64_u + local.get $6 + local.get $12 + i64.shl + i64.add + local.set $6 + local.get $7 + local.get $12 + i64.sub + local.set $7 + local.get $0 + i32.const 14 + i32.add + local.set $0 + br $for-loop|6 + end + end + local.get $6 + i32.const 0 + local.get $0 i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $3 - i32.const 55 - i32.sub - else - local.get $3 - i32.const 87 - i32.sub - local.get $3 - local.get $3 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select + call $~lib/math/ipow32 + i64.extend_i32_s + local.tee $13 + i64.div_u + local.tee $14 + i64.clz + local.set $12 + local.get $6 + local.get $13 + i64.rem_u + f64.convert_i64_u + i64.reinterpret_f64 + local.get $12 + i64.const 52 + i64.shl + i64.add + f64.reinterpret_i64 + local.get $13 + f64.convert_i64_u + f64.div + i64.trunc_sat_f64_u + local.get $14 + local.get $12 + i64.shl + i64.add + f64.convert_i64_u + local.get $7 + local.get $12 + i64.sub + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn + else + local.get $6 + local.get $6 + i64.ctz + local.tee $7 + i64.shr_u + local.set $6 + local.get $7 + local.get $0 + i64.extend_i32_s + i64.add + global.set $~lib/util/string/__fixmulShift + loop $for-loop|7 + local.get $0 + i32.const 13 + i32.ge_s + if + i64.const 32 + local.get $6 + i64.const 32 + i64.shr_u + i64.const 1220703125 + i64.mul + local.get $6 + i64.const 4294967295 + i64.and + i64.const 1220703125 + i64.mul + local.tee $6 + i64.const 32 + i64.shr_u + i64.add + local.tee $7 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.clz + i64.extend_i32_u + local.tee $12 + i64.sub + local.tee $13 + global.get $~lib/util/string/__fixmulShift + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $6 + local.get $12 + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + local.get $7 + local.get $12 + i64.shl + local.get $6 + i64.const 4294967295 + i64.and + local.get $13 + i64.shr_u + i64.or + i64.add + local.set $6 + local.get $0 + i32.const 13 + i32.sub + local.set $0 + br $for-loop|7 + end end - local.set $1 - end - local.get $1 - local.get $6 - i32.ge_u - if local.get $0 + call $~lib/math/ipow32 + i64.extend_i32_u + local.tee $7 + local.get $6 + i64.const 4294967295 + i64.and + i64.mul + local.set $12 + i64.const 32 local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 + local.get $6 + i64.const 32 + i64.shr_u + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.tee $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.clz + i64.extend_i32_u + local.tee $7 + i64.sub + local.tee $13 + global.get $~lib/util/string/__fixmulShift + i64.add + global.set $~lib/util/string/__fixmulShift + local.get $12 + local.get $7 + i64.shl + i64.const 31 + i64.shr_u + i64.const 1 + i64.and + local.get $6 + local.get $7 + i64.shl + local.get $12 + i64.const 4294967295 + i64.and + local.get $13 + i64.shr_u + i64.or + i64.add + f64.convert_i64_u + global.get $~lib/util/string/__fixmulShift + i32.wrap_i64 + call $~lib/math/NativeMath.scalbn end - local.get $5 - local.get $6 - i32.mul - local.get $1 - i32.add - local.set $5 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|2 end + local.set $8 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + local.get $10 + f64.copysign + return end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i32.mul + f64.const nan:0x8000000000000 return end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $10 + f64.const 0 + f64.mul ) - (func $~lib/util/string/strtol (result i64) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) (local $4 i64) (local $5 i64) - (local $6 i32) - (local $7 i32) - i32.const 4928 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4928 - i32.store - block $folding-inner0 - i32.const 4924 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.eqz - br_if $folding-inner0 - i32.const 4928 - i32.load16_u - local.set $1 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$9 (result i32) - local.get $1 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $1 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $1 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$9 - drop - i32.const 1 - local.get $1 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$9 - drop - block $break|0 - block $case6|0 - local.get $1 - i32.const 5760 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8232 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8233 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8239 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 8287 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 12288 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 65279 - i32.eq - br_if $case6|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$9 - end - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|0 - end - end - i64.const 1 - local.set $4 - local.get $1 - i32.const 45 - i32.eq - local.tee $6 - local.get $1 - i32.const 43 - i32.eq - i32.or - if (result i32) + local.get $3 + i64.extend_i32_s + local.set $5 + local.get $3 + local.get $3 + i32.const 1 + i32.sub + i32.and + if + loop $do-loop|1 local.get $0 + local.get $2 i32.const 1 i32.sub - local.tee $0 - i32.eqz - br_if $folding-inner0 - i64.const -1 - i64.const 1 - local.get $6 - select - local.set $4 - local.get $2 - i32.const 2 - i32.add local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + local.get $5 + i64.div_u + local.tee $1 + local.get $5 + i64.mul + i64.sub + i32.wrap_i64 + i32.const 1 + i32.shl + i32.const 17696 + i32.add i32.load16_u - else + i32.store16 local.get $1 + i64.const 0 + i64.ne + br_if $do-loop|1 end - i32.const 48 - i32.eq - local.get $0 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 - local.get $2 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $1 - i32.const 98 - i32.ne - if - local.get $1 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $1 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 2 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 8 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.sub - local.set $0 - i32.const 16 - local.set $3 - end - end - local.get $3 - i32.const 10 + else local.get $3 - select - local.set $6 - local.get $0 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 + i32.ctz + i32.const 7 + i32.and + i64.extend_i32_s + local.set $4 + local.get $5 + i64.const 1 + i64.sub + local.set $5 + loop $do-loop|0 local.get $0 - local.tee $1 + local.get $2 i32.const 1 i32.sub - local.set $0 + local.tee $2 + i32.const 1 + i32.shl + i32.add local.get $1 - if - block $while-break|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 - i32.sub - local.tee $1 - i32.const 10 - i32.ge_u - if - local.get $3 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $3 - i32.const 55 - i32.sub - else - local.get $3 - i32.const 87 - i32.sub - local.get $3 - local.get $3 - i32.const 97 - i32.sub - i32.const 25 - i32.le_u - select - end - local.set $1 - end - local.get $1 - local.get $6 - i32.ge_u - if - local.get $0 - local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 - end - local.get $1 - i64.extend_i32_u - local.get $5 - local.get $6 - i64.extend_i32_s - i64.mul - i64.add - local.set $5 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|2 - end - end + local.get $5 + i64.and + i32.wrap_i64 + i32.const 1 + i32.shl + i32.const 17696 + i32.add + i32.load16_u + i32.store16 + local.get $1 + local.get $4 + i64.shr_u + local.tee $1 + i64.const 0 + i64.ne + br_if $do-loop|0 + end + end + ) + (func $~lib/util/number/dtoa (param $0 f32) (result i32) + (local $1 f64) + (local $2 i32) + (local $3 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 23280 + local.set $2 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $0 + f64.promote_f32 + local.tee $1 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + i32.const 7696 + local.set $2 + local.get $1 + local.get $1 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.1 + i32.const 8960 + i32.const 23312 + local.get $1 + f64.const 0 + f64.lt + select + local.set $2 + br $~lib/util/number/dtoa_impl|inlined.1 end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i64.mul - return + local.get $1 + i32.const 1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $3 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 23344 + local.get $3 + memory.copy end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i64.const 0 - ) - (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 local.get $2 - i32.add - local.tee $4 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return + ) + (func $~lib/string/String.fromCharCode@varargs (param $0 i32) (result i32) + (local $1 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const -1 + local.set $1 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $4 - i32.add local.get $1 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + call $~lib/string/String.fromCharCode ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__not (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8092,23 +6997,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 - local.get $1 - call $~lib/string/String#concat + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + else + i32.const 0 + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.eqz ) - (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lte (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8135,272 +7046,628 @@ i32.store offset=4 local.get $0 local.get $1 - call $~lib/string/String.__eq + call $~lib/string/String.__gt i32.eqz global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String.__gt (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 59404 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 0 - local.get $1 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - i32.gt_s - local.get $2 - local.get $3 - i32.gt_s - local.get $0 - select - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String.__lt (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - local.get $1 - i32.eq - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.eqz + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 + local.get $0 + i32.load 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 1440 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 59404 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 59404 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1648 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace i32.store offset=4 - local.get $0 - i32.const 0 - local.get $1 - local.get $3 - local.get $2 - local.get $2 - local.get $3 - i32.gt_s - local.tee $0 - select - call $~lib/util/string/compareImpl - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 i32.const 0 - i32.lt_s - local.get $0 - local.get $1 - select - return + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $~lib/string/String.__gte (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=16 + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + local.get $3 + i32.load offset=16 + local.tee $0 local.get $0 local.get $1 - call $~lib/string/String.__lt - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.gt_u + select + memory.copy + local.get $2 ) - (func $~lib/string/String.__lte (param $0 i32) (param $1 i32) (result 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 26636 - i32.lt_s + (func $~lib/util/number/dtoa_core (param $0 f64) (param $1 i32) (result i32) + (local $2 i64) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + local.get $0 + f64.const 0 + f64.lt + local.tee $3 if - i32.const 59424 - i32.const 59472 + i32.const 23344 + i32.const 45 + i32.store16 + local.get $0 + f64.neg + local.set $0 + end + local.get $1 + if (result i32) + local.get $0 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $5 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.set $9 + local.get $5 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $9 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add + local.set $2 + local.get $9 i32.const 1 + local.get $9 + select + i32.const 150 + i32.sub + else + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.set $5 + local.get $2 + i64.const 4503599627370495 + i64.and + local.get $5 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.set $2 + local.get $5 i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $5 + select + i32.const 1075 + i32.sub end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + local.tee $9 + i32.const 1 + i32.sub + local.get $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $4 + i64.clz + i32.wrap_i64 + local.tee $10 + i32.sub + local.set $5 + local.get $4 + local.get $10 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $2 + local.get $2 + i64.const 8388608 + i64.const 4503599627370496 + local.get $1 + select + i64.eq + i32.const 1 + i32.add + local.tee $1 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $9 + local.get $1 + i32.sub + local.get $5 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $5 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $0 + i32.trunc_sat_f64_s + local.tee $1 local.get $1 - i32.store offset=4 + f64.convert_i32_s local.get $0 + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $1 + i32.const 3 + i32.shl + local.tee $5 + i32.sub + global.set $~lib/util/number/_K + local.get $5 + i32.const 23400 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow local.get $1 - call $~lib/string/String.__gt - i32.eqz - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 + i32.shl + i32.const 24096 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $2 + local.get $2 + i64.clz + i64.shl + local.tee $2 + i64.const 4294967295 + i64.and + local.set $6 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $12 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 + i64.mul + local.get $6 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $7 + global.get $~lib/util/number/_frc_plus + local.tee $4 + i64.const 4294967295 + i64.and + local.set $13 + local.get $4 + i64.const 32 + i64.shr_u + local.tee $4 + local.get $12 + i64.mul + local.get $12 + local.get $13 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $8 + global.get $~lib/util/number/_frc_minus + local.tee $14 + i64.const 4294967295 + i64.and + local.set $15 + local.get $14 + i64.const 32 + i64.shr_u + local.tee $14 + local.get $12 + i64.mul + local.get $12 + local.get $15 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 + local.get $3 + i32.const 1 + i32.shl + i32.const 23344 + i32.add + local.get $2 + local.get $11 + i64.const 32 + i64.shr_u + local.tee $2 + i64.mul + local.get $7 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $6 + i64.mul + local.get $7 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $4 + i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $13 + i64.mul + local.get $8 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $4 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $4 + local.get $2 + local.get $14 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $15 + i64.mul + local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $3 + call $~lib/util/number/genDigits + local.get $3 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/string/String#repeat (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.fromCharCodes (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8409,121 +7676,74 @@ i32.const 26636 i32.lt_s if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $4 - i64.extend_i32_s - local.get $1 - i64.extend_i32_s - i64.mul - i64.const 268435456 - i64.gt_u - end - if - i32.const 14064 - i32.const 1328 - i32.const 334 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.eqz - local.get $1 - i32.eqz - i32.or - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - local.get $1 - i32.const 1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $4 - i32.mul i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $4 - i32.const 1 - i32.shl - local.tee $4 - local.get $1 - i32.mul - local.set $1 - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 local.get $1 - local.get $2 - i32.gt_u + i32.lt_s if local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add local.get $3 + local.get $0 + i32.const 2 + i32.shl i32.add + i32.load + i32.store16 local.get $0 - local.get $4 - memory.copy - local.get $2 - local.get $4 + i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $0 + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) - (func $~lib/string/String#replace (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#trimStart (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) 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 @@ -8541,156 +7761,145 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $4 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - i32.le_u - if - local.get $3 - local.get $4 - i32.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 - local.get $0 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - select - local.set $0 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String#indexOf - local.tee $1 - i32.const -1 - i32.xor - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + i32.const -2 + i32.and + local.set $2 + loop $while-continue|0 + local.get $1 local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - local.get $4 - local.get $3 - i32.sub - local.tee $6 - i32.add - local.tee $4 - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - local.get $4 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - local.tee $7 - memory.copy - local.get $4 - local.get $7 - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $4 - local.get $1 - local.get $5 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - local.get $3 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $6 + i32.lt_u + if (result i32) + block $__inlined_func$~lib/util/string/isSpace (result i32) + local.get $0 + local.get $1 + i32.add + i32.load16_u + local.tee $3 + i32.const 5760 + i32.lt_u + if + local.get $3 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $3 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace + end + i32.const 1 + local.get $3 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace + drop + block $break|0 + block $case6|0 + local.get $3 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace + end + i32.const 0 + end + else + i32.const 0 + end + if local.get $1 - i32.sub - i32.const 1 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 2 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + local.set $1 + br $while-continue|0 end end + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + local.get $1 + i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $1 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 ) - (func $~lib/string/String#replaceAll (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#trimEnd (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8705,9 +7914,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -8715,807 +7923,1197 @@ i32.const 20 i32.sub i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner1 + i32.const -2 + i32.and + local.tee $3 + local.set $1 + loop $while-continue|0 local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 - local.get $3 - i32.ge_u - if - local.get $3 - local.get $8 - i32.ge_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $2 + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$1 (result i32) local.get $0 local.get $1 - local.get $0 - call $~lib/string/String.__eq - select - local.set $0 - end - br $folding-inner1 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - block $folding-inner0 - local.get $8 - i32.eqz - if - local.get $4 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $3 - i32.const 1 i32.add - local.get $4 - i32.mul - i32.add - i32.const 1 - i32.shl i32.const 2 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=8 - local.get $11 - local.get $2 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $4 - local.set $1 - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_u - if - local.get $11 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $11 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + i32.sub + i32.load16_u + local.tee $2 + i32.const 5760 + i32.lt_u + if + local.get $2 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $2 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$1 end - br $folding-inner0 - end - local.get $4 - local.get $8 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 i32.const 1 - i32.shl - local.tee $3 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=12 - local.get $11 - local.get $0 - local.get $3 - memory.copy - loop $while-continue|1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - local.get $10 - call $~lib/string/String#indexOf - local.tee $3 - i32.const -1 - i32.xor - if - local.get $11 - local.get $3 - i32.const 1 - i32.shl - i32.add + local.get $2 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$1 + drop + block $break|0 + block $case6|0 local.get $2 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $3 - local.get $8 - i32.add - local.set $10 - br $while-continue|1 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $2 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$1 end - br $folding-inner0 + i32.const 0 end - local.get $3 - local.set $5 - loop $while-continue|2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + else + i32.const 0 + end + if + local.get $1 + i32.const 2 + i32.sub + local.set $1 + br $while-continue|0 + end + end + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end + local.get $1 + local.get $3 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/string/String#trim (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + i32.const 1 + i32.shl + local.set $1 + loop $while-continue|0 + local.get $1 + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$2 (result i32) local.get $0 local.get $1 - local.get $10 - call $~lib/string/String#indexOf - local.tee $7 - i32.const -1 - i32.xor + i32.add + i32.const 2 + i32.sub + i32.load16_u + local.tee $4 + i32.const 5760 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.store - local.get $11 - call $~lib/string/String.__not - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=16 - end - local.get $7 - local.get $10 - i32.sub - local.tee $6 - local.get $9 - i32.add local.get $4 - i32.add - local.get $5 - i32.gt_u - if - global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $5 - i32.const 1 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $11 - i32.store offset=16 - end - local.get $11 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.const 1 - i32.shl - memory.copy - local.get $11 - local.get $6 - local.get $9 - i32.add - local.tee $6 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $4 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$2 + end + i32.const 1 + local.get $4 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$2 + drop + block $break|0 + block $case6|0 + local.get $4 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $4 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end i32.const 1 - i32.shl - i32.add - local.get $2 + br $__inlined_func$~lib/util/string/isSpace$2 + end + i32.const 0 + end + else + i32.const 0 + end + if + local.get $1 + i32.const 2 + i32.sub + local.set $1 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $1 + local.get $2 + i32.gt_u + if (result i32) + block $__inlined_func$~lib/util/string/isSpace$3 (result i32) + local.get $0 + local.get $2 + i32.add + i32.load16_u + local.tee $4 + i32.const 5760 + i32.lt_u + if local.get $4 - i32.const 1 - i32.shl - memory.copy + i32.const 128 + i32.or + i32.const 160 + i32.eq local.get $4 - local.get $6 - i32.add - local.set $9 - local.get $7 - local.get $8 - i32.add - local.set $10 - br $while-continue|2 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + br $__inlined_func$~lib/util/string/isSpace$3 + end + i32.const 1 + local.get $4 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$3 + drop + block $break|00 + block $case6|01 + local.get $4 + i32.const 5760 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 8232 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 8233 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 8239 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 8287 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 12288 + i32.eq + br_if $case6|01 + local.get $4 + i32.const 65279 + i32.eq + br_if $case6|01 + br $break|00 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$3 end + i32.const 0 end - local.get $11 - if - local.get $3 - local.get $10 + else + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + br $while-continue|1 + end + end + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return + end + local.get $2 + i32.eqz + local.get $1 + local.get $3 + i32.const 1 + i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/string/String#substring@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#substring + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#substr@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#substr + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#slice@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 i32.sub - local.tee $1 - local.get $9 - i32.add - local.get $5 - i32.gt_u - if - global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $5 - i32.const 1 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $11 - i32.store offset=16 - end - local.get $1 - if - local.get $11 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $10 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 1 - i32.shl - memory.copy - end - local.get $1 - local.get $9 - i32.add - local.tee $0 - local.get $5 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $0 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $11 - i32.store offset=16 - end - br $folding-inner0 + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 2147483647 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#slice + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String#at (param $0 i32) (param $1 i32) (result i32) + (local $2 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1264 + i32.const 1328 + i32.const 57 + i32.const 31 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1648 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1648 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1648 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store end - br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/string/String#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1648 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + local.get $1 + i32.load + local.tee $3 i32.const 1 - i32.shr_u - local.set $3 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1648 + i32.const 203 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 0 - i32.lt_s - if (result i32) + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store local.get $1 - local.get $3 + i32.const 4 + i32.add local.get $1 - local.get $3 - i32.lt_s - select - end - local.set $1 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 + i32.load + i32.const -4 + i32.and i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select + local.tee $4 + i32.load + local.set $2 end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 - i32.le_s + local.get $3 + i32.const 2 + i32.and if - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1648 + 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 - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store end - global.get $~lib/memory/__stack_pointer + local.get $4 local.get $2 - i32.const 1 - i32.shl - local.tee $2 i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.or + i32.store local.get $3 - ) - (func $~lib/string/String#slice@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 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 26636 - i32.lt_s + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1648 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 2147483647 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $4 local.get $1 - local.get $2 - call $~lib/string/String#slice - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#substr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 26636 - i32.lt_s + local.get $2 + i32.add + i32.ne if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1648 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + i32.const 4 + i32.sub + local.get $1 i32.store local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select + 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 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $1 - i32.const 0 - i32.lt_s + i32.const 16 + i32.lt_u + local.get $5 + i32.const 23 + i32.lt_u + i32.and + i32.eqz if - local.get $1 - local.get $3 - i32.add - local.tee $1 i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.set $1 + i32.const 1648 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $1 - i32.sub - local.tee $3 + local.get $0 + local.get $5 + i32.const 4 + i32.shl local.get $2 - local.get $3 - i32.lt_s - select - i32.const 1 + i32.add + i32.const 2 i32.shl - local.tee $2 + i32.add + i32.load offset=96 + local.set $3 + local.get $1 i32.const 0 - i32.le_s + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $5 + i32.const 4 + i32.shl local.get $2 + i32.add i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 + i32.shl + i32.add local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 i32.shl i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/string/String#substr@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) (local $2 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 26636 - i32.lt_s + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange + block $__inlined_func$~lib/rt/itcms/Object#unlink$287 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 59404 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$287 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort unreachable end - i32.const 2147483647 - local.set $2 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#substr - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $1 + i32.const 26608 + i32.load + i32.gt_u + if + i32.const 1264 + i32.const 1568 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 26612 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $3 + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 - i32.gt_s select - local.tee $3 local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 + i32.or + i32.store offset=4 + local.get $0 local.get $1 + i32.store offset=8 local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - local.get $2 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $4 - local.get $3 - local.get $2 - local.get $2 - local.get $3 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $2 - local.get $4 - i32.sub - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1712 - return - end - local.get $4 - i32.eqz - local.get $2 + local.get $0 local.get $1 - i32.const 1 - i32.shl - i32.eq + i32.load offset=4 + i32.const 3 i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 + i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 - local.get $4 - i32.add - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 + i32.store offset=8 ) - (func $~lib/string/String#substring@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) (local $2 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 + (local $3 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array<~lib/string/String> + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $~lib/array/Array<~lib/string/String> $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - br_table $0of1 $1of1 $outOfRange + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + br $folding-inner1 end unreachable end - i32.const 2147483647 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#substring - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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 26636 - i32.lt_s - if i32.const 59424 i32.const 59472 i32.const 1 @@ -9524,88 +9122,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 - i32.load offset=8 - local.tee $3 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 14064 - i32.const 15664 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.tee $2 - i32.const 1073741820 - local.get $3 - i32.const 1 - i32.shl - local.tee $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $3 - i32.lt_u - select - local.tee $1 - call $~lib/rt/itcms/__renew - local.tee $3 - local.get $2 - i32.ne - if - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - end - local.get $0 - local.get $1 - i32.store offset=8 - end + i32.load + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) + (func $~lib/util/string/strtol (result i64) + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i32) + (local $7 i32) + i32.const 4928 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9625,401 +9162,677 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4928 i32.store - local.get $0 - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String#split (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner4 - block $folding-inner3 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 36 - memory.fill - local.get $2 - i32.eqz - br_if $folding-inner1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + block $folding-inner0 + i32.const 4924 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $folding-inner0 + i32.const 4928 + i32.load16_u + local.set $1 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$9 (result i32) + local.get $1 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $1 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $1 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$9 + drop + i32.const 1 + local.get $1 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$9 + drop + block $break|0 + block $case6|0 + local.get $1 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$9 + end + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|0 + end + end + i64.const 1 + local.set $4 + local.get $1 + i32.const 45 + i32.eq + local.tee $6 + local.get $1 + i32.const 43 + i32.eq + i32.or + if (result i32) + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + i32.eqz + br_if $folding-inner0 + i64.const -1 + i64.const 1 + local.get $6 + select + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + else + local.get $1 + end + i32.const 48 + i32.eq + local.get $0 + i32.const 2 + i32.gt_s + i32.and + if + block $break|1 + block $case2|1 + block $case1|1 local.get $2 - i32.load offset=12 - i32.eqz + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $1 + i32.const 98 + i32.ne if - local.get $2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 1 - i32.store offset=12 + local.get $1 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $1 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $2 - i32.load offset=4 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner4 + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 2 + local.set $3 + br $break|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 2147483647 local.get $2 - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $8 - local.get $1 - i32.const 20 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - if - local.get $6 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.load offset=4 - i32.const 1712 - i32.store - br $folding-inner4 - end - else - local.get $6 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $6 - local.get $8 - local.get $6 - local.get $8 - i32.lt_s - select - local.tee $3 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 + local.set $0 + i32.const 8 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 16 + local.set $3 + end + end + local.get $3 + i32.const 10 + local.get $3 + select + local.set $6 + local.get $0 + i32.const 1 + i32.sub + local.set $7 + loop $while-continue|2 + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + if + block $while-break|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 + i32.sub + local.tee $1 + i32.const 10 + i32.ge_u + if + local.get $3 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - local.get $5 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end + i32.const 55 + i32.sub + else + local.get $3 + i32.const 87 + i32.sub + local.get $3 + local.get $3 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select end - br $folding-inner4 + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=20 - loop $while-continue|1 - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $6 + i32.ge_u + if local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $7 + i32.eq + br_if $folding-inner0 + br $while-break|2 + end + local.get $1 + i64.extend_i32_u + local.get $5 + local.get $6 + i64.extend_i32_s + i64.mul + i64.add + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $5 + i64.mul + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i64.const 0 + ) + (func $~lib/util/string/strtol (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + i32.const 4880 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store + block $folding-inner0 + i32.const 4876 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $folding-inner0 + i32.const 4880 + i32.load16_u + local.set $1 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$8 (result i32) + local.get $1 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $1 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $1 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$8 + drop + i32.const 1 + local.get $1 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$8 + drop + block $break|0 + block $case6|0 local.get $1 - i32.store offset=24 - local.get $0 + i32.const 5760 + i32.eq + br_if $case6|0 local.get $1 - local.get $3 - call $~lib/string/String#indexOf - local.tee $9 - i32.const -1 - i32.xor + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $1 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$8 + end + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|0 + end + end + i32.const 1 + local.set $4 + local.get $1 + i32.const 45 + i32.eq + local.tee $6 + local.get $1 + i32.const 43 + i32.eq + i32.or + if (result i32) + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + i32.eqz + br_if $folding-inner0 + i32.const -1 + i32.const 1 + local.get $6 + select + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + else + local.get $1 + end + i32.const 48 + i32.eq + local.get $0 + i32.const 2 + i32.gt_s + i32.and + if + block $break|1 + block $case2|1 + block $case1|1 + local.get $2 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $1 + i32.const 98 + i32.ne if - local.get $9 - local.get $3 - i32.sub - local.tee $7 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.shl - local.tee $10 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=28 - local.get $7 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $10 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=24 - local.get $2 - local.get $7 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1712 - call $~lib/array/Array<~lib/string/String>#push - end - local.get $5 - i32.const 1 - i32.add - local.tee $5 - local.get $8 + local.get $1 + i32.const 111 i32.eq - br_if $folding-inner3 - local.get $4 - local.get $9 - i32.add - local.set $3 - br $while-continue|1 + br_if $case1|1 + local.get $1 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 end - end - local.get $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 local.get $2 + i32.const 4 + i32.add + local.set $2 local.get $0 - call $~lib/array/Array<~lib/string/String>#push - br $folding-inner3 + i32.const 2 + i32.sub + local.set $0 + i32.const 2 + local.set $3 + br $break|1 end - local.get $6 - local.get $3 + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 8 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.sub + local.set $0 + i32.const 16 + local.set $3 + end + end + local.get $3 + i32.const 10 + local.get $3 + select + local.set $6 + local.get $0 + i32.const 1 + i32.sub + local.set $7 + loop $while-continue|2 + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + if + block $while-break|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 i32.sub local.tee $1 - i32.const 0 - i32.gt_s + i32.const 10 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=32 - local.get $4 - local.get $0 local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=24 - local.get $2 - local.get $4 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1712 - call $~lib/array/Array<~lib/string/String>#push + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $3 + i32.const 55 + i32.sub + else + local.get $3 + i32.const 87 + i32.sub + local.get $3 + local.get $3 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + end + local.set $1 end - br $folding-inner4 + local.get $1 + local.get $6 + i32.ge_u + if + local.get $0 + local.get $7 + i32.eq + br_if $folding-inner0 + br $while-break|2 + end + local.get $5 + local.get $6 + i32.mul + local.get $1 + i32.add + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|2 end - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 0 - i32.const 5 - i32.const 0 - call $~lib/rt/__newArray - local.set $2 - br $folding-inner4 end global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 + local.get $5 + i32.mul return end global.get $~lib/memory/__stack_pointer - i32.const 36 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 + local.get $1 + i64.const 100000000 + i64.ge_u + if + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 16220 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.wrap_i64 local.get $2 + call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.fromCharCode (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10034,39 +9847,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const 2147483647 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer + i32.const 2 local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 + i32.const 0 + i32.gt_s + local.tee $3 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store local.get $2 - call $~lib/string/String#split + local.get $0 + i32.store16 + local.get $3 + if + local.get $2 + local.get $1 + i32.store16 offset=2 + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10090,1088 +9900,2129 @@ i32.store local.get $1 local.get $0 - i32.load offset=12 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.ge_u if - i32.const 1264 - i32.const 15664 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1712 + return end global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - if - i32.const 15712 - i32.const 15664 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end + i32.load16_u + i32.store16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) - (func $start:std/string - (local $0 i32) - (local $1 f64) - (local $2 f32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 76 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 76 - memory.fill - global.get $std/string/str - i32.const 1056 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 8 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1168 - i32.const 1168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 10 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1200 - i32.const 1200 - call $~lib/string/String.__eq - i32.eqz + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u if - i32.const 0 - i32.const 1120 - i32.const 11 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1232 - i32.const 1232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 12 + i32.const 27 + local.get $1 + i32.clz + i32.sub + i32.shl + i32.add i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store - local.get $0 - i32.const 20 + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 i32.sub - i32.load offset=16 - i32.const 1 i32.shr_u i32.const 16 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 14 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + local.set $2 + end + local.get $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.store - global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.store - block $__inlined_func$~lib/string/String#charCodeAt$294 + local.get $1 + i32.ctz + local.get $2 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $0 - br $__inlined_func$~lib/string/String#charCodeAt$294 + i32.const 0 + i32.const 1648 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end local.get $0 - i32.load16_u - local.set $0 - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.ctz + local.get $1 i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 15 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 - i32.store - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - block $__inlined_func$~lib/string/String#codePointAt$295 - local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 1 - i32.le_u - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const -1 - local.set $0 - br $__inlined_func$~lib/string/String#codePointAt$295 - end - local.get $0 i32.const 2 - i32.eq - local.get $4 - i32.load16_u offset=2 - local.tee $0 - i32.const 64512 - i32.and - i32.const 55296 - i32.ne - i32.or - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#codePointAt$295 - end - local.get $4 - i32.load16_u offset=4 - local.tee $4 - i32.const 64512 - i32.and - i32.const 56320 - i32.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#codePointAt$295 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 59408 + i32.const 0 + i32.store + i32.const 60976 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - i32.const 10 + i32.const 2 i32.shl - local.get $4 + i32.const 59408 + i32.add + i32.const 0 + i32.store 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 59408 + i32.add + i32.const 0 + i32.store 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 - i32.const 56613888 - i32.sub local.set $0 + br $for-loop|0 end - local.get $0 - i32.const 105 - i32.ne + end + i32.const 59408 + i32.const 60980 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 59408 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1648 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u if i32.const 0 - i32.const 1120 + i32.const 1648 + i32.const 389 i32.const 16 - i32.const 1 call $~lib/builtins/abort unreachable end - memory.size + local.get $3 + local.get $1 i32.const 16 - i32.shl - i32.const 59404 i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1492 - i32.const 1488 - i32.store - i32.const 1496 - i32.const 1488 - i32.store - i32.const 1488 - global.set $~lib/rt/itcms/pinSpace - i32.const 1524 - i32.const 1520 - i32.store - i32.const 1528 - i32.const 1520 - i32.store - i32.const 1520 - global.set $~lib/rt/itcms/toSpace - i32.const 1604 - i32.const 1600 - i32.store - i32.const 1608 - i32.const 1600 - i32.store - i32.const 1600 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=8 - local.get $0 - i32.const 15 - call $~lib/string/String#at - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 - i32.store offset=8 - local.get $4 - i32.const 15 - call $~lib/string/String#charAt - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $0 - local.get $4 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 17 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=8 - local.get $0 - i32.const -1 - call $~lib/string/String#at - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - global.get $std/string/str local.tee $5 - i32.store offset=12 - local.get $4 - local.get $5 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - call $~lib/string/String#charAt - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $0 - local.get $4 - call $~lib/string/String.__eq - i32.eqz + i32.eq if - i32.const 0 - i32.const 1120 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.sub - call $~lib/string/String#at - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 + end + else local.get $0 - i32.const 1744 - call $~lib/string/String.__eq - i32.eqz + i32.const 1572 + i32.add + local.get $1 + i32.gt_u if i32.const 0 - i32.const 1120 - i32.const 19 - i32.const 1 + i32.const 1648 + i32.const 402 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1712 - call $~lib/string/String.__not - i32.eqz + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $std/string/str + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1264 + call $~lib/rt/itcms/__visit + i32.const 14064 + call $~lib/rt/itcms/__visit + i32.const 15712 + call $~lib/rt/itcms/__visit + i32.const 1376 + call $~lib/rt/itcms/__visit + i32.const 16640 + call $~lib/rt/itcms/__visit + i32.const 17696 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.ne if - i32.const 0 - i32.const 1120 - i32.const 21 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1440 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - i32.const 1776 - call $~lib/string/String.__not + end + ) + (func $~lib/math/ipow32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + i32.const 5 + local.set $1 + i32.const 1 + local.set $2 + local.get $0 + i32.const 0 + i32.le_s + if + local.get $0 + i32.eqz + return + else + local.get $0 + i32.const 1 + i32.eq if - i32.const 0 - i32.const 1120 - i32.const 22 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 5 + return + else + local.get $0 + i32.const 2 + i32.eq + if + i32.const 25 + return + else + local.get $0 + i32.const 32 + i32.lt_s + if + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + i32.const 31 + local.get $0 + i32.clz + i32.sub + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + i32.const 5 + i32.const 1 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + i32.const 25 + local.set $1 + end + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + local.get $1 + local.get $1 + i32.mul + local.set $1 + end + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + local.get $1 + local.get $1 + i32.mul + local.set $1 + end + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + local.get $1 + local.get $1 + i32.mul + local.set $1 + end + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 + i32.const 1 + i32.and + select + local.set $2 + end + local.get $2 + return + end + end end - i32.const 1808 - call $~lib/string/String.__not + end + loop $while-continue|1 + local.get $0 if - i32.const 0 - i32.const 1120 - i32.const 23 + local.get $1 + local.get $2 + i32.mul + local.get $2 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.and + select + local.set $2 + local.get $0 + i32.const 1 + i32.shr_u + local.set $0 + local.get $1 + local.get $1 + i32.mul + local.set $1 + br $while-continue|1 end - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.fromCharCode@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + end + local.get $2 + ) + (func $~lib/math/NativeMath.scalbn (param $0 f64) (param $1 i32) (result f64) + local.get $1 + i32.const 1023 + i32.gt_s + if (result f64) local.get $0 - i32.const 1776 - call $~lib/string/String.__eq - i32.eqz + f64.const 8988465674311579538646525e283 + f64.mul + local.set $0 + local.get $1 + i32.const 1023 + i32.sub + local.tee $1 + i32.const 1023 + i32.gt_s + if (result f64) + i32.const 1023 + local.get $1 + i32.const 1023 + i32.sub + local.tee $1 + local.get $1 + i32.const 1023 + i32.ge_s + select + local.set $1 + local.get $0 + f64.const 8988465674311579538646525e283 + f64.mul + else + local.get $0 + end + else + local.get $1 + i32.const -1022 + i32.lt_s + if (result f64) + local.get $0 + f64.const 2.004168360008973e-292 + f64.mul + local.set $0 + local.get $1 + i32.const 969 + i32.add + local.tee $1 + i32.const -1022 + i32.lt_s + if (result f64) + i32.const -1022 + local.get $1 + i32.const 969 + i32.add + local.tee $1 + local.get $1 + i32.const -1022 + i32.le_s + select + local.set $1 + local.get $0 + f64.const 2.004168360008973e-292 + f64.mul + else + local.get $0 + end + else + local.get $0 + end + end + local.get $1 + i64.extend_i32_s + i64.const 1023 + i64.add + i64.const 52 + i64.shl + f64.reinterpret_i64 + f64.mul + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $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 + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + local.tee $3 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u if - i32.const 0 - i32.const 1120 - i32.const 25 - i32.const 1 + i32.const 14064 + i32.const 15664 + i32.const 19 + i32.const 48 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength - i32.const 65600 - call $~lib/string/String.fromCharCode@varargs - local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1840 - call $~lib/string/String.__eq - i32.eqz + i32.load + local.tee $2 + i32.const 1073741820 + local.get $3 + i32.const 1 + i32.shl + local.tee $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $3 + i32.lt_u + select + local.tee $1 + call $~lib/rt/itcms/__renew + local.tee $3 + local.get $2 + i32.ne if + local.get $0 + local.get $3 + i32.store + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $3 i32.const 0 - i32.const 1120 - i32.const 26 - i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__link end - i32.const 1 - global.set $~argumentsLength - i32.const 54 - call $~lib/string/String.fromCharCode@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $1 + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + call $start:std/string + ) + (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 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 26636 + i32.lt_s + if + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $folding-inner0 local.get $0 - i32.const 1872 - call $~lib/string/String.__eq + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 i32.eqz + br_if $folding-inner0 + local.get $0 + i32.load16_u + local.set $3 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$6 (result i32) + local.get $3 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $3 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $3 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$6 + drop + i32.const 1 + local.get $3 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$6 + drop + block $break|0 + block $case6|0 + local.get $3 + i32.const 5760 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8232 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8233 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8239 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 8287 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 12288 + i32.eq + br_if $case6|0 + local.get $3 + i32.const 65279 + i32.eq + br_if $case6|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$6 + end + i32.const 0 + end + if + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $3 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + f64.const 1 + local.set $4 + local.get $3 + i32.const 45 + i32.eq + local.tee $6 + local.get $3 + i32.const 43 + i32.eq + i32.or if - i32.const 0 - i32.const 1120 - i32.const 27 + local.get $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.tee $2 + i32.eqz + br_if $folding-inner0 + f64.const -1 + f64.const 1 + local.get $6 + select + local.set $4 + local.get $0 + i32.const 2 + i32.add + local.tee $0 + i32.load16_u + local.set $3 end - i32.const 1 - global.set $~argumentsLength - i32.const 65590 - call $~lib/string/String.fromCharCode@varargs - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1872 - call $~lib/string/String.__eq - i32.eqz + local.get $1 if - i32.const 0 - i32.const 1120 - i32.const 28 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 2 + i32.lt_s + local.get $1 + i32.const 36 + i32.gt_s + i32.or + br_if $folding-inner0 + local.get $1 + i32.const 16 + i32.eq + if + local.get $3 + i32.const 48 + i32.eq + local.get $2 + i32.const 2 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.load16_u offset=2 + i32.const 32 + i32.or + i32.const 120 + i32.eq + else + i32.const 0 + end + if + local.get $2 + i32.const 2 + i32.sub + local.set $2 + local.get $0 + i32.const 4 + i32.add + local.set $0 + end + end + else + local.get $3 + i32.const 48 + i32.eq + local.get $2 + i32.const 2 + i32.gt_s + i32.and + if + block $break|1 + block $case2|1 + block $case1|1 + local.get $0 + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $3 + i32.const 98 + i32.ne + if + local.get $3 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $3 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + local.set $1 + br $break|1 + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + local.set $1 + br $break|1 + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + local.set $1 + end + end + local.get $1 + i32.const 10 + local.get $1 + select + local.set $1 end - i32.const 55296 - i32.const 57088 - call $~lib/string/String.fromCharCode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1904 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 29 + local.get $2 + i32.const 1 + i32.sub + local.set $7 + loop $while-continue|2 + local.get $2 + local.tee $3 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $2 + local.get $3 + if + block $while-break|2 + local.get $0 + i32.load16_u + local.tee $6 + i32.const 48 + i32.sub + local.tee $3 + i32.const 10 + i32.ge_u + if + local.get $6 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $6 + i32.const 55 + i32.sub + else + local.get $6 + i32.const 87 + i32.sub + local.get $6 + local.get $6 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select + end + local.set $3 + end + local.get $1 + local.get $3 + i32.le_u + if + local.get $2 + local.get $7 + i32.eq + br_if $folding-inner0 + br $while-break|2 + end + local.get $5 + local.get $1 + f64.convert_i32_s + f64.mul + local.get $3 + f64.convert_i32_u + f64.add + local.set $5 + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|2 + end + end end - i32.const 2 - i32.const 4 - i32.const 1936 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/string/String.fromCharCodes - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 30 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 3 i32.const 4 - i32.const 2000 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/string/String.fromCharCodes - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $5 + f64.mul + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + f64.const nan:0x8000000000000 + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 i32.store - local.get $0 - i32.const 2032 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 31 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - i32.const 5 - i32.const 4 - i32.const 2064 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/string/String.fromCharCodes - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 i32.store - local.get $0 - i32.const 2112 - call $~lib/string/String.__eq - i32.eqz - if + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 i32.const 0 - i32.const 1120 - i32.const 32 + local.get $2 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $~lib/string/String.fromCodePoint - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1776 - call $~lib/string/String.__eq - i32.eqz - if + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 i32.const 0 - i32.const 1120 - i32.const 34 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 + end + local.get $1 + i32.const 2 + i32.add + end + end + end + ) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + local.get $1 + local.get $0 + i64.sub + local.set $9 + i64.const 1 + i32.const 0 + local.get $2 + i32.sub + local.tee $11 + i64.extend_i32_s + local.tee $0 + i64.shl + local.tee $10 + i64.const 1 + i64.sub + local.tee $12 + local.get $1 + i64.and + local.set $8 + local.get $1 + local.get $0 + i64.shr_u + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add end - i32.const 54 - call $~lib/string/String.fromCodePoint - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1872 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 35 - i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add end - i32.const 119558 - call $~lib/string/String.fromCodePoint - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2144 - call $~lib/string/String.__eq - i32.eqz + end + local.set $7 + loop $while-continue|0 + local.get $7 + i32.const 0 + i32.gt_s if - i32.const 0 - i32.const 1120 - i32.const 36 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store - block $__inlined_func$~lib/string/String#startsWith$296 + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $2 + i32.const 1000000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100 + i32.div_u + local.set $5 + local.get $2 + i32.const 100 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $5 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $5 + end local.get $4 - i32.const 2172 - i32.load + local.get $5 + i32.or + if + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 + i32.const 1 + i32.shl + i32.const 23344 + i32.add + local.get $5 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $7 i32.const 1 - i32.shr_u - local.tee $4 - i32.lt_s + i32.sub + local.set $7 + local.get $3 + local.get $2 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $8 + i64.add + local.tee $0 + i64.ge_u if - global.get $~lib/memory/__stack_pointer - i32.const 8 + global.get $~lib/util/number/_K + local.get $7 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - br $__inlined_func$~lib/string/String#startsWith$296 + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 24272 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 + i32.const 1 + i32.shl + i32.const 23342 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $0 + local.get $9 + i64.lt_u + local.get $3 + local.get $0 + i64.sub + local.get $1 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $0 + local.get $1 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $0 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2176 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2176 - local.get $4 - call $~lib/util/string/compareImpl - i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + br $while-continue|0 end - local.get $0 - i32.eqz + end + loop $while-continue|4 + local.get $3 + i64.const 10 + i64.mul + local.set $3 + local.get $8 + i64.const 10 + i64.mul + local.tee $0 + local.get $11 + i64.extend_i32_s + i64.shr_u + local.tee $1 + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - i32.const 0 - i32.const 1120 - i32.const 38 + local.get $4 + local.tee $2 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + local.set $4 + local.get $2 + i32.const 1 + i32.shl + i32.const 23344 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store + local.get $7 i32.const 1 - global.set $~argumentsLength - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2208 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.set $7 local.get $0 - i32.store + local.get $12 + i64.and + local.tee $8 + local.get $3 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 24272 + i32.add + i64.load32_u + i64.mul + local.set $0 + local.get $4 + i32.const 1 + i32.shl + i32.const 23342 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|6 local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 2208 - i32.store - block $__inlined_func$~lib/string/String#endsWith$297 - i32.const 536870910 - local.get $4 - local.get $4 - i32.const 536870910 - i32.gt_s - select - i32.const 2204 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - br $__inlined_func$~lib/string/String#endsWith$297 - end - global.get $~lib/memory/__stack_pointer + local.get $8 + i64.gt_u + local.get $3 + local.get $8 + i64.sub + local.get $10 + i64.ge_u + i32.and + if (result i32) local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2208 - i32.store offset=4 + local.get $8 + local.get $10 + i64.add + local.tee $1 + i64.gt_u local.get $0 - local.get $5 - i32.const 2208 - local.get $4 - call $~lib/util/string/compareImpl - i32.eqz - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $8 + i64.sub + local.get $1 + local.get $0 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 39 + local.get $7 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.sub + local.set $7 + local.get $8 + local.get $10 + i64.add + local.set $8 + br $while-continue|6 end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + ) + (func $std/string/getString (result i32) + global.get $std/string/str + ) + (func $start:std/string + (local $0 i32) + (local $1 f64) + (local $2 f32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 76 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 26636 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store offset=4 - local.get $0 - i32.const 2240 i32.const 0 - call $~lib/string/String#indexOf - i32.const -1 + i32.const 76 + memory.fill + global.get $std/string/str + i32.const 1056 i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.eqz if i32.const 0 i32.const 1120 - i32.const 40 + i32.const 8 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 2272 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 - i32.store offset=4 - local.get $0 - local.get $4 + i32.const 1168 + i32.const 1168 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 42 + i32.const 10 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=8 - local.get $0 - i32.const 15 - i32.const 2272 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 - i32.store offset=4 - local.get $0 - local.get $4 + i32.const 1200 + i32.const 1200 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 43 + i32.const 11 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 3 - i32.const 2272 - call $~lib/string/String#padStart - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2304 + i32.const 1232 + i32.const 1232 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 44 + i32.const 12 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 10 - i32.const 1712 - call $~lib/string/String#padStart - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/string/str + local.tee $0 i32.store local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 16 + i32.ne if i32.const 0 i32.const 1120 - i32.const 45 + i32.const 14 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 100 - i32.const 1712 - call $~lib/string/String#padStart - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 46 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 2336 - i32.const 5 - i32.const 2272 - call $~lib/string/String#padStart - local.set $0 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $0 - i32.const 2368 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 47 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 2336 - i32.const 6 - i32.const 2400 - call $~lib/string/String#padStart - local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + block $__inlined_func$~lib/string/String#charCodeAt$294 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $0 + br $__inlined_func$~lib/string/String#charCodeAt$294 + end + local.get $0 + i32.load16_u + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end local.get $0 - i32.const 2432 - call $~lib/string/String.__eq - i32.eqz + i32.const 104 + i32.ne if i32.const 0 i32.const 1120 - i32.const 48 + i32.const 15 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 8 - i32.const 2400 - call $~lib/string/String#padStart - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/string/str + local.tee $4 + i32.store + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + block $__inlined_func$~lib/string/String#codePointAt$295 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $0 + i32.const 1 + i32.le_u + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const -1 + local.set $0 + br $__inlined_func$~lib/string/String#codePointAt$295 + end + local.get $0 + i32.const 2 + i32.eq + local.get $4 + i32.load16_u offset=2 + local.tee $0 + i32.const 64512 + i32.and + i32.const 55296 + i32.ne + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#codePointAt$295 + end + local.get $4 + i32.load16_u offset=4 + local.tee $4 + i32.const 64512 + i32.and + i32.const 56320 + i32.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#codePointAt$295 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 10 + i32.shl + local.get $4 + i32.add + i32.const 56613888 + i32.sub + local.set $0 + end local.get $0 - i32.const 2464 - call $~lib/string/String.__eq - i32.eqz + i32.const 105 + i32.ne if i32.const 0 i32.const 1120 - i32.const 49 + i32.const 16 i32.const 1 call $~lib/builtins/abort unreachable end + memory.size + i32.const 16 + i32.shl + i32.const 59404 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1492 + i32.const 1488 + i32.store + i32.const 1496 + i32.const 1488 + i32.store + i32.const 1488 + global.set $~lib/rt/itcms/pinSpace + i32.const 1524 + i32.const 1520 + i32.store + i32.const 1528 + i32.const 1520 + i32.store + i32.const 1520 + global.set $~lib/rt/itcms/toSpace + i32.const 1604 + i32.const 1600 + i32.store + i32.const 1608 + i32.const 1600 + i32.store + i32.const 1600 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 i32.store offset=8 local.get $0 - i32.const 0 - i32.const 2272 - call $~lib/string/String#padEnd + i32.const 15 + call $~lib/string/String#at local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -11179,6 +12030,13 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 15 + call $~lib/string/String#charAt + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 local.get $0 local.get $4 @@ -11187,7 +12045,7 @@ if i32.const 0 i32.const 1120 - i32.const 51 + i32.const 17 i32.const 1 call $~lib/builtins/abort unreachable @@ -11197,9 +12055,8 @@ local.tee $0 i32.store offset=8 local.get $0 - i32.const 15 - i32.const 2272 - call $~lib/string/String#padEnd + i32.const -1 + call $~lib/string/String#at local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -11207,6 +12064,24 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $5 + i32.store offset=12 + local.get $4 + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + call $~lib/string/String#charAt + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store offset=4 local.get $0 local.get $4 @@ -11215,273 +12090,303 @@ if i32.const 0 i32.const 1120 - i32.const 52 + i32.const 18 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 3 - i32.const 2272 - call $~lib/string/String#padEnd + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $4 + i32.store offset=8 + local.get $0 + i32.const 0 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.sub + call $~lib/string/String#at local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2304 + i32.const 1744 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 53 + i32.const 19 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1712 - i32.const 10 - i32.const 1712 - call $~lib/string/String#padEnd - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq + call $~lib/string/String.__not i32.eqz if i32.const 0 i32.const 1120 - i32.const 54 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1776 + call $~lib/string/String.__not + if + i32.const 0 + i32.const 1120 + i32.const 22 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1808 - i32.const 100 - i32.const 1712 - call $~lib/string/String#padEnd - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - i32.eqz + call $~lib/string/String.__not if i32.const 0 i32.const 1120 - i32.const 55 + i32.const 23 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 5 - i32.const 2272 - call $~lib/string/String#padEnd + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String.fromCharCode@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2512 + i32.const 1776 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 56 + i32.const 25 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 6 - i32.const 2336 - call $~lib/string/String#padEnd + i32.const 1 + global.set $~argumentsLength + i32.const 65600 + call $~lib/string/String.fromCharCode@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2544 + i32.const 1840 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 57 + i32.const 26 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 8 - i32.const 2336 - call $~lib/string/String#padEnd + i32.const 1 + global.set $~argumentsLength + i32.const 54 + call $~lib/string/String.fromCharCode@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2576 + i32.const 1872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 58 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1712 - i32.const 1712 - i32.const 0 - call $~lib/string/String#indexOf - if - i32.const 0 - i32.const 1120 - i32.const 60 + i32.const 27 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 2176 - i32.const 0 - call $~lib/string/String#indexOf - i32.const -1 - i32.ne + i32.const 1 + global.set $~argumentsLength + i32.const 65590 + call $~lib/string/String.fromCharCode@varargs + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1872 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 61 + i32.const 28 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 1808 - i32.const 0 - call $~lib/string/String#indexOf + i32.const 55296 + i32.const 57088 + call $~lib/string/String.fromCharCode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 62 + i32.const 29 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2 + i32.const 4 + i32.const 1936 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 + local.get $0 i32.store offset=4 local.get $0 - local.get $4 - i32.const 0 - call $~lib/string/String#indexOf + call $~lib/string/String.fromCharCodes + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 63 + i32.const 30 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 3 + i32.const 4 + i32.const 2000 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.fromCharCodes + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - i32.const 1712 - i32.const 0 - call $~lib/string/String#indexOf + i32.const 2032 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 64 + i32.const 31 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 5 + i32.const 4 + i32.const 2064 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/string/String.fromCharCodes + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - i32.const 2624 - i32.const 0 - call $~lib/string/String#indexOf - i32.const 2 - i32.ne + i32.const 2112 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 65 + i32.const 32 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 0 + call $~lib/string/String.fromCodePoint + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 + local.get $0 i32.store local.get $0 - i32.const 2656 - i32.const 0 - call $~lib/string/String#indexOf - i32.const -1 - i32.ne + i32.const 1776 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 66 + i32.const 34 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 54 + call $~lib/string/String.fromCodePoint + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 + local.get $0 i32.store local.get $0 - i32.const 2624 - i32.const 2 - call $~lib/string/String#indexOf - i32.const 2 - i32.ne + i32.const 1872 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 67 + i32.const 35 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 119558 + call $~lib/string/String.fromCodePoint + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 + local.get $0 i32.store local.get $0 - i32.const 2624 - i32.const 3 - call $~lib/string/String#indexOf - i32.const -1 - i32.ne + i32.const 2144 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 68 + i32.const 36 i32.const 1 call $~lib/builtins/abort unreachable @@ -11490,44 +12395,71 @@ global.get $std/string/str local.tee $0 i32.store + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - i32.const 2688 - i32.const -1 - call $~lib/string/String#indexOf - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 69 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - global.set $~argumentsLength - i32.const 1712 - i32.const 1712 - call $~lib/string/String#lastIndexOf@varargs - if - i32.const 0 - i32.const 1120 - i32.const 71 + i32.shr_u + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 2176 + i32.store + block $__inlined_func$~lib/string/String#startsWith$296 + local.get $4 + i32.const 2172 + i32.load i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.tee $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + br $__inlined_func$~lib/string/String#startsWith$296 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2176 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2176 + local.get $4 + call $~lib/util/string/compareImpl + i32.eqz + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const 1 - global.set $~argumentsLength - i32.const 1712 - i32.const 2176 - call $~lib/string/String#lastIndexOf@varargs - i32.const -1 - i32.ne + local.get $0 + i32.eqz if i32.const 0 i32.const 1120 - i32.const 72 + i32.const 38 i32.const 1 call $~lib/builtins/abort unreachable @@ -11538,43 +12470,100 @@ i32.store i32.const 1 global.set $~argumentsLength + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1712 - call $~lib/string/String#lastIndexOf@varargs + i32.store global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $4 + i32.const 2208 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $4 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 73 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 2208 + i32.store + block $__inlined_func$~lib/string/String#endsWith$297 + i32.const 536870910 + local.get $4 + local.get $4 + i32.const 536870910 + i32.gt_s + select + i32.const 2204 + i32.load i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + local.tee $4 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + br $__inlined_func$~lib/string/String#endsWith$297 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2208 + i32.store offset=4 + local.get $0 + local.get $5 + i32.const 2208 + local.get $4 + call $~lib/util/string/compareImpl + i32.eqz + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store - i32.const 1 - global.set $~argumentsLength + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 2624 - call $~lib/string/String#lastIndexOf@varargs - i32.const 2 - i32.ne + i32.eqz if i32.const 0 i32.const 1120 - i32.const 74 + i32.const 39 i32.const 1 call $~lib/builtins/abort unreachable @@ -11583,17 +12572,38 @@ global.get $std/string/str local.tee $0 i32.store - i32.const 1 - global.set $~argumentsLength + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2656 - call $~lib/string/String#lastIndexOf@varargs + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2240 + i32.store offset=4 + local.get $0 + i32.const 2240 + i32.const 0 + call $~lib/string/String#indexOf i32.const -1 i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.eqz if i32.const 0 i32.const 1120 - i32.const 75 + i32.const 40 i32.const 1 call $~lib/builtins/abort unreachable @@ -11601,54 +12611,27 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store - i32.const 1 - global.set $~argumentsLength + i32.store offset=8 local.get $0 - i32.const 2720 - call $~lib/string/String#lastIndexOf@varargs - i32.const 15 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 76 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.const 2272 + call $~lib/string/String#padStart + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store local.get $0 - i32.const 2624 - i32.const 2 - call $~lib/string/String#lastIndexOf - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 77 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 - i32.store + local.tee $4 + i32.store offset=4 local.get $0 - i32.const 2624 - i32.const 3 - call $~lib/string/String#lastIndexOf - i32.const 2 - i32.ne + local.get $4 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 78 + i32.const 42 i32.const 1 call $~lib/builtins/abort unreachable @@ -11656,2593 +12639,2761 @@ global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $0 - i32.store + i32.store offset=8 local.get $0 - i32.const 2688 - i32.const -1 - call $~lib/string/String#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 79 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.const 15 + i32.const 2272 + call $~lib/string/String#padStart + local.set $0 global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store local.get $0 - i32.const 2752 - i32.const 0 - call $~lib/string/String#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 80 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.store global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 - i32.store + local.tee $4 + i32.store offset=4 local.get $0 - i32.const 2176 - i32.const 0 - call $~lib/string/String#lastIndexOf - if - i32.const 0 - i32.const 1120 - i32.const 81 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1712 - i32.const 1712 - call $~lib/string/String#localeCompare + local.get $4 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 83 + i32.const 43 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 i32.const 1712 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 3 + i32.const 2272 + call $~lib/string/String#padStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2304 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 84 + i32.const 44 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1712 - i32.const 1808 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 85 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 2784 - i32.const 2784 - call $~lib/string/String#localeCompare - if - i32.const 0 - i32.const 1120 - i32.const 86 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 2336 - i32.const 2816 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + i32.const 10 + i32.const 1712 + call $~lib/string/String#padStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 87 + i32.const 45 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 2848 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + i32.const 1808 + i32.const 100 + i32.const 1712 + call $~lib/string/String#padStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 88 + i32.const 46 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2816 i32.const 2336 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 5 + i32.const 2272 + call $~lib/string/String#padStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2368 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 89 + i32.const 47 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2880 i32.const 2336 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 6 + i32.const 2400 + call $~lib/string/String#padStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2432 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 90 + i32.const 48 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2912 i32.const 2336 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + i32.const 8 + i32.const 2400 + call $~lib/string/String#padStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2464 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 91 + i32.const 49 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2880 - i32.const 2944 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.const 2272 + call $~lib/string/String#padEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $4 + i32.store offset=4 + local.get $0 + local.get $4 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 92 + i32.const 51 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 2912 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=8 + local.get $0 + i32.const 15 + i32.const 2272 + call $~lib/string/String#padEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $4 + i32.store offset=4 + local.get $0 + local.get $4 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 93 + i32.const 52 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2944 - i32.const 2880 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + i32.const 1712 + i32.const 3 + i32.const 2272 + call $~lib/string/String#padEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2304 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 94 + i32.const 53 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1712 - i32.const 2304 - call $~lib/string/String#localeCompare - i32.const -1 - i32.ne + i32.const 10 + i32.const 1712 + call $~lib/string/String#padEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 95 + i32.const 54 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1776 + i32.const 1808 + i32.const 100 i32.const 1712 - call $~lib/string/String#localeCompare - i32.const 1 - i32.ne + call $~lib/string/String#padEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 96 + i32.const 55 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - call $~lib/string/String#trimStart + i32.const 2336 + i32.const 5 + i32.const 2272 + call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 2512 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 98 + i32.const 56 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2976 - call $~lib/string/String#trimStart + i32.const 2336 + i32.const 6 + i32.const 2336 + call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2976 + i32.const 2544 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 99 + i32.const 57 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3008 - call $~lib/string/String#trimStart + i32.const 2336 + i32.const 8 + i32.const 2336 + call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3056 + i32.const 2576 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 100 + i32.const 58 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1712 - call $~lib/string/String#trimEnd - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + i32.const 0 + call $~lib/string/String#indexOf if i32.const 0 i32.const 1120 - i32.const 102 + i32.const 60 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2976 - call $~lib/string/String#trimEnd - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2976 - call $~lib/string/String.__eq - i32.eqz + i32.const 1712 + i32.const 2176 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 103 + i32.const 61 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3008 - call $~lib/string/String#trimEnd - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3104 - call $~lib/string/String.__eq - i32.eqz + i32.const 1808 + i32.const 1808 + i32.const 0 + call $~lib/string/String#indexOf if i32.const 0 i32.const 1120 - i32.const 104 + i32.const 62 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - call $~lib/string/String#trim - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/string/str + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $4 + i32.store offset=4 local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + local.get $4 + i32.const 0 + call $~lib/string/String#indexOf if i32.const 0 i32.const 1120 - i32.const 106 + i32.const 63 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2976 - call $~lib/string/String#trim - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/string/str + local.tee $0 i32.store local.get $0 - i32.const 2976 - call $~lib/string/String.__eq - i32.eqz + i32.const 1712 + i32.const 0 + call $~lib/string/String#indexOf if i32.const 0 i32.const 1120 - i32.const 107 + i32.const 64 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3008 - call $~lib/string/String#trim - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $std/string/str + local.tee $0 i32.store local.get $0 - i32.const 2336 - call $~lib/string/String.__eq - i32.eqz + i32.const 2624 + i32.const 0 + call $~lib/string/String#indexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 108 + i32.const 65 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 3152 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3152 - call $~lib/util/string/strtob - i32.eqz + local.get $0 + i32.const 2656 + i32.const 0 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 111 + i32.const 66 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3200 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 3200 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3200 - call $~lib/util/string/strtob - i32.eqz + local.get $0 + i32.const 2624 + i32.const 2 + call $~lib/string/String#indexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 112 + i32.const 67 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 3248 + global.get $std/string/str + local.tee $0 i32.store - i32.const 3248 - call $~lib/util/string/strtob + local.get $0 + i32.const 2624 + i32.const 3 + call $~lib/string/String#indexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 113 + i32.const 68 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - i32.const 1712 + global.get $std/string/str + local.tee $0 i32.store - i32.const 1712 - call $~lib/util/string/strtob + local.get $0 + i32.const 2688 + i32.const -1 + call $~lib/string/String#indexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 114 + i32.const 69 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3296 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - i32.const 3296 - i32.store - i32.const 3296 - call $~lib/util/string/strtob + i32.const 1 + global.set $~argumentsLength + i32.const 1712 + i32.const 1712 + call $~lib/string/String#lastIndexOf@varargs if i32.const 0 i32.const 1120 - i32.const 115 + i32.const 71 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.store - i32.const 3328 - call $~lib/util/string/strtob + i32.const 1 + global.set $~argumentsLength + i32.const 1712 + i32.const 2176 + call $~lib/string/String#lastIndexOf@varargs + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 116 + i32.const 72 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 3360 - i32.store offset=40 + global.get $std/string/str + local.tee $0 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 1712 + call $~lib/string/String#lastIndexOf@varargs global.get $~lib/memory/__stack_pointer - i32.const 3360 + global.get $std/string/str + local.tee $4 i32.store - i32.const 3360 - call $~lib/util/string/strtob + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne if i32.const 0 i32.const 1120 - i32.const 117 + i32.const 73 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3392 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 2624 + call $~lib/string/String#lastIndexOf@varargs + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 119 + i32.const 74 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3424 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 2656 + call $~lib/string/String#lastIndexOf@varargs + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 120 + i32.const 75 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3456 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 2720 + call $~lib/string/String#lastIndexOf@varargs + i32.const 15 + i32.ne if i32.const 0 i32.const 1120 - i32.const 121 + i32.const 76 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3488 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + local.get $0 + i32.const 2624 + i32.const 2 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 122 + i32.const 77 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3520 - i32.const 0 - call $~lib/string/parseInt - f64.const 5 - f64.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + local.get $0 + i32.const 2624 + i32.const 3 + call $~lib/string/String#lastIndexOf + i32.const 2 + i32.ne if i32.const 0 i32.const 1120 - i32.const 123 + i32.const 78 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3552 - i32.const 0 - call $~lib/string/parseInt - f64.const 455 - f64.ne + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + local.get $0 + i32.const 2688 + i32.const -1 + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 124 + i32.const 79 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3584 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + local.get $0 + i32.const 2752 i32.const 0 - call $~lib/string/parseInt - f64.const 3855 - f64.ne + call $~lib/string/String#lastIndexOf + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 125 + i32.const 80 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3616 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + local.get $0 + i32.const 2176 i32.const 0 - call $~lib/string/parseInt - f64.const 3855 - f64.ne + call $~lib/string/String#lastIndexOf if i32.const 0 i32.const 1120 - i32.const 126 + i32.const 81 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3648 - i32.const 0 - call $~lib/string/parseInt - f64.const 11 - f64.ne + i32.const 1712 + i32.const 1712 + call $~lib/string/String#localeCompare if i32.const 0 i32.const 1120 - i32.const 127 + i32.const 83 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3680 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + i32.const 1808 + i32.const 1712 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 128 + i32.const 84 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3712 - i32.const 0 - call $~lib/string/parseInt - f64.const -123 - f64.ne + i32.const 1712 + i32.const 1808 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 129 + i32.const 85 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3744 - i32.const 0 - call $~lib/string/parseInt - f64.const 123 - f64.ne + i32.const 2784 + i32.const 2784 + call $~lib/string/String#localeCompare if i32.const 0 i32.const 1120 - i32.const 130 + i32.const 86 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3776 - i32.const 0 - call $~lib/string/parseInt - f64.const -12 - f64.ne + i32.const 2336 + i32.const 2816 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 131 + i32.const 87 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3392 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + i32.const 2336 + i32.const 2848 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 132 + i32.const 88 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3808 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + i32.const 2816 + i32.const 2336 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 133 + i32.const 89 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3840 - i32.const 16 - call $~lib/string/parseInt - f64.const 2833 - f64.ne + i32.const 2880 + i32.const 2336 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 134 + i32.const 90 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3872 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + i32.const 2912 + i32.const 2336 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 135 + i32.const 91 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3904 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + i32.const 2880 + i32.const 2944 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 136 + i32.const 92 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3936 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + i32.const 2336 + i32.const 2912 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 137 + i32.const 93 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3968 - i32.const 0 - call $~lib/string/parseInt - i64.reinterpret_f64 - i64.const 63 - i64.shr_u - i64.eqz + i32.const 2944 + i32.const 2880 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 138 + i32.const 94 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4000 - i32.const 0 - call $~lib/string/parseInt - i32.const 4048 - i32.const 16 - call $~lib/string/parseInt - f64.ne + i32.const 1712 + i32.const 2304 + call $~lib/string/String#localeCompare + i32.const -1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 139 + i32.const 95 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4080 - i32.const 0 - call $~lib/string/parseInt - f64.const 36893488147419103232 - f64.ne + i32.const 1776 + i32.const 1712 + call $~lib/string/String#localeCompare + i32.const 1 + i32.ne if i32.const 0 i32.const 1120 - i32.const 140 + i32.const 96 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4080 - i32.const 13 - call $~lib/string/parseInt - f64.const 5135857308667095285760 - f64.ne + i32.const 1712 + call $~lib/string/String#trimStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 141 + i32.const 98 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4144 - i32.const 10 - call $~lib/string/parseInt - f64.const -1.e+24 - f64.ne + i32.const 2976 + call $~lib/string/String#trimStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2976 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 142 + i32.const 99 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4224 - i32.const 16 - call $~lib/string/parseInt - f64.const 75557863725914323419136 - f64.ne + i32.const 3008 + call $~lib/string/String#trimStart + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3056 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 143 + i32.const 100 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4288 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + i32.const 1712 + call $~lib/string/String#trimEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 144 + i32.const 102 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4320 - i32.const 0 - call $~lib/string/parseInt - f64.const 2 - f64.ne + i32.const 2976 + call $~lib/string/String#trimEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2976 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 145 + i32.const 103 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4368 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + i32.const 3008 + call $~lib/string/String#trimEnd + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3104 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 147 + i32.const 104 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4400 - i32.const 0 - call $~lib/string/parseInt - f64.const 2 - f64.ne + i32.const 1712 + call $~lib/string/String#trim + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 148 + i32.const 106 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4448 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + i32.const 2976 + call $~lib/string/String#trim + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2976 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 149 + i32.const 107 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4480 - i32.const 0 - call $~lib/string/parseInt - f64.const 1 - f64.ne + i32.const 3008 + call $~lib/string/String#trim + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2336 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 150 + i32.const 108 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4512 - i32.const 0 - call $~lib/string/parseInt - f64.const 0 - f64.ne + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store + i32.const 3152 + call $~lib/util/string/strtob + i32.eqz if i32.const 0 i32.const 1120 - i32.const 151 + i32.const 111 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + global.get $~lib/memory/__stack_pointer + i32.const 3200 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 3200 + i32.store + i32.const 3200 + call $~lib/util/string/strtob + i32.eqz if i32.const 0 i32.const 1120 - i32.const 152 + i32.const 112 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4560 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store + i32.const 3248 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 153 + i32.const 113 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store + i32.const 1712 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 154 + i32.const 114 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2400 - i32.const 37 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + global.get $~lib/memory/__stack_pointer + i32.const 3296 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + i32.const 3296 + i32.store + i32.const 3296 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 155 + i32.const 115 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4624 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.store + i32.const 3328 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 156 + i32.const 116 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4656 - i32.const 0 - call $~lib/string/parseInt - local.tee $1 - local.get $1 - f64.eq + global.get $~lib/memory/__stack_pointer + i32.const 3360 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + i32.const 3360 + i32.store + i32.const 3360 + call $~lib/util/string/strtob if i32.const 0 i32.const 1120 - i32.const 157 + i32.const 117 i32.const 1 call $~lib/builtins/abort unreachable end - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.const 3392 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store - i32.const 4656 - call $~lib/util/string/strtod - f32.demote_f64 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $2 - f32.eq + call $~lib/string/parseInt + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 158 + i32.const 119 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4656 - call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + i32.const 3424 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 159 + i32.const 120 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store - i32.const 4656 - call $~lib/util/string/strtod - f32.demote_f64 - local.tee $2 - local.get $2 - f32.eq + i32.const 3456 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 160 + i32.const 121 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store - i32.const 4656 - call $~lib/util/string/strtod - local.tee $1 - local.get $1 - f64.eq + i32.const 3488 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 161 + i32.const 122 i32.const 1 call $~lib/builtins/abort unreachable end - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.const 3520 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store - call $~lib/util/string/strtol - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2147483647 - i32.ne + call $~lib/string/parseInt + f64.const 5 + f64.ne if i32.const 0 i32.const 1120 - i32.const 163 + i32.const 123 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store - call $~lib/util/string/strtol - i32.const 2147483647 - i32.ne + i32.const 3552 + i32.const 0 + call $~lib/string/parseInt + f64.const 455 + f64.ne if i32.const 0 i32.const 1120 - i32.const 164 + i32.const 124 i32.const 1 call $~lib/builtins/abort unreachable end - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.const 3584 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4928 - i32.store - call $~lib/util/string/strtol - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i64.const 9223372036854775807 - i64.ne + call $~lib/string/parseInt + f64.const 3855 + f64.ne if i32.const 0 i32.const 1120 - i32.const 165 + i32.const 125 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4928 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer - i32.const 4928 - i32.store - call $~lib/util/string/strtol - i64.const 9223372036854775807 - i64.ne + i32.const 3616 + i32.const 0 + call $~lib/string/parseInt + f64.const 3855 + f64.ne if i32.const 0 i32.const 1120 - i32.const 166 + i32.const 126 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3392 - call $~lib/number/F64.parseFloat - f64.const 0 + i32.const 3648 + i32.const 0 + call $~lib/string/parseInt + f64.const 11 f64.ne if i32.const 0 i32.const 1120 - i32.const 169 + i32.const 127 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3456 - call $~lib/number/F64.parseFloat + i32.const 3680 + i32.const 0 + call $~lib/string/parseInt f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 170 + i32.const 128 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4992 - call $~lib/number/F64.parseFloat - f64.const 1 + i32.const 3712 + i32.const 0 + call $~lib/string/parseInt + f64.const -123 f64.ne if i32.const 0 i32.const 1120 - i32.const 171 + i32.const 129 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5024 - call $~lib/number/F64.parseFloat - f64.const 1 + i32.const 3744 + i32.const 0 + call $~lib/string/parseInt + f64.const 123 f64.ne if i32.const 0 i32.const 1120 - i32.const 172 + i32.const 130 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5056 - call $~lib/number/F64.parseFloat - f64.const 1e-05 + i32.const 3776 + i32.const 0 + call $~lib/string/parseInt + f64.const -12 f64.ne if i32.const 0 i32.const 1120 - i32.const 173 + i32.const 131 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5088 - call $~lib/number/F64.parseFloat - f64.const -1e-05 + i32.const 3392 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 174 + i32.const 132 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5120 - call $~lib/number/F64.parseFloat - f64.const -3e-23 + i32.const 3808 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 175 + i32.const 133 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5168 - call $~lib/number/F64.parseFloat - f64.const 3e21 + i32.const 3840 + i32.const 16 + call $~lib/string/parseInt + f64.const 2833 f64.ne if i32.const 0 i32.const 1120 - i32.const 176 + i32.const 134 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5216 - call $~lib/number/F64.parseFloat - f64.const 0.1 + i32.const 3872 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 177 + i32.const 135 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5248 - call $~lib/number/F64.parseFloat - f64.const 0.1 + i32.const 3904 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 178 + i32.const 136 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5280 - call $~lib/number/F64.parseFloat - f64.const 0.1 + i32.const 3936 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 179 + i32.const 137 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5312 - call $~lib/number/F64.parseFloat - f64.const 0.25 - f64.ne + i32.const 3968 + i32.const 0 + call $~lib/string/parseInt + i64.reinterpret_f64 + i64.const 63 + i64.shr_u + i64.eqz if i32.const 0 i32.const 1120 - i32.const 180 + i32.const 138 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5344 - call $~lib/number/F64.parseFloat - f64.const 1e3 + i32.const 4000 + i32.const 0 + call $~lib/string/parseInt + i32.const 4048 + i32.const 16 + call $~lib/string/parseInt f64.ne if i32.const 0 i32.const 1120 - i32.const 181 + i32.const 139 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5376 - call $~lib/number/F64.parseFloat - f64.const 1e-10 + i32.const 4080 + i32.const 0 + call $~lib/string/parseInt + f64.const 36893488147419103232 f64.ne if i32.const 0 i32.const 1120 - i32.const 182 + i32.const 140 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5424 - call $~lib/number/F64.parseFloat - f64.const 1e-30 + i32.const 4080 + i32.const 13 + call $~lib/string/parseInt + f64.const 5135857308667095285760 f64.ne if i32.const 0 i32.const 1120 - i32.const 183 + i32.const 141 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5472 - call $~lib/number/F64.parseFloat - f64.const 1e-323 + i32.const 4144 + i32.const 10 + call $~lib/string/parseInt + f64.const -1.e+24 f64.ne if i32.const 0 i32.const 1120 - i32.const 184 + i32.const 142 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5520 - call $~lib/number/F64.parseFloat - f64.const 0 + i32.const 4224 + i32.const 16 + call $~lib/string/parseInt + f64.const 75557863725914323419136 f64.ne if i32.const 0 i32.const 1120 - i32.const 185 + i32.const 143 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5568 - call $~lib/number/F64.parseFloat - f64.const 1.e+308 + i32.const 4288 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 186 + i32.const 144 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5600 - call $~lib/number/F64.parseFloat - f64.const inf + i32.const 4320 + i32.const 0 + call $~lib/string/parseInt + f64.const 2 f64.ne if i32.const 0 i32.const 1120 - i32.const 187 + i32.const 145 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + i32.const 4368 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 188 + i32.const 147 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5632 - call $~lib/number/F64.parseFloat - f64.const 0.1 + i32.const 4400 + i32.const 0 + call $~lib/string/parseInt + f64.const 2 f64.ne if i32.const 0 i32.const 1120 - i32.const 191 + i32.const 148 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5680 - call $~lib/number/F64.parseFloat - f64.const 1e-10 + i32.const 4448 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 192 + i32.const 149 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5728 - call $~lib/number/F64.parseFloat - f64.const 10 + i32.const 4480 + i32.const 0 + call $~lib/string/parseInt + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 193 + i32.const 150 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5776 - call $~lib/number/F64.parseFloat - f64.const 1 + i32.const 4512 + i32.const 0 + call $~lib/string/parseInt + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 194 + i32.const 151 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5808 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + i32.const 1712 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 195 + i32.const 152 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5840 - call $~lib/number/F64.parseFloat - f64.const 10 - f64.ne + i32.const 4560 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 196 + i32.const 153 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5888 - call $~lib/number/F64.parseFloat - f64.const 123456789 - f64.ne + i32.const 4592 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 197 + i32.const 154 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5936 - call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + i32.const 2400 + i32.const 37 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 198 + i32.const 155 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 5984 - call $~lib/number/F64.parseFloat - f64.const 1e-60 - f64.ne + i32.const 4624 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 200 + i32.const 156 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6016 - call $~lib/number/F64.parseFloat - f64.const 1.e+60 - f64.ne + i32.const 4656 + i32.const 0 + call $~lib/string/parseInt + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 201 + i32.const 157 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6048 - call $~lib/number/F64.parseFloat - f64.const 123.4 - f64.ne + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store + i32.const 4656 + call $~lib/util/string/strtod + f32.demote_f64 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $2 + f32.eq if i32.const 0 i32.const 1120 - i32.const 204 + i32.const 158 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6080 + i32.const 4656 call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 205 + i32.const 159 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6112 - call $~lib/number/F64.parseFloat - f64.const -1.1 - f64.ne + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store + i32.const 4656 + call $~lib/util/string/strtod + f32.demote_f64 + local.tee $2 + local.get $2 + f32.eq if i32.const 0 i32.const 1120 - i32.const 206 + i32.const 160 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6160 - call $~lib/number/F64.parseFloat - f64.const 10 - f64.ne + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store + i32.const 4656 + call $~lib/util/string/strtod + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 207 + i32.const 161 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6208 - call $~lib/number/F64.parseFloat - f64.const 10 - f64.ne + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store + call $~lib/util/string/strtol + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2147483647 + i32.ne if i32.const 0 i32.const 1120 - i32.const 208 + i32.const 163 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6256 - call $~lib/number/F64.parseFloat - f64.const 0.022 - f64.ne + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store + call $~lib/util/string/strtol + i32.const 2147483647 + i32.ne if i32.const 0 i32.const 1120 - i32.const 209 + i32.const 164 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6304 - call $~lib/number/F64.parseFloat - f64.const 11 - f64.ne + 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 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4928 + i32.store + call $~lib/util/string/strtol + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i64.const 9223372036854775807 + i64.ne if i32.const 0 i32.const 1120 - i32.const 210 + i32.const 165 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3808 - call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + global.get $~lib/memory/__stack_pointer + i32.const 4928 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + i32.const 4928 + i32.store + call $~lib/util/string/strtol + i64.const 9223372036854775807 + i64.ne if i32.const 0 i32.const 1120 - i32.const 211 + i32.const 166 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6336 + i32.const 3392 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 212 + i32.const 169 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6368 + i32.const 3456 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 213 + i32.const 170 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6400 + i32.const 4992 call $~lib/number/F64.parseFloat - f64.const 1.1 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 214 + i32.const 171 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6432 + i32.const 5024 call $~lib/number/F64.parseFloat - f64.const -1.1 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 215 + i32.const 172 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6464 + i32.const 5056 call $~lib/number/F64.parseFloat - f64.const -1.1 + f64.const 1e-05 f64.ne if i32.const 0 i32.const 1120 - i32.const 216 + i32.const 173 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6496 + i32.const 5088 call $~lib/number/F64.parseFloat - f64.const -1.1 + f64.const -1e-05 f64.ne if i32.const 0 i32.const 1120 - i32.const 217 + i32.const 174 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6528 + i32.const 5120 call $~lib/number/F64.parseFloat - f64.const -1.1 + f64.const -3e-23 f64.ne if i32.const 0 i32.const 1120 - i32.const 218 + i32.const 175 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6560 + i32.const 5168 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 3e21 f64.ne if i32.const 0 i32.const 1120 - i32.const 219 + i32.const 176 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6592 + i32.const 5216 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 220 + i32.const 177 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6624 + i32.const 5248 call $~lib/number/F64.parseFloat - f64.const 1 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 221 + i32.const 178 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6656 + i32.const 5280 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 222 + i32.const 179 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6688 + i32.const 5312 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 0.25 f64.ne if i32.const 0 i32.const 1120 - i32.const 223 + i32.const 180 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6720 + i32.const 5344 call $~lib/number/F64.parseFloat - f64.const 10 + f64.const 1e3 f64.ne if i32.const 0 i32.const 1120 - i32.const 224 + i32.const 181 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6752 + i32.const 5376 call $~lib/number/F64.parseFloat - f64.const 10 + f64.const 1e-10 f64.ne if i32.const 0 i32.const 1120 - i32.const 225 + i32.const 182 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6800 + i32.const 5424 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 1e-30 f64.ne if i32.const 0 i32.const 1120 - i32.const 226 + i32.const 183 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6832 + i32.const 5472 call $~lib/number/F64.parseFloat - f64.const 1 + f64.const 1e-323 f64.ne if i32.const 0 i32.const 1120 - i32.const 227 + i32.const 184 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6864 + i32.const 5520 call $~lib/number/F64.parseFloat - f64.const 0.1 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 228 + i32.const 185 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6896 + i32.const 5568 call $~lib/number/F64.parseFloat - f64.const 1 + f64.const 1.e+308 f64.ne if i32.const 0 i32.const 1120 - i32.const 229 + i32.const 186 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6928 + i32.const 5600 call $~lib/number/F64.parseFloat - f64.const 10 + f64.const inf f64.ne if i32.const 0 i32.const 1120 - i32.const 230 + i32.const 187 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6960 + i32.const 1712 call $~lib/number/F64.parseFloat - f64.const 1 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 231 + i32.const 188 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 6992 + i32.const 5632 call $~lib/number/F64.parseFloat f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 232 + i32.const 191 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7024 + i32.const 5680 call $~lib/number/F64.parseFloat - f64.const 0.01 + f64.const 1e-10 f64.ne if i32.const 0 i32.const 1120 - i32.const 233 + i32.const 192 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7072 + i32.const 5728 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 10 f64.ne if i32.const 0 i32.const 1120 - i32.const 234 + i32.const 193 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7104 + i32.const 5776 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 235 + i32.const 194 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7136 + i32.const 5808 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 236 + i32.const 195 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7168 + i32.const 5840 call $~lib/number/F64.parseFloat - f64.const 0.1 + f64.const 10 f64.ne if i32.const 0 i32.const 1120 - i32.const 237 + i32.const 196 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7200 + i32.const 5888 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 123456789 f64.ne if i32.const 0 i32.const 1120 - i32.const 238 + i32.const 197 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7232 + i32.const 5936 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 239 + i32.const 198 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7264 + i32.const 5984 call $~lib/number/F64.parseFloat - f64.const 1 + f64.const 1e-60 f64.ne if i32.const 0 i32.const 1120 - i32.const 240 + i32.const 200 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7296 + i32.const 6016 call $~lib/number/F64.parseFloat - f64.const 0.1 + f64.const 1.e+60 f64.ne if i32.const 0 i32.const 1120 - i32.const 241 + i32.const 201 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7328 + i32.const 6048 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 123.4 f64.ne if i32.const 0 i32.const 1120 - i32.const 242 + i32.const 204 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7360 + i32.const 6080 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const 0 - i64.ne + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 243 + i32.const 205 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7392 + i32.const 6112 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const -9223372036854775808 - i64.ne + f64.const -1.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 244 + i32.const 206 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7424 + i32.const 6160 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const 0 - i64.ne + f64.const 10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 245 + i32.const 207 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3968 + i32.const 6208 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const -9223372036854775808 - i64.ne + f64.const 10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 246 + i32.const 208 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7456 + i32.const 6256 call $~lib/number/F64.parseFloat - i64.reinterpret_f64 - i64.const -9223372036854775808 - i64.ne + f64.const 0.022 + f64.ne if i32.const 0 i32.const 1120 - i32.const 247 + i32.const 209 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 + i32.const 6304 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 11 + f64.ne if i32.const 0 i32.const 1120 - i32.const 248 + i32.const 210 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4560 + i32.const 3808 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 249 + i32.const 211 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7504 + i32.const 6336 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 250 + i32.const 212 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7536 + i32.const 6368 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 251 + i32.const 213 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7568 + i32.const 6400 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 252 + i32.const 214 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7600 + i32.const 6432 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const -1.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 253 + i32.const 215 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7632 + i32.const 6464 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const -1.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 254 + i32.const 216 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7664 + i32.const 6496 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const -1.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 255 + i32.const 217 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7696 + i32.const 6528 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const -1.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 256 + i32.const 218 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7728 + i32.const 6560 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 257 + i32.const 219 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7760 + i32.const 6592 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 258 + i32.const 220 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7792 + i32.const 6624 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 259 + i32.const 221 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7824 + i32.const 6656 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 260 + i32.const 222 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7856 + i32.const 6688 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 261 + i32.const 223 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7888 + i32.const 6720 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 262 + i32.const 224 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3360 + i32.const 6752 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const 10 + f64.ne if i32.const 0 i32.const 1120 - i32.const 263 + i32.const 225 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7920 + i32.const 6800 call $~lib/number/F64.parseFloat - f64.const 1e22 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 264 + i32.const 226 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7952 + i32.const 6832 call $~lib/number/F64.parseFloat - f64.const 1e-22 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 265 + i32.const 227 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7984 + i32.const 6864 call $~lib/number/F64.parseFloat - f64.const 1.e+23 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 266 + i32.const 228 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8016 + i32.const 6896 call $~lib/number/F64.parseFloat - f64.const 1e-23 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 267 + i32.const 229 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8048 + i32.const 6928 call $~lib/number/F64.parseFloat - f64.const 1.e+37 + f64.const 10 f64.ne if i32.const 0 i32.const 1120 - i32.const 268 + i32.const 230 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8080 + i32.const 6960 call $~lib/number/F64.parseFloat - f64.const 1e-37 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 269 + i32.const 231 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8112 + i32.const 6992 call $~lib/number/F64.parseFloat - f64.const 1.e+38 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 270 + i32.const 232 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8144 + i32.const 7024 call $~lib/number/F64.parseFloat - f64.const 1e-38 + f64.const 0.01 f64.ne if i32.const 0 i32.const 1120 - i32.const 271 + i32.const 233 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8176 + i32.const 7072 call $~lib/number/F64.parseFloat - f64.const 2.220446049250313e-16 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 272 + i32.const 234 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8240 + i32.const 7104 call $~lib/number/F64.parseFloat - f64.const 1797693134862315708145274e284 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 273 + i32.const 235 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8320 + i32.const 7136 call $~lib/number/F64.parseFloat - f64.const 5e-324 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 274 + i32.const 236 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8352 + i32.const 7168 call $~lib/number/F64.parseFloat - f64.const 1.e+308 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 275 + i32.const 237 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8400 + i32.const 7200 call $~lib/number/F64.parseFloat - f64.const 1 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 276 + i32.const 238 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8544 + i32.const 7232 call $~lib/number/F64.parseFloat f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 277 + i32.const 239 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8592 + i32.const 7264 call $~lib/number/F64.parseFloat - f64.const inf + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 278 + i32.const 240 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8640 + i32.const 7296 call $~lib/number/F64.parseFloat - f64.const 0 + f64.const 0.1 f64.ne if i32.const 0 i32.const 1120 - i32.const 279 + i32.const 241 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8688 + i32.const 7328 call $~lib/number/F64.parseFloat - f64.const -inf + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 280 + i32.const 242 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8736 + i32.const 7360 call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + i64.reinterpret_f64 + i64.const 0 + i64.ne if i32.const 0 i32.const 1120 - i32.const 281 + i32.const 243 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8784 + i32.const 7392 call $~lib/number/F64.parseFloat - f64.const inf - f64.ne + i64.reinterpret_f64 + i64.const -9223372036854775808 + i64.ne if i32.const 0 i32.const 1120 - i32.const 282 + i32.const 244 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8832 + i32.const 7424 call $~lib/number/F64.parseFloat - f64.const inf - f64.ne + i64.reinterpret_f64 + i64.const 0 + i64.ne if i32.const 0 i32.const 1120 - i32.const 283 + i32.const 245 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8864 + i32.const 3968 call $~lib/number/F64.parseFloat - f64.const inf - f64.ne + i64.reinterpret_f64 + i64.const -9223372036854775808 + i64.ne if i32.const 0 i32.const 1120 - i32.const 284 + i32.const 246 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8912 + i32.const 7456 call $~lib/number/F64.parseFloat - f64.const inf - f64.ne + i64.reinterpret_f64 + i64.const -9223372036854775808 + i64.ne if i32.const 0 i32.const 1120 - i32.const 285 + i32.const 247 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8960 + i32.const 4592 call $~lib/number/F64.parseFloat - f64.const -inf - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 286 + i32.const 248 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9008 + i32.const 4560 call $~lib/number/F64.parseFloat - f64.const inf - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 287 + i32.const 249 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9056 + i32.const 7504 call $~lib/number/F64.parseFloat - f64.const inf - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 288 + i32.const 250 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9104 + i32.const 7536 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 @@ -14250,12 +15401,12 @@ if i32.const 0 i32.const 1120 - i32.const 289 + i32.const 251 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9136 + i32.const 7568 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 @@ -14263,12 +15414,12 @@ if i32.const 0 i32.const 1120 - i32.const 290 + i32.const 252 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9184 + i32.const 7600 call $~lib/number/F64.parseFloat local.tee $1 local.get $1 @@ -14276,2507 +15427,2218 @@ if i32.const 0 i32.const 1120 - i32.const 291 + i32.const 253 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9232 + i32.const 7632 call $~lib/number/F64.parseFloat - f64.const 0 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 295 + i32.const 254 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9424 + i32.const 7664 call $~lib/number/F64.parseFloat - f64.const 1e-323 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 308 + i32.const 255 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9616 + i32.const 7696 call $~lib/number/F64.parseFloat - f64.const 2.225073858507202e-308 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 312 + i32.const 256 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 9808 - i32.const 9968 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 10128 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 10288 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10448 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.const 7728 call $~lib/number/F64.parseFloat - f64.const 1797693134862315708145274e284 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 315 + i32.const 257 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10608 + i32.const 7760 call $~lib/number/F64.parseFloat - f64.const 9.753531888799502e-104 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 333 + i32.const 258 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10720 + i32.const 7792 call $~lib/number/F64.parseFloat - f64.const 0.5961860348131807 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 334 + i32.const 259 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10832 + i32.const 7824 call $~lib/number/F64.parseFloat - f64.const 0.18150131692180388 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 335 + i32.const 260 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 10944 + i32.const 7856 call $~lib/number/F64.parseFloat - f64.const 0.42070823575344535 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 336 + i32.const 261 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11056 + i32.const 7888 call $~lib/number/F64.parseFloat - f64.const 0.6654686306516261 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 337 + i32.const 262 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11168 + i32.const 3360 call $~lib/number/F64.parseFloat - f64.const 0.6101852922970868 - f64.ne + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 338 + i32.const 263 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11280 + i32.const 7920 call $~lib/number/F64.parseFloat - f64.const 0.7696695208236968 + f64.const 1e22 f64.ne if i32.const 0 i32.const 1120 - i32.const 339 + i32.const 264 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11392 + i32.const 7952 call $~lib/number/F64.parseFloat - f64.const 0.25050653222286823 + f64.const 1e-22 f64.ne if i32.const 0 i32.const 1120 - i32.const 340 + i32.const 265 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11504 + i32.const 7984 call $~lib/number/F64.parseFloat - f64.const 0.2740037230228005 + f64.const 1.e+23 f64.ne if i32.const 0 i32.const 1120 - i32.const 341 + i32.const 266 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11616 + i32.const 8016 call $~lib/number/F64.parseFloat - f64.const 0.20723093500497428 + f64.const 1e-23 f64.ne if i32.const 0 i32.const 1120 - i32.const 342 + i32.const 267 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11728 + i32.const 8048 call $~lib/number/F64.parseFloat - f64.const 7.900280238081605 + f64.const 1.e+37 f64.ne if i32.const 0 i32.const 1120 - i32.const 343 + i32.const 268 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11840 + i32.const 8080 call $~lib/number/F64.parseFloat - f64.const 98.22860653737297 + f64.const 1e-37 f64.ne if i32.const 0 i32.const 1120 - i32.const 344 + i32.const 269 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 11952 + i32.const 8112 call $~lib/number/F64.parseFloat - f64.const 746.894972319037 + f64.const 1.e+38 f64.ne if i32.const 0 i32.const 1120 - i32.const 345 + i32.const 270 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12064 + i32.const 8144 call $~lib/number/F64.parseFloat - f64.const 1630.2683202827284 + f64.const 1e-38 f64.ne if i32.const 0 i32.const 1120 - i32.const 346 + i32.const 271 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12176 + i32.const 8176 call $~lib/number/F64.parseFloat - f64.const 46371.68629719171 + f64.const 2.220446049250313e-16 f64.ne if i32.const 0 i32.const 1120 - i32.const 347 + i32.const 272 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12288 + i32.const 8240 call $~lib/number/F64.parseFloat - f64.const 653780.5944497711 + f64.const 1797693134862315708145274e284 f64.ne if i32.const 0 i32.const 1120 - i32.const 348 + i32.const 273 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12400 + i32.const 8320 call $~lib/number/F64.parseFloat - f64.const 234632.43565024371 + f64.const 5e-324 f64.ne if i32.const 0 i32.const 1120 - i32.const 349 + i32.const 274 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12512 + i32.const 8352 call $~lib/number/F64.parseFloat - f64.const 97094817.16420048 + f64.const 1.e+308 f64.ne if i32.const 0 i32.const 1120 - i32.const 350 + i32.const 275 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12624 + i32.const 8400 call $~lib/number/F64.parseFloat - f64.const 499690852.20518744 + f64.const 1 f64.ne if i32.const 0 i32.const 1120 - i32.const 351 + i32.const 276 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12736 + i32.const 8544 call $~lib/number/F64.parseFloat - f64.const 7925201200557245595648 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 352 + i32.const 277 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12848 + i32.const 8592 call $~lib/number/F64.parseFloat - f64.const 6096564585983177528398588e5 + f64.const inf f64.ne if i32.const 0 i32.const 1120 - i32.const 353 + i32.const 278 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12960 + i32.const 8640 call $~lib/number/F64.parseFloat - f64.const 4800416117477028695992383e42 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 354 + i32.const 279 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13072 + i32.const 8688 call $~lib/number/F64.parseFloat - f64.const 8524829079817968137287277e80 + f64.const -inf f64.ne if i32.const 0 i32.const 1120 - i32.const 355 + i32.const 280 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13184 + i32.const 8736 call $~lib/number/F64.parseFloat - f64.const 3271239291709782092398754e243 + f64.const 0 f64.ne if i32.const 0 i32.const 1120 - i32.const 356 + i32.const 281 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13296 + i32.const 8784 call $~lib/number/F64.parseFloat - local.tee $1 - local.get $1 - f64.eq + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 359 + i32.const 282 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13328 + i32.const 8832 call $~lib/number/F64.parseFloat - f64.const 0.1 + f64.const inf f64.ne if i32.const 0 i32.const 1120 - i32.const 360 + i32.const 283 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 1808 - i32.const 13360 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=60 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 13392 - call $~lib/string/String.__eq - i32.eqz + i32.const 8864 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 364 - i32.const 3 + i32.const 284 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1808 - call $~lib/string/String.__ne - i32.eqz + i32.const 8912 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 365 - i32.const 3 + i32.const 285 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + i32.const 8960 + call $~lib/number/F64.parseFloat + f64.const -inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 367 + i32.const 286 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz + i32.const 9008 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 369 + i32.const 287 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1712 - i32.const 0 - call $~lib/string/String.__ne - i32.eqz + i32.const 9056 + call $~lib/number/F64.parseFloat + f64.const inf + f64.ne if i32.const 0 i32.const 1120 - i32.const 371 + i32.const 288 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 1712 - call $~lib/string/String.__ne - i32.eqz + i32.const 9104 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 373 + i32.const 289 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 13360 - call $~lib/string/String.__ne - i32.eqz + i32.const 9136 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 375 + i32.const 290 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 1808 - call $~lib/string/String.__eq - i32.eqz + i32.const 9184 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 376 + i32.const 291 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13424 - i32.const 13456 - call $~lib/string/String.__ne - i32.eqz + i32.const 9232 + call $~lib/number/F64.parseFloat + f64.const 0 + f64.ne if i32.const 0 i32.const 1120 - i32.const 378 + i32.const 295 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13424 - i32.const 13424 - call $~lib/string/String.__eq - i32.eqz + i32.const 9424 + call $~lib/number/F64.parseFloat + f64.const 1e-323 + f64.ne if i32.const 0 i32.const 1120 - i32.const 379 + i32.const 308 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13488 - i32.const 13520 - call $~lib/string/String.__ne - i32.eqz + i32.const 9616 + call $~lib/number/F64.parseFloat + f64.const 2.225073858507202e-308 + f64.ne if i32.const 0 i32.const 1120 - i32.const 381 + i32.const 312 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13552 - i32.const 13584 - call $~lib/string/String.__ne - i32.eqz + i32.const 9808 + i32.const 9968 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 10128 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 10288 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10448 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/number/F64.parseFloat + f64.const 1797693134862315708145274e284 + f64.ne if i32.const 0 i32.const 1120 - i32.const 383 + i32.const 315 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13616 - i32.const 13616 - call $~lib/string/String.__eq - i32.eqz + i32.const 10608 + call $~lib/number/F64.parseFloat + f64.const 9.753531888799502e-104 + f64.ne if i32.const 0 i32.const 1120 - i32.const 384 + i32.const 333 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13616 - i32.const 13664 - call $~lib/string/String.__ne - i32.eqz + i32.const 10720 + call $~lib/number/F64.parseFloat + f64.const 0.5961860348131807 + f64.ne if i32.const 0 i32.const 1120 - i32.const 386 + i32.const 334 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13712 - i32.const 13760 - call $~lib/string/String.__ne - i32.eqz + i32.const 10832 + call $~lib/number/F64.parseFloat + f64.const 0.18150131692180388 + f64.ne if i32.const 0 i32.const 1120 - i32.const 388 + i32.const 335 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13360 - i32.const 1808 - call $~lib/string/String.__gt - i32.eqz + i32.const 10944 + call $~lib/number/F64.parseFloat + f64.const 0.42070823575344535 + f64.ne if i32.const 0 i32.const 1120 - i32.const 390 + i32.const 336 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13808 - i32.const 1808 - call $~lib/string/String.__gt - i32.eqz + i32.const 11056 + call $~lib/number/F64.parseFloat + f64.const 0.6654686306516261 + f64.ne if i32.const 0 i32.const 1120 - i32.const 391 + i32.const 337 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13808 - i32.const 13840 - call $~lib/string/String.__gte - i32.eqz + i32.const 11168 + call $~lib/number/F64.parseFloat + f64.const 0.6101852922970868 + f64.ne if i32.const 0 i32.const 1120 - i32.const 392 + i32.const 338 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13808 - i32.const 13392 - call $~lib/string/String.__gt - i32.eqz + i32.const 11280 + call $~lib/number/F64.parseFloat + f64.const 0.7696695208236968 + f64.ne if i32.const 0 i32.const 1120 - i32.const 393 + i32.const 339 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13808 - i32.const 13392 - call $~lib/string/String.__lt + i32.const 11392 + call $~lib/number/F64.parseFloat + f64.const 0.25050653222286823 + f64.ne if i32.const 0 i32.const 1120 - i32.const 394 + i32.const 340 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 1712 - call $~lib/string/String.__gt - i32.eqz + i32.const 11504 + call $~lib/number/F64.parseFloat + f64.const 0.2740037230228005 + f64.ne if i32.const 0 i32.const 1120 - i32.const 396 + i32.const 341 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 2336 - call $~lib/string/String.__lt - i32.eqz + i32.const 11616 + call $~lib/number/F64.parseFloat + f64.const 0.20723093500497428 + f64.ne if i32.const 0 i32.const 1120 - i32.const 397 + i32.const 342 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 1712 - call $~lib/string/String.__gte - i32.eqz + i32.const 11728 + call $~lib/number/F64.parseFloat + f64.const 7.900280238081605 + f64.ne if i32.const 0 i32.const 1120 - i32.const 398 + i32.const 343 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 2336 - call $~lib/string/String.__lte - i32.eqz + i32.const 11840 + call $~lib/number/F64.parseFloat + f64.const 98.22860653737297 + f64.ne if i32.const 0 i32.const 1120 - i32.const 399 + i32.const 344 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 1712 - call $~lib/string/String.__lt + i32.const 11952 + call $~lib/number/F64.parseFloat + f64.const 746.894972319037 + f64.ne if i32.const 0 i32.const 1120 - i32.const 400 + i32.const 345 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 2336 - call $~lib/string/String.__gt + i32.const 12064 + call $~lib/number/F64.parseFloat + f64.const 1630.2683202827284 + f64.ne if i32.const 0 i32.const 1120 - i32.const 401 + i32.const 346 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__lt + i32.const 12176 + call $~lib/number/F64.parseFloat + f64.const 46371.68629719171 + f64.ne if i32.const 0 i32.const 1120 - i32.const 402 + i32.const 347 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__gt + i32.const 12288 + call $~lib/number/F64.parseFloat + f64.const 653780.5944497711 + f64.ne if i32.const 0 i32.const 1120 - i32.const 403 + i32.const 348 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__gte - i32.eqz + i32.const 12400 + call $~lib/number/F64.parseFloat + f64.const 234632.43565024371 + f64.ne if i32.const 0 i32.const 1120 - i32.const 404 + i32.const 349 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - call $~lib/string/String.__lte - i32.eqz + i32.const 12512 + call $~lib/number/F64.parseFloat + f64.const 97094817.16420048 + f64.ne if i32.const 0 i32.const 1120 - i32.const 405 + i32.const 350 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3456 - i32.const 13872 - call $~lib/string/String.__lt - i32.eqz + i32.const 12624 + call $~lib/number/F64.parseFloat + f64.const 499690852.20518744 + f64.ne if i32.const 0 i32.const 1120 - i32.const 407 + i32.const 351 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13872 - i32.const 3456 - call $~lib/string/String.__gt - i32.eqz + i32.const 12736 + call $~lib/number/F64.parseFloat + f64.const 7925201200557245595648 + f64.ne if i32.const 0 i32.const 1120 - i32.const 408 + i32.const 352 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13904 - i32.const 13872 - call $~lib/string/String.__lt + i32.const 12848 + call $~lib/number/F64.parseFloat + f64.const 6096564585983177528398588e5 + f64.ne if i32.const 0 i32.const 1120 - i32.const 409 + i32.const 353 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13872 - i32.const 13904 - call $~lib/string/String.__gt + i32.const 12960 + call $~lib/number/F64.parseFloat + f64.const 4800416117477028695992383e42 + f64.ne if i32.const 0 i32.const 1120 - i32.const 410 + i32.const 354 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13904 - i32.const 13872 - call $~lib/string/String.__gt - i32.eqz + i32.const 13072 + call $~lib/number/F64.parseFloat + f64.const 8524829079817968137287277e80 + f64.ne if i32.const 0 i32.const 1120 - i32.const 411 + i32.const 355 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13872 - i32.const 13904 - call $~lib/string/String.__lt - i32.eqz + i32.const 13184 + call $~lib/number/F64.parseFloat + f64.const 3271239291709782092398754e243 + f64.ne if i32.const 0 i32.const 1120 - i32.const 412 + i32.const 356 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__lt + i32.const 13296 + call $~lib/number/F64.parseFloat + local.tee $1 + local.get $1 + f64.eq if i32.const 0 i32.const 1120 - i32.const 413 + i32.const 359 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__gt + i32.const 13328 + call $~lib/number/F64.parseFloat + f64.const 0.1 + f64.ne if i32.const 0 i32.const 1120 - i32.const 414 + i32.const 360 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__lte + global.get $~lib/memory/__stack_pointer + i32.const 1808 + i32.const 13360 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 13392 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 415 - i32.const 1 + i32.const 364 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__gte + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1808 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 416 - i32.const 1 + i32.const 365 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 13872 - i32.const 13936 - call $~lib/string/String.__gte + i32.const 1712 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 417 + i32.const 367 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13936 - i32.const 13872 - call $~lib/string/String.__gte + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + i32.const 0 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 418 + i32.const 369 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13872 - i32.const 13936 - call $~lib/string/String.__lte + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1712 + i32.const 0 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 419 + i32.const 371 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3456 - i32.const 3456 - call $~lib/string/String.__eq + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + i32.const 1712 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 420 + i32.const 373 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13904 - i32.const 13904 - call $~lib/string/String.__eq + i32.const 1808 + i32.const 13360 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 421 + i32.const 375 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2400 - i32.const 2400 + i32.const 1808 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 422 + i32.const 376 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2400 - i32.const 13968 + i32.const 13424 + i32.const 13456 call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 424 + i32.const 378 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14000 - i32.const 14000 + i32.const 13424 + i32.const 13424 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 425 + i32.const 379 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14032 - i32.const 14000 + i32.const 13488 + i32.const 13520 call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 427 + i32.const 381 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 65377 - call $~lib/string/String.fromCodePoint - local.tee $4 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer - i32.const 55296 - call $~lib/string/String.fromCodePoint - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - i32.const 56322 - call $~lib/string/String.fromCodePoint - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $6 - local.get $0 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - call $~lib/string/String.__gt + i32.const 13552 + i32.const 13584 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 432 - i32.const 3 + i32.const 383 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2396 - i32.load - i32.const 1 - i32.shr_u - i32.const 3 - i32.ne + i32.const 13616 + i32.const 13616 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 435 + i32.const 384 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 100 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq + i32.const 13616 + i32.const 13664 + call $~lib/string/String.__ne + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 386 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13712 + i32.const 13760 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 437 + i32.const 388 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 13360 i32.const 1808 - i32.const 0 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 438 + i32.const 390 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 13808 i32.const 1808 - i32.const 1 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 439 + i32.const 391 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 2 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.const 13808 i32.const 13840 - call $~lib/string/String.__eq + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 440 + i32.const 392 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 3 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14112 - call $~lib/string/String.__eq + i32.const 13808 + i32.const 13392 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 441 + i32.const 393 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 13808 i32.const 13392 - i32.const 4 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14144 - call $~lib/string/String.__eq + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 1120 + i32.const 394 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2336 + i32.const 1712 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 442 + i32.const 396 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 5 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14192 - call $~lib/string/String.__eq + i32.const 1712 + i32.const 2336 + call $~lib/string/String.__lt i32.eqz if i32.const 0 i32.const 1120 - i32.const 443 + i32.const 397 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 6 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14224 - call $~lib/string/String.__eq + i32.const 2336 + i32.const 1712 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 444 + i32.const 398 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1808 - i32.const 7 - call $~lib/string/String#repeat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14256 - call $~lib/string/String.__eq + i32.const 1712 + i32.const 2336 + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 1120 - i32.const 445 + i32.const 399 i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 2336 i32.const 1712 + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 1120 + i32.const 400 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 1712 + i32.const 2336 + call $~lib/string/String.__gt + if + i32.const 0 + i32.const 1120 + i32.const 401 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 1712 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 1712 - call $~lib/string/String.__eq - i32.eqz + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 - i32.const 447 + i32.const 402 i32.const 1 call $~lib/builtins/abort unreachable end i32.const 1712 i32.const 1712 - i32.const 4592 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4592 - call $~lib/string/String.__eq - i32.eqz + call $~lib/string/String.__gt if i32.const 0 i32.const 1120 - i32.const 448 + i32.const 403 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 - i32.const 4592 i32.const 1712 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 i32.const 1712 - call $~lib/string/String.__eq + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 449 + i32.const 404 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 i32.const 1712 i32.const 1712 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4592 - call $~lib/string/String.__eq + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 1120 - i32.const 450 + i32.const 405 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 4560 - i32.const 4592 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 3456 + i32.const 13872 + call $~lib/string/String.__lt i32.eqz if i32.const 0 i32.const 1120 - i32.const 451 + i32.const 407 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 2336 - i32.const 4592 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4592 - call $~lib/string/String.__eq + i32.const 13872 + i32.const 3456 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 452 + i32.const 408 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 2912 - i32.const 4592 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq - i32.eqz + i32.const 13904 + i32.const 13872 + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 - i32.const 453 + i32.const 409 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 13872 + i32.const 13904 + call $~lib/string/String.__gt + if + i32.const 0 + i32.const 1120 + i32.const 410 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 13392 - i32.const 13392 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 13904 + i32.const 13872 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 454 + i32.const 411 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14304 - i32.const 4560 - i32.const 4592 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14336 - call $~lib/string/String.__eq + i32.const 13872 + i32.const 13904 + call $~lib/string/String.__lt i32.eqz if i32.const 0 i32.const 1120 - i32.const 455 + i32.const 412 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 1712 - i32.const 4592 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14368 - call $~lib/string/String.__eq - i32.eqz + i32.const 13904 + i32.const 13904 + call $~lib/string/String.__lt if i32.const 0 i32.const 1120 - i32.const 456 + i32.const 413 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14400 - i32.const 14432 - i32.const 4592 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14368 - call $~lib/string/String.__eq - i32.eqz + i32.const 13904 + i32.const 13904 + call $~lib/string/String.__gt if i32.const 0 i32.const 1120 - i32.const 457 + i32.const 414 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 14464 - i32.const 14496 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14528 - call $~lib/string/String.__eq + i32.const 13904 + i32.const 13904 + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 1120 - i32.const 458 + i32.const 415 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 14464 - i32.const 1712 - call $~lib/string/String#replace - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 13392 - call $~lib/string/String.__eq + i32.const 13904 + i32.const 13904 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 459 + i32.const 416 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - i32.const 2336 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq - i32.eqz + i32.const 13872 + i32.const 13936 + call $~lib/string/String.__gte if i32.const 0 i32.const 1120 - i32.const 461 + i32.const 417 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 4560 - i32.const 4592 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 13936 + i32.const 13872 + call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 1120 - i32.const 462 + i32.const 418 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2544 - i32.const 2336 - i32.const 4592 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14496 - call $~lib/string/String.__eq + i32.const 13872 + i32.const 13936 + call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 1120 - i32.const 464 + i32.const 419 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14560 - i32.const 2336 - i32.const 4592 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14608 + i32.const 3456 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 465 + i32.const 420 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2544 - i32.const 13392 - i32.const 13392 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2544 + i32.const 13904 + i32.const 13904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 466 + i32.const 421 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14640 - i32.const 1808 - i32.const 14608 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14688 + i32.const 2400 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 467 + i32.const 422 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2544 - i32.const 13392 - i32.const 14496 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14736 - call $~lib/string/String.__eq + i32.const 2400 + i32.const 13968 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 468 + i32.const 424 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14768 - i32.const 14800 - i32.const 14496 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14832 + i32.const 14000 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 469 + i32.const 425 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 2912 - i32.const 4592 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2336 - call $~lib/string/String.__eq + i32.const 14032 + i32.const 14000 + call $~lib/string/String.__ne i32.eqz if i32.const 0 i32.const 1120 - i32.const 470 + i32.const 427 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2912 - i32.const 14864 - i32.const 14496 - call $~lib/string/String#replaceAll + global.get $~lib/memory/__stack_pointer + i32.const 65377 + call $~lib/string/String.fromCodePoint + local.tee $4 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer + i32.const 55296 + call $~lib/string/String.fromCodePoint + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + i32.const 56322 + call $~lib/string/String.fromCodePoint local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $6 + local.get $0 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2912 - call $~lib/string/String.__eq + i32.store offset=4 + local.get $4 + local.get $0 + call $~lib/string/String.__gt i32.eqz if i32.const 0 i32.const 1120 - i32.const 471 - i32.const 1 + i32.const 432 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 14896 - i32.const 4592 - call $~lib/string/String#replaceAll - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14928 - call $~lib/string/String.__eq - i32.eqz + i32.const 2396 + i32.load + i32.const 1 + i32.shr_u + i32.const 3 + i32.ne if i32.const 0 i32.const 1120 - i32.const 472 + i32.const 435 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13392 - i32.const 13392 - i32.const 4592 - call $~lib/string/String#replaceAll + i32.const 1712 + i32.const 100 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4592 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 473 + i32.const 437 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14304 - i32.const 4560 - i32.const 4592 - call $~lib/string/String#replaceAll + i32.const 1808 + i32.const 0 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 14960 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 474 + i32.const 438 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - i32.const 1712 - call $~lib/string/String#replaceAll + i32.const 1808 + i32.const 1 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 1808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 476 + i32.const 439 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - i32.const 4592 - call $~lib/string/String#replaceAll + i32.const 1808 + i32.const 2 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4592 + i32.const 13840 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 477 + i32.const 440 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 - i32.const 4592 - i32.const 1712 - call $~lib/string/String#replaceAll + i32.const 1808 + i32.const 3 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 14112 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 478 + i32.const 441 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4592 - i32.const 1712 - i32.const 1712 - call $~lib/string/String#replaceAll + i32.const 13392 + i32.const 4 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4592 + i32.const 14144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 479 + i32.const 442 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 2336 - i32.const 4560 - call $~lib/string/String#replaceAll + i32.const 1808 + i32.const 5 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 4560 + i32.const 14192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 480 + i32.const 443 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 2816 - i32.const 4560 - call $~lib/string/String#replaceAll + i32.const 1808 + i32.const 6 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2336 + i32.const 14224 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 481 + i32.const 444 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 - i32.const 1712 - i32.const 4592 - call $~lib/string/String#replaceAll + i32.const 1808 + i32.const 7 + call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 14992 + i32.const 14256 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 482 + i32.const 445 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2336 i32.const 1712 i32.const 1712 - call $~lib/string/String#replaceAll + i32.const 1712 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2336 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 483 + i32.const 447 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15040 - i32.const 1808 - i32.const 15072 - call $~lib/string/String#replaceAll + i32.const 1712 + i32.const 1712 + i32.const 4592 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15104 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 486 + i32.const 448 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 13392 - i32.const 13392 - i32.const 15152 - call $~lib/string/String#replaceAll + i32.const 4592 + i32.const 4592 + i32.const 1712 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15152 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 487 + i32.const 449 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14112 - i32.const 1808 - i32.const 15184 - call $~lib/string/String#replaceAll + i32.const 4592 + i32.const 1712 + i32.const 1712 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15216 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 488 + i32.const 450 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14112 - i32.const 13840 - i32.const 15072 - call $~lib/string/String#replaceAll + i32.const 2336 + i32.const 4560 + i32.const 4592 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15264 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 489 + i32.const 451 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 15296 - global.set $std/string/str - global.get $~lib/memory/__stack_pointer - i32.const 15296 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - i32.const 15296 - i32.const 0 - call $~lib/string/String#slice@varargs + i32.const 2336 + i32.const 2336 + i32.const 4592 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 493 + i32.const 452 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/string/String#slice@varargs + i32.const 2336 + i32.const 2912 + i32.const 4592 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15344 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 494 + i32.const 453 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -5 - call $~lib/string/String#slice@varargs + i32.const 2336 + i32.const 13392 + i32.const 13392 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15376 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 - i32.const 1120 - i32.const 495 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7 - call $~lib/string/String#slice + i32.const 1120 + i32.const 454 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 14304 + i32.const 4560 + i32.const 4592 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15408 + i32.const 14336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 496 + i32.const 455 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const -11 - i32.const -6 - call $~lib/string/String#slice + i32.const 2336 + i32.const 1712 + i32.const 4592 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15440 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 497 + i32.const 456 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 3 - call $~lib/string/String#slice + i32.const 14400 + i32.const 14432 + i32.const 4592 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 14368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 498 + i32.const 457 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const -1 - call $~lib/string/String#slice + i32.const 2336 + i32.const 14464 + i32.const 14496 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15472 + i32.const 14528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 499 + i32.const 458 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/string/String#substr@varargs + i32.const 2336 + i32.const 14464 + i32.const 1712 + call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 13392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 501 + i32.const 459 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/string/String#substr@varargs + i32.const 1712 + i32.const 1712 + i32.const 2336 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15344 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 502 + i32.const 461 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -5 - call $~lib/string/String#substr@varargs + i32.const 2336 + i32.const 4560 + i32.const 4592 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15376 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 503 + i32.const 462 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7 - call $~lib/string/String#substr + i32.const 2544 + i32.const 2336 + i32.const 4592 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15520 + i32.const 14496 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 504 + i32.const 464 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const -11 - i32.const -6 - call $~lib/string/String#substr + i32.const 14560 + i32.const 2336 + i32.const 4592 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 14608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 505 + i32.const 465 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 3 - call $~lib/string/String#substr + i32.const 2544 + i32.const 13392 + i32.const 13392 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15568 + i32.const 2544 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 506 + i32.const 466 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const -1 - call $~lib/string/String#substr + i32.const 14640 + i32.const 1808 + i32.const 14608 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 14688 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 507 + i32.const 467 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 100 - call $~lib/string/String#substr + i32.const 2544 + i32.const 13392 + i32.const 14496 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 14736 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 508 + i32.const 468 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 4 - call $~lib/string/String#substr + i32.const 14768 + i32.const 14800 + i32.const 14496 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15600 + i32.const 14832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 509 + i32.const 469 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const -3 - call $~lib/string/String#substr + i32.const 2336 + i32.const 2912 + i32.const 4592 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 510 + i32.const 470 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/string/String#substring@varargs + i32.const 2912 + i32.const 14864 + i32.const 14496 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 2912 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 512 + i32.const 471 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -1 - call $~lib/string/String#substring@varargs + i32.const 2336 + i32.const 14896 + i32.const 4592 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 14928 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 513 + i32.const 472 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const -5 - call $~lib/string/String#substring@varargs + i32.const 13392 + i32.const 13392 + i32.const 4592 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 514 + i32.const 473 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7 - call $~lib/string/String#substring + i32.const 14304 + i32.const 4560 + i32.const 4592 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15408 + i32.const 14960 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 515 + i32.const 474 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const -11 - i32.const -6 - call $~lib/string/String#substring + i32.const 1712 + i32.const 1712 + i32.const 1712 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16788,43 +17650,35 @@ if i32.const 0 i32.const 1120 - i32.const 516 + i32.const 476 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 3 - call $~lib/string/String#substring + i32.const 1712 + i32.const 1712 + i32.const 4592 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15632 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 517 + i32.const 477 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const -1 - call $~lib/string/String#substring + i32.const 4592 + i32.const 4592 + i32.const 1712 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -16836,1850 +17690,1913 @@ if i32.const 0 i32.const 1120 - i32.const 518 + i32.const 478 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 100 - call $~lib/string/String#substring + i32.const 4592 + i32.const 1712 + i32.const 1712 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 15296 + i32.const 4592 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 519 + i32.const 479 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 4 - call $~lib/string/String#substring + i32.const 2336 + i32.const 2336 + i32.const 4560 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 4560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 520 + i32.const 480 i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const -3 - call $~lib/string/String#substring + i32.const 2336 + i32.const 2816 + i32.const 4560 + call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2912 + i32.const 2336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 521 + i32.const 481 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + i32.const 2336 i32.const 1712 - i32.const 0 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=72 + i32.const 4592 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 14992 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 527 - i32.const 3 + i32.const 482 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + i32.const 2336 i32.const 1712 i32.const 1712 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=72 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length + i32.const 2336 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 529 - i32.const 3 + i32.const 483 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.const 2624 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=72 + i32.const 15040 + i32.const 1808 + i32.const 15072 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15104 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 531 - i32.const 3 + i32.const 486 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.const 7632 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=72 + i32.const 13392 + i32.const 13392 + i32.const 15152 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 15840 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.store + local.get $0 + i32.const 15152 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 533 - i32.const 3 + i32.const 487 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.const 2624 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=72 + i32.const 14112 + i32.const 1808 + i32.const 15184 + call $~lib/string/String#replaceAll + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 15216 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1120 + i32.const 488 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + i32.const 14112 + i32.const 13840 + i32.const 15072 + call $~lib/string/String#replaceAll + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 15264 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 535 - i32.const 3 + i32.const 489 + i32.const 1 call $~lib/builtins/abort unreachable end + i32.const 15296 + global.set $std/string/str + global.get $~lib/memory/__stack_pointer + i32.const 15296 + i32.store offset=4 i32.const 1 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 15872 - i32.const 15920 - call $~lib/string/String#split@varargs - local.tee $0 - i32.store offset=72 + i32.const 15296 + i32.const 0 + call $~lib/string/String#slice@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15296 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 537 - i32.const 3 + i32.const 493 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 15952 - i32.const 2624 - call $~lib/string/String#split@varargs + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -1 + call $~lib/string/String#slice@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end + local.get $0 + i32.const 15344 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 539 - i32.const 3 + i32.const 494 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 15984 - i32.const 2624 - call $~lib/string/String#split@varargs + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -5 + call $~lib/string/String#slice@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15376 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 541 - i32.const 3 + i32.const 495 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 16016 - i32.const 2624 - call $~lib/string/String#split@varargs + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7 + call $~lib/string/String#slice + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 4 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15408 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 543 - i32.const 3 + i32.const 496 + i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.const 1712 - call $~lib/string/String#split@varargs + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + local.get $0 + i32.const -11 + i32.const -6 + call $~lib/string/String#slice + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end + local.get $0 + i32.const 15440 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 545 - i32.const 3 + i32.const 497 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.const 1712 - i32.const 0 - call $~lib/string/String#split + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 3 + call $~lib/string/String#slice + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1120 - i32.const 547 - i32.const 3 + i32.const 498 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.const 1712 - i32.const 1 - call $~lib/string/String#split + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const -1 + call $~lib/string/String#slice + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15472 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 549 - i32.const 3 + i32.const 499 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.const 2624 - i32.const 1 - call $~lib/string/String#split + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 0 + call $~lib/string/String#substr@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 1 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15296 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 551 - i32.const 3 + i32.const 501 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.const 1712 - i32.const 4 - call $~lib/string/String#split + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -1 + call $~lib/string/String#substr@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 - end + i32.const 15344 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 553 - i32.const 3 + i32.const 502 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 2336 - i32.const 1712 - i32.const -1 - call $~lib/string/String#split + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -5 + call $~lib/string/String#substr@varargs + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 15376 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1120 + i32.const 503 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7 + call $~lib/string/String#substr + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 15520 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 555 - i32.const 3 + i32.const 504 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 15840 - i32.const 2624 - i32.const -1 - call $~lib/string/String#split + global.get $std/string/str local.tee $0 - i32.store offset=72 + i32.store offset=4 + local.get $0 + i32.const -11 + i32.const -6 + call $~lib/string/String#substr + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/array/Array#get:length - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 1808 - call $~lib/string/String.__eq - else + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1120 + i32.const 505 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - i32.const 13360 - call $~lib/string/String.__eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq - else - i32.const 0 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 3 + call $~lib/string/String#substr + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 15568 + call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 557 - i32.const 3 + i32.const 506 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 10 - call $~lib/util/number/itoa32 + i32.const -1 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3392 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 562 + i32.const 507 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 100 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3456 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 563 + i32.const 508 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 8 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 4 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17792 + i32.const 15600 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 564 + i32.const 509 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const -3 + call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17824 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 565 + i32.const 510 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 0 + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2400 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 566 + i32.const 512 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1000 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -1 + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17856 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 567 + i32.const 513 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const -5 + call $~lib/string/String#substring@varargs local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 14000 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 568 + i32.const 514 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17888 + i32.const 15408 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 569 + i32.const 515 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const -11 + i32.const -6 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17920 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 570 + i32.const 516 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1111111 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 3 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17952 + i32.const 15632 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 571 + i32.const 517 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1234567 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const -1 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18000 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 572 + i32.const 518 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 12345678 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 100 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18048 + i32.const 15296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 573 + i32.const 519 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 123456789 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 4 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18096 + i32.const 1712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 574 + i32.const 520 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483646 - i32.const 10 - call $~lib/util/number/itoa32 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const -3 + call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18144 + i32.const 2912 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 575 + i32.const 521 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 10 - call $~lib/util/number/itoa32 - local.set $0 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.const 0 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18192 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 576 - i32.const 1 + i32.const 527 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 - call $~lib/util/number/itoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.const 1712 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18240 - call $~lib/string/String.__eq - i32.eqz + call $~lib/array/Array#get:length if i32.const 0 i32.const 1120 - i32.const 577 - i32.const 1 + i32.const 529 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 10 - call $~lib/util/number/itoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18288 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 578 - i32.const 1 + i32.const 531 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -128 - i32.const 10 - call $~lib/util/number/itoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15840 + i32.const 7632 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18320 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 15840 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 580 - i32.const 1 + i32.const 533 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -32768 - i32.const 10 - call $~lib/util/number/itoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15840 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18352 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 581 - i32.const 1 + i32.const 535 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 - call $~lib/util/number/itoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15872 + i32.const 15920 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18240 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 582 - i32.const 1 + i32.const 537 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15952 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3392 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 584 - i32.const 1 + i32.const 539 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1000 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 15984 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18384 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1120 - i32.const 585 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1712 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 end - i32.const 2147483647 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 18192 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 586 - i32.const 1 + i32.const 541 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 16016 + i32.const 2624 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18416 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 4 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1120 - i32.const 587 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 end - i32.const -1 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 18464 - call $~lib/string/String.__eq - i32.eqz - if + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 588 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 0 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3392 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 592 - i32.const 1 + i32.const 543 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 1 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2336 + i32.const 1712 + call $~lib/string/String#split@varargs + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3456 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1120 - i32.const 593 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 end - i32.const 8 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 17792 - call $~lib/string/String.__eq - i32.eqz - if + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 594 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 12 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 14464 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 595 - i32.const 1 + i32.const 545 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 123 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 2336 + i32.const 1712 + i32.const 0 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18512 - call $~lib/string/String.__eq - i32.eqz + call $~lib/array/Array#get:length if i32.const 0 i32.const 1120 - i32.const 596 - i32.const 1 + i32.const 547 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1234 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 2336 + i32.const 1712 + i32.const 1 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18544 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 597 - i32.const 1 + i32.const 549 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 12345 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15840 + i32.const 2624 + i32.const 1 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18576 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 1 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 598 - i32.const 1 + i32.const 551 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 123456 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 2336 + i32.const 1712 + i32.const 4 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18608 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 599 - i32.const 1 + i32.const 553 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1111111 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 2336 + i32.const 1712 + i32.const -1 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18640 - call $~lib/string/String.__eq + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else + i32.const 0 + end i32.eqz if i32.const 0 i32.const 1120 - i32.const 600 - i32.const 1 + i32.const 555 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1234567 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 15840 + i32.const 2624 + i32.const -1 + call $~lib/string/String#split + local.tee $0 + i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18672 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/array/Array#get:length + i32.const 3 + i32.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 1808 + call $~lib/string/String.__eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 13360 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 601 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 12345678 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 18704 - call $~lib/string/String.__eq - i32.eqz - if + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 14464 + call $~lib/string/String.__eq + else i32.const 0 - i32.const 1120 - i32.const 602 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 123456789 - i32.const 16 - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 18736 - call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 603 - i32.const 1 + i32.const 557 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2147483646 - i32.const 16 - call $~lib/util/number/utoa32 + i32.const 0 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18784 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 604 + i32.const 562 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 16 - call $~lib/util/number/utoa32 + i32.const 1 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18832 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 605 + i32.const 563 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 - call $~lib/util/number/utoa32 + i32.const 8 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18880 + i32.const 17792 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 606 + i32.const 564 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 16 - call $~lib/util/number/utoa32 + i32.const 12 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18928 + i32.const 17824 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 607 + i32.const 565 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 16 + i32.const 123 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3392 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 609 + i32.const 566 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -4096 - i32.const 16 + i32.const -1000 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer @@ -18692,2615 +19609,2652 @@ if i32.const 0 i32.const 1120 - i32.const 610 + i32.const 567 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 2147483647 - i32.const 16 + i32.const 1234 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18832 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 611 + i32.const 568 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483647 - i32.const 16 + i32.const 12345 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18976 + i32.const 17888 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 612 + i32.const 569 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -268435455 - i32.const 16 + i32.const 123456 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19024 + i32.const 17920 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 613 + i32.const 570 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 + i32.const 1111111 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19072 + i32.const 17952 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 614 + i32.const 571 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2147483648 - i32.const 16 + i32.const 1234567 + i32.const 10 call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19072 + i32.const 18000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 615 + i32.const 572 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 12345678 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3392 + i32.const 18048 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 619 + i32.const 573 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 123456789 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3456 + i32.const 18096 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 620 + i32.const 574 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 2147483646 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 13904 + i32.const 18144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 621 + i32.const 575 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 7 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const 2147483647 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19120 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 622 + i32.const 576 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 14 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const -2147483648 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19152 + i32.const 18240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 623 + i32.const 577 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 29 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const -1 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19184 + i32.const 18288 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 624 + i32.const 578 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 59 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const -128 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19216 + i32.const 18320 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 625 + i32.const 580 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 4095 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const -32768 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19248 + i32.const 18352 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 626 + i32.const 581 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 33554431 - i32.const 2 - call $~lib/util/number/utoa32 + i32.const -2147483648 + i32.const 10 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19296 + i32.const 18240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 627 + i32.const 582 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -12 - i32.const 2 + i32.const 0 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19376 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 628 + i32.const 584 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -4 - i32.const 2 + i32.const 1000 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19472 + i32.const 18384 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 629 + i32.const 585 i32.const 1 call $~lib/builtins/abort unreachable - end - i32.const -2 - i32.const 2 + end + i32.const 2147483647 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19568 + i32.const 18192 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 630 + i32.const 586 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 2 + i32.const -2147483648 + i32.const 10 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19664 + i32.const 18416 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 631 + i32.const 587 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -2047 - i32.const 2 - call $~lib/util/number/itoa32 + i32.const -1 + i32.const 10 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19760 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 633 + i32.const 588 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 3 + i32.const 0 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19808 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 637 + i32.const 592 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 4 + i32.const 1 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19872 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 638 + i32.const 593 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 5 + i32.const 8 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19936 + i32.const 17792 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 639 + i32.const 594 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 8 + i32.const 12 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19984 + i32.const 14464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 640 + i32.const 595 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 11 + i32.const 123 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20032 + i32.const 18512 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 641 + i32.const 596 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 15 + i32.const 1234 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20080 + i32.const 18544 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 642 + i32.const 597 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 17 + i32.const 12345 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20128 + i32.const 18576 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 643 + i32.const 598 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 21 + i32.const 123456 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20176 + i32.const 18608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 644 + i32.const 599 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 27 + i32.const 1111111 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20224 + i32.const 18640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 645 + i32.const 600 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 32 + i32.const 1234567 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20272 + i32.const 18672 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 646 + i32.const 601 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const -1 - i32.const 36 + i32.const 12345678 + i32.const 16 call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20320 + i32.const 18704 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 647 + i32.const 602 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 123456789 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3392 + i32.const 18736 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 651 + i32.const 603 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 2147483646 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17824 + i32.const 18784 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 652 + i32.const 604 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 123 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 2147483647 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 2400 + i32.const 18832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 653 + i32.const 605 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -2147483648 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 14000 + i32.const 18880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 654 + i32.const 606 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12345 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 16 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17888 + i32.const 18928 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 655 + i32.const 607 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 123456 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 0 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 17920 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 656 + i32.const 609 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234567 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -4096 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18000 + i32.const 17856 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 657 + i32.const 610 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 99999999 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 2147483647 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20368 + i32.const 18832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 658 + i32.const 611 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 100000000 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -2147483647 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20416 + i32.const 18976 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 659 + i32.const 612 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -268435455 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18464 + i32.const 19024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 660 + i32.const 613 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967297 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -2147483648 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20464 + i32.const 19072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 661 + i32.const 614 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 68719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const -2147483648 + i32.const 16 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20512 + i32.const 19072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 662 + i32.const 615 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 0 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20560 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 663 + i32.const 619 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 8687194767350 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 1 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20608 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 664 + i32.const 620 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 86871947673501 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 3 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20656 + i32.const 13904 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 665 + i32.const 621 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 7 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20704 + i32.const 19120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 666 + i32.const 622 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 14 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20768 + i32.const 19152 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 667 + i32.const 623 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 19999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 29 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20832 + i32.const 19184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 668 + i32.const 624 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 129999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 59 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20896 + i32.const 19216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 669 + i32.const 625 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1239999868719476735 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 4095 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20960 + i32.const 19248 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 670 + i32.const 626 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 10 - call $~lib/util/number/utoa64 + i32.const 33554431 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21024 + i32.const 19296 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 671 + i32.const 627 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -12 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3392 + i32.const 19376 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 673 + i32.const 628 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1234 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -4 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21088 + i32.const 19472 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 674 + i32.const 629 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -2 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18464 + i32.const 19568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 675 + i32.const 630 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967297 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 2 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20464 + i32.const 19664 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 676 + i32.const 631 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -4294967295 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -2047 + i32.const 2 + call $~lib/util/number/itoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21120 + i32.const 19760 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 677 + i32.const 633 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 68719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 3 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 20512 + i32.const 19808 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 678 + i32.const 637 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -68719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 4 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21168 + i32.const 19872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 679 + i32.const 638 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 5 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21216 + i32.const 19936 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 680 + i32.const 639 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -999868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 8 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21264 + i32.const 19984 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 681 + i32.const 640 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -19999868719476735 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 11 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21328 + i32.const 20032 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 682 + i32.const 641 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 15 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21392 + i32.const 20080 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 683 + i32.const 642 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 10 - call $~lib/util/number/itoa64 + i32.const -1 + i32.const 17 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21456 + i32.const 20128 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 684 + i32.const 643 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 21 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3392 + i32.const 20176 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 688 + i32.const 644 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 27 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3456 + i32.const 20224 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 689 + i32.const 645 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 12 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 32 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 14464 + i32.const 20272 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 690 + i32.const 646 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1234 - i32.const 16 - call $~lib/util/number/utoa64 + i32.const -1 + i32.const 36 + call $~lib/util/number/utoa32 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18544 + i32.const 20320 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 691 + i32.const 647 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1111111 - i32.const 16 + i64.const 0 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 18640 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 692 + i32.const 651 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 8589934591 - i32.const 16 + i64.const 12 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21520 + i32.const 17824 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 693 + i32.const 652 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 5942249508321 - i32.const 16 + i64.const 123 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21568 + i32.const 2400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 694 + i32.const 653 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 76310993685985 - i32.const 16 + i64.const 1234 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21616 + i32.const 14000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 695 + i32.const 654 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 920735923817967 - i32.const 16 + i64.const 12345 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21664 + i32.const 17888 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 696 + i32.const 655 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9927935178558959 - i32.const 16 + i64.const 123456 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21712 + i32.const 17920 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 697 + i32.const 656 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 81985529216486895 - i32.const 16 + i64.const 1234567 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21760 + i32.const 18000 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 698 + i32.const 657 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1311768467463790320 - i32.const 16 + i64.const 99999999 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21824 + i32.const 20368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 699 + i32.const 658 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 - i32.const 16 + i64.const 100000000 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21888 + i32.const 20416 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 700 + i32.const 659 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 16 + i64.const 4294967295 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 21952 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 701 + i32.const 660 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775807 - i32.const 16 - call $~lib/util/number/itoa64 + i64.const 4294967297 + i32.const 10 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22016 + i32.const 20464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 703 + i32.const 661 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 16 - call $~lib/util/number/itoa64 + i64.const 68719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22080 + i32.const 20512 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 704 + i32.const 662 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 - i32.const 16 - call $~lib/util/number/itoa64 + i64.const 868719476735 + i32.const 10 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22080 + i32.const 20560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 705 + i32.const 663 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 0 - i32.const 2 + i64.const 8687194767350 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3392 + i32.const 20608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 709 + i32.const 664 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 1 - i32.const 2 + i64.const 86871947673501 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 3456 + i32.const 20656 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 710 + i32.const 665 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 7 - i32.const 2 + i64.const 999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19120 + i32.const 20704 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 711 + i32.const 666 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 14 - i32.const 2 + i64.const 9999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19152 + i32.const 20768 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 712 + i32.const 667 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 59 - i32.const 2 + i64.const 19999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19216 + i32.const 20832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 713 + i32.const 668 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4095 - i32.const 2 + i64.const 129999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19248 + i32.const 20896 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 714 + i32.const 669 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 4294967295 - i32.const 2 + i64.const 1239999868719476735 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 19664 + i32.const 20960 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 715 + i32.const 670 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const 562949953421311 - i32.const 2 + i64.const -1 + i32.const 10 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22144 + i32.const 21024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 716 + i32.const 671 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 2 - call $~lib/util/number/utoa64 + i64.const 0 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22272 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 717 + i32.const 673 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -8589934591 - i32.const 2 + i64.const -1234 + i32.const 10 call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22432 + i32.const 21088 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 719 + i32.const 674 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 3 - call $~lib/util/number/utoa64 + i64.const 4294967295 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22528 + i32.const 18464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 723 + i32.const 675 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 4 - call $~lib/util/number/utoa64 + i64.const 4294967297 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22640 + i32.const 20464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 724 + i32.const 676 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 5 - call $~lib/util/number/utoa64 + i64.const -4294967295 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22736 + i32.const 21120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 725 + i32.const 677 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 8 - call $~lib/util/number/utoa64 + i64.const 68719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22816 + i32.const 20512 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 726 + i32.const 678 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 11 - call $~lib/util/number/utoa64 + i64.const -68719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22880 + i32.const 21168 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 727 + i32.const 679 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 15 - call $~lib/util/number/utoa64 + i64.const -868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 22944 + i32.const 21216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 728 + i32.const 680 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 17 - call $~lib/util/number/utoa64 + i64.const -999868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23008 + i32.const 21264 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 729 + i32.const 681 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 21 - call $~lib/util/number/utoa64 + i64.const -19999868719476735 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23072 + i32.const 21328 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 730 + i32.const 682 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 27 - call $~lib/util/number/utoa64 + i64.const 9223372036854775807 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23136 + i32.const 21392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 731 + i32.const 683 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 32 - call $~lib/util/number/utoa64 + i64.const -9223372036854775808 + i32.const 10 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23184 + i32.const 21456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 732 + i32.const 684 i32.const 1 call $~lib/builtins/abort unreachable end - i64.const -1 - i32.const 36 + i64.const 0 + i32.const 16 call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23232 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 733 + i32.const 688 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0 - call $~lib/util/number/dtoa + i64.const 1 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23280 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 736 + i32.const 689 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -0 - call $~lib/util/number/dtoa + i64.const 12 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23280 + i32.const 14464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 737 + i32.const 690 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const nan:0x8000000000000 - call $~lib/util/number/dtoa + i64.const 1234 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 7696 + i32.const 18544 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 738 + i32.const 691 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const inf - call $~lib/util/number/dtoa + i64.const 1111111 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23312 + i32.const 18640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 739 + i32.const 692 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -inf - call $~lib/util/number/dtoa + i64.const 8589934591 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 8960 + i32.const 21520 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 740 + i32.const 693 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 - call $~lib/util/number/dtoa + i64.const 5942249508321 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 8176 + i32.const 21568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 741 + i32.const 694 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -2.220446049250313e-16 - call $~lib/util/number/dtoa + i64.const 76310993685985 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24336 + i32.const 21616 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 742 + i32.const 695 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 - call $~lib/util/number/dtoa + i64.const 920735923817967 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 8240 + i32.const 21664 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 743 + i32.const 696 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 - call $~lib/util/number/dtoa + i64.const 9927935178558959 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24400 + i32.const 21712 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 744 + i32.const 697 i32.const 1 call $~lib/builtins/abort unreachable end - f32.const 1.1920928955078125e-07 - call $~lib/util/number/dtoa + i64.const 81985529216486895 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24480 + i32.const 21760 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 745 + i32.const 698 i32.const 1 call $~lib/builtins/abort unreachable end - f32.const -1.1920928955078125e-07 - call $~lib/util/number/dtoa + i64.const 1311768467463790320 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24528 + i32.const 21824 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 746 + i32.const 699 i32.const 1 call $~lib/builtins/abort unreachable end - f32.const 3402823466385288598117041e14 - call $~lib/util/number/dtoa + i64.const 9223372036854775807 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24576 + i32.const 21888 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 747 + i32.const 700 i32.const 1 call $~lib/builtins/abort unreachable end - f32.const -3402823466385288598117041e14 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 16 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24624 + i32.const 21952 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 748 + i32.const 701 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 - call $~lib/util/number/dtoa + i64.const -9223372036854775807 + i32.const 16 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24672 + i32.const 22016 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 749 + i32.const 703 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 - call $~lib/util/number/dtoa + i64.const -9223372036854775808 + i32.const 16 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24736 + i32.const 22080 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 750 + i32.const 704 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4.940656e-318 - call $~lib/util/number/dtoa + i64.const -9223372036854775808 + i32.const 16 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24816 + i32.const 22080 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 751 + i32.const 705 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9060801153433600 - call $~lib/util/number/dtoa + i64.const 0 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24864 + i32.const 3392 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 752 + i32.const 709 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 4708356024711512064 - call $~lib/util/number/dtoa + i64.const 1 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24928 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 753 + i32.const 710 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 9409340012568248320 - call $~lib/util/number/dtoa + i64.const 7 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 24992 + i32.const 19120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 754 + i32.const 711 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 5e-324 - call $~lib/util/number/dtoa + i64.const 14 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 8320 + i32.const 19152 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 755 + i32.const 712 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1 - call $~lib/util/number/dtoa + i64.const 59 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25056 + i32.const 19216 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 757 + i32.const 713 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.1 - call $~lib/util/number/dtoa + i64.const 4095 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5280 + i32.const 19248 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 758 + i32.const 714 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1 - call $~lib/util/number/dtoa + i64.const 4294967295 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25088 + i32.const 19664 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 759 + i32.const 715 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -0.1 - call $~lib/util/number/dtoa + i64.const 562949953421311 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25120 + i32.const 22144 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 760 + i32.const 716 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e6 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 2 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25152 + i32.const 22272 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 762 + i32.const 717 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-06 - call $~lib/util/number/dtoa + i64.const -8589934591 + i32.const 2 + call $~lib/util/number/itoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25200 + i32.const 22432 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 763 + i32.const 719 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1e6 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 3 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25248 + i32.const 22528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 764 + i32.const 723 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1e-06 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 4 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25296 + i32.const 22640 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 765 + i32.const 724 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e7 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 5 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25344 + i32.const 22736 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 766 + i32.const 725 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-07 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 8 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25392 + i32.const 22816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 767 + i32.const 726 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1.e+308 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 11 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 5568 + i32.const 22880 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 769 + i32.const 727 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1.e+308 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 15 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25424 + i32.const 22944 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 770 + i32.const 728 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const inf - call $~lib/util/number/dtoa + i64.const -1 + i32.const 17 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 23312 + i32.const 23008 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 771 + i32.const 729 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -inf - call $~lib/util/number/dtoa + i64.const -1 + i32.const 21 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 8960 + i32.const 23072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 772 + i32.const 730 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-308 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 27 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25472 + i32.const 23136 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 773 + i32.const 731 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1e-308 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 32 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25504 + i32.const 23184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 774 + i32.const 732 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1e-323 - call $~lib/util/number/dtoa + i64.const -1 + i32.const 36 + call $~lib/util/number/utoa64 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25552 + i32.const 23232 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 775 + i32.const 733 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const -1e-323 + f64.const 0 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25584 + i32.const 23280 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 776 + i32.const 736 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0 + f64.const -0 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer @@ -21313,2100 +22267,1146 @@ if i32.const 0 i32.const 1120 - i32.const 777 + i32.const 737 i32.const 1 call $~lib/builtins/abort unreachable end - 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 26636 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - f64.const 4294967272 - i32.const 0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl + f64.const nan:0x8000000000000 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 i32.store - local.get $4 - i32.const 23344 local.get $0 - memory.copy - 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 $4 - i32.store - local.get $4 - i32.const 25632 + i32.const 7696 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 779 + i32.const 738 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1.2312145673456234e-08 + f64.const inf call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25680 + i32.const 23312 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 780 + i32.const 739 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 555555555.5555556 + f64.const -inf call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25744 + i32.const 8960 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 781 + i32.const 740 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.9999999999999999 + f64.const 2.220446049250313e-16 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25808 + i32.const 8176 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 782 + i32.const 741 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1 + f64.const -2.220446049250313e-16 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25056 + i32.const 24336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 783 + i32.const 742 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 12.34 + f64.const 1797693134862315708145274e284 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25872 + i32.const 8240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 784 + i32.const 743 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.3333333333333333 + f64.const -1797693134862315708145274e284 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25904 + i32.const 24400 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 785 + i32.const 744 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1234e17 - call $~lib/util/number/dtoa + f32.const 1.1920928955078125e-07 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 25968 + i32.const 24480 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 786 + i32.const 745 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1234e18 - call $~lib/util/number/dtoa + f32.const -1.1920928955078125e-07 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26048 + i32.const 24528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 787 + i32.const 746 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 2.71828 - call $~lib/util/number/dtoa + f32.const 3402823466385288598117041e14 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26096 + i32.const 24576 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 788 + i32.const 747 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.0271828 - call $~lib/util/number/dtoa + f32.const -3402823466385288598117041e14 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26144 + i32.const 24624 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 789 + i32.const 748 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 271.828 + f64.const 4185580496821356722454785e274 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26192 + i32.const 24672 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 790 + i32.const 749 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1.1e+128 + f64.const 2.2250738585072014e-308 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26240 + i32.const 24736 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 791 + i32.const 750 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 1.1e-64 + f64.const 4.940656e-318 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26288 + i32.const 24816 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 792 + i32.const 751 i32.const 1 call $~lib/builtins/abort unreachable end - f64.const 0.000035689 + f64.const 9060801153433600 call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26336 + i32.const 24864 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 793 + i32.const 752 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26384 - i32.const 26416 - call $~lib/string/String#concat + f64.const 4708356024711512064 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26448 + i32.const 24928 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 820 + i32.const 753 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 26496 - call $~lib/string/String#concat + f64.const 9409340012568248320 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26496 + i32.const 24992 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 821 + i32.const 754 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26496 - i32.const 1712 - call $~lib/string/String#concat + f64.const 5e-324 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 26496 + i32.const 8320 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 822 + i32.const 755 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 1712 - i32.const 1712 - call $~lib/string/String#concat + f64.const 1 + call $~lib/util/number/dtoa local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.const 1712 + i32.const 25056 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 823 + i32.const 757 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26528 - i32.const 26528 + f64.const 0.1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 5280 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 831 + i32.const 758 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26528 - i32.const 26528 + f64.const -1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25088 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 832 + i32.const 759 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26560 - i32.const 26560 + f64.const -0.1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 833 + i32.const 760 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 26592 - i32.const 26592 + f64.const 1e6 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25152 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 834 + i32.const 762 i32.const 1 call $~lib/builtins/abort unreachable end - i32.const 0 - global.set $std/string/str - i32.const 59404 - 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 76 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.fromCharCode (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $1 - i32.const 0 - i32.gt_s - local.tee $3 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - i32.store16 - local.get $3 - if - local.get $2 - local.get $1 - i32.store16 offset=2 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $3 - local.get $2 - if - local.get $3 - local.get $2 - local.get $4 - memory.copy - end - local.get $3 - i32.store - i32.const 16 - local.get $1 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.store offset=4 - local.get $1 - local.get $4 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/string/String.fromCodePoint (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - local.get $0 - i32.const 65535 - i32.gt_u - local.tee $2 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $2 - if + f64.const 1e-06 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1114111 - i32.gt_u + i32.store + local.get $0 + i32.const 25200 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 - i32.const 1328 - i32.const 39 - i32.const 7 + i32.const 1120 + i32.const 763 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 + f64.const -1e6 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 65536 - i32.sub - local.tee $0 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or + i32.store + local.get $0 + i32.const 25248 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 764 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-06 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or i32.store - else - local.get $1 local.get $0 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - if - i32.const 16048 - i32.const 16176 - i32.const 373 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.eqz - if + i32.const 25296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 765 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e7 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3392 - return - end - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $4 - select - local.set $2 - local.get $1 - i32.const 10 - i32.eq - if + local.get $0 + i32.store + local.get $0 + i32.const 25344 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 766 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-07 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end + local.get $0 + i32.store + local.get $0 + i32.const 25392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 767 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 + f64.const 1.e+308 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 5568 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 769 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const -1.e+308 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25424 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 770 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const inf + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $0 - local.get $4 - i32.add - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 - i32.eq + i32.const 23312 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 31 - local.get $2 - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $4 - i32.add - local.set $7 - local.get $2 - i64.extend_i32_u - local.set $3 - loop $while-continue|0 - local.get $1 - i32.const 2 - i32.ge_u - if - local.get $7 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.const 16640 - i32.add - i32.load - i32.store - local.get $3 - i64.const 8 - i64.shr_u - local.set $3 - br $while-continue|0 - end - end - local.get $1 - i32.const 1 - i32.and - if - local.get $7 - local.get $3 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.const 16640 - i32.add - i32.load16_u - i32.store16 - end - else - global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$171 (result i32) - local.get $2 - i64.extend_i32_u - local.set $5 - local.get $1 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $5 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - br $__inlined_func$~lib/util/number/ulog_base$171 - end - local.get $1 - i64.extend_i32_s - local.tee $6 - local.set $3 - i32.const 1 - local.set $0 - loop $while-continue|01 - local.get $3 - local.get $5 - i64.le_u - if - local.get $5 - local.get $3 - i64.div_u - local.set $5 - local.get $3 - local.get $3 - i64.mul - local.set $3 - local.get $0 - i32.const 1 - i32.shl - local.set $0 - br $while-continue|01 - end - end - loop $while-continue|1 - local.get $5 - i64.const 0 - i64.ne - if - local.get $5 - local.get $6 - i64.div_u - local.set $5 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|1 - end - end - local.get $0 - i32.const 1 - i32.sub - end - local.tee $7 + i32.const 0 + i32.const 1120 + i32.const 771 i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $4 - i32.add - local.get $2 - i64.extend_i32_u - local.get $7 - local.get $1 - call $~lib/util/number/utoa64_any_core + call $~lib/builtins/abort + unreachable end - end - local.get $4 - if - local.get $0 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - if - i32.const 16048 - i32.const 16176 - i32.const 350 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.eqz - if + f64.const -inf + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3392 - return - end - local.get $1 - i32.const 10 - i32.eq - if + local.get $0 + i32.store + local.get $0 + i32.const 8960 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 772 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-308 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.store + local.get $0 + i32.const 25472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 773 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.tee $1 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 + f64.const -1e-308 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - local.get $2 local.get $0 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 - i32.eq + i32.const 25504 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 31 - local.get $0 - i32.clz - i32.sub - i32.const 2 - i32.shr_s + i32.const 0 + i32.const 1120 + i32.const 774 i32.const 1 - i32.add - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1e-323 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 775 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $0 - i64.extend_i32_u - local.set $3 - loop $while-continue|0 - local.get $1 - i32.const 2 - i32.ge_u - if - local.get $2 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.const 16640 - i32.add - i32.load - i32.store - local.get $3 - i64.const 8 - i64.shr_u - local.set $3 - br $while-continue|0 - end - end - local.get $1 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-323 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 776 i32.const 1 - i32.and - if - local.get $2 - local.get $3 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.const 16640 - i32.add - i32.load16_u - i32.store16 - end - else - global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$175 (result i32) - local.get $0 - i64.extend_i32_u - local.set $4 - local.get $1 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $4 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - br $__inlined_func$~lib/util/number/ulog_base$175 - end - local.get $1 - i64.extend_i32_s - local.tee $5 - local.set $3 - i32.const 1 - local.set $2 - loop $while-continue|01 - local.get $3 - local.get $4 - i64.le_u - if - local.get $4 - local.get $3 - i64.div_u - local.set $4 - local.get $3 - local.get $3 - i64.mul - local.set $3 - local.get $2 - i32.const 1 - i32.shl - local.set $2 - br $while-continue|01 - end - end - loop $while-continue|1 - local.get $4 - i64.const 0 - i64.ne - if - local.get $4 - local.get $5 - i64.div_u - local.set $4 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|1 - end - end - local.get $2 - i32.const 1 - i32.sub - end - local.tee $6 + call $~lib/builtins/abort + unreachable + end + f64.const 0 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 23280 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 777 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - i64.extend_i32_u - local.get $6 - local.get $1 - call $~lib/util/number/utoa64_any_core + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 26636 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + f64.const 4294967272 + i32.const 0 + call $~lib/util/number/dtoa_core i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - if - i32.const 16048 - i32.const 16176 - i32.const 401 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i64.eqz - if + i32.shl + local.tee $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + i32.const 23344 + local.get $0 + memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 3392 - return - end - local.get $1 - i32.const 10 - i32.eq - if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 + i32.const 25632 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 779 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.2312145673456234e-08 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - i64.const 4294967295 - i64.le_u + i32.store + local.get $0 + i32.const 25680 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $6 + i32.const 0 + i32.const 1120 + i32.const 780 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $1 - local.get $6 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 555555555.5555556 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 781 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $1 - call $~lib/util/number/utoa64_dec_lut + call $~lib/builtins/abort + unreachable end - else - local.get $1 - i32.const 16 - i32.eq + f64.const 0.9999999999999999 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25808 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 2 - i32.shr_s + i32.const 0 + i32.const 1120 + i32.const 782 i32.const 1 - i32.add - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 783 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - loop $while-continue|0 - local.get $1 - i32.const 2 - i32.ge_u - if - local.get $3 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.const 16640 - i32.add - i32.load - i32.store - local.get $0 - i64.const 8 - i64.shr_u - local.set $0 - br $while-continue|0 - end - end - local.get $1 + call $~lib/builtins/abort + unreachable + end + f64.const 12.34 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 784 i32.const 1 - i32.and - if - local.get $3 - local.get $0 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.const 16640 - i32.add - i32.load16_u - i32.store16 - end - else - global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$180 (result i32) - local.get $0 - local.set $2 - local.get $1 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - br $__inlined_func$~lib/util/number/ulog_base$180 - end - local.get $1 - i64.extend_i32_s - local.tee $5 - local.set $4 - i32.const 1 - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $4 - i64.ge_u - if - local.get $2 - local.get $4 - i64.div_u - local.set $2 - local.get $4 - local.get $4 - i64.mul - local.set $4 - local.get $3 - i32.const 1 - i32.shl - local.set $3 - br $while-continue|01 - end - end - loop $while-continue|1 - local.get $2 - i64.const 0 - i64.ne - if - local.get $2 - local.get $5 - i64.div_u - local.set $2 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|1 - end - end - local.get $3 - i32.const 1 - i32.sub - end - local.tee $6 + call $~lib/builtins/abort + unreachable + end + f64.const 0.3333333333333333 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 785 i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $6 - local.get $1 - call $~lib/util/number/utoa64_any_core + call $~lib/builtins/abort + unreachable + end + f64.const 1234e17 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 25968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 786 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + f64.const 1234e18 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 787 + i32.const 1 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 2 - i32.lt_s - local.get $1 - i32.const 36 - i32.gt_s - i32.or - if - i32.const 16048 - i32.const 16176 - i32.const 431 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i64.eqz - if + f64.const 2.71828 + call $~lib/util/number/dtoa + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3392 - return - end - i64.const 0 - local.get $0 - i64.sub - local.get $0 - local.get $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.const 1 - i32.shl - local.tee $4 - select - local.set $0 - local.get $1 - i32.const 10 - i32.eq - if local.get $0 - i64.const 4294967295 - i64.le_u + i32.store + local.get $0 + i32.const 26096 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $7 + i32.const 0 + i32.const 1120 + i32.const 788 i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i32.add - local.get $1 - local.get $7 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 0.0271828 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26144 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 789 i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i32.add - local.get $0 - local.get $1 - call $~lib/util/number/utoa64_dec_lut + call $~lib/builtins/abort + unreachable end - else - local.get $1 - i32.const 16 - i32.eq + f64.const 271.828 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26192 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 2 - i32.shr_s + i32.const 0 + i32.const 1120 + i32.const 790 i32.const 1 - i32.add - local.tee $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1e+128 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26240 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 791 i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i32.add - local.set $7 - loop $while-continue|0 - local.get $1 - i32.const 2 - i32.ge_u - if - local.get $7 - local.get $1 - i32.const 2 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.const 16640 - i32.add - i32.load - i32.store - local.get $0 - i64.const 8 - i64.shr_u - local.set $0 - br $while-continue|0 - end - end - local.get $1 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1e-64 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26288 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 792 i32.const 1 - i32.and - if - local.get $7 - local.get $0 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.const 16640 - i32.add - i32.load16_u - i32.store16 - end - else - global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/util/number/ulog_base$185 (result i32) - local.get $0 - local.set $2 - local.get $1 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - br $__inlined_func$~lib/util/number/ulog_base$185 - end - local.get $1 - i64.extend_i32_s - local.tee $6 - local.set $5 - i32.const 1 - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $5 - i64.ge_u - if - local.get $2 - local.get $5 - i64.div_u - local.set $2 - local.get $5 - local.get $5 - i64.mul - local.set $5 - local.get $3 - i32.const 1 - i32.shl - local.set $3 - br $while-continue|01 - end - end - loop $while-continue|1 - local.get $2 - i64.const 0 - i64.ne - if - local.get $2 - local.get $6 - i64.div_u - local.set $2 - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $while-continue|1 - end - end - local.get $3 - i32.const 1 - i32.sub - end - local.tee $7 + call $~lib/builtins/abort + unreachable + end + f64.const 0.000035689 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 26336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 793 i32.const 1 - i32.shl - local.get $4 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $4 - i32.add - local.get $0 - local.get $7 - local.get $1 - call $~lib/util/number/utoa64_any_core + call $~lib/builtins/abort + unreachable end - end - local.get $4 - if - local.get $3 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/util/number/dtoa (param $0 f64) (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 - global.get $~lib/memory/__stack_pointer - i32.const 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 23280 - local.set $1 - block $~lib/util/number/dtoa_impl|inlined.0 + i32.const 26384 + i32.const 26416 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.store + local.get $0 + i32.const 26448 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 820 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1712 + i32.const 26496 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $0 - f64.sub - f64.const 0 - f64.ne + i32.const 26496 + call $~lib/string/String.__eq + i32.eqz if - i32.const 7696 - local.set $1 - local.get $0 - local.get $0 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 8960 - i32.const 23312 - local.get $0 - f64.const 0 - f64.lt - select - local.set $1 - br $~lib/util/number/dtoa_impl|inlined.0 + i32.const 0 + i32.const 1120 + i32.const 821 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $0 - i32.const 0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $2 + i32.const 26496 + i32.const 1712 + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 + local.get $0 i32.store - local.get $1 - i32.const 23344 - local.get $2 - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/util/number/dtoa (param $0 f32) (result i32) - (local $1 f64) - (local $2 i32) - (local $3 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 26636 - i32.lt_s - if - i32.const 59424 - i32.const 59472 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 23280 - local.set $2 - block $~lib/util/number/dtoa_impl|inlined.1 local.get $0 - f64.promote_f32 - local.tee $1 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.1 - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne + i32.const 26496 + call $~lib/string/String.__eq + i32.eqz if - i32.const 7696 - local.set $2 - local.get $1 - local.get $1 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.1 - i32.const 8960 - i32.const 23312 - local.get $1 - f64.const 0 - f64.lt - select - local.set $2 - br $~lib/util/number/dtoa_impl|inlined.1 + i32.const 0 + i32.const 1120 + i32.const 822 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - i32.const 1 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $3 + i32.const 1712 + i32.const 1712 + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 + local.get $0 i32.store - local.get $2 - i32.const 23344 - local.get $3 - memory.copy + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 823 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 26528 + i32.const 26528 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 831 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 26528 + i32.const 26528 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 832 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 26560 + i32.const 26560 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 833 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 26592 + i32.const 26592 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 834 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + global.set $std/string/str + i32.const 59404 + 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 76 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.const 59424 + i32.const 59472 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index e2a9fd8b6d..ea31cd7f43 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1,14 +1,14 @@ (module (type $0 (func (param i32 i32) (result i32))) - (type $1 (func)) + (type $1 (func (param i32) (result i32))) (type $2 (func (param i32 i32))) - (type $3 (func (param i32) (result i32))) + (type $3 (func)) (type $4 (func (param i32))) (type $5 (func (result i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (param i32 i32 i32))) - (type $9 (func (param i32 i32 i32) (result i32))) + (type $7 (func (param i32 i32 i32))) + (type $8 (func (param i32 i32 i32) (result i32))) + (type $9 (func (param i32 i32 i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/symbol/nextId (mut i32) (i32.const 12)) (global $std/symbol/sym1 (mut i32) (i32.const 0)) @@ -98,1592 +98,1559 @@ (data $33 (i32.const 2720) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\10\01\82\00\10A\02") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $~lib/symbol/stringToId - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/symbol/idToString - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std/symbol/key1 - local.tee $0 + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + return end - global.get $std/symbol/key2 + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq if local.get $0 - call $~lib/rt/itcms/__visit + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - global.get $std/symbol/key3 - local.tee $0 + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + return end - global.get $std/symbol/key4 - local.tee $0 + local.get $0 + i32.eqz if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 0 + i32.const 1200 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable end - i32.const 1328 - call $~lib/rt/itcms/__visit - i32.const 1536 - call $~lib/rt/itcms/__visit - i32.const 1648 - call $~lib/rt/itcms/__visit - i32.const 1136 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub local.tee $1 i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - local.set $0 - loop $while-continue|0 + i32.eq + if local.get $0 - local.get $1 - i32.ne + i32.const 20 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 3 + i32.and + local.tee $3 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if local.get $0 - i32.load offset=4 + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 i32.const 3 + i32.eq i32.and - i32.const 3 - i32.ne if - i32.const 0 - i32.const 1200 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.get $1 + call $~lib/rt/itcms/Object#makeGray end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 end end ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + if + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - global.get $~lib/rt/itcms/iter + local.get $1 i32.eq if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - block $__inlined_func$~lib/rt/itcms/Object#unlink$246 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 + block $folding-inner0 + local.get $1 i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 35516 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$246 - end local.get $0 - i32.load offset=8 - local.tee $2 i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - else + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 2720 - i32.load - i32.gt_u - if - i32.const 1328 - i32.const 1392 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $3 local.get $1 - i32.const 2 - i32.shl - i32.const 2724 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 - i32.eqz - if + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$88 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$88 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz return end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount + i32.const 35536 + i32.const 35584 i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 1536 + i32.const 1584 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s if - i32.const 0 - i32.const 1472 - i32.const 270 - i32.const 14 + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 20 i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $3 + i32.const 16 + i32.ge_u + if (result i32) + i32.const 606290984 + local.set $2 + i32.const -2048144777 + local.set $4 + i32.const 1640531535 + local.set $5 + local.get $1 + local.get $3 + i32.add + i32.const 16 + i32.sub + local.set $7 + loop $while-continue|0 + local.get $1 + local.get $7 + i32.le_u + if + local.get $2 + local.get $1 + i32.load + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $4 + local.get $1 + i32.load offset=4 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $4 + local.get $6 + local.get $1 + i32.load offset=8 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $6 + local.get $5 + local.get $1 + i32.load offset=12 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $5 + local.get $1 + i32.const 16 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $3 + local.get $2 + i32.const 1 + i32.rotl + local.get $4 + i32.const 7 + i32.rotl + i32.add + local.get $6 + i32.const 12 + i32.rotl + i32.add + local.get $5 + i32.const 18 + i32.rotl + i32.add + i32.add + else + local.get $3 + i32.const 374761393 + i32.add + end local.set $2 + local.get $0 local.get $3 - local.get $4 + i32.add i32.const 4 i32.sub + local.set $4 + loop $while-continue|1 + local.get $1 + local.get $4 + i32.le_u + if + local.get $2 + local.get $1 + i32.load + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $2 + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|1 + end + end + local.get $0 + local.get $3 + i32.add + local.set $0 + loop $while-continue|2 + local.get $0 + local.get $1 + i32.gt_u + if + local.get $2 + local.get $1 + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|2 + end + end + local.get $2 + local.get $2 + 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 + else + i32.const 0 end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/symbol/_Symbol.keyFor (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 2748 + i32.lt_s if - i32.const 0 - i32.const 1472 - i32.const 284 - i32.const 14 + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString + local.tee $1 + i32.store local.get $1 local.get $0 - local.get $2 + call $"~lib/map/Map#has" + if (result i32) + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString + local.tee $1 + i32.store + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + else + i32.const 0 + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/symbol/_Symbol#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + if + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 1888 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1888 + i32.store + block $break|0 + block $case11|0 + block $case10|0 + block $case9|0 + block $case8|0 + block $case7|0 + block $case6|0 + block $case5|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 1 + i32.sub + br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 + end + i32.const 1920 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1920 + i32.store + br $break|0 + end + i32.const 1968 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store + br $break|0 + end + i32.const 2032 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2032 + i32.store + br $break|0 + end + i32.const 2080 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2080 + i32.store + br $break|0 + end + i32.const 2112 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2112 + i32.store + br $break|0 + end + i32.const 2160 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2160 + i32.store + br $break|0 + end + i32.const 2192 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2192 + i32.store + br $break|0 + end + i32.const 2240 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2240 + i32.store + br $break|0 + end + i32.const 2272 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2272 + i32.store + br $break|0 + end + i32.const 2320 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2320 i32.store + br $break|0 end + i32.const 2368 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 2368 + i32.store + br $break|0 + end + global.get $~lib/symbol/idToString + if (result i32) + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString + local.tee $2 + i32.store offset=4 + local.get $2 + local.get $0 + call $"~lib/map/Map#has" + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/idToString + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.tee $1 + i32.store end end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 2416 + local.get $1 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2464 + call $~lib/string/String.__concat + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (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 $1 - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1472 - i32.const 201 - i32.const 14 + i32.const 1136 + i32.const 1200 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$69 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - i32.const 0 - i32.const 1472 - i32.const 203 - i32.const 14 - call $~lib/builtins/abort - unreachable + call $~lib/rt/tlsf/initialize end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + global.get $~lib/rt/tlsf/ROOT + local.set $4 + local.get $0 + i32.const 16 i32.add - local.tee $4 - i32.load local.tee $2 - i32.const 1 - i32.and + i32.const 1073741820 + i32.gt_u if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 - i32.const 4 - i32.add + i32.const 1136 + i32.const 1472 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 + i32.const 19 i32.add - local.get $1 - i32.load - i32.const -4 + i32.const -16 i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 4 + i32.sub end - local.get $3 - i32.const 2 - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $1 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if i32.const 0 i32.const 1472 - i32.const 221 + i32.const 499 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 end - local.get $4 + local.get $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1472 - i32.const 233 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $1 - i32.const 4 - i32.add local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 i32.add - i32.ne + i32.const 15 + i32.and if i32.const 0 i32.const 1472 - i32.const 234 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $2 + local.get $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store local.get $2 i32.const 4 - i32.shr_u + i32.add + local.get $5 + i32.add + local.tee $5 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock else - i32.const 31 - i32.const 1073741820 local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.clz - i32.sub + i32.load + i32.const -4 + i32.and + i32.add 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 + i32.load + i32.const -3 + i32.and + i32.store 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 1472 - 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 offset=96 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 local.set $3 + local.get $2 local.get $1 - i32.const 0 + global.get $~lib/rt/itcms/white + i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $3 i32.store offset=8 local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl + i32.const -4 + i32.and + i32.const 4 i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 + i32.add + global.set $~lib/rt/itcms/total local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $2 local.get $1 - i64.extend_i32_u - i64.lt_u + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if i32.const 0 i32.const 1472 - i32.const 382 + i32.const 268 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 - i32.add - i32.const -16 + local.get $3 + i32.const -4 i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 local.tee $3 + i32.const 12 + i32.lt_u if + i32.const 0 + i32.const 1472 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) local.get $3 i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1472 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.shr_u + else + i32.const 31 + i32.const 1073741820 local.get $3 - local.get $1 - i32.const 16 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1472 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub local.tee $3 - i32.const 20 + i32.const 16 + i32.lt_u + local.get $2 + i32.const 23 i32.lt_u + i32.and + i32.eqz if - return + i32.const 0 + i32.const 1472 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable end local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - i32.const 0 - i32.store offset=8 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end local.get $1 + local.get $0 + local.get $2 i32.const 4 - i32.add + i32.shl local.get $3 i32.add - local.tee $3 i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size + i32.shl + i32.add local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + i32.load offset=96 + i32.eq if - unreachable - end - i32.const 35520 - i32.const 0 - i32.store - i32.const 37088 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if local.get $0 + local.get $2 i32.const 2 i32.shl - i32.const 35520 - i32.add - i32.const 0 - i32.store 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 35520 - i32.add - i32.const 0 - i32.store 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 35520 - i32.const 37092 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 35520 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 + local.tee $1 i32.load offset=4 - i32.const -4 + i32.const -2 + local.get $3 + i32.rotl i32.and - i32.eq + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 35516 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 offset=4 - i32.const -4 + i32.load + i32.const -2 + local.get $2 + i32.rotl i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.store 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 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 1200 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 35516 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 35516 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1472 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (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.const 256 - i32.lt_u + i32.eqz if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 + i32.const 0 + i32.const 1472 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable end local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + i32.load + local.tee $3 + i32.const 1 i32.and i32.eqz if i32.const 0 i32.const 1472 - i32.const 334 + i32.const 203 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - i32.const 2 - i32.shl + local.get $1 + i32.const 4 i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.load + i32.const -4 i32.and - local.tee $1 - if (result i32) + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.ctz + local.get $3 + i32.const 4 + i32.add local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.shl i32.add - i32.const 2 - i32.shl + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.load offset=96 - else - local.get $0 + local.tee $4 i32.load - i32.const -1 - local.get $2 + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else + i32.eqz + if i32.const 0 + i32.const 1472 + 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 end - ) - (func $~lib/rt/itcms/__new (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 + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u if - i32.const 1136 - i32.const 1200 - i32.const 261 - i32.const 31 + i32.const 0 + i32.const 1472 + i32.const 233 + i32.const 14 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$69 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 + local.get $4 + local.get $1 + i32.const 4 i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u + local.get $2 + i32.add + i32.ne if - i32.const 1136 + i32.const 0 i32.const 1472 - i32.const 461 - i32.const 29 + 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 local.get $2 - i32.const 12 - i32.le_u + i32.const 256 + i32.lt_u if (result i32) - i32.const 12 - else local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end i32.const 4 - local.get $4 - i32.load offset=1568 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 local.get $2 - i32.const 16 - i32.shl - i32.const 4 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.clz i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u local.tee $3 + i32.const 7 + i32.sub + local.set $5 local.get $2 local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 + i32.const 4 + i32.sub + i32.shr_u i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1472 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.xor end + local.tee $2 + i32.const 16 + i32.lt_u local.get $5 - local.get $2 - i32.load - i32.const -4 + i32.const 23 + i32.lt_u i32.and - i32.gt_u + i32.eqz if i32.const 0 i32.const 1472 - i32.const 501 + i32.const 251 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 + local.get $0 local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add - i32.const 15 - i32.and + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 if - i32.const 0 - i32.const 1472 - i32.const 361 - i32.const 14 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - local.get $6 - i32.const -4 - i32.and + local.get $0 local.get $5 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u + i32.const 4 + i32.shl + local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + global.get $~lib/rt/itcms/iter + i32.eq if + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$246 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 35516 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$246 + end + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1200 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 local.get $2 - local.get $5 - local.get $6 - i32.const 2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 i32.and i32.or - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 + local.get $1 + i32.const 2720 i32.load - i32.const -4 - i32.and + i32.gt_u + if + i32.const 1328 + i32.const 1392 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 2724 i32.add - local.tee $3 - local.get $3 i32.load - i32.const -3 + i32.const 32 i32.and - i32.store end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 local.set $3 local.get $2 - local.get $1 + i32.load offset=8 + local.set $1 + local.get $0 global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 + i32.eqz + i32.const 2 local.get $3 + select local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and i32.or i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 local.get $0 - memory.fill local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + i32.store offset=8 local.get $1 - i32.eqz - if - return - end local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1200 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white local.get $1 - i32.const 20 - i32.sub - local.tee $1 i32.load offset=4 i32.const 3 i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -1846,23 +1813,8 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std/symbol - ) - (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1881,208 +1833,71 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $~lib/util/hash/hashStr|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 0 - local.get $0 - i32.eqz - br_if $~lib/util/hash/hashStr|inlined.0 - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + loop $while-continue|0 local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - i32.const 16 - i32.ge_u - if (result i32) - i32.const 606290984 - local.set $2 - i32.const -2048144777 - local.set $4 - i32.const 1640531535 - local.set $5 + if local.get $1 - local.get $3 - i32.add - i32.const 16 - i32.sub - local.set $7 - loop $while-continue|0 - local.get $1 - local.get $7 - i32.le_u - if - local.get $2 - local.get $1 - i32.load - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 - local.get $4 - local.get $1 - i32.load offset=4 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $4 - local.get $6 - local.get $1 - i32.load offset=8 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $6 - local.get $5 - local.get $1 - i32.load offset=12 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $5 - local.get $1 - i32.const 16 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $3 - local.get $2 + i32.load offset=8 + local.tee $0 i32.const 1 - i32.rotl - local.get $4 - i32.const 7 - i32.rotl - i32.add - local.get $6 - i32.const 12 - i32.rotl - i32.add - local.get $5 - i32.const 18 - i32.rotl - i32.add - i32.add - else - local.get $3 - i32.const 374761393 - i32.add - end - local.set $2 - local.get $0 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.set $4 - loop $while-continue|1 - local.get $1 - local.get $4 - i32.le_u - if - local.get $2 + i32.and + if (result i32) + i32.const 0 + else + global.get $~lib/memory/__stack_pointer local.get $1 i32.load - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $2 - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|1 + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $2 + i32.const 1056 + call $~lib/string/String.__eq end - end - local.get $0 - local.get $3 - i32.add - local.set $0 - loop $while-continue|2 - local.get $0 - local.get $1 - i32.gt_u if - local.get $2 - local.get $1 - i32.load8_u - i32.const 374761393 - i32.mul + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|2 + return end + local.get $0 + i32.const -2 + i32.and + local.set $1 + br $while-continue|0 end - local.get $2 - local.get $2 - 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 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2097,168 +1912,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$88 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map<~lib/string/String,usize>#find" (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2266,7 +1922,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + local.get $2 local.get $0 i32.load offset=4 i32.and @@ -2274,147 +1930,110 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - global.get $~lib/memory/__stack_pointer local.get $1 + local.get $0 i32.load - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $2 - i32.const 1056 - call $~lib/string/String.__eq + i32.eq end if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 return end - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|0 end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 ) - (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $0 i32) (param $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) + (func $~lib/symbol/_Symbol.for (result i32) + (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $0 - local.get $6 - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.tee $2 - if - local.get $2 - local.get $1 - i32.store offset=4 - else + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 + i32.const 2748 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/stringToId + local.tee $0 i32.store - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + 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 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + call $"~lib/map/Map<~lib/string/String,usize>#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 + global.get $~lib/symbol/stringToId + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1056 i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 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 @@ -2422,257 +2041,75 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $9 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $9 - i32.ne - if - local.get $9 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.load - local.tee $10 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $2 - local.get $10 - i32.store - local.get $2 - local.get $9 - i32.load offset=4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=8 - local.get $2 - local.get $8 - local.get $10 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $7 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $10 - i32.load - i32.store offset=8 - local.get $10 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $9 - i32.const 12 - i32.add - local.set $9 - br $while-continue|0 - end - end + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 local.get $0 - local.get $8 i32.store - local.get $0 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 + i32.const 1056 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1056 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $0 + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $0 + i32.eqz + if + i32.const 1648 + i32.const 1712 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.load offset=4 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/nextId + local.tee $0 + i32.const 1 + i32.add + global.set $~lib/symbol/nextId local.get $0 + i32.eqz + if + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/symbol/stringToId + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=8 - local.tee $2 - i32.store offset=8 + call $"~lib/map/Map<~lib/string/String,usize>#set" global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/symbol/idToString + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $3 - i32.const 1 - i32.add - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $2 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $2 - i32.const 1056 - i32.store - local.get $0 i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 local.get $1 - local.get $6 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $2 - i32.store + call $"~lib/map/Map#set" + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 2748 - i32.lt_s - if i32.const 35536 i32.const 35584 i32.const 1 @@ -2681,75 +2118,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2761,625 +2140,532 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 + local.tee $2 i32.store local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - local.tee $7 - call $"~lib/map/Map#find" - local.tee $2 - if + i32.store + block $__inlined_func$~lib/string/String#concat$253 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.tee $4 + local.get $3 + i32.add + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1888 + local.set $0 + br $__inlined_func$~lib/string/String#concat$253 + end global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=4 local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - else - global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 local.get $0 - i32.store + local.get $2 + local.get $3 + memory.copy local.get $0 - i32.load offset=16 + local.get $3 + i32.add + local.get $1 + local.get $4 + memory.copy global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1472 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eq + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 0 + i32.const 1472 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 35520 + i32.const 0 + i32.store + i32.const 37088 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + i32.const 35520 + i32.add + i32.const 0 + i32.store 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.load offset=4 - i32.const 1 + i32.const 4 + i32.shl + local.get $1 + i32.add + i32.const 2 i32.shl + i32.const 35520 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 i32.const 1 - i32.or + i32.add + local.set $1 + br $for-loop|1 end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $10 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $5 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $10 - i32.load - local.tee $11 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load offset=4 - local.tee $4 - i32.store offset=8 - local.get $2 - local.get $4 - i32.store offset=4 - local.get $2 - local.get $9 - local.get $8 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $4 - i32.load - i32.store offset=8 - local.get $4 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $10 - i32.const 12 - i32.add - local.set $10 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $0 - local.get $9 - i32.store - local.get $0 - local.get $9 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $3 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $2 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - local.get $0 - i32.load offset=20 i32.const 1 i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $1 - local.get $7 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $2 - i32.store + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/symbol/_Symbol.for (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/stringToId - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - 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 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - call $"~lib/map/Map<~lib/string/String,usize>#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - if - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/stringToId - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - 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 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/util/hash/HASH<~lib/string/String> - call $"~lib/map/Map<~lib/string/String,usize>#find" - local.tee $0 - i32.eqz - if - i32.const 1648 - i32.const 1712 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner1 - end - global.get $~lib/symbol/nextId - local.tee $0 - i32.const 1 - i32.add - global.set $~lib/symbol/nextId - local.get $0 - i32.eqz - if - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/stringToId - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map<~lib/string/String,usize>#set" - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/idToString - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#set" - br $folding-inner1 - end - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 35520 + i32.const 37092 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 35520 + global.set $~lib/rt/tlsf/ROOT ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 2748 - i32.lt_s + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1472 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - 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 - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.set $1 local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul + i32.load offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1472 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1472 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $~lib/symbol/stringToId + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $~lib/symbol/idToString + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key1 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key3 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/symbol/key4 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1328 + call $~lib/rt/itcms/__visit + i32.const 1536 + call $~lib/rt/itcms/__visit + i32.const 1648 + call $~lib/rt/itcms/__visit + i32.const 1136 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1200 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 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 2748 + i32.lt_s + if + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.tee $0 local.get $0 i32.const 15 @@ -3400,25 +2686,14 @@ i32.shr_u i32.xor call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1648 - i32.const 1712 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 + i32.const 0 + i32.ne global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/symbol/_Symbol.keyFor (param $0 i32) (result i32) - (local $1 i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3438,297 +2713,1063 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/idToString - local.tee $1 + local.get $0 i32.store - local.get $1 local.get $0 - call $"~lib/map/Map#has" - if (result i32) - global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/idToString - local.tee $1 - i32.store - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - else - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1648 + i32.const 1712 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$253 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1888 - local.set $0 - br $__inlined_func$~lib/string/String#concat$253 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + ) + (func $~start + global.get $~started + if return end - i32.const 35536 - i32.const 35584 - i32.const 1 i32.const 1 - call $~lib/builtins/abort - unreachable + global.set $~started + call $start:std/symbol ) - (func $~lib/symbol/_Symbol#toString (param $0 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 1888 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1888 - i32.store block $break|0 - block $case11|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 1 - i32.sub - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 - end - i32.const 1920 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1920 - i32.store - br $break|0 - end - i32.const 1968 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store - br $break|0 - end - i32.const 2032 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store - br $break|0 - end - i32.const 2080 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2080 - i32.store - br $break|0 - end - i32.const 2112 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store - br $break|0 - end - i32.const 2160 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2160 - i32.store - br $break|0 - end - i32.const 2192 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2192 + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 35516 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1200 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 35516 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 35516 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $"~lib/map/Map<~lib/string/String,usize>#set" (param $0 i32) (param $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) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + call $~lib/util/hash/HASH<~lib/string/String> + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $0 + local.get $6 + call $"~lib/map/Map<~lib/string/String,usize>#find" + local.tee $2 + if + local.get $2 + local.get $1 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + 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 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $9 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $9 + i32.ne + if + local.get $9 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.load + local.tee $10 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=8 + local.get $2 + local.get $10 + i32.store + local.get $2 + local.get $9 + i32.load offset=4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=8 + local.get $2 + local.get $8 + local.get $10 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $7 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $10 + i32.load + i32.store offset=8 + local.get $10 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $9 + i32.const 12 + i32.add + local.set $9 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $0 + local.get $8 + i32.store + local.get $0 + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + local.get $2 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $2 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $1 + local.get $6 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $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) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + 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 + local.tee $7 + call $"~lib/map/Map#find" + local.tee $2 + if + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + local.get $2 + i32.const 1056 + i32.store offset=4 + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2748 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $10 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne + if + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $10 + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.load offset=4 + local.tee $4 + i32.store offset=8 + local.get $2 + local.get $4 + i32.store offset=4 + local.get $2 + local.get $9 + local.get $8 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $4 + i32.load + i32.store offset=8 + local.get $4 + local.get $2 i32.store - br $break|0 + local.get $2 + i32.const 12 + i32.add + local.set $2 end - i32.const 2240 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2240 - i32.store - br $break|0 + local.get $10 + i32.const 12 + i32.add + local.set $10 + br $while-continue|0 end - i32.const 2272 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 2272 - i32.store - br $break|0 end - i32.const 2320 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2320 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $0 + local.get $9 i32.store - br $break|0 + local.get $0 + local.get $9 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const 2368 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 2368 + local.get $0 i32.store - br $break|0 - end - global.get $~lib/symbol/idToString - if (result i32) global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/idToString + local.get $0 + i32.load offset=8 local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $2 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $2 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store local.get $2 + i32.const 1056 + i32.store offset=4 local.get $0 - call $"~lib/map/Map#has" - else - i32.const 0 - end - if + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - global.get $~lib/symbol/idToString - local.tee $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 local.get $1 + local.get $7 local.get $0 - call $"~lib/map/Map#get" - local.tee $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $2 i32.store end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 2416 - local.get $1 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2464 - call $~lib/string/String.__concat - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 35536 + i32.const 35584 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $start:std/symbol (local $0 i32) @@ -4199,46 +4240,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (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 2748 - i32.lt_s - if - i32.const 35536 - i32.const 35584 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1536 - i32.const 1584 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index b0cdfab0ca..d4c4a18806 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -11,36 +11,36 @@ (type $9 (func (param i32))) (type $10 (func (param f64 f64) (result i32))) (type $11 (func (param f32 f32) (result i32))) - (type $12 (func (param i32 i32 i32 i32 i32))) - (type $13 (func (param i32 i32 i32 i32 i32 i32))) - (type $14 (func (param f32 i32 i32) (result i32))) - (type $15 (func (param f64 i32 i32) (result i32))) + (type $12 (func (param f64 i32 i32) (result i32))) + (type $13 (func (param f32 i32 i32) (result i32))) + (type $14 (func (param i32 i32 i32 i32 i32))) + (type $15 (func (param i32 i32 i32 i32 i32 i32))) (type $16 (func (param i32 i32) (result i64))) (type $17 (func (param i64 i64 i32 i32) (result i64))) - (type $18 (func (param i32 i64) (result i32))) - (type $19 (func (param i32 i64 i32) (result i32))) + (type $18 (func (param i32 i64 i32) (result i32))) + (type $19 (func (param i32 i64) (result i32))) (type $20 (func (param i32 i32 i32 i32))) (type $21 (func (param i32 i32 i64))) - (type $22 (func (param f32 f32 i32 i32) (result f32))) - (type $23 (func (param f64 f64 i32 i32) (result f64))) - (type $24 (func (param i64 i32 i32) (result i64))) - (type $25 (func (param i32 f64 i32) (result i32))) - (type $26 (func (param i32 i32) (result f64))) - (type $27 (func (param i32 i32) (result f32))) + (type $22 (func (param i32 i32) (result f64))) + (type $23 (func (param i32 i32) (result f32))) + (type $24 (func (param i32 f64 i32) (result i32))) + (type $25 (func (param f64 f64 i32 i32) (result f64))) + (type $26 (func (param f32 f32 i32 i32) (result f32))) + (type $27 (func (param i64 i32 i32) (result i64))) (type $28 (func (param i64 i32 i32))) - (type $29 (func (param f32 i32 i32) (result f32))) - (type $30 (func (param f64 i32 i32) (result f64))) + (type $29 (func (param i32 f32 i32) (result i32))) + (type $30 (func (param i32 f64) (result i32))) (type $31 (func (param i32 f32) (result i32))) - (type $32 (func (param i32 f64) (result i32))) - (type $33 (func (param f32 i32 i32))) + (type $32 (func (param f64 i32 i32) (result f64))) + (type $33 (func (param f32 i32 i32) (result f32))) (type $34 (func (param f64 i32 i32))) - (type $35 (func (param i32 f32 i32) (result i32))) - (type $36 (func (result i32))) - (type $37 (func (param i32 i64 i32))) - (type $38 (func (param i32 i64 i64 i32 i64 i32) (result i32))) - (type $39 (func (param i32 i32 f64 f64 f64 f64 f64))) - (type $40 (func (param i32 i32 f64))) - (type $41 (func (param i32 i32 f32))) + (type $35 (func (param f32 i32 i32))) + (type $36 (func (param i32 i32 f64))) + (type $37 (func (param i32 i32 f32))) + (type $38 (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $39 (func (param i32 i64 i32))) + (type $40 (func (result i32))) + (type $41 (func (param i32 i64 i64 i32 i64 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -673,3164 +673,3394 @@ (data $304 (i32.const 16000) "O\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\08\00\00A\00\00\00A\00\00\00\81\08\00\00\81\00\00\00\01\t\00\00\01\01\00\00\01\n\00\00\01\02\00\00\01\19\00\00\01\1a\00\00\00\00\00\00B\08\00\00\02\t") (data $304.1 (i32.const 16252) "\02\19\00\00\02\1a\00\00B\00\00\00\82\08\00\00\82\00\00\00\02\01\00\00\02\n\00\00\02\02") (table $0 166 166 funcref) - (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/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,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/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" $~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|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,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") + (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/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,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/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~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/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~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/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/Int32Array,i32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~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/Int32Array,i32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" $~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|0 $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,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/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 7152 - call $~lib/rt/itcms/__visit - i32.const 7616 - call $~lib/rt/itcms/__visit - i32.const 7728 - call $~lib/rt/itcms/__visit - i32.const 10928 - call $~lib/rt/itcms/__visit - i32.const 11008 - call $~lib/rt/itcms/__visit - i32.const 11088 - call $~lib/rt/itcms/__visit - i32.const 11184 - call $~lib/rt/itcms/__visit - i32.const 11264 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - i32.const 1168 - call $~lib/rt/itcms/__visit - i32.const 8432 - call $~lib/rt/itcms/__visit - i32.const 9488 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1232 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) + (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.const 1073741804 + i32.ge_u if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + i32.const 1168 + i32.const 1232 + i32.const 261 + i32.const 31 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1403 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 49088 - i32.lt_u - i32.and - i32.eqz - if + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt$68 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$68 + end + local.get $2 i32.const 0 - i32.const 1232 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + i32.gt_s + br_if $do-loop|0 end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1403 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 end - global.get $~lib/rt/itcms/toSpace - local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.load offset=12 + i32.const 16 + i32.add + call $~lib/rt/tlsf/allocateBlock + local.tee $2 + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace local.tee $1 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 16000 - i32.load - i32.gt_u - if - i32.const 1360 - i32.const 1424 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 16004 - i32.add - i32.load - i32.const 32 - i32.and - end + i32.load offset=8 local.set $3 local.get $2 - i32.load offset=8 - local.set $1 - local.get $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 offset=4 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 + local.get $3 + local.get $2 + local.get $3 i32.load offset=4 i32.const 3 i32.and i32.or i32.store offset=4 + local.get $1 local.get $2 - local.get $0 i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 - i32.eqz + memory.fill + local.get $1 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 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 16320 + i32.lt_s if - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount + i32.const 1360 + i32.const 1760 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 + i32.const 2 + i32.shl + i32.add i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 268 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 270 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 178 + i32.const 45 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - i32.const 16 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#get:length (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 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 284 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 + i32.const 2 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $4 - local.get $5 - i32.store offset=8 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $5 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u if - local.get $5 - local.get $4 - i32.store offset=4 + i32.const 1360 + i32.const 1632 + i32.const 1031 + i32.const 64 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 4 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 i32.shl - local.get $3 i32.add - i32.const 2 - i32.shl + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (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 + (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 201 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.load - local.tee $3 + local.get $0 + i32.load offset=8 i32.const 1 - i32.and - i32.eqz + i32.shr_u + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 203 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 463 + i32.const 64 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - i32.const 4 + i32.const 1 + i32.shl i32.add - local.get $1 - i32.load - i32.const -4 - i32.and + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.set $1 local.get $3 - i32.const 2 - i32.and if local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1504 - 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 + local.get $5 + memory.copy end - local.get $4 - local.get $2 - i32.const 2 - i32.or + local.get $1 i32.store - local.get $3 - i32.const -4 - i32.and + i32.const 16 + local.get $2 + call $~lib/rt/itcms/__new local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1504 - i32.const 233 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 local.get $1 + i32.store + local.get $2 + local.get $1 + call $~lib/rt/itcms/__link + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer local.get $2 - i32.add - i32.ne + ) + (func $~lib/typedarray/Int64Array#get:length (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 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 234 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.get $1 - i32.store - 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 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 251 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#get:length (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 16320 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=96 local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 747 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store local.get $0 - local.get $5 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 382 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.sub + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.const -16 - i32.and + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=1568 - local.tee $3 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1504 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1504 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 1360 + i32.const 1632 + i32.const 36 + i32.const 45 + call $~lib/builtins/abort + unreachable end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 + local.get $0 + i32.load offset=4 + i32.add + local.get $2 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $3 - i32.const 20 - i32.lt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 0 - i32.store offset=8 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1457 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - i32.const 4 + i32.const 3 + i32.shl i32.add - local.get $3 + local.get $2 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $3 - i32.const 2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - i32.store offset=1568 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 889 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + i32.load offset=4 local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) + (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u if + i32.const 1360 + i32.const 1632 + i32.const 1315 + i32.const 64 + call $~lib/builtins/abort unreachable end - i32.const 49088 - i32.const 0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store - i32.const 50656 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 320 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.const 255 + local.get $2 + i32.sub + i32.const 31 + i32.shr_s + local.get $2 + i32.or + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $1 + i32.eqz + if + return + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if local.get $0 - i32.const 23 - i32.lt_u + i32.const 20 + i32.sub + i32.load 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 2 - i32.shl - i32.const 49088 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + i32.const 3 + i32.eq + i32.and + if 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 49088 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + call $~lib/rt/itcms/Object#makeGray end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end end - i32.const 49088 - i32.const 50660 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 49088 - global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 49088 - i32.lt_u + (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u if - call $~lib/rt/tlsf/initialize + i32.const 1360 + i32.const 1632 + i32.const 1173 + i32.const 64 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - else - local.get $1 - i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1504 - i32.const 562 - i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 49088 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1232 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 49088 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 - call $~lib/rt/tlsf/__free - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 - end - local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u if - i32.const 0 - i32.const 1504 - i32.const 334 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 605 + i32.const 64 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - i32.const -1 local.get $1 + i32.const 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end + i32.add + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 1168 - i32.const 1504 - i32.const 461 - i32.const 29 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - local.get $3 - i32.const 256 - i32.ge_u - if (result i32) - local.get $3 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $3 - end - else - local.get $3 - end - i32.const 4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + i32.const -1 local.get $0 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.tee $3 + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop local.get $2 - i32.gt_s - select - memory.grow i32.const 0 i32.lt_s if local.get $2 - memory.grow + local.get $3 + i32.add + local.tee $2 i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 i32.lt_s if - unreachable + local.get $2 + local.get $0 + local.get $2 + i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 end end - local.get $0 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const -1 end - local.get $3 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 501 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/rt/tlsf/removeBlock + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.load - local.set $4 - local.get $3 - i32.const 4 + local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.const 15 - i32.and + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1504 - i32.const 361 - i32.const 14 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const -4 - i32.and - local.get $3 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.tee $2 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - local.get $2 - i32.const 4 - i32.sub + i32.const 49120 + i32.const 49168 i32.const 1 - i32.or - i32.store - local.get $0 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $4 - i32.const -2 - i32.and - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) local.get $0 - i32.const 1073741804 - i32.ge_u + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 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 16320 + i32.lt_s if - i32.const 1168 - i32.const 1232 - i32.const 261 - i32.const 31 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u i32.ge_u if - block $__inlined_func$~lib/rt/itcms/interrupt$68 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$68 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + i32.const 1360 + i32.const 1632 + i32.const 736 + i32.const 64 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 + i32.store local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 + i32.const 2 + i32.shl + i32.add i32.load - i32.const -4 - i32.and + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new local.tee $1 - i32.const 0 - local.get $0 - memory.fill + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.eqz + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 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 16320 + i32.lt_s if - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.eqz + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u if - i32.const 0 - i32.const 1232 - i32.const 295 - i32.const 14 + i32.const 1360 + i32.const 1632 + i32.const 25 + i32.const 45 call $~lib/builtins/abort unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.const 20 - i32.sub - local.tee $1 + local.get $0 i32.load offset=4 - i32.const 3 - i32.and - i32.eq + i32.add + i32.load8_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $0 - i32.const 20 - i32.sub - i32.load 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 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 f64) - (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - local.get $3 - local.get $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1446 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 local.get $1 - i32.sub - i32.const 1 + i32.const 3 + i32.shl i32.add - local.tee $7 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $7 - i32.const 1 - i32.and - local.get $3 - select + f64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 3 - i32.shl - i32.add - local.tee $3 - f64.load offset=8 - local.tee $8 - local.set $6 - local.get $3 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $8 - local.get $4 - i32.load - call_indirect (type $10) - i32.const 0 - i32.le_s - if - local.get $5 - local.set $6 - local.get $8 - local.set $5 - end - local.get $7 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 309 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$714 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 local.get $3 - i32.le_s if - block $while-break|1 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - f64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $10) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $9 - local.get $8 - f64.store offset=16 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 - end + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$714 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 end end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 49088 + i32.const 0 + i32.store + i32.const 50656 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - local.get $3 - i32.const 3 + i32.const 2 i32.shl + i32.const 49088 i32.add - local.get $5 - f64.store offset=16 - loop $while-continue|2 + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - local.get $3 - i32.le_s + i32.const 16 + i32.lt_u if - block $while-break|2 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - f64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $4 - i32.load - call_indirect (type $10) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $9 - local.get $5 - f64.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end + local.get $0 + i32.const 4 + i32.shl + local.get $1 + i32.add + i32.const 2 + i32.shl + i32.const 49088 + i32.add + i32.const 0 + i32.store offset=96 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end end local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $6 - f64.store offset=8 - local.get $7 - i32.const 2 + i32.const 1 i32.add - local.set $7 + local.set $0 br $for-loop|0 end end + i32.const 49088 + i32.const 50660 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 49088 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 f64) local.get $1 - local.get $2 - i32.eq + i32.const 1073741820 + i32.gt_u if - local.get $1 - return + i32.const 1168 + i32.const 1504 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable end local.get $0 local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $10) - i32.const 0 - i32.gt_s + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $1 + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + end + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s + local.get $3 + i32.const 256 + i32.ge_u + if (result i32) + local.get $3 + i32.const 536870910 + i32.lt_u if (result i32) - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $6 - f64.load offset=8 - local.get $6 - f64.load - i32.const 2 - global.set $~argumentsLength local.get $3 - i32.load - call_indirect (type $10) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $3 - f64.load - local.set $5 + i32.const 27 local.get $3 - local.get $0 - local.get $2 - i32.const 3 + i32.clz + i32.sub i32.shl i32.add - local.tee $3 - f64.load - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - f64.store - local.get $2 i32.const 1 i32.sub - local.set $2 - br $while-continue|1 + else + local.get $3 end + else + local.get $3 end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - f64.load offset=8 - local.get $1 - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $10) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end - end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 f64) - (local $8 f64) - (local $9 i32) - (local $10 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $9 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 + i32.const 4 + local.get $0 + i32.load offset=1568 + memory.size + local.tee $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.set $2 + local.get $1 + local.get $2 local.get $1 local.get $2 + i32.gt_s + select + memory.grow + i32.const 0 i32.lt_s if local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 3 - i32.shl - local.tee $10 - local.get $4 - i32.add - local.get $0 - local.get $10 - i32.add - f64.load - f64.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $9 - local.get $6 - i32.sub - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - f64.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - end - loop $for-loop|2 + local.get $0 local.get $1 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $0 local.get $3 - i32.le_s + call $~lib/rt/tlsf/searchBlock + local.tee $1 + i32.eqz if - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $10) i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - f64.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $8 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + i32.const 1504 + i32.const 499 + i32.const 16 + call $~lib/builtins/abort + unreachable end end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - local.get $0 - i64.reinterpret_f64 - local.tee $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - local.get $2 - i64.xor - local.tee $2 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - local.get $3 - i64.xor - local.tee $3 - i64.gt_s - local.get $2 local.get $3 - i64.lt_s - i32.sub - ) - (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) - local.get $0 - local.get $1 - i64.add - ) - (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) - local.get $0 local.get $1 - f32.add - ) - (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + i32.load + i32.const -4 + i32.and + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 local.get $1 - f64.add - ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - local.get $0 - i32.mul - ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i64) - local.get $0 - local.get $0 - i64.mul - ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result f32) - local.get $0 - local.get $0 - f32.mul - ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result f64) - local.get $0 - local.get $0 - f64.mul - ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.extend8_s - i32.const 2 - i32.gt_s - ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + call $~lib/rt/tlsf/removeBlock local.get $1 - local.get $0 - i32.const 20 - i32.sub - local.tee $3 i32.load + local.set $4 + local.get $3 + i32.const 4 + i32.add + i32.const 15 + i32.and + if + i32.const 0 + i32.const 1504 + i32.const 361 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 i32.const -4 i32.and - i32.const 16 + local.get $3 i32.sub - i32.le_u + local.tee $2 + i32.const 16 + i32.ge_u if + local.get $1 local.get $3 + local.get $4 + i32.const 2 + i32.and + i32.or + i32.store local.get $1 - i32.store offset=16 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store local.get $0 - return + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $1 + local.get $4 + i32.const -2 + i32.and + i32.store + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $0 + local.get $0 + i32.load + i32.const -3 + i32.and + i32.store end local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - memory.copy - local.get $2 ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/__free (param $0 i32) + (local $1 i32) + (local $2 i32) local.get $0 - i32.const 255 - i32.and - i32.const 2 - i32.gt_u - ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 49088 + 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 $0 - i32.extend16_s - i32.const 2 - i32.gt_s - ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 4 + i32.sub + local.set $1 local.get $0 - i32.const 65535 + i32.const 15 i32.and - i32.const 2 - i32.gt_u - ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.const 1 local.get $0 - i32.const 2 - i32.gt_s + select + if (result i32) + i32.const 1 + else + local.get $1 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $1 + i32.load + i32.const 1 + i32.or + i32.store + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.const 2 - i32.gt_u - ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i64.const 2 - i64.gt_s ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i64.const 2 - i64.gt_u ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - f32.const 2 - f32.gt - ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - f64.const 2 - f64.gt ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.const 255 - i32.and i32.const 2 - i32.eq - ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 255 - i32.and - i32.eqz ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 65535 - i32.and - i32.const 2 - i32.eq - ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.store + local.get $1 local.get $0 - i32.const 65535 - i32.and - i32.eqz - ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=8 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 167 + i32.const 45 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.eq - ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.store + local.get $1 local.get $0 - i32.eqz + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i64.const 2 - i64.eq - ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + i32.store + local.get $1 local.get $0 - i64.eqz - ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1162 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - f32.const 2 - f32.eq - ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + i32.store local.get $0 - f32.const 0 - f32.eq + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - f64.const 2 - f64.eq - ) - (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - f64.const 0 - f64.eq ) - (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 255 - i32.and + (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq - ) - (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 65535 - i32.and + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 878 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 594 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.eq + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i64.const 4 - i64.eq - ) - (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + i32.store + local.get $1 local.get $0 - f32.const 4 - f32.eq - ) - (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1020 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - f64.const 4 - f64.eq - ) - (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.store local.get $0 - i32.extend8_s - i32.const 1 - i32.and - i32.eqz + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 local.get $0 + i32.load offset=8 i32.const 1 - i32.and - i32.eqz - ) - (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 - i32.extend16_s + i32.store + local.get $0 + i32.load offset=4 + local.get $1 i32.const 1 - i32.and - i32.eqz + i32.shl + i32.add + i32.load16_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i64.const 1 - i64.and - i64.eqz - ) - (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - block $__inlined_func$~lib/math/NativeMathf.mod (result f32) - local.get $0 - i32.reinterpret_f32 - local.tee $1 - i32.const 23 - i32.shr_u - i32.const 255 - i32.and - local.tee $2 - i32.const 255 - i32.eq - if - local.get $0 - local.get $0 - f32.add - local.tee $0 - local.get $0 - f32.div - br $__inlined_func$~lib/math/NativeMathf.mod - end - local.get $1 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/isInt32ArrayEqual (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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - local.tee $3 - i32.const -2147483648 - i32.le_u - if - local.get $0 - local.get $3 - i32.const -2147483648 - i32.ne - f32.convert_i32_u - f32.mul - br $__inlined_func$~lib/math/NativeMathf.mod - end + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $folding-inner0 local.get $1 - i32.const -2147483648 - i32.and + call $~lib/array/Array#get:length + local.get $3 + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length local.set $3 - local.get $2 - if (result i32) - local.get $1 - i32.const 8388607 - i32.and - i32.const 8388608 - i32.or - else - local.get $1 - i32.const 1 - local.get $2 - local.get $1 - i32.const 9 - i32.shl - i32.clz - i32.sub - local.tee $2 - i32.sub - i32.shl - end - local.set $1 - loop $while-continue|0 + loop $for-loop|0 local.get $2 - i32.const 128 - i32.gt_s + local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 8388608 - i32.ge_u - if (result i32) - local.get $0 - f32.const 0 - f32.mul - local.get $1 - i32.const 8388608 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod - drop - local.get $1 - i32.const 8388608 - i32.sub - else - local.get $1 - end - i32.const 1 - i32.shl - local.set $1 + i32.store + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.get $4 + i32.ne + br_if $folding-inner0 local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 - br $while-continue|0 + br $for-loop|0 end end - local.get $1 - i32.const 8388608 - i32.ge_u - if - local.get $0 - f32.const 0 - f32.mul - local.get $1 - i32.const 8388608 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod - drop - local.get $1 - i32.const 8388608 - i32.sub - local.set $1 - end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 3 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.const 1 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz local.get $2 - local.get $1 - i32.const 8 - i32.shl - i32.clz - local.tee $4 - i32.sub - local.set $2 - local.get $1 - local.get $4 - i32.shl - local.set $1 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + drop local.get $2 i32.const 0 - i32.gt_s - if (result i32) - local.get $1 - i32.const 8388608 - i32.sub + i32.lt_s + if local.get $2 - i32.const 23 - i32.shl - i32.or - else - local.get $1 - i32.const 1 + local.get $3 + i32.add + local.tee $2 + i32.const 0 local.get $2 - i32.sub - i32.shr_u + i32.const 0 + i32.gt_s + select + local.set $2 end - local.get $3 - i32.or - f32.reinterpret_i32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $1 + f64.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 end - f32.const 0 - f32.eq + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - (local $6 i64) - block $__inlined_func$~lib/math/NativeMath.mod$1 (result f64) + (func $~lib/typedarray/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + i32.const -1 local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 52 - i64.shr_u - i64.const 2047 - i64.and - local.tee $6 - i64.const 2047 - i64.eq - if - local.get $0 - local.get $0 - f64.add - local.tee $0 - local.get $0 - f64.div - br $__inlined_func$~lib/math/NativeMath.mod$1 - end - local.get $4 - i64.const 1 - i64.shl + call $~lib/typedarray/Int32Array#get:length local.tee $3 - i64.const -9223372036854775808 - i64.le_u + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $2 + i32.const 0 + i32.lt_s if - local.get $0 + local.get $2 local.get $3 - i64.const -9223372036854775808 - i64.ne - f64.convert_i32_u - f64.mul - br $__inlined_func$~lib/math/NativeMath.mod$1 - end - local.get $4 - i64.const 63 - i64.shr_u - local.set $5 - local.get $6 - i64.eqz - if (result i64) - local.get $4 - i64.const 1 - local.get $6 - local.get $4 - i64.const 12 - i64.shl - i64.clz - i64.sub - local.tee $6 - i64.sub - i64.shl - else - local.get $4 - i64.const 4503599627370495 - i64.and - i64.const 4503599627370496 - i64.or + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 loop $while-continue|0 - local.get $6 - i64.const 1024 - i64.gt_s + local.get $2 + local.get $3 + i32.lt_s if - local.get $3 - i64.const 4503599627370496 - i64.ge_u - if (result i64) - local.get $0 - f64.const 0 - f64.mul - local.get $3 - i64.const 4503599627370496 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$1 - drop - local.get $3 - i64.const 4503599627370496 - i64.sub - else - local.get $3 - end - i64.const 1 - i64.shl - local.set $3 - local.get $6 - i64.const 1 - i64.sub - local.set $6 + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $1 + f32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 br $while-continue|0 end end - local.get $3 - i64.const 4503599627370496 - i64.ge_u - if - local.get $0 - f64.const 0 - f64.mul - local.get $3 - i64.const 4503599627370496 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod$1 - drop - local.get $3 - i64.const 4503599627370496 - i64.sub - local.set $3 - end - local.get $6 - local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $4 - i64.sub - local.set $6 - local.get $3 - local.get $4 - i64.shl - local.set $3 - local.get $6 - i64.const 0 - i64.gt_s - if (result i64) - local.get $3 - i64.const 4503599627370496 - i64.sub - local.get $6 - i64.const 52 - i64.shl - i64.or - else - local.get $3 - i64.const 1 - local.get $6 - i64.sub - i64.shr_u - end - local.get $5 - i64.const 63 - i64.shl - i64.or - f64.reinterpret_i64 + i32.const -1 end - f64.const 0 - f64.eq + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + local.get $2 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 + i32.const 0 + i32.lt_s if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 8012 i32.add - i64.load32_u + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 8012 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $1 + i64.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end end + i32.const -1 end - local.get $1 - i32.const 100 - i32.ge_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 8012 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - i32.const 10 - i32.ge_u - if + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + i32.const -1 local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 8012 - i32.add - i32.load - i32.store - else - local.get $0 + local.get $3 + i32.ge_s + i32.or + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end + i32.const -1 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Uint16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - local.get $1 - i32.extend8_s - local.tee $3 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - local.tee $2 if - local.get $3 - i32.const -128 - i32.eq - if - local.get $0 - i64.const 15762813447372845 - i64.store - i32.const 4 - return - end - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $1 - i32.extend8_s - local.tee $3 - i32.const 10 - i32.lt_u - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) + i32.const -1 local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.tee $3 + i32.eqz + local.get $2 local.get $3 - i32.const 48 + i32.ge_s i32.or - i32.store16 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop local.get $2 - i32.const 1 - i32.add - return - end - local.get $1 - i32.extend8_s - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end end + i32.const -1 end - local.set $3 - local.get $0 - local.get $1 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 255 - i32.and - local.tee $2 - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 255 - i32.and - local.set $1 - i32.const 3 - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - local.get $1 - i32.const 100 - i32.ge_u - select - local.set $2 - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) - local.get $1 - i32.extend16_s - local.tee $3 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - local.tee $2 if - local.get $3 - i32.const -32768 - i32.eq - if - local.get $0 - i64.const 15481338470793261 - i64.store - local.get $0 - i32.const 3670070 - i32.store offset=8 - i32.const 6 - return - end - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $1 - i32.extend16_s - local.tee $3 - i32.const 10 - i32.lt_u - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + i32.const -1 local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + local.get $2 local.get $3 - i32.const 48 + i32.ge_s i32.or - i32.store16 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + drop local.get $2 - i32.const 1 - i32.add - return - end - local.get $1 - i32.extend16_s - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $1 + i64.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end end + i32.const -1 end - local.set $3 - local.get $0 - local.get $1 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 65535 - i32.and - local.tee $2 - i32.const 10 - i32.lt_u + (func $~lib/typedarray/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 48 - i32.or - i32.store16 + i32.const 49120 + i32.const 49168 i32.const 1 - return - end - local.get $1 - i32.const 65535 - i32.and - local.set $1 - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add + call $~lib/builtins/abort + unreachable end - local.set $2 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 0 - i32.lt_s - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 - end + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.set $0 - local.get $1 - i32.const 10 - i32.lt_u - if + i32.store offset=4 + block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) + i32.const -1 local.get $0 - local.get $1 - i32.const 48 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz + local.get $2 + local.get $3 + i32.ge_s i32.or - i32.store16 + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + drop local.get $2 - i32.const 1 - i32.add - return - end - local.get $0 - local.get $1 - local.get $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u + i32.const 0 + i32.lt_s + if + local.get $2 + local.get $3 i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $2 end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end end + i32.const -1 end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.const 10 - i32.lt_u + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 + i32.eqz if - local.get $0 - local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 return end + global.get $~lib/rt/itcms/white local.get $0 - local.get $1 - local.get $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end + i32.const 20 + i32.sub local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) loop $while-continue|0 local.get $1 - i64.const 100000000 - i64.ge_u + i32.const 10000 + i32.ge_u if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 local.get $0 local.get $2 i32.const 4 @@ -3839,19 +4069,7 @@ i32.const 1 i32.shl i32.add - local.get $1 - local.get $1 - i64.const 100000000 - i64.div_u - local.tee $1 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 + local.get $3 i32.const 100 i32.div_u i32.const 2 @@ -3859,38 +4077,7 @@ i32.const 8012 i32.add i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 8012 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 8012 - i32.add - i64.load32_u - local.get $3 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -3905,4963 +4092,4904 @@ br $while-continue|0 end end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) local.get $1 - i64.const 0 - i64.lt_s - local.tee $3 + i32.const 100 + i32.ge_u if local.get $0 - i32.const 45 - i32.store16 - i64.const 0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add local.get $1 - i64.sub + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u local.set $1 end - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $4 local.get $1 - i64.const 10 - i64.lt_u + i32.const 10 + i32.ge_u if - local.get $4 + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add local.get $1 - i64.const 48 - i64.or - i64.store16 - local.get $3 + i32.const 2 + i32.shl + i32.const 8012 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub i32.const 1 + i32.shl i32.add - return + local.get $1 + i32.const 48 + i32.add + i32.store16 end + ) + (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 local.get $1 - i64.const 4294967295 - i64.le_u + i32.add + ) + (func $~lib/typedarray/Uint8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s if - local.get $1 - i32.wrap_i64 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) + i32.const 0 + i32.ge_s + if local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else + local.get $0 local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 i32.add + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop local.get $2 - i32.const 100000000 - i32.ge_u - i32.add + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end end - local.set $0 - local.get $4 - local.get $2 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $4 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#slice@varargs (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $2of2 + block $1of2 + block $outOfRange + global.get $~argumentsLength + br_table $1of2 $1of2 $2of2 $outOfRange end + unreachable end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut + i32.const 2147483647 + local.set $1 end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + i32.store + local.get $0 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#slice + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - local.set $2 local.get $1 - i64.const 10 - i64.lt_u + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u if - local.get $0 + local.get $3 local.get $1 - i64.const 48 - i64.or - i64.store16 - i32.const 1 + i32.store offset=16 + local.get $0 return end local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $0 - local.get $2 - local.get $3 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $2 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut - end + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 local.get $0 - ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - local.get $2 local.get $1 - i64.sub - local.set $9 - i64.const 1 - i32.const 0 local.get $3 - i32.sub - local.tee $10 - i64.extend_i32_s - local.tee $1 - i64.shl - local.tee $12 - i64.const 1 - i64.sub - local.tee $11 - local.get $2 - i64.and - local.set $8 - local.get $2 + i32.load offset=16 + local.tee $0 + local.get $0 local.get $1 - i64.shr_u - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $7 - loop $while-continue|0 - local.get $7 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $7 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $3 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100000 - i32.div_u - local.set $6 - local.get $3 - i32.const 100000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10000 - i32.div_u - local.set $6 - local.get $3 - i32.const 10000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 1000 - i32.div_u - local.set $6 - local.get $3 - i32.const 1000 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 100 - i32.div_u - local.set $6 - local.get $3 - i32.const 100 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - i32.const 10 - i32.div_u - local.set $6 - local.get $3 - i32.const 10 - i32.rem_u - local.set $3 - br $break|1 - end - local.get $3 - local.set $6 - i32.const 0 - local.set $3 - br $break|1 - end - i32.const 0 - local.set $6 - end - local.get $5 - local.get $6 - i32.or - if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $4 - local.get $3 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - local.tee $2 - i64.shl - local.get $8 - i64.add - local.tee $1 - i64.ge_u - if - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $7 - i32.const 2 - i32.shl - i32.const 10736 - i32.add - i64.load32_u - local.get $2 - i64.shl - local.set $2 - local.get $0 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|3 - local.get $1 - local.get $9 - i64.lt_u - local.get $4 - local.get $1 - i64.sub - local.get $2 - i64.ge_u - i32.and - if (result i32) - local.get $9 - local.get $1 - local.get $2 - i64.add - local.tee $8 - i64.gt_u - local.get $9 - local.get $1 - i64.sub - local.get $8 - local.get $9 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $2 - i64.add - local.set $1 - br $while-continue|3 - end - end - local.get $0 - local.get $7 - i32.store16 - local.get $5 - return - end - br $while-continue|0 - end - end - loop $while-continue|4 - local.get $4 - i64.const 10 - i64.mul - local.set $4 - local.get $8 - i64.const 10 - i64.mul - local.tee $1 - local.get $10 - i64.extend_i32_s - i64.shr_u - local.tee $2 - local.get $5 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $0 - local.get $5 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - local.get $5 - i32.const 1 - i32.add - local.set $5 - end - local.get $7 + i32.gt_u + select + memory.copy + local.get $2 + ) + (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $11 - i64.and - local.tee $8 - local.get $4 - i64.ge_u - br_if $while-continue|4 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/util/number/_K - local.get $7 - i32.add - global.set $~lib/util/number/_K - local.get $9 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - local.get $7 - i32.sub - i32.const 2 - i32.shl - i32.const 10736 - i32.add - i64.load32_u - i64.mul - local.set $1 + i32.store local.get $0 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1073741820 + local.get $2 + i32.shr_u + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 i32.shl + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|6 - local.get $1 - local.get $8 - i64.gt_u - local.get $4 - local.get $8 - i64.sub - local.get $12 - i64.ge_u - i32.and - if (result i32) - local.get $1 - local.get $8 - local.get $12 - i64.add - local.tee $2 - i64.gt_u - local.get $1 - local.get $8 - i64.sub - local.get $2 - local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $8 - local.get $12 - i64.add - local.set $8 - br $while-continue|6 - end - end + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.store16 - local.get $5 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - local.get $2 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $0 - local.get $1 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $1 - i32.const 2 - i32.add - return + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $3 local.get $1 - local.get $2 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.get $1 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + i32.const 1 + call $~lib/rt/itcms/__new local.tee $3 - i32.const 21 - i32.le_s + i32.store offset=4 + local.get $3 + local.get $0 local.get $1 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $3 + ) + (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 i32.le_s + select + i32.const 1 + i32.shl + local.set $3 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.ge_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + return + end + local.get $3 + i32.eqz + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.eq i32.and - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $3 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/typedarray/Uint8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 2 + i32.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s if + local.get $2 local.get $0 - local.get $1 - i32.const 1 + local.get $2 + i32.const 3 i32.shl i32.add - i32.const 48 - i32.store16 + i64.load local.get $1 + i64.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + i32.sub + local.set $2 + br $while-continue|0 end end - local.get $0 - local.get $3 + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 local.get $3 - i32.const 2 i32.add - else local.get $3 - i32.const 21 - i32.le_s + i32.const 1 + i32.sub + local.get $2 + local.get $2 local.get $3 + i32.ge_s + select + local.get $2 i32.const 0 - i32.gt_s - i32.and - if (result i32) - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.const 2 - i32.add - local.get $0 - i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - i32.sub - i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 - i32.add - else - local.get $3 i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) + i32.ge_s + if + local.get $2 local.get $0 + local.get $2 i32.const 2 - local.get $3 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 + i32.const 1 i32.sub - local.tee $3 + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $0 + i32.load16_u local.get $1 + i32.const 65535 + i32.and + i32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop + local.get $2 i32.const 1 - i32.shl - memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 + i32.sub local.set $2 - loop $for-loop|1 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $1 - local.get $3 - i32.add - else - local.get $1 - i32.const 1 - i32.eq - if - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $3 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $1 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - i32.const 45 - i32.const 43 - local.get $3 - select - i32.store16 - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - i32.const 4 - i32.add - local.tee $4 - local.get $3 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if - i32.const 0 - local.get $0 - i32.sub - local.set $0 - end - local.get $0 - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $4 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $1 - i32.const 2 - i32.add + br $while-continue|0 end end + i32.const -1 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i64) - (local $12 i64) - (local $13 i64) - (local $14 i64) - (local $15 i64) - (local $16 i64) - local.get $1 - f64.const 0 - f64.lt - local.tee $4 + (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s if - local.get $0 - i32.const 45 - i32.store16 - local.get $1 - f64.neg - local.set $1 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $2 - if (result i64) - local.get $1 - f32.demote_f64 - i32.reinterpret_f32 - local.tee $8 - i32.const 2139095040 - i32.and - i32.const 23 - i32.shr_u - local.tee $9 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 i32.const 1 - local.get $9 - select - i32.const 150 i32.sub - local.set $5 - local.get $8 - i32.const 8388607 - i32.and - i64.extend_i32_u - local.get $9 + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 23 - i64.shl - i64.add - else - local.get $1 - i64.reinterpret_f64 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $1 + i64.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int32Array#get:length local.tee $3 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $8 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + drop + local.get $2 + local.get $3 + i32.add + local.get $3 i32.const 1 - local.get $8 - select - i32.const 1075 i32.sub - local.set $5 + local.get $2 + local.get $2 local.get $3 - i64.const 4503599627370495 - i64.and - local.get $8 + i32.ge_s + select + local.get $2 i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 end - local.set $3 - local.get $5 - i32.const 1 - i32.sub - local.get $3 - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.tee $6 - i64.clz - i32.wrap_i64 - local.tee $8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - local.set $9 - local.get $6 - local.get $8 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $3 + local.get $4 local.get $3 - i64.const 8388608 - i64.const 4503599627370496 - local.get $2 + local.get $4 + i32.lt_s select - i64.eq - i32.const 1 + local.set $5 + local.get $0 + i32.load offset=4 + local.tee $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.tee $1 + i32.const 2 + i32.shl i32.add + local.get $3 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $4 + i32.add + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $4 + local.get $2 + local.get $4 + i32.lt_s + select + end local.tee $2 - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub + i32.const 2 + i32.shl + i32.add local.get $5 + i32.const 0 + i32.lt_s + if (result i32) + local.get $4 + local.get $5 + i32.add + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + else + local.get $5 + local.get $4 + local.get $4 + local.get $5 + i32.gt_s + select + end local.get $2 i32.sub - local.get $9 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $9 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.tee $1 - i32.trunc_sat_f64_s local.tee $2 - local.get $2 - f64.convert_i32_s + local.get $4 local.get $1 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.tee $2 - i32.const 3 - i32.shl - local.tee $5 i32.sub - global.set $~lib/util/number/_K - local.get $5 - i32.const 9864 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow + local.tee $1 + local.get $1 local.get $2 - i32.const 1 - i32.shl - i32.const 10560 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $3 - local.get $3 - i64.clz - i64.shl - local.tee $3 - i64.const 4294967295 - i64.and - local.set $10 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $6 - global.get $~lib/util/number/_frc_pow - local.tee $11 - i64.const 4294967295 - i64.and - local.tee $12 - i64.mul - local.get $10 - local.get $12 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $13 - global.get $~lib/util/number/_frc_plus - local.tee $3 - i64.const 4294967295 - i64.and - local.set $14 - local.get $12 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $7 - i64.mul - local.get $12 - local.get $14 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $15 - global.get $~lib/util/number/_frc_minus - local.tee $16 - i64.const 4294967295 - i64.and - local.set $3 - local.get $12 - local.get $16 - i64.const 32 - i64.shr_u - local.tee $16 - i64.mul - local.get $3 - local.get $12 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $12 - local.get $11 - i64.const 32 - i64.shr_u - local.tee $11 - local.get $7 - i64.mul - local.get $15 - i64.const 32 - i64.shr_u - i64.add - local.get $11 - local.get $14 - i64.mul - local.get $15 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.set $7 - local.get $0 - local.get $4 - i32.const 1 + i32.gt_s + select + i32.const 2 i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $6 - local.get $11 - i64.mul - local.get $13 - i64.const 32 - i64.shr_u - i64.add - local.get $10 - local.get $11 - i64.mul - local.get $13 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $7 - global.get $~lib/util/number/_exp_pow - global.get $~lib/util/number/_exp - i32.add - i32.const -64 - i32.sub - local.get $7 - local.get $11 - local.get $16 - i64.mul - local.get $12 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - local.get $11 - i64.mul - local.get $12 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - local.get $4 - call $~lib/util/number/genDigits - local.get $4 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $4 - i32.add ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f32) (result i32) - (local $2 f64) + (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) - block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) - local.get $1 - f64.promote_f32 - local.tee $2 - f64.const 0 - f64.eq - if - local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.0 - end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + i32.const -1 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + drop local.get $2 + local.get $3 + i32.add + local.get $3 + i32.const 1 + i32.sub local.get $2 - f64.sub - f64.const 0 - f64.ne - if - local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 local.get $2 - f64.ne + i32.const 0 + i32.ge_s if - local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 - i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.0 - else local.get $2 - f64.const 0 - f64.lt - local.tee $3 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - end - local.get $0 - i64.const 29555310648492105 - i64.store local.get $0 - i64.const 34058970405077102 - i64.store offset=8 - local.get $3 - i32.const 8 + local.get $2 + i32.const 3 + i32.shl i32.add - br $~lib/util/number/dtoa_buffered_impl|inlined.0 + f64.load + local.get $1 + f64.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 end - unreachable end + i32.const -1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + i32.const -1 local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $3 + i32.eqz + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + drop local.get $2 + local.get $3 + i32.add + local.get $3 i32.const 1 - call $~lib/util/number/dtoa_core + i32.sub + local.get $2 + local.get $2 + local.get $3 + i32.ge_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $0 + loop $while-continue|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.get $1 + f32.eq + br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|0 + end + end + i32.const -1 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) (local $2 i32) - block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) - local.get $1 - f64.const 0 - f64.eq - if - local.get $0 - i32.const 48 - i32.store16 - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - i32.const 48 - i32.store16 offset=4 - i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.1 - end - local.get $1 - local.get $1 - f64.sub - f64.const 0 - f64.ne + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Uint8Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store local.get $1 - f64.ne + local.get $2 + call $~lib/typedarray/Uint8Array#__uget + local.tee $5 + local.get $4 + i32.ne if - local.get $0 - i32.const 78 - i32.store16 - local.get $0 - i32.const 97 - i32.store16 offset=2 - local.get $0 - i32.const 78 - i32.store16 offset=4 + i32.const 11760 i32.const 3 - br $~lib/util/number/dtoa_buffered_impl|inlined.1 - else - local.get $1 - f64.const 0 - f64.lt - local.tee $2 - if - local.get $0 - i32.const 45 - i32.store16 - local.get $0 - i32.const 2 - i32.add - local.set $0 - end - local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 local.get $2 - i32.const 8 - i32.add - br $~lib/util/number/dtoa_buffered_impl|inlined.1 + 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 - unreachable + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $0 - local.get $1 - i32.const 0 - call $~lib/util/number/dtoa_core end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + local.get $0 + i32.mul + ) + (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 - local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.get $5 - i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.add - local.tee $3 - i32.load8_s offset=1 - local.tee $6 - local.set $5 - local.get $3 - i32.load8_s + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length local.set $3 - i32.const 2 - global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.add - local.tee $8 - i32.load8_s - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store8 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end + i32.ne + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 - i32.add - local.get $3 - i32.store8 offset=2 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s if - block $while-break|2 - local.get $0 - local.get $6 - i32.add - local.tee $3 - i32.load8_s - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store8 offset=1 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $2 + local.get $1 + i32.load offset=12 + i32.ge_u + if + i32.const 1360 + i32.const 1760 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_s + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.ne + br_if $folding-inner1 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $0 - local.get $6 - i32.add - local.get $5 - i32.store8 offset=1 - local.get $7 - i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 local.get $0 + i32.load + local.tee $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + i32.load offset=4 local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $0 i32.add - i32.load8_s + i32.store offset=4 + local.get $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 + i32.lt_s + select local.get $0 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $4 + local.get $5 + i32.const 8 + i32.sub + local.set $6 loop $while-continue|0 - local.get $2 + local.get $1 + i32.const 7 + i32.add local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 + i32.lt_u + if + local.get $1 + local.get $2 i32.add - local.tee $5 - i32.load8_s offset=1 - local.get $5 - i32.load8_s - i32.const 2 - global.set $~argumentsLength + local.tee $7 + i64.load + local.tee $3 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.set $3 + local.get $7 + local.get $2 + local.get $6 i32.add - local.set $4 + local.get $1 + i32.sub + local.tee $7 + i64.load + local.tee $8 + i64.const 8 + i64.shr_u + i64.const 71777214294589695 + i64.and + local.get $8 + i64.const 71777214294589695 + i64.and + i64.const 8 + i64.shl + i64.or + local.tee $8 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $8 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $7 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + i64.store + local.get $1 + i32.const 8 + i32.add + local.set $1 br $while-continue|0 end end - local.get $4 - local.set $2 + local.get $5 + i32.const 1 + i32.sub + local.set $5 loop $while-continue|1 local.get $1 - local.get $2 - i32.lt_s + local.get $4 + i32.lt_u if - local.get $0 local.get $1 + local.get $2 i32.add - local.tee $3 - i32.load8_s - local.set $5 - local.get $3 - local.get $0 + local.tee $6 + i32.load8_u + local.set $7 + local.get $6 local.get $2 + local.get $5 + local.get $1 + i32.sub i32.add - local.tee $3 - i32.load8_s + local.tee $6 + i32.load8_u + i32.store8 + local.get $6 + local.get $7 i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 - local.get $5 - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 br $while-continue|1 end end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.add - local.tee $1 - i32.load8_s offset=1 - local.get $1 - i32.load8_s + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int32Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 + i32.sub + br_table $0of1 $1of1 $outOfRange end + unreachable end + i32.const 2147483647 + local.set $3 end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 local.get $2 - i32.const 1 - i32.sub - local.tee $6 local.get $3 + call $~lib/typedarray/Int32Array#copyWithin + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - local.get $4 - i32.add - local.get $0 - local.get $2 - i32.add - i32.load8_s - i32.store8 - br $for-loop|0 - end + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + i32.load + local.tee $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $4 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 local.get $3 - local.get $6 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.add - local.get $0 - local.get $6 - i32.add - i32.load8_s offset=1 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select end - loop $for-loop|2 + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $4 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 0 local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $2 local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.add - i32.load8_s - local.set $8 - local.get $2 - local.get $4 - i32.add - i32.load8_s - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $7 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.add - local.get $8 - i32.store8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.add - local.get $7 - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 - end + local.get $2 + local.get $3 + i32.lt_s + select end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.extend8_s - local.get $1 - i32.extend8_s - i32.sub - ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.extend8_s local.tee $1 local.get $0 - i32.extend8_s - local.tee $0 - i32.gt_s local.get $0 local.get $1 - i32.gt_s + i32.lt_s + select + local.get $0 i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - local.get $2 + i32.store local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and + call $~lib/array/Array#get:length local.get $3 - select - i32.add - local.set $7 + 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 $7 - i32.ge_s + local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.add - local.tee $3 - i32.load8_u offset=1 - local.tee $6 - local.set $5 - local.get $3 - i32.load8_u - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Uint8Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#__uget + local.tee $5 local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + i32.ne if - local.get $3 - local.set $5 - local.get $6 - local.set $3 + 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 $7 + local.get $2 i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.add - local.tee $8 - i32.load8_u - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store8 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.add - local.get $3 - i32.store8 offset=2 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.add - local.tee $3 - i32.load8_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store8 offset=1 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.add - local.get $5 - i32.store8 offset=1 - local.get $7 - i32.const 2 i32.add - local.set $7 + 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 $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.add - i32.load8_u + i32.store local.get $1 - i32.const 1 - i32.add - local.tee $4 - local.get $0 - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength + call $~lib/array/Array#get:length local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.ne if - loop $while-continue|0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.add - local.tee $5 - i32.load8_u offset=1 - local.get $5 - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 + call $~lib/typedarray/Uint64Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $1 local.get $2 - i32.lt_s + call $~lib/typedarray/Uint64Array#__uget + local.tee $5 + local.get $4 + i64.ne if - local.get $0 - local.get $1 - i32.add - local.tee $3 - i32.load8_u - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.add - local.tee $3 - i32.load8_u - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store8 + i32.const 13984 + i32.const 3 local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 + f64.convert_i32_s local.get $4 - i32.add - local.tee $1 - i32.load8_u offset=1 - local.get $1 - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else + f64.convert_i64_u + local.get $5 + 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 - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (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 - local.tee $6 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 + 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 $1 local.get $2 + local.get $3 i32.lt_s if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - local.get $4 - i32.add + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.add - i32.load8_u - i32.store8 - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.add + i32.store local.get $0 - local.get $6 - i32.add - i32.load8_u offset=1 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.add - i32.load8_u - local.set $8 local.get $2 + call $~lib/typedarray/Uint32Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Uint32Array#__uget + local.tee $5 local.get $4 - i32.add - i32.load8_u - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $7 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s + i32.ne if - local.get $0 - local.get $1 - i32.add - local.get $8 - i32.store8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.add - local.get $7 - i32.store8 + i32.const 12960 + i32.const 3 local.get $2 - i32.const 1 - i32.add - local.set $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 $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + 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 $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - local.tee $0 - local.get $1 - i32.const 255 - i32.and - local.tee $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u - i32.sub - ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.const 255 - i32.and - local.tee $1 + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 255 - i32.and - local.tee $0 - i32.gt_u + i32.store local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.gt_u - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 + i32.store local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and + call $~lib/array/Array#get:length local.get $3 - select - i32.add - local.set $7 + 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 $7 - i32.ge_s + local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_s offset=2 - local.tee $6 - local.set $5 - local.get $3 - i32.load16_s - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Uint16Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Uint16Array#__uget + local.tee $5 local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + i32.ne if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.tee $8 - i32.load16_s - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store16 offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.store16 offset=4 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_s - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store16 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end + 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 $0 - local.get $6 + local.get $2 i32.const 1 - i32.shl - i32.add - local.get $5 - i32.store16 offset=2 - local.get $7 - i32.const 2 i32.add - local.set $7 + 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 $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq - if + 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 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - return - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_s offset=2 - local.get $5 - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 + loop $for-loop|0 local.get $2 + local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_s - local.set $5 - local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store local.get $2 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_s - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store16 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) local.get $0 - local.get $4 - i32.const 1 - i32.shl + i32.load offset=4 i32.add - local.tee $1 - i32.load16_s offset=2 + i32.load8_s + local.set $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 $1 - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - end - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $2 + local.get $1 + i32.load offset=4 + i32.add + i32.load8_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 + local.get $5 + i32.ne + if + i32.const 11344 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_s + local.get $5 + f64.convert_i32_s + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 i32.const 1 i32.add - local.set $4 - br $while-continue|2 + 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 + return end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $7 - local.get $6 i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.tee $8 - local.get $4 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load16_s - i32.store16 - br $for-loop|0 - end + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 758 + i32.const 3 + call $~lib/builtins/abort + unreachable end - loop $for-loop|2 - local.get $1 + loop $for-loop|0 + local.get $2 local.get $3 - i32.le_s + i32.lt_s if - local.get $4 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $7 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s + call $~lib/typedarray/Int64Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#__uget + local.tee $5 + local.get $4 + i64.ne if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $7 - i32.store16 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $8 - i32.store16 + i32.const 13376 + i32.const 3 local.get $2 - i32.const 1 - i32.add - local.set $2 + f64.convert_i32_s + local.get $4 + f64.convert_i64_s + local.get $5 + 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 $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|2 + 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 $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.extend16_s - local.get $1 - i32.extend16_s + (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (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 - ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.extend16_s - local.tee $1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.extend16_s - local.tee $0 - i32.gt_s + i32.store local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.gt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 + i32.store local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and + call $~lib/array/Array#get:length local.get $3 - select - i32.add - local.set $7 + 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 $7 - i32.ge_s + local.get $3 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u offset=2 - local.tee $6 - local.set $5 - local.get $3 - i32.load16_u - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#__uget + local.tee $5 local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s + i32.ne if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.tee $8 - i32.load16_u - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store16 offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.store16 offset=4 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store16 offset=2 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end + 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 $0 - local.get $6 + local.get $2 i32.const 1 - i32.shl - i32.add - local.get $5 - i32.store16 offset=2 - local.get $7 - i32.const 2 i32.add - local.set $7 + 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 $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - local.get $1 - local.get $2 - i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u + i32.store local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength + i32.store + local.get $1 + call $~lib/array/Array#get:length local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + i32.ne if - loop $while-continue|0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $2 + call $~lib/typedarray/Int16Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Int16Array#__uget + local.tee $5 local.get $4 - i32.gt_s - if (result i32) - local.get $0 + i32.ne + if + i32.const 12000 + i32.const 3 + local.get $2 + f64.convert_i32_s local.get $4 - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u offset=2 + f64.convert_i32_s local.get $5 - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else + 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 - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - i32.store16 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.tee $1 - i32.load16_u offset=2 - local.get $1 - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 - i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $2 - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 local.get $1 - local.get $2 - i32.lt_s + i64.const 100000000 + i64.ge_u if + local.get $0 local.get $2 - i32.const 1 + i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl - local.tee $8 - local.get $4 i32.add - local.get $0 - local.get $8 + local.get $1 + local.get $1 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 8012 i32.add - i32.load16_u - i32.store16 - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if + i64.load32_u local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 1 + i32.const 100 + i32.rem_u + i32.const 2 i32.shl + i32.const 8012 i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store local.get $0 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 i32.const 1 i32.shl i32.add - i32.load16_u - local.set $7 - local.get $4 - local.get $2 - i32.const 1 + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 i32.shl + i32.const 8012 i32.add - i32.load16_u - local.set $8 + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $7 - i32.store16 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $8 - i32.store16 - local.get $2 - i32.const 1 - i32.add - local.set $2 - end - local.get $1 - i32.const 1 + i32.shl + i32.const 8012 i32.add - local.set $1 - br $for-loop|2 + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 65535 - i32.and - local.tee $0 - local.get $1 - i32.const 65535 - i32.and - local.tee $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u - i32.sub - ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.const 65535 - i32.and - local.tee $1 - local.get $0 - i32.const 65535 - i32.and - local.tee $0 - i32.gt_u local.get $0 local.get $1 - i32.gt_u - i32.sub + i32.wrap_i64 + local.get $2 + call $~lib/util/number/utoa32_dec_lut ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (local $3 i64) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) + (local $6 i64) + (local $7 i64) (local $8 i32) (local $9 i32) + (local $10 i64) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) + (local $16 i64) local.get $1 - local.get $3 + f64.const 0 + f64.lt + local.tee $4 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + local.set $1 + end local.get $2 - local.get $1 + if (result i64) + local.get $1 + f32.demote_f64 + i32.reinterpret_f32 + local.tee $8 + i32.const 2139095040 + i32.and + i32.const 23 + i32.shr_u + local.tee $9 + i32.const 1 + local.get $9 + select + i32.const 150 + i32.sub + local.set $5 + local.get $8 + i32.const 8388607 + i32.and + i64.extend_i32_u + local.get $9 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 23 + i64.shl + i64.add + else + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 1 + local.get $8 + select + i32.const 1075 + i32.sub + local.set $5 + local.get $3 + i64.const 4503599627370495 + i64.and + local.get $8 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + end + local.set $3 + local.get $5 + i32.const 1 + i32.sub + local.get $3 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $6 + i64.clz + i32.wrap_i64 + local.tee $8 i32.sub + local.set $9 + local.get $6 + local.get $8 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $3 + local.get $3 + i64.const 8388608 + i64.const 4503599627370496 + local.get $2 + select + i64.eq i32.const 1 i32.add - local.tee $5 - local.get $3 + local.tee $2 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $5 + local.get $2 + i32.sub + local.get $9 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $9 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $1 + i32.trunc_sat_f64_s + local.tee $2 + local.get $2 + f64.convert_i32_s + local.get $1 + f64.ne + i32.add + i32.const 3 + i32.shr_s i32.const 1 - i32.and + i32.add + local.tee $2 + i32.const 3 + i32.shl + local.tee $5 i32.sub + global.set $~lib/util/number/_K local.get $5 + i32.const 9864 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $2 i32.const 1 - i32.and - local.get $3 - select + i32.shl + i32.const 10560 i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - local.tee $6 - local.set $5 - local.get $3 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store offset=8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $3 + local.get $3 + i64.clz + i64.shl + local.tee $3 + i64.const 4294967295 + i64.and + local.set $10 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $6 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $12 + i64.mul + local.get $10 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $13 + global.get $~lib/util/number/_frc_plus + local.tee $3 + i64.const 4294967295 + i64.and + local.set $14 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $7 + local.get $12 + i64.mul + local.get $12 + local.get $14 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $15 + global.get $~lib/util/number/_frc_minus + local.tee $16 + i64.const 4294967295 + i64.and + local.set $3 + local.get $12 + local.get $16 + i64.const 32 + i64.shr_u + local.tee $16 + i64.mul + local.get $3 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $12 + local.get $7 + local.get $11 + i64.const 32 + i64.shr_u + local.tee $7 + i64.mul + local.get $15 + i64.const 32 + i64.shr_u + i64.add + local.get $7 + local.get $14 + i64.mul + local.get $15 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $11 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + local.get $7 + i64.mul + local.get $13 + i64.const 32 + i64.shr_u + i64.add + local.get $7 + local.get $10 + i64.mul + local.get $13 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $11 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $11 + local.get $7 + local.get $16 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $7 + i64.mul + local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $4 + call $~lib/util/number/genDigits + local.get $4 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $4 + i32.add + ) + (func $~lib/typedarray/Uint8Array#sort (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Uint8Array#some (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 $1 - local.get $2 - i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + loop $for-loop|0 local.get $2 local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load offset=4 - local.get $5 - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 i32.lt_s if - local.get $0 - local.get $1 - i32.const 2 - i32.shl + local.get $2 + local.get $3 i32.add - local.tee $3 - i32.load + i32.load8_u local.set $5 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store - local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength i32.const 1 - i32.add - local.set $1 - local.get $3 local.get $5 - i32.store local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 local.get $1 i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $4 - br $while-continue|2 + local.set $2 + br $for-loop|0 end end + i32.const 0 end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 + (func $~lib/typedarray/Uint8Array#findLastIndex (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 12 i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $7 - local.get $6 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length i32.const 1 - i32.add + i32.sub local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" + loop $for-loop|0 local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $8 - local.get $4 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load - i32.store - br $for-loop|0 + i32.const 0 + i32.ge_s + if + local.get $2 + local.get $3 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end end + i32.const -1 + local.set $2 end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $4 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" + loop $for-loop|0 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 + local.get $4 i32.lt_s if - local.get $0 - local.get $1 - i32.const 2 - i32.shl + local.get $2 + local.get $3 i32.add - local.get $7 - i32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else + i32.load8_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $0 local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" local.get $2 i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 end + i32.const -1 + local.set $2 end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.lt_s - local.get $0 - local.get $1 - i32.gt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 - local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and - local.get $3 - select + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load offset=4 - local.tee $6 - local.set $5 - local.get $3 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $3 - local.set $5 - local.get $6 - local.set $3 - end - local.get $7 - i32.const 1 - i32.sub - local.set $6 - loop $while-continue|1 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - local.set $9 - i32.const 2 - global.set $~argumentsLength - local.get $9 - local.get $3 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $8 - local.get $9 - i32.store offset=8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|1 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $3 - i32.store offset=8 - loop $while-continue|2 - local.get $1 - local.get $6 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $3 - local.get $8 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 - end - end - end - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store offset=4 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end - end + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/typedarray/Uint8Array#every (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 $1 - local.get $2 - i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) + loop $for-loop|0 local.get $2 local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $5 - i32.load offset=4 - local.get $5 - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 i32.lt_s if - local.get $0 - local.get $1 - i32.const 2 - i32.shl + local.get $2 + local.get $3 i32.add - local.tee $3 - i32.load + i32.load8_u local.set $5 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - i32.load - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 0 local.get $5 - i32.store local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 local.get $1 i32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $4 - br $while-continue|2 + local.set $2 + br $for-loop|0 end end + i32.const 1 end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $2 - i32.const 1 + (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $7 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 2 - i32.shl - local.tee $8 - local.get $4 - i32.add - local.get $0 - local.get $8 - i32.add - i32.load - i32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $7 - local.get $6 - i32.sub - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $0) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 + br_table $0of1 $1of1 $outOfRange end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.gt_u + i32.store local.get $0 local.get $1 - i32.lt_u - i32.sub + local.get $2 + call $~lib/typedarray/Uint64Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.lt_u + i32.store local.get $0 local.get $1 - i32.gt_u - i32.sub + local.get $2 + call $~lib/typedarray/Uint32Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i64) - (local $9 i32) + (func $~lib/typedarray/Uint16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - local.get $3 local.get $2 - local.get $1 + call $~lib/typedarray/Uint16Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.const 1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.tee $0 + local.get $2 i32.add - local.tee $7 + local.get $2 + local.get $0 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.const 0 + i32.lt_s + select + local.tee $2 + local.get $0 local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $7 - i32.const 1 - i32.and + i32.add + local.get $3 + local.get $0 + local.get $0 local.get $3 + i32.gt_s select - i32.add - local.set $7 - loop $for-loop|0 + local.get $3 + i32.const 0 + i32.lt_s + select + local.tee $0 + i32.lt_s + if local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i64.load offset=8 - local.tee $8 - local.set $6 - local.get $3 - i64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $8 - local.get $4 - i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s - if - local.get $5 - local.set $6 - local.get $8 - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - i64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $9 - local.get $8 - i64.store offset=16 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 - end - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $5 - i64.store offset=16 - loop $while-continue|2 - local.get $1 - local.get $3 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - i64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $4 - i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $9 - local.get $5 - i64.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $6 - i64.store offset=8 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end + local.get $4 + i32.add + local.get $1 + local.get $0 + local.get $2 + i32.sub + memory.fill end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i64) + (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) (local $6 i32) - (local $7 i64) - local.get $1 - local.get $2 - i32.eq + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - local.get $1 - return + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load + i32.store local.get $0 - local.get $1 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $5 i32.const 1 - i32.add - local.tee $4 - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s + i32.gt_u if + local.get $5 + i32.const 1 + i32.shr_u + local.set $3 + local.get $5 + i32.const 1 + i32.sub + local.set $5 loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $6 - i64.load offset=8 - local.get $6 - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $7) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.lt_u if - local.get $0 + local.get $2 local.get $1 i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $6 i64.load - local.set $5 - local.get $3 - local.get $0 + local.set $4 + local.get $6 local.get $2 + local.get $5 + local.get $1 + i32.sub i32.const 3 i32.shl i32.add - local.tee $3 + local.tee $6 i64.load i64.store + local.get $6 + local.get $4 + i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 - local.get $5 - i64.store - local.get $2 + br $while-continue|0 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 i32.sub - local.set $2 - br $while-continue|1 + br_table $0of1 $1of1 $outOfRange end + unreachable end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int64Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result 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.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $1 + local.get $3 + i32.lt_u + if + local.get $2 + local.get $1 + i32.const 2 i32.shl i32.add - local.tee $1 - i64.load offset=8 + local.tee $6 + i32.load + local.set $4 + local.get $6 + local.get $2 + local.get $5 local.get $1 - i64.load + i32.sub i32.const 2 - global.set $~argumentsLength - local.get $3 + i32.shl + i32.add + local.tee $6 i32.load - call_indirect (type $7) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if + i32.store + local.get $6 local.get $4 + i32.store + local.get $1 i32.const 1 i32.add - local.set $4 - br $while-continue|2 + local.set $1 + br $while-continue|0 end end end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 i32) - local.get $2 - i32.const 1 + (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $6 - local.get $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + call $~lib/typedarray/Int32Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $9 - local.get $6 - i32.const 1 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $0 i32.add + local.get $2 + local.get $0 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $2 + i32.const 0 + i32.lt_s + select local.set $2 - loop $for-loop|0 + local.get $0 + local.get $3 + i32.add + local.get $3 + local.get $0 + local.get $0 + local.get $3 + i32.gt_s + select + local.get $3 + i32.const 0 + i32.lt_s + select + local.set $0 + block $__inlined_func$~lib/util/bytes/FILL$202 local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 3 - i32.shl - local.tee $10 - local.get $4 - i32.add - local.get $0 - local.get $10 - i32.add - i64.load - i64.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $9 - local.get $6 - i32.sub - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - i64.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end - end - loop $for-loop|2 + i32.eqz local.get $1 - local.get $3 - i32.le_s + i32.const -1 + i32.eq + i32.or if - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - local.get $4 + local.get $0 local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $7) - i32.const 0 - i32.lt_s + i32.gt_s if - local.get $0 - local.get $1 - i32.const 3 + local.get $4 + local.get $2 + i32.const 2 i32.shl i32.add - local.get $7 - i64.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 local.get $1 - i32.const 3 + local.get $0 + local.get $2 + i32.sub + i32.const 2 + i32.shl + memory.fill + end + br $__inlined_func$~lib/util/bytes/FILL$202 + end + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $4 + local.get $2 + i32.const 2 i32.shl i32.add - local.get $8 - i64.store + local.get $1 + i32.store local.get $2 i32.const 1 i32.add local.set $2 + br $for-loop|0 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 end end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i64.gt_s + i32.store local.get $0 - local.get $1 - i64.lt_s - i32.sub - ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i64) (result i32) + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i64.lt_s + i32.store local.get $0 - local.get $1 - i64.gt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 i32) - (local $8 i64) - (local $9 i32) - local.get $1 - local.get $3 - local.get $2 - local.get $1 - i32.sub + call $~lib/typedarray/Int16Array#get:length + local.tee $4 i32.const 1 - i32.add - local.tee $7 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $7 - i32.const 1 - i32.and - local.get $3 - select - i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s - if - local.get $0 - local.get $7 - i32.const 3 - i32.shl + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 2 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $1 + i32.const 1 i32.add - local.tee $3 - i64.load offset=8 - local.tee $8 - local.set $6 local.get $3 - i64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $8 - local.get $4 - i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s + i32.lt_u if + local.get $2 local.get $5 - local.set $6 - local.get $8 - local.set $5 - end - local.get $7 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|1 local.get $1 - local.get $3 - i32.le_s - if - block $while-break|1 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - i64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $8 - local.get $5 - local.get $4 - i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s - br_if $while-break|1 - local.get $9 - local.get $8 - i64.store offset=16 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|1 - end - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $5 - i64.store offset=16 - loop $while-continue|2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $6 + i32.load + i32.const 16 + i32.rotr + local.set $7 + local.get $6 + local.get $2 local.get $1 - local.get $3 - i32.le_s - if - block $while-break|2 - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.tee $9 - i64.load - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $4 - i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s - br_if $while-break|2 - local.get $9 - local.get $5 - i64.store offset=8 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - br $while-continue|2 - end - end - end - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $6 - i64.store offset=8 - local.get $7 - i32.const 2 - i32.add - local.set $7 - br $for-loop|0 - end - end - ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i64) - local.get $1 - local.get $2 - i32.eq - if - local.get $1 - return - end - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 3 + i32.const 1 i32.shl i32.add local.tee $6 - i64.load offset=8 + i32.load + i32.const 16 + i32.rotr + i32.store local.get $6 - i64.load + local.get $7 + i32.store + local.get $1 i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $7) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 i32.add - local.set $4 + local.set $1 br $while-continue|0 end end local.get $4 - local.set $2 + i32.const 1 + i32.sub + local.set $4 loop $while-continue|1 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.lt_u if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i64.load - local.set $5 - local.get $3 - local.get $0 local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $3 - i64.load - i64.store local.get $1 i32.const 1 + i32.shl i32.add - local.set $1 - local.get $3 + local.tee $5 + i32.load16_u + local.set $6 local.get $5 - i64.store local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 local.get $4 - i32.const 3 + local.get $1 + i32.sub + i32.const 1 i32.shl i32.add - local.tee $1 - i64.load offset=8 + local.tee $5 + i32.load16_u + i32.store16 + local.get $5 + local.get $6 + i32.store16 local.get $1 - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $7) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 i32.const 1 i32.add - local.set $4 - br $while-continue|2 + local.set $1 + br $while-continue|1 end end end - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i64) - (local $9 i32) - (local $10 i32) - local.get $2 - i32.const 1 + (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $9 - local.get $6 - i32.const 1 - i32.add - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.const 3 - i32.shl - local.tee $10 - local.get $4 - i32.add - local.get $0 - local.get $10 - i32.add - i64.load - i64.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $9 - local.get $6 - i32.sub - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - i64.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|1 - end + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s - if - local.get $4 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect (type $7) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - i64.store - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength i32.const 1 i32.sub - local.set $6 - else - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $8 - i64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 + br_table $0of1 $1of1 $outOfRange end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|2 + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i64.gt_u + i32.store local.get $0 local.get $1 - i64.lt_u - i32.sub + local.get $2 + call $~lib/typedarray/Float64Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i64) (result i32) + (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + end + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i64.lt_u + i32.store local.get $0 local.get $1 - i64.gt_u - i32.sub + local.get $2 + call $~lib/typedarray/Float32Array#lastIndexOf + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 49088 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1232 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 49088 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 + call $~lib/rt/tlsf/__free + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Float64Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Float64Array#__uget + local.tee $5 + local.get $4 + f64.ne + if + i32.const 14896 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + local.get $5 + 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/Float32Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) (local $5 f32) - (local $6 f32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $3 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $~lib/typedarray/Float32Array#__uget + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + local.get $2 + call $~lib/typedarray/Float32Array#__uget + local.tee $5 + local.get $4 + f32.ne + if + i32.const 14544 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.promote_f32 + local.get $5 + 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/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i32) (result i64) + local.get $0 + local.get $1 + i64.add + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.const 4 + i32.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 4 + i64.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) (local $7 i32) - (local $8 f32) + (local $8 i32) (local $9 i32) local.get $1 local.get $3 @@ -8870,13 +8998,13 @@ i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $5 local.get $3 i32.sub i32.const 1 i32.and i32.sub - local.get $7 + local.get $5 i32.const 1 i32.and local.get $3 @@ -8890,77 +9018,221 @@ if local.get $0 local.get $7 - i32.const 2 - i32.shl i32.add local.tee $3 - f32.load offset=4 - local.tee $8 - local.set $6 - local.get $3 - f32.load + i32.load8_u offset=1 + local.tee $6 local.set $5 + local.get $3 + i32.load8_u + local.set $3 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $8 + local.get $3 + local.get $6 local.get $4 i32.load - call_indirect (type $11) + call_indirect (type $0) i32.const 0 i32.le_s if - local.get $5 - local.set $6 - local.get $8 + local.get $3 local.set $5 + local.get $6 + local.set $3 end local.get $7 i32.const 1 i32.sub - local.set $3 + local.set $6 loop $while-continue|1 local.get $1 - local.get $3 + local.get $6 i32.le_s if block $while-break|1 local.get $0 - local.get $3 - i32.const 2 - i32.shl + local.get $6 i32.add - local.tee $9 - f32.load - local.set $8 + local.tee $8 + i32.load8_u + local.set $9 i32.const 2 global.set $~argumentsLength - local.get $8 - local.get $5 + local.get $9 + local.get $3 local.get $4 i32.load - call_indirect (type $11) + call_indirect (type $0) i32.const 0 i32.le_s br_if $while-break|1 - local.get $9 local.get $8 - f32.store offset=8 - local.get $3 + local.get $9 + i32.store8 offset=2 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $while-continue|1 end end end local.get $0 - local.get $3 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.add + local.tee $3 + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $5 + i32.store8 offset=1 + local.get $7 i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i32) + local.get $1 + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 3 i32.shl i32.add + local.tee $3 + i64.load offset=8 + local.tee $8 + local.set $6 + local.get $3 + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength local.get $5 - f32.store offset=8 + local.get $8 + local.get $4 + i32.load + call_indirect (type $7) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $9 + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $7) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $9 + local.get $8 + i64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + i64.store offset=16 loop $while-continue|2 local.get $1 local.get $3 @@ -8969,11 +9241,11 @@ block $while-break|2 local.get $0 local.get $3 - i32.const 2 + i32.const 3 i32.shl i32.add local.tee $9 - f32.load + i64.load local.set $5 i32.const 2 global.set $~argumentsLength @@ -8981,13 +9253,13 @@ local.get $6 local.get $4 i32.load - call_indirect (type $11) + call_indirect (type $7) i32.const 0 i32.le_s br_if $while-break|2 local.get $9 local.get $5 - f32.store offset=4 + i64.store offset=8 local.get $3 i32.const 1 i32.sub @@ -8998,11 +9270,11 @@ end local.get $0 local.get $3 - i32.const 2 + i32.const 3 i32.shl i32.add local.get $6 - f32.store offset=4 + i64.store offset=8 local.get $7 i32.const 2 i32.add @@ -9011,858 +9283,1231 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 f32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) (local $6 i32) - (local $7 f32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 + local.get $3 local.get $2 - i32.eq - if - local.get $1 - return - end - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $0 local.get $1 + i32.sub i32.const 1 i32.add - local.tee $4 - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength + local.tee $5 local.get $3 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $6 - f32.load offset=4 - local.get $6 - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $11) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $4 - local.set $2 - loop $while-continue|1 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - local.set $5 - local.get $3 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $3 - f32.load - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $5 - f32.store - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $2 - local.get $4 - i32.gt_s - if (result i32) - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - f32.load offset=4 - local.get $1 - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $3 - i32.load - call_indirect (type $11) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end - end - local.get $4 - ) - (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) - (local $6 i32) - (local $7 f32) - (local $8 f32) - (local $9 i32) - (local $10 i32) - local.get $2 + i32.sub i32.const 1 + i32.and i32.sub - local.tee $6 - local.get $3 - i32.add - local.set $9 - local.get $6 + local.get $5 i32.const 1 + i32.and + local.get $3 + select i32.add - local.set $2 + local.set $7 loop $for-loop|0 - local.get $1 local.get $2 - i32.lt_s + local.get $7 + i32.ge_s if - local.get $2 - i32.const 1 - i32.sub - local.tee $2 + local.get $0 + local.get $7 i32.const 2 i32.shl - local.tee $10 - local.get $4 - i32.add - local.get $0 - local.get $10 i32.add - f32.load - f32.store - br $for-loop|0 - end - end - loop $for-loop|1 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $4 - local.get $9 + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 i32.const 2 i32.shl i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end local.get $0 local.get $6 i32.const 2 i32.shl i32.add - f32.load offset=4 - f32.store - local.get $6 - i32.const 1 + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 i32.add - local.set $6 - br $for-loop|1 + local.set $7 + br $for-loop|0 end end - loop $for-loop|2 - local.get $1 - local.get $3 - i32.le_s + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + local.get $1 + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s if - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 - local.get $4 - local.get $2 - i32.const 2 + local.get $0 + local.get $7 + i32.const 1 i32.shl i32.add - f32.load - local.set $8 + local.tee $3 + i32.load16_u offset=2 + local.tee $6 + local.set $5 + local.get $3 + i32.load16_u + local.set $3 i32.const 2 global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 + local.get $3 + local.get $6 + local.get $4 i32.load - call_indirect (type $11) + call_indirect (type $0) i32.const 0 - i32.lt_s + i32.le_s if - local.get $0 + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $7 - f32.store local.get $6 - i32.const 1 - i32.sub - local.set $6 - else - local.get $0 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.tee $8 + i32.load16_u + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store16 offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.store16 offset=4 + loop $while-continue|2 local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store16 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end end - local.get $1 + local.get $0 + local.get $6 i32.const 1 + i32.shl i32.add - local.set $1 - br $for-loop|2 + local.get $5 + i32.store16 offset=2 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end end ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.reinterpret_f32 - local.tee $2 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - local.get $2 - i32.xor - local.tee $2 + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u local.get $3 - i32.xor - local.tee $3 - i32.gt_s local.get $2 - local.get $3 - i32.lt_s - i32.sub - ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 f32) (result i32) - local.get $0 - local.get $1 - f32.lt - local.get $0 local.get $1 - f32.gt i32.sub - ) - (func $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 f64) (result i32) - local.get $0 - local.get $1 - f64.lt - local.get $0 - local.get $1 - f64.gt + i32.const 1 + i32.add + local.tee $5 + local.get $3 i32.sub - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $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-inner0 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - return + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.add + local.tee $3 + i32.load8_s offset=1 + local.tee $6 + local.set $5 + local.get $3 + i32.load8_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.add + local.tee $8 + i32.load8_s + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 end - unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.add + local.tee $3 + i32.load8_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end local.get $0 - i32.load - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $6 i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~start - call $start:std/typedarray ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i64) + (local $9 i32) local.get $1 - i32.const 1073741820 + local.get $3 local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 - i32.shl - local.tee $1 + i32.sub i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int8Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.tee $7 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load + i32.const 1 + i32.and i32.sub - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $7 + i32.const 1 + i32.and + local.get $3 + select i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#get:length (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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load offset=8 + local.tee $8 + local.set $6 + local.get $3 + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect (type $7) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $9 + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $7) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $9 + local.get $8 + i64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + i64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $9 + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect (type $7) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $9 + local.get $5 + i64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $6 + i64.store offset=8 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 local.get $1 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint8ClampedArray#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int16Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.tee $5 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load offset=4 + local.tee $6 + local.set $5 + local.get $3 + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 local.get $1 - local.get $0 + i32.sub i32.const 1 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int16Array#get:length (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $5 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 i32.const 1 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.and i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s offset=2 + local.tee $6 + local.set $5 + local.get $3 + i32.load16_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.tee $8 + i32.load16_s + local.set $9 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $3 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $8 + local.get $9 + i32.store16 offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.store16 offset=4 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $3 + local.get $8 + i32.store16 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $5 + i32.store16 offset=2 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) + (local $8 f64) + (local $9 i32) local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 local.get $1 - local.get $0 + i32.sub i32.const 1 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int32Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.tee $7 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + local.tee $3 + f64.load offset=8 + local.tee $8 + local.set $6 + local.get $3 + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect (type $10) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $9 + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $10) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $9 + local.get $8 + f64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.tee $9 + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect (type $10) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $9 + local.get $5 + f64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $6 + f64.store offset=8 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) + (local $8 f32) + (local $9 i32) local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 local.get $1 - local.get $0 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.sub + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + local.tee $7 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $7 + i32.const 1 + i32.and + local.get $3 + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load offset=4 + local.tee $8 + local.set $6 + local.get $3 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $8 + local.get $4 + i32.load + call_indirect (type $11) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $8 + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $9 + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $5 + local.get $4 + i32.load + call_indirect (type $11) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $9 + local.get $8 + f32.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.tee $9 + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect (type $11) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $9 + local.get $5 + f32.store offset=4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $6 + f32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end ) - (func $~lib/typedarray/Int32Array#get:length (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9881,64 +10526,86 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.eqz if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + return end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 call $~lib/rt/itcms/__new local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $1 local.get $0 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store + local.get $2 + call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 ) - (func $~lib/typedarray/Int64Array#constructor (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9953,191 +10620,107 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 + i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/typedarray/Int64Array#get:length (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 16320 - i32.lt_s + i32.eqz if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + return end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.sub local.get $0 - i32.load offset=8 - i32.const 3 + local.get $0 + i32.const 31 i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.shl + local.tee $0 + select + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 1 + i32.shl local.get $0 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float32Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 local.get $0 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut local.get $0 - ) - (func $~lib/typedarray/Float64Array#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 45 + i32.store16 end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.const 3 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 ) - (func $std/typedarray/testInstantiate (param $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10153,558 +10736,733 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 48 - memory.fill + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 - local.get $1 i32.load offset=8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.tee $2 + i32.const 0 local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint8Array#constructor + i32.const 0 + i32.lt_s + select + i32.add local.tee $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 332 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store local.get $1 - i32.load offset=8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 38 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.load offset=4 + i32.add + i32.load8_u global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.load offset=8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $0 - i32.ne - if + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $3 + local.get $1 + i32.lt_u + if + i32.const 1360 + i32.const 1632 + i32.const 1860 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + i32.const -1 + i32.eq + if (result i32) + local.get $3 + local.get $1 + i32.sub + else + i32.const 1056 + i32.const 1632 + i32.const 1869 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.set $2 + else + local.get $1 + local.get $2 + i32.add + local.get $3 + i32.gt_s + if + i32.const 1056 + i32.const 1632 + i32.const 1874 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + local.get $3 + local.get $0 + i32.store + local.get $3 + local.get $0 + call $~lib/rt/itcms/__link + local.get $3 + local.get $2 + i32.store offset=8 + local.get $3 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 + 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 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result 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 - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1409 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1409 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - i32.ne + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 48 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int16Array#get:length local.get $0 - i32.ne + i32.load offset=8 + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 190 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.store local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local $3 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 local.get $0 - i32.const 1 - i32.shl - i32.ne + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 53 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1185 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int16Array#get:length local.get $0 - i32.ne + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=24 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $1 - i32.store offset=4 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 57 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 901 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 58 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 59 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.add + i32.load global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=28 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - local.get $0 - i32.const 2 - i32.shl - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 63 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer + i32.store local.get $1 - i32.store offset=4 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 67 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 617 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 local.get $0 - i32.const 3 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.add + i32.load16_u global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store offset=36 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 72 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - local.get $0 - i32.const 3 - i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 73 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 74 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=40 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 77 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store offset=8 local.get $1 - i32.load offset=8 - local.get $0 - i32.const 2 - i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 78 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/typedarray/Int8Array#get:length + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int32Array#get:length local.get $0 - i32.ne + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 79 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=44 + i32.store offset=8 + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store offset=8 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.load offset=4 + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 82 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - local.get $0 - i32.const 3 - i32.shl - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int64Array#get:length local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/typedarray/Int8Array#fill global.get $~lib/memory/__stack_pointer - i32.const 48 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10729,34 +11487,40 @@ local.get $1 local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 i32.ge_u if i32.const 1360 i32.const 1632 - i32.const 747 - i32.const 64 + i32.const 48 + i32.const 33 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl i32.add - local.get $2 - i32.store + i32.load8_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local $3 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10781,14 +11545,23 @@ local.get $1 local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 i32.ge_u if i32.const 1360 i32.const 1632 - i32.const 736 - i32.const 64 + i32.const 1043 + i32.const 33 call $~lib/builtins/abort unreachable end @@ -10798,19 +11571,18 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + i64.load global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -10841,29 +11613,6 @@ local.get $0 call $~lib/typedarray/Int32Array#get:length local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - i32.load - local.tee $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - i32.load offset=4 local.get $1 i32.const 0 i32.lt_s @@ -10871,9 +11620,9 @@ local.get $1 local.get $3 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -10885,12 +11634,8 @@ i32.lt_s select end - local.tee $0 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $4 + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $2 i32.const 0 i32.lt_s @@ -10898,9 +11643,9 @@ local.get $2 local.get $3 i32.add - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select @@ -10912,26 +11657,46 @@ i32.lt_s select end - local.tee $1 - local.get $0 - local.get $0 local.get $1 - i32.lt_s + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s select + local.tee $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.sub + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl - i32.store offset=8 + i32.add + local.get $2 + i32.const 2 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) - (func $~lib/typedarray/Float64Array#__set (param $0 i32) (param $1 i32) (param $2 f64) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10946,22 +11711,163 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/array/Array#get:length + local.set $3 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + local.get $3 + i32.add + i32.lt_s + end if i32.const 1360 i32.const 1632 - i32.const 1457 - i32.const 64 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of2 $1of2 $2of2 $outOfRange + end + unreachable + end + i32.const 0 + local.set $2 + end + i32.const 2147483647 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $2 + local.get $3 + call $~lib/typedarray/Int32Array#fill + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 759 + i32.const 33 call $~lib/builtins/abort unreachable end @@ -10971,11 +11877,71 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 local.get $2 - f64.store + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 475 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -11103,23 +12069,9 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i32) - (local $17 f64) - (local $18 f64) + (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) + (local $2 i32) + (local $3 f64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11138,4670 +12090,4225 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - f64.load - local.set $9 - local.get $0 - f64.load offset=8 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $10) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store - local.get $0 - f64.load offset=16 - local.set $18 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $18 - local.get $9 - local.get $17 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $18 - local.get $2 - i32.load - call_indirect (type $10) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store offset=8 - local.get $0 - local.get $9 - local.get $18 - local.get $1 - select - f64.store offset=16 - end - local.get $0 - f64.load - local.set $9 - local.get $0 - f64.load offset=8 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $10) - i32.const 0 - i32.gt_s - local.tee $1 - select - f64.store - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - f64.store offset=8 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1469 i32.const 33 - local.get $1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) + (local $2 i32) + (local $3 f32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 0 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.add + local.tee $1 + local.get $2 + i32.ge_u + if + i32.const 1360 + i32.const 1632 + i32.const 1327 + i32.const 33 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 i32.clz i32.sub local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 3 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1504 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if local.get $1 - i32.const 1 - i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $0 - i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 - i32.lt_s + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $10 + local.get $0 + i32.load + i32.const -2 local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $14 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $14 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $15 - local.get $11 - i32.add - local.tee $16 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $15 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $16 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 - i32.add - local.get $4 + i32.rotl + i32.and i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 end end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $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 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.eqz if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 201 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 203 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort unreachable end - i32.const 1696 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1696 + 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 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/typedarray/Float64Array#sort - global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.lt_u if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 233 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $4 local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1446 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.add + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1504 + i32.const 234 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $4 + i32.const 4 + i32.sub local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 320 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.const 255 - local.get $2 - i32.sub - i32.const 31 - i32.shr_s - local.get $2 - i32.or local.get $2 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#__get (param $0 i32) (param $1 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + 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 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + 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 1360 - i32.const 1632 - i32.const 309 - i32.const 45 + i32.const 0 + i32.const 1504 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer + local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 + local.get $1 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.store offset=4 local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + local.get $3 + i32.store offset=8 + local.get $3 if - i32.const 1360 - i32.const 1632 - i32.const 36 - i32.const 45 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $1 + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=4 - i32.add - local.get $2 - i32.store8 - global.get $~lib/memory/__stack_pointer + local.get $5 i32.const 4 + i32.shl + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 2 + i32.shl + i32.add + local.get $1 + i32.store offset=96 local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.tee $0 - local.get $2 + local.get $5 + i32.const 2 + i32.shl i32.add - local.get $2 - local.get $0 + local.tee $0 local.get $0 + i32.load offset=4 + i32.const 1 local.get $2 - i32.gt_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.tee $2 - local.get $0 - local.get $3 - i32.add - local.get $3 - local.get $0 + i32.shl + i32.or + i32.store offset=4 + ) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.tee $0 - i32.lt_s + global.get $~lib/rt/itcms/iter + i32.eq if - local.get $2 - local.get $4 - i32.add + local.get $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$1403 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $1 + i32.eqz + if + local.get $0 + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 49088 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$1403 + end local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $1 local.get $2 - i32.sub - memory.fill - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#get:length (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + global.get $~lib/rt/itcms/toSpace + local.set $2 local.get $0 i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 - call $~lib/builtins/abort - unreachable + else + local.get $1 + i32.const 16000 + i32.load + i32.gt_u + if + i32.const 1360 + i32.const 1424 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + i32.shl + i32.const 16004 + i32.add + i32.load + i32.const 32 + i32.and end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 + local.set $3 + local.get $2 i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 25 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.set $1 local.get $0 - i32.store + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 local.get $1 local.get $0 + local.get $1 i32.load offset=4 - i32.add - i32.load8_s - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 ) - (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $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-inner0 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return + end + return + end + return + end + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int8Array#__get - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.load offset=12 - i32.ge_u - if - i32.const 1360 - i32.const 1760 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.load offset=4 - i32.add - i32.load8_s - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.ne - br_if $folding-inner1 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end + i32.load + call $~lib/rt/itcms/__visit global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 1 return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int8Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $2 - end - i32.const 2147483647 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $2 + i32.const 1 + i32.sub + local.tee $6 local.get $3 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - i32.load - local.tee $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $4 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.tee $0 + local.set $7 + local.get $6 + i32.const 1 i32.add - i32.store offset=4 - local.get $4 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $1 - i32.const 0 + local.set $2 + loop $for-loop|0 local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 local.get $2 - local.get $3 i32.lt_s - select - end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/typedarray/Int32Array#fill (param $0 i32) (param $1 i32) (param $2 i32) (param $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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $0 - i32.add - local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.gt_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - local.get $0 - local.get $3 - i32.add - local.get $3 - local.get $0 - local.get $0 - local.get $3 - i32.gt_s - select - local.get $3 - i32.const 0 - i32.lt_s - select - local.set $0 - block $__inlined_func$~lib/util/bytes/FILL$202 - local.get $1 - i32.eqz - local.get $1 - i32.const -1 - i32.eq - i32.or if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + local.get $4 + i32.add local.get $0 local.get $2 - i32.gt_s - if - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $0 - local.get $2 - i32.sub - i32.const 2 - i32.shl - memory.fill - end - br $__inlined_func$~lib/util/bytes/FILL$202 + i32.add + i32.load8_u + i32.store8 + br $for-loop|0 end - loop $for-loop|0 + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.add local.get $0 + local.get $6 + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.add + i32.load8_u + local.set $8 local.get $2 - i32.gt_s + local.get $4 + i32.add + i32.load8_u + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s if - local.get $4 - local.get $2 - i32.const 2 - i32.shl + local.get $0 + local.get $1 i32.add + local.get $8 + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 local.get $1 - i32.store + i32.add + local.get $7 + i32.store8 local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|0 end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 1360 - i32.const 1760 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl + local.tee $6 + local.get $3 i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.set $9 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/isInt32ArrayEqual (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 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + local.get $4 + i32.add + local.get $0 + local.get $10 + i32.add + i64.load + i64.store + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $folding-inner0 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 local.get $1 - call $~lib/array/Array#get:length local.get $3 - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - loop $for-loop|0 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + local.get $4 local.get $2 - local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $7) + i32.const 0 i32.lt_s if - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int32Array#__get - local.set $4 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 local.get $1 - local.get $2 - call $~lib/array/Array#__get - local.get $4 - i32.ne - br_if $folding-inner0 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store local.get $2 i32.const 1 i32.add local.set $2 - br $for-loop|0 end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 ) - (func $~lib/typedarray/Int32Array#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $2 - end - i32.const 2147483647 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $2 + i32.const 1 + i32.sub + local.tee $6 local.get $3 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 local.get $1 - local.get $3 + local.get $2 i32.lt_s - select + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end end - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 + loop $for-loop|1 local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 + local.get $6 i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 local.get $3 - i32.lt_s - select + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 + i32.const 1 + i32.sub + local.tee $6 local.get $3 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl i32.add - local.get $2 - i32.const 2 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.set $7 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Int32Array#slice@varargs (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load16_u + i32.store16 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $outOfRange - global.get $~argumentsLength - br_table $1of2 $1of2 $2of2 $outOfRange + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $7 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 end - unreachable + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - i32.const 2147483647 - local.set $1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#slice - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $4 + local.tee $6 local.get $3 - local.get $4 - i32.lt_s - select - local.set $5 - local.get $0 - i32.load offset=4 - local.tee $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select - end - local.tee $1 - i32.const 2 - i32.shl i32.add - local.get $3 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $4 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $4 + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 local.get $2 - local.get $4 i32.lt_s - select + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + local.get $4 + i32.add + local.get $0 + local.get $2 + i32.add + i32.load8_s + i32.store8 + br $for-loop|0 + end end - local.tee $2 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $4 - local.get $5 - i32.add - local.tee $3 - i32.const 0 + loop $for-loop|1 local.get $3 - i32.const 0 - i32.gt_s - select - else - local.get $5 - local.get $4 - local.get $4 - local.get $5 + local.get $6 i32.gt_s - select - end - local.get $2 - i32.sub - local.tee $2 - local.get $4 - local.get $1 - i32.sub - local.tee $1 - local.get $1 - local.get $2 - i32.gt_s - select - i32.const 2 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int32Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_s offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 2 + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.add + i32.load8_s + local.set $8 + local.get $2 + local.get $4 + i32.add + i32.load8_s + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.get $8 + i32.store8 + local.get $6 + i32.const 1 i32.sub - br_table $0of1 $1of1 $outOfRange + local.set $6 + else + local.get $0 + local.get $1 + i32.add + local.get $7 + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 end - unreachable + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - i32.const 2147483647 - local.set $3 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - local.get $3 - call $~lib/typedarray/Int32Array#copyWithin - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 178 - i32.const 45 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 + local.tee $6 + local.get $3 i32.add - local.get $2 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.set $9 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#reduce (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $5 + local.set $2 loop $for-loop|0 + local.get $1 local.get $2 - local.get $5 i32.lt_s if local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 local.get $4 i32.add - i32.load8_u - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 local.get $0 - local.get $1 - i32.load - call_indirect (type $6) - local.set $3 - local.get $2 - i32.const 1 + local.get $10 i32.add - local.set $2 + i64.load + i64.store br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Int16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 463 - i32.const 64 - call $~lib/builtins/abort - unreachable + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $7) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 i32.const 1 - i32.shl + i32.sub + local.tee $6 + local.get $3 i32.add - local.get $2 - i32.store16 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.set $7 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint16Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 605 - i32.const 64 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 889 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl + local.tee $6 + local.get $3 i32.add - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.set $7 + local.get $6 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.tee $8 + local.get $4 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load16_s + i32.store16 + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1031 - i32.const 64 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $7 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 i32) + (local $10 i32) local.get $2 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 + i32.sub + local.tee $6 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + local.get $4 + i32.add + local.get $0 + local.get $10 + i32.add + f64.load + f64.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $10) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end ) - (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.tee $6 + local.get $3 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $10 + local.get $4 + i32.add + local.get $0 + local.get $10 + i32.add + f32.load + f32.store + br $for-loop|0 + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1173 - i32.const 64 - call $~lib/builtins/abort - unreachable + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect (type $11) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i32.const 3 - i32.shl - i32.add local.get $2 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#__set (param $0 i32) (param $1 i32) (param $2 f32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.eq if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store local.get $1 + i32.add + i32.load8_u + local.get $1 + i32.const 1 + i32.add + local.tee $4 local.get $0 - i32.load offset=8 + i32.add + i32.load8_u i32.const 2 - i32.shr_u - i32.ge_u + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - i32.const 1360 - i32.const 1632 - i32.const 1315 - i32.const 64 - call $~lib/builtins/abort - unreachable + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_u offset=1 + local.get $5 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.load8_u + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_u offset=1 + local.get $1 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 + local.get $4 + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i64) local.get $1 - i32.const 2 - i32.shl - i32.add local.get $2 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.eq if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 0 local.get $1 - i32.const 0 - i32.lt_s - select + i32.const 3 + i32.shl i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 48 - i32.const 33 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i64.load local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=4 + i32.const 1 i32.add - i32.load8_s - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $4 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 0 - local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u + i32.gt_s if - i32.const 1360 - i32.const 1632 - i32.const 190 - i32.const 33 - call $~lib/builtins/abort - unreachable + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i64.load offset=8 + local.get $6 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load offset=8 + local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 0 + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 local.get $2 - i32.ge_u + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 332 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.load local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 i32.const 1 - i32.shr_u - local.tee $2 - i32.const 0 - local.get $1 - i32.const 0 - i32.lt_s - select i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 475 - i32.const 33 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 + local.tee $4 + i32.const 2 i32.shl i32.add - i32.load16_s - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 0 + local.get $4 + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 local.get $2 - i32.ge_u + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 617 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 local.get $1 i32.const 1 i32.shl i32.add i32.load16_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 0 local.get $1 - i32.const 0 - i32.lt_s - select + i32.const 1 i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 759 - i32.const 33 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 + local.tee $4 + i32.const 1 i32.shl i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + call_indirect (type $0) + i32.const 0 + i32.gt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u offset=2 + local.get $5 + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $1 + i32.load16_u offset=2 + local.get $1 + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 0 + local.get $4 + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 local.get $2 - i32.ge_u + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 901 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) - (local $3 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.load8_s local.get $1 + i32.const 1 + i32.add + local.tee $4 local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_s offset=1 + local.get $5 + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.add + local.tee $3 + i32.load8_s + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.load8_s + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_s offset=1 + local.get $1 + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i64) local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 local.get $2 - i32.ge_u + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 1043 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 local.get $1 i32.const 3 i32.shl i32.add i64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) - (local $3 i64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store local.get $1 - local.get $0 - i32.load offset=8 + i32.const 1 + i32.add + local.tee $4 i32.const 3 - i32.shr_u - local.tee $2 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $6 + i64.load offset=8 + local.get $6 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load offset=8 + local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $7) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 local.get $2 - i32.ge_u + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 1185 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.load + local.get $0 + local.get $1 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) - (local $2 i32) - (local $3 f32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 0 - local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 - local.get $2 - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1327 - i32.const 33 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 + local.tee $4 i32.const 2 i32.shl i32.add - f32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) - (local $2 i32) - (local $3 f64) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - i32.const 0 + local.get $4 + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i32.const 0 - i32.lt_s - select - i32.add - local.tee $1 local.get $2 - i32.ge_u + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 1469 - i32.const 33 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 - i32.const 3 + i32.const 1 i32.shl i32.add - f64.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.load16_s local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length i32.const 1 - i32.sub - local.set $2 - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 local.get $4 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $6) - local.set $3 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_s offset=2 + local.get $5 + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3600 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3600 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=16 - loop $for-loop|0 + local.set $2 + loop $while-continue|1 + local.get $1 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.get $6 - i32.add - i32.load8_s - local.set $7 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $3 + local.get $1 + i32.const 1 + i32.shl i32.add - local.get $7 - local.get $2 + local.tee $3 + i32.load16_s + local.set $5 + local.get $3 local.get $0 - i32.const 3600 - i32.load - call_indirect (type $1) - i32.store8 local.get $2 i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + i32.store16 + local.get $1 + i32.const 1 i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.sub local.set $2 - br $for-loop|0 + br $while-continue|1 end end - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.store offset=4 - local.get $1 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $1 + i32.load16_s offset=2 + local.get $1 + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $4 ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f64) + (local $6 i32) + (local $7 f64) local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u + local.get $2 + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 167 - i32.const 45 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load local.get $0 - i32.load offset=4 + local.get $1 + i32.const 1 i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $4 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3632 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3632 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=16 - loop $for-loop|0 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $10) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 local.get $4 - i32.lt_s - if - local.get $2 - local.get $6 - i32.add - i32.load8_u - local.set $7 - global.get $~lib/memory/__stack_pointer + i32.gt_s + if (result i32) local.get $0 - i32.store offset=8 + local.get $4 i32.const 3 + i32.shl + i32.add + local.tee $6 + f64.load offset=8 + local.get $6 + f64.load + i32.const 2 global.set $~argumentsLength - local.get $2 local.get $3 - i32.add - local.get $7 - local.get $2 - local.get $0 - i32.const 3632 i32.load - call_indirect (type $1) - i32.store8 - local.get $2 + call_indirect (type $10) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 i32.const 1 i32.add - local.set $2 - br $for-loop|0 + local.set $4 + br $while-continue|0 end end - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.store offset=4 - local.get $1 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3664 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3664 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=16 - loop $for-loop|0 + local.set $2 + loop $while-continue|1 + local.get $1 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.get $6 - i32.add - i32.load8_u - local.set $7 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + local.get $1 i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $3 + i32.shl i32.add - local.get $7 - local.get $2 + local.tee $3 + f64.load + local.set $5 + local.get $3 local.get $0 - i32.const 3664 - i32.load - call_indirect (type $1) - i32.store8 local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $3 + f64.load + f64.store + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - local.get $3 - i32.store - local.get $1 - local.get $3 - call $~lib/rt/itcms/__link - local.get $1 - local.get $3 - i32.store offset=4 - local.get $1 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $1 + local.get $3 + local.get $5 + f64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load offset=8 + local.get $1 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $10) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $4 ) - (func $~lib/typedarray/Int16Array#__get (param $0 i32) (param $1 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 f32) local.get $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u + local.get $2 + i32.eq if - i32.const 1360 - i32.const 1632 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable + local.get $1 + return end - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load local.get $0 - i32.load offset=4 local.get $1 i32.const 1 - i32.shl i32.add - i32.load16_s - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3696 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3696 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - loop $for-loop|0 - local.get $3 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect (type $11) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 local.get $4 - i32.lt_s - if + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + f32.load offset=4 local.get $6 + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 + i32.load + call_indirect (type $11) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 i32.shl - local.tee $8 i32.add - i32.load16_s - local.set $9 - global.get $~lib/memory/__stack_pointer + local.tee $3 + f32.load + local.set $5 + local.get $3 local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength local.get $2 - local.get $8 + i32.const 2 + i32.shl i32.add - local.get $9 + local.tee $3 + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $3 + local.get $5 + f32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) local.get $0 - i32.const 3696 - i32.load - call_indirect (type $1) - i32.store16 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load offset=4 + local.get $1 + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 + i32.load + call_indirect (type $11) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|0 + local.set $4 + br $while-continue|2 end end - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $2 - i32.store offset=4 - local.get $1 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $4 ) - (func $~lib/typedarray/Uint16Array#__get (param $0 i32) (param $1 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.store + i32.const 255 + i32.and + local.tee $0 local.get $1 + i32.const 255 + i32.and + local.tee $1 + i32.gt_u local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 594 - i32.const 64 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 255 + i32.and + local.tee $2 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 local.get $1 + i32.const 255 + i32.and + local.set $1 + i32.const 3 + local.get $1 + i32.const 10 + i32.ge_u i32.const 1 - i32.shl - i32.add - i32.load16_u - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 100 + i32.ge_u + select + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + local.get $2 ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" - (local $0 i32) - (local $1 i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3728 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3728 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $1 + i64.const 10 + i64.lt_u + if local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - local.tee $7 + local.get $1 + i64.const 48 + i64.or + i64.store16 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - loop $for-loop|0 + return + end + local.get $0 + local.set $2 + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) local.get $3 - local.get $4 - i32.lt_s - if - local.get $6 + i32.const 100 + i32.lt_u + if (result i32) local.get $3 + i32.const 10 + i32.ge_u i32.const 1 - i32.shl - local.tee $8 i32.add - i32.load16_u - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + else + local.get $3 + i32.const 10000 + i32.ge_u i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $8 i32.add - local.get $9 local.get $3 - local.get $0 - i32.const 3728 - i32.load - call_indirect (type $1) - i32.store16 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) local.get $3 - i32.const 1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u i32.add - local.set $3 - br $for-loop|0 end end - local.get $1 - local.get $2 - i32.store - local.get $1 + local.set $0 local.get $2 - call $~lib/rt/itcms/__link - local.get $1 + local.get $3 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else local.get $2 - i32.store offset=4 - local.get $1 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa64_dec_lut + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 local.get $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get + i32.const 48 + i32.or + i32.store16 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 + return + end + local.get $0 + local.get $1 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u i32.const 3 - call $~lib/builtins/abort - unreachable + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add end - global.get $~lib/memory/__stack_pointer + else local.get $1 - i32.store offset=4 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 65535 + i32.and + local.tee $2 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $1 + i32.const 65535 + i32.and + local.set $1 + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) local.get $1 + i32.const 10 + i32.ge_u i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.add + else local.get $1 - i32.store offset=4 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1000 + i32.ge_u i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.set $2 + local.get $0 + local.get $1 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + local.get $2 ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" - (local $0 i32) - (local $1 i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 + i32.extend8_s + local.tee $3 + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $3 + i32.const -128 + i32.eq + if + local.get $0 + i64.const 15762813447372845 + i64.store + i32.const 4 + return + end local.get $0 + i32.const 45 + i32.store16 i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3760 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3760 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer + local.set $1 + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.set $0 + local.get $1 + i32.extend8_s + local.tee $3 + i32.const 10 + i32.lt_u + if local.get $0 - i32.store offset=8 + local.get $3 + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $1 + i32.extend8_s + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + local.get $3 + i32.add + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $1 + i64.const 0 + i64.lt_s + local.tee $3 + if local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.const 45 + i32.store16 + i64.const 0 + local.get $1 + i64.sub + local.set $1 + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $1 + i64.const 10 + i64.lt_u + if local.get $4 - i32.const 2 - i32.shl - local.tee $7 + local.get $1 + i64.const 48 + i64.or + i64.store16 + local.get $3 i32.const 1 - call $~lib/rt/itcms/__new + i32.add + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 local.tee $2 - i32.store offset=16 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $6 - local.get $3 - i32.const 2 - i32.shl - local.tee $8 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 i32.add - i32.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + else + local.get $2 + i32.const 10000 + i32.ge_u i32.const 3 - global.set $~argumentsLength + i32.add local.get $2 - local.get $8 + i32.const 1000 + i32.ge_u i32.add - local.get $9 - local.get $3 - local.get $0 - i32.const 3760 - i32.load - call_indirect (type $1) - i32.store - local.get $3 - i32.const 1 + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u i32.add - local.set $3 - br $for-loop|0 end end - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 + local.set $0 + local.get $4 local.get $2 - i32.store offset=4 - local.get $1 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $4 local.get $1 - i32.store offset=4 local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $3 + i32.add ) - (func $~lib/typedarray/Uint32Array#__get (param $0 i32) (param $1 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 16320 + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 i32.lt_s + local.tee $2 if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + local.get $2 + i32.const 1 + i32.shl + i32.add + local.set $0 local.get $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + i32.const 10 + i32.lt_u if - i32.const 1360 - i32.const 1632 - i32.const 878 - i32.const 64 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + local.get $2 i32.add - global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" - (local $0 i32) - (local $1 i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $1 + i32.extend16_s + local.tee $3 + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $3 + i32.const -32768 + i32.eq + if + local.get $0 + i64.const 15481338470793261 + i64.store + local.get $0 + i32.const 3670070 + i32.store offset=8 + i32.const 6 + return + end local.get $0 + i32.const 45 + i32.store16 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3792 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3792 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.set $1 + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.set $0 + local.get $1 + i32.extend16_s + local.tee $3 + i32.const 10 + i32.lt_u + if local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $6 - local.get $3 - i32.const 2 - i32.shl - local.tee $8 - i32.add - i32.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $8 - i32.add - local.get $9 - local.get $3 - local.get $0 - i32.const 3792 - i32.load - call_indirect (type $1) - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 + local.get $3 + i32.const 48 + i32.or + i32.store16 local.get $2 - i32.store offset=4 - local.get $1 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + i32.extend16_s + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else local.get $1 - i32.store offset=4 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $3 + local.get $0 + local.get $1 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + local.get $3 + i32.add + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.1 (result i32) local.get $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne + f64.const 0 + f64.eq if - i32.const 0 - i32.const 1568 - i32.const 388 + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 i32.const 3 - call $~lib/builtins/abort - unreachable + br $~lib/util/number/dtoa_buffered_impl|inlined.1 end - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 local.get $1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.ne + f64.sub + f64.const 0 + f64.ne if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.1 + end unreachable end - global.get $~lib/memory/__stack_pointer + local.get $0 local.get $1 - i32.store offset=4 + i32.const 0 + call $~lib/util/number/dtoa_core + end + ) + (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f32) (result i32) + (local $2 f64) + (local $3 i32) + block $~lib/util/number/dtoa_buffered_impl|inlined.0 (result i32) local.get $1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 9 - i32.ne + f64.promote_f32 + local.tee $2 + f64.const 0 + f64.eq if - i32.const 0 - i32.const 1568 - i32.const 390 + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 i32.const 3 - call $~lib/builtins/abort + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + else + local.get $2 + f64.const 0 + f64.lt + local.tee $3 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $3 + i32.const 8 + i32.add + br $~lib/util/number/dtoa_buffered_impl|inlined.0 + end unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $0 + local.get $2 + i32.const 1 + call $~lib/util/number/dtoa_core end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) - (func $~lib/typedarray/Int64Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) + (func $~lib/typedarray/Uint8ClampedArray#subarray (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 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15816,262 +16323,215 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u - if - i32.const 1360 - i32.const 1632 - i32.const 1020 - i32.const 64 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 local.get $0 i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 i32.add - i64.load + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) + (local $4 i64) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3824 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3824 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 3 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $6 - local.get $3 - i32.const 3 - i32.shl - local.tee $8 - i32.add - i64.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $8 - i32.add - local.get $9 - local.get $3 - local.get $0 - i32.const 3824 - i32.load - call_indirect (type $24) - i64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 + call $~lib/typedarray/Int8Array#get:length local.get $2 - i32.store offset=4 - local.get $1 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 + local.get $3 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 9 - i64.ne + i32.lt_s + end + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + local.get $0 + i32.load offset=4 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 390 + local.get $0 + local.get $2 + i32.add + local.get $1 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + i64.load + local.tee $4 + i32.wrap_i64 + local.tee $5 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + i32.const 255 + local.get $5 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + local.get $4 + i64.or + i64.and + i64.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#__get (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) + (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16086,262 +16546,405 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.ge_u + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $3 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + local.get $3 + i32.add + i32.lt_s + end if i32.const 1360 i32.const 1632 - i32.const 1162 - i32.const 64 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + local.get $2 local.get $0 i32.load offset=4 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 3 - i32.shl + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.add + i32.const 255 + local.get $4 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.tee $1 + i32.sub + i32.const 31 + i32.shr_s + local.get $1 + i32.or + local.get $1 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + 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 12 i32.add - i64.load + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#toString (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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#join global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3856 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 3 - i32.shl - local.tee $7 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $6 - local.get $3 - i32.const 3 - i32.shl - local.tee $8 - i32.add - i64.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $8 - i32.add - local.get $9 - local.get $3 - local.get $0 - i32.const 3856 - i32.load - call_indirect (type $24) - i64.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $1 local.get $2 - i32.store offset=4 - local.get $1 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.tee $1 + i32.const 0 local.get $1 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.gt_s + select + else local.get $1 - i32.store offset=4 + local.get $2 local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.ne + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $2 + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $6) + local.set $3 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 9 - i64.ne + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint8Array#reduce (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $5 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $6) + local.set $3 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Float32Array#__get (param $0 i32) (param $1 i32) (result f32) - (local $2 f32) + (func $~lib/typedarray/Uint8Array#forEach (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.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16356,622 +16959,516 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $3 + i32.add + i32.load8_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $4) + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 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 16320 + i32.lt_s if - i32.const 1360 - i32.const 1632 - i32.const 1304 - i32.const 64 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $1 local.get $0 i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl i32.add - f32.load + i32.load8_u global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3888 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3888 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl - local.tee $7 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) loop $for-loop|0 - local.get $3 + local.get $2 local.get $4 i32.lt_s if - local.get $6 local.get $3 - i32.const 2 + local.get $2 + i32.const 3 i32.shl - local.tee $8 i32.add - f32.load - local.set $9 + i64.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $5 local.get $2 - local.get $8 - i32.add - local.get $9 - local.get $3 local.get $0 - i32.const 3888 + local.get $1 i32.load - call_indirect (type $29) - f32.store - local.get $3 + call_indirect (type $8) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $2 - i32.store offset=4 - local.get $1 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 9 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" - (local $0 i32) + (func $~lib/typedarray/Uint64Array#join (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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + call $~lib/util/string/joinIntegerArray + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) + (local $4 i64) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3920 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3920 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 3 - i32.shl - local.tee $7 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + i32.const 0 + i32.ge_s if - local.get $6 local.get $3 + local.get $2 i32.const 3 i32.shl - local.tee $8 i32.add - f64.load - local.set $9 + i64.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $8 - i32.add - local.get $9 - local.get $3 local.get $0 - i32.const 3920 + local.get $1 i32.load - call_indirect (type $30) - f64.store - local.get $3 + call_indirect (type $8) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + local.get $2 i32.const 1 - i32.add - local.set $3 + i32.sub + local.set $2 br $for-loop|0 end end - local.get $1 - local.get $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $2 - i32.store offset=4 - local.get $1 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 388 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 389 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 390 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const -1 + local.set $2 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint64Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3952 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3952 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if + local.get $3 local.get $2 - local.get $7 + i32.const 3 + i32.shl i32.add - i32.load8_s - local.set $5 + i64.load global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 - local.get $8 - i32.const 3952 + local.get $0 + local.get $1 i32.load - call_indirect (type $1) - if - local.get $0 - local.get $4 - i32.add - local.get $5 - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + call_indirect (type $8) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" local.get $2 i32.const 1 i32.add @@ -16979,262 +17476,87 @@ br $for-loop|0 end end - local.get $1 - local.get $4 - local.get $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const -1 + local.set $2 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (local $5 i64) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3984 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3984 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if + local.get $3 local.get $2 - local.get $7 + i32.const 3 + i32.shl i32.add - i32.load8_u + i64.load local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 0 local.get $5 local.get $2 - local.get $8 - i32.const 3984 + local.get $0 + local.get $1 i32.load - call_indirect (type $1) - if - local.get $0 - local.get $4 - i32.add - local.get $5 - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + call_indirect (type $8) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" + drop local.get $2 i32.const 1 i32.add @@ -17242,128 +17564,291 @@ br $for-loop|0 end end - local.get $1 - local.get $4 - local.get $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 + i32.const 1 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#subarray (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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 2 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $1 local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.tee $1 + i32.const 0 local.get $1 i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.gt_s + select + else local.get $1 - i32.store offset=4 + local.get $2 local.get $1 + local.get $2 + i32.lt_s + select + end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 2 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + 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 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" - (local $0 i32) + (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -17375,57 +17860,22 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=8 + i32.const 9584 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17433,179 +17883,144 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $3 + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1413 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $2 - local.get $7 - i32.add - i32.load8_u - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $2 - local.get $8 - i32.const 4016 - i32.load - call_indirect (type $1) - if - local.get $0 - local.get $4 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl i32.add local.get $5 - i32.store8 - local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 + br $for-loop|0 end - local.get $2 - i32.const 1 + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1413 end - end - local.get $1 - local.get $4 - local.get $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 49120 @@ -17615,158 +18030,157 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int16Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4048 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4048 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $7 + local.get $3 local.get $2 - i32.const 1 + i32.const 2 i32.shl i32.add - i32.load16_s - local.set $5 + i32.load global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 - local.get $8 - i32.const 4048 + local.get $0 + local.get $1 i32.load call_indirect (type $1) - if - local.get $4 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" local.get $2 i32.const 1 i32.add @@ -17774,241 +18188,335 @@ br $for-loop|0 end end - local.get $1 - local.get $4 - local.get $0 + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#subarray (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 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) local.get $1 local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.tee $1 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.gt_s + select + else local.get $1 - i32.store offset=4 + local.get $2 local.get $1 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.get $2 + i32.lt_s + select end - i32.const 49120 - i32.const 49168 - i32.const 1 + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Uint16Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4080 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4080 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $7 + local.get $3 local.get $2 i32.const 1 i32.shl @@ -18016,29 +18524,19 @@ i32.load16_u local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 1 local.get $5 local.get $2 - local.get $8 - i32.const 4080 + local.get $0 + local.get $1 i32.load call_indirect (type $1) - if - local.get $4 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop local.get $2 i32.const 1 i32.add @@ -18046,131 +18544,22 @@ br $for-loop|0 end end - local.get $1 - local.get $4 - local.get $0 - i32.const 1 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" - (local $0 i32) + (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -18182,57 +18571,22 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int32Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4112 - i32.store offset=8 + i32.const 9584 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18240,188 +18594,144 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4112 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $3 + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1411 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $7 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 + end + local.get $6 + i32.eqz + if local.get $5 - local.get $2 - local.get $8 - i32.const 4112 - i32.load - call_indirect (type $1) + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s if - local.get $4 local.get $0 - i32.const 2 + local.get $1 + i32.const 1 i32.shl i32.add local.get $5 - i32.store - local.get $0 + local.get $3 i32.const 1 + i32.shl i32.add - local.set $0 + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $2 - i32.const 1 + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1411 end - end - local.get $1 - local.get $4 - local.get $0 - i32.const 2 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 49120 @@ -18431,158 +18741,157 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Uint32Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4144 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4144 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - i32.shl + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $7 + local.get $3 local.get $2 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load - local.set $5 + i32.load16_u global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 - local.get $8 - i32.const 4144 + local.get $0 + local.get $1 i32.load call_indirect (type $1) - if - local.get $4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" local.get $2 i32.const 1 i32.add @@ -18590,271 +18899,87 @@ br $for-loop|0 end end - local.get $1 - local.get $4 - local.get $0 - i32.const 2 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const -1 + local.set $2 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $7 + local.get $3 local.get $2 - i32.const 3 + i32.const 1 i32.shl i32.add - i64.load + i32.load16_u local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 0 local.get $5 local.get $2 - local.get $8 - i32.const 4176 + local.get $0 + local.get $1 i32.load - call_indirect (type $8) - if - local.get $4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $5 - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" + drop local.get $2 i32.const 1 i32.add @@ -18862,271 +18987,158 @@ br $for-loop|0 end end - local.get $1 - local.get $4 - local.get $0 - i32.const 3 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + i32.load16_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#sort (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int8Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Uint64Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4208 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4208 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if - local.get $7 local.get $2 - i32.const 3 - i32.shl + local.get $3 i32.add - i64.load + i32.load8_s local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 1 local.get $5 local.get $2 - local.get $8 - i32.const 4208 + local.get $0 + local.get $1 i32.load - call_indirect (type $8) - if - local.get $4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $5 - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - end + call_indirect (type $1) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" + drop local.get $2 i32.const 1 i32.add @@ -19134,193 +19146,405 @@ br $for-loop|0 end end - local.get $1 - local.get $4 - local.get $0 - i32.const 3 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Float32Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + i32.const 6 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 6 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $3 + i32.add + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 7 + i32.add + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $0 + local.get $2 + i32.add + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store8 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int8Array#join (param $0 i32) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set + i32.const 16320 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - f32.const 5 - call $~lib/typedarray/Float32Array#__set + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4240 - i32.store offset=8 + i32.const 9584 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19328,460 +19552,140 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4240 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 2 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $3 + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1408 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $7 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1408 + end + local.get $6 + i32.eqz + if local.get $5 - local.get $2 - local.get $8 - i32.const 4240 - i32.load - call_indirect (type $14) + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1408 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s if - local.get $4 local.get $0 - i32.const 2 + local.get $1 + i32.const 1 i32.shl i32.add + local.get $3 local.get $5 - f32.store - local.get $0 - i32.const 1 i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - local.get $4 - local.get $0 - i32.const 2 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Float64Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 5 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4272 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $7 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $2 - local.get $8 - i32.const 4272 - i32.load - call_indirect (type $15) - if - local.get $4 - local.get $0 - i32.const 3 - i32.shl + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 i32.add - local.get $5 - f64.store - local.get $0 + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 + br $for-loop|0 end - local.get $2 - i32.const 1 + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1408 end - end - local.get $1 - local.get $4 - local.get $0 - i32.const 3 - i32.shl - local.tee $0 - call $~lib/rt/itcms/__renew - local.tee $2 - i32.store - local.get $1 - local.get $2 - call $~lib/rt/itcms/__link - local.get $1 - local.get $0 - i32.store offset=8 - local.get $1 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 49120 @@ -19791,11 +19695,10 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Int8Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -19817,64 +19720,64 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" loop $for-loop|0 local.get $2 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $2 local.get $3 i32.add i32.load8_s - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 1 - local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $1) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" - drop + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" local.get $2 i32.const 1 - i32.add + i32.sub local.set $2 br $for-loop|0 end end - i32.const 0 + i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -19900,134 +19803,45 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $3 local.get $2 - i32.const 1 - i32.shl + local.get $3 i32.add - i32.load16_s - local.set $5 + i32.load8_s global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 1 - local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $1) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" - drop + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" local.get $2 i32.const 1 i32.add @@ -20035,14 +19849,16 @@ br $for-loop|0 end end - i32.const 0 + i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -20068,50 +19884,49 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) loop $for-loop|0 local.get $2 local.get $4 i32.lt_s if - local.get $3 local.get $2 - i32.const 1 - i32.shl + local.get $3 i32.add - i32.load16_u + i32.load8_s local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 1 + i32.const 0 local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $1) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" drop local.get $2 i32.const 1 @@ -20120,18 +19935,17 @@ br $for-loop|0 end end - i32.const 0 + i32.const 1 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20153,72 +19967,93 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 3 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 3 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20236,66 +20071,25 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - end + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20323,25 +20117,25 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 block $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 loop $for-loop|0 local.get $2 local.get $4 @@ -20382,11 +20176,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20408,155 +20200,76 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $8) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16320 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 i32.lt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $14) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + 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 $1 + i32.add + i64.load8_u + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const 0 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20578,151 +20291,59 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $15) - br_if $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16320 + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.const 6 + i32.add i32.lt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $3 + i32.const 48 + i32.add global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_s - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end + local.get $1 + i32.load offset=4 + local.get $2 + i32.const 3 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint8Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (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 12 i32.sub @@ -20751,59 +20372,77 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + i32.load offset=4 + i32.const 32 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + 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 $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i64.load16_s + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $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.sub @@ -20829,64 +20468,78 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" - loop $for-loop|0 + i32.load offset=4 + i32.const 56 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i64.load8_s + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $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.sub @@ -20912,147 +20565,449 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 11008 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" - loop $for-loop|0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i64.load32_s + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" - loop $for-loop|0 - local.get $2 - local.get $4 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$5 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $3 - local.get $2 - i32.const 2 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$5 + end + block $folding-inner0 + local.get $6 + i32.eqz + if + block $__inlined_func$~lib/util/number/itoa64 (result i32) + local.get $5 + i64.load + i64.extend32_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + i32.const 1 + i32.shl + local.tee $0 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $0 + local.get $1 + i32.add + local.get $3 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $0 + local.get $1 + i32.add + local.get $2 + local.get $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $0 + if + local.get $1 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + end + local.set $0 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + local.get $6 + i32.mul + i32.const 21 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $7 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $7 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $7 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end local.get $0 local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" - local.get $2 i32.const 1 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.get $5 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$5 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const -1 - local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Uint32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) + (local $4 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21090,20 +21045,22 @@ local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" loop $for-loop|0 local.get $2 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $3 local.get $2 - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load + i64.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -21113,11 +21070,11 @@ local.get $0 local.get $1 i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" + call_indirect (type $8) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" local.get $2 i32.const 1 - i32.add + i32.sub local.set $2 br $for-loop|0 end @@ -21214,7 +21171,7 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Uint64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -21258,7 +21215,7 @@ local.get $0 call $~lib/typedarray/Int64Array#get:length local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + block $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) loop $for-loop|0 local.get $2 local.get $4 @@ -21270,17 +21227,22 @@ i32.shl i32.add i64.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $8) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" + drop local.get $2 i32.const 1 i32.add @@ -21288,22 +21250,17 @@ br $for-loop|0 end end - i32.const -1 - local.set $2 + i32.const 1 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) + (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21318,75 +21275,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $14) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f64) 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 @@ -21404,69 +21314,31 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 i32.load offset=4 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $15) - br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end + call $~lib/typedarray/Int32Array#get:length global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) - (func $~lib/typedarray/Int8Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21504,51 +21376,52 @@ local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if - local.get $2 local.get $3 + local.get $2 + i32.const 2 + i32.shl i32.add - i32.load8_s + i32.load + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength + i32.const 1 + local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $1) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" + drop local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 br $for-loop|0 end end - i32.const -1 - local.set $2 + i32.const 0 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint8Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21577,144 +21450,70 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Int32Array#get:length local.get $2 - ) - (func $~lib/typedarray/Int16Array#findLastIndex (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 i32.lt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Uint16Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21743,62 +21542,76 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + i32.const 6 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end + i32.load offset=4 + i32.const 24 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store32 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Int32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21827,146 +21640,77 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $2 - ) - (func $~lib/typedarray/Uint32Array#findLastIndex (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 + i32.const 4 + i32.add i32.lt_s if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 + i32.const 16 + i32.add local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" - loop $for-loop|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $1 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) - (func $~lib/typedarray/Int64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -21992,65 +21736,268 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.load offset=4 - local.set $3 + call $~lib/typedarray/Int32Array#get:length + local.get $1 + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub + i32.load offset=4 + i32.const 28 + i32.add local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + 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 + i32.store + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int32Array#join (param $0 i32) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1412 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 i32.const 0 - i32.ge_s + i32.lt_s if - local.get $3 - local.get $2 - i32.const 3 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i64.load + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 + i32.store local.get $0 local.get $1 - i32.load - call_indirect (type $8) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1412 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const -1 - local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Uint64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i64) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22088,11 +22035,11 @@ local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length + call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.sub local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" loop $for-loop|0 local.get $2 i32.const 0 @@ -22100,10 +22047,10 @@ if local.get $3 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -22113,8 +22060,8 @@ local.get $0 local.get $1 i32.load - call_indirect (type $8) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" local.get $2 i32.const 1 i32.sub @@ -22131,10 +22078,11 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Float32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22173,21 +22121,19 @@ i32.store offset=8 local.get $0 call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" loop $for-loop|0 local.get $2 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if local.get $3 local.get $2 i32.const 2 i32.shl i32.add - f32.load + i32.load global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -22197,11 +22143,11 @@ local.get $0 local.get $1 i32.load - call_indirect (type $14) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" local.get $2 i32.const 1 - i32.sub + i32.add local.set $2 br $for-loop|0 end @@ -22215,10 +22161,11 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/typedarray/Float64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 f64) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22256,103 +22203,20 @@ local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $2 - block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) loop $for-loop|0 local.get $2 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if local.get $3 local.get $2 - i32.const 3 + i32.const 2 i32.shl i32.add - f64.load - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 i32.load - call_indirect (type $15) - br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|0 - end - end - i32.const -1 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Int8Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_s local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 @@ -22367,7 +22231,7 @@ i32.load call_indirect (type $1) i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" drop local.get $2 i32.const 1 @@ -22383,13 +22247,9 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22404,74 +22264,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - end + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22493,73 +22306,93 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load + local.tee $4 + i32.store + local.get $3 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=4 + i32.const 4 + local.get $2 + local.get $2 + i32.const 4 + i32.gt_s + select + local.tee $0 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $2 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select end + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + local.get $0 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) - (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#sort (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22577,69 +22410,27 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - end + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -22665,25 +22456,25 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) loop $for-loop|0 local.get $2 local.get $4 @@ -22691,25 +22482,24 @@ if local.get $3 local.get $2 - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load + i32.load16_s local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 0 + i32.const 1 local.get $5 local.get $2 local.get $0 local.get $1 i32.load call_indirect (type $1) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" + br_if $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" drop local.get $2 i32.const 1 @@ -22718,18 +22508,16 @@ br $for-loop|0 end end - i32.const 1 + i32.const 0 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (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 12 i32.sub @@ -22751,71 +22539,77 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $2 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $1) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.add + i32.load8_u + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const 1 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22837,71 +22631,82 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $2 + i32.const 6 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $1 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $8) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end + local.get $2 + i32.lt_s + if + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - i32.const 1 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22923,71 +22728,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $8) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 1 - end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23009,71 +22803,367 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $1 + i32.const 7 + i32.add + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 14 + i32.add + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $3 + i32.add + i32.load8_s + i32.store16 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $1 + i32.lt_s + if + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $3 + i32.const 0 + local.set $0 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store16 + 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 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int16Array#join (param $0 i32) (result 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 i32.load offset=4 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1410 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 i32.lt_s if - local.get $3 - local.get $2 - i32.const 2 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - f32.load - local.set $5 + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $5 - local.get $2 + i32.store local.get $0 local.get $1 - i32.load - call_indirect (type $14) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - local.get $2 - i32.const 1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $2 - br $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1410 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23095,69 +23185,72 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" loop $for-loop|0 local.get $2 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $3 local.get $2 - i32.const 3 + i32.const 1 i32.shl i32.add - f64.load - local.set $5 + i32.load16_s global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $2 local.get $0 local.get $1 i32.load - call_indirect (type $15) - i32.eqz - br_if $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" - drop + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" local.get $2 i32.const 1 - i32.add + i32.sub local.set $2 br $for-loop|0 end end - i32.const 1 + i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int16Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23172,60 +23265,69 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store local.get $0 - i32.const 255 - i32.and - i32.const 7152 + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/typedarray/Uint8Array#forEach (param $0 i32) (param $1 i32) + (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23267,40 +23369,51 @@ local.get $0 i32.store offset=8 local.get $0 - call $~lib/typedarray/Int8Array#get:length + call $~lib/typedarray/Int16Array#get:length local.set $4 - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - local.get $1 - i32.load - call_indirect (type $4) + block $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) + loop $for-loop|0 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $1) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end end + i32.const 1 end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23320,59 +23433,24 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $0 i32.store local.get $0 - i32.const 65535 - i32.and - i32.const 7152 - local.get $1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount + i32.load offset=4 local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount i32.const 1 + i32.shl i32.add - global.set $std/typedarray/forEachCallCount + i32.load16_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23387,58 +23465,44 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 1696 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1696 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store - i32.const 7152 local.get $1 - call $~lib/array/Array#__get + i32.store offset=8 local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount + call $~lib/typedarray/Float64Array#sort global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 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 @@ -23453,126 +23517,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store - i32.const 7152 - local.get $1 - call $~lib/array/Array#__get - i64.extend_i32_s local.get $0 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.store offset=4 + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#get:length global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store - i32.const 7152 local.get $1 - call $~lib/array/Array#__get - f32.convert_i32_s - local.get $0 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount + i32.store local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) + (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23587,65 +23561,77 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $0 i32.store - i32.const 7152 + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/array/Array#__get - f64.convert_i32_s + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 536 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $std/typedarray/forEachCallCount - local.get $1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 537 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - global.get $std/typedarray/forEachSelf - i32.ne - if + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $12) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end i32.const 0 - i32.const 1568 - i32.const 538 - i32.const 5 - call $~lib/builtins/abort - unreachable end - global.get $std/typedarray/forEachCallCount - i32.const 1 - i32.add - global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) + (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 f64) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23674,7 +23660,7 @@ local.get $0 i32.store local.get $0 - call $~lib/typedarray/Int8Array#get:length + call $~lib/typedarray/Int64Array#get:length local.tee $5 i32.const 1 i32.gt_u @@ -23682,122 +23668,43 @@ local.get $5 i32.const 1 i32.shr_u - local.set $4 + local.set $3 local.get $5 - i32.const 8 + i32.const 1 i32.sub - local.set $6 + local.set $5 loop $while-continue|0 local.get $1 - i32.const 7 - i32.add - local.get $4 + local.get $3 i32.lt_u if - local.get $1 - local.get $2 - i32.add - local.tee $7 - i64.load - local.tee $3 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $3 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.set $3 - local.get $7 - local.get $2 - local.get $6 - i32.add - local.get $1 - i32.sub - local.tee $7 - i64.load - local.tee $8 - i64.const 8 - i64.shr_u - i64.const 71777214294589695 - i64.and - local.get $8 - i64.const 71777214294589695 - i64.and - i64.const 8 - i64.shl - i64.or - local.tee $8 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $8 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store - local.get $7 - local.get $3 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $3 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - i64.store - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|1 - local.get $1 - local.get $4 - i32.lt_u - if - local.get $1 local.get $2 + local.get $1 + i32.const 3 + i32.shl i32.add local.tee $6 - i32.load8_u - local.set $7 + f64.load + local.set $4 local.get $6 local.get $2 local.get $5 local.get $1 i32.sub + i32.const 3 + i32.shl i32.add local.tee $6 - i32.load8_u - i32.store8 + f64.load + f64.store local.get $6 - local.get $7 - i32.store8 + local.get $4 + f64.store local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|1 + br $while-continue|0 end end end @@ -23807,14 +23714,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" - (local $0 i32) + (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23829,201 +23732,116 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 7616 + local.get $0 i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Int8Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.extend8_s - 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 + local.get $0 + call $~lib/typedarray/Int64Array#get:length global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + call $~lib/util/string/joinFloatArray global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 4 i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $1 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=20 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 8 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 2 - call $~lib/typedarray/Int8Array#__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 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s + if + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $12) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/typedarray/Uint8Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float64Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 f64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -24049,88 +23867,66 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $3 + i32.store offset=8 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $3 + i32.store offset=8 local.get $0 - i32.load offset=4 - i32.const 4 - local.get $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.add - i32.store offset=4 - local.get $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $12) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 f64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24145,200 +23941,107 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7616 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7616 + local.get $1 i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.get $0 i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 local.get $4 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne + i32.lt_s if + local.get $3 + local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $12) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end + i32.const 1 end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) + (local $2 f64) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - 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 offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__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 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 + i32.load offset=4 + local.get $1 i32.const 3 - call $~lib/typedarray/Uint8Array#__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 + i32.shl + i32.add + f64.load global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24370,11 +24073,11 @@ local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int8Array#get:length + call $~lib/typedarray/Int32Array#get:length local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 6 + i32.const 13 call $~lib/rt/itcms/__new local.tee $3 i32.store offset=8 @@ -24402,6 +24105,8 @@ i32.gt_s select local.tee $0 + i32.const 2 + i32.shl i32.add i32.store offset=4 local.get $3 @@ -24434,6 +24139,8 @@ select local.get $0 i32.sub + i32.const 2 + i32.shl i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -24441,14 +24148,11 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Float32Array#sort (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 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24463,207 +24167,121 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 7616 + local.get $0 i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - 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.get $0 + call $~lib/typedarray/Int32Array#get:length global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=16 + i32.store local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $1 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=20 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__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 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.ne - if + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $13) + br_if $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end 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 24 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) + (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24692,95 +24310,51 @@ local.get $0 i32.store local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.tee $4 + call $~lib/typedarray/Int32Array#get:length + local.tee $5 i32.const 1 i32.gt_u if - local.get $4 + local.get $5 i32.const 1 i32.shr_u local.set $3 - local.get $4 - i32.const 2 + local.get $5 + i32.const 1 i32.sub local.set $5 loop $while-continue|0 local.get $1 - i32.const 1 - i32.add local.get $3 i32.lt_u if - local.get $2 - local.get $5 - local.get $1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $6 - i32.load - i32.const 16 - i32.rotr - local.set $7 - local.get $6 local.get $2 local.get $1 - i32.const 1 + i32.const 2 i32.shl i32.add local.tee $6 - i32.load - i32.const 16 - i32.rotr - i32.store + f32.load + local.set $4 local.get $6 - local.get $7 - i32.store - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|1 - local.get $1 - local.get $3 - i32.lt_u - if local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $5 - i32.load16_u - local.set $6 local.get $5 - local.get $2 - local.get $4 local.get $1 i32.sub - i32.const 1 + i32.const 2 i32.shl i32.add - local.tee $5 - i32.load16_u - i32.store16 - local.get $5 + local.tee $6 + f32.load + f32.store local.get $6 - i32.store16 + local.get $4 + f32.store local.get $1 i32.const 1 i32.add local.set $1 - br $while-continue|1 + br $while-continue|0 end end end @@ -24790,12 +24364,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/typedarray/Float32Array#join (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24813,98 +24385,30 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 + i32.load offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link + call $~lib/typedarray/Int32Array#get:length global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 + i32.const 9584 + i32.store + call $~lib/util/string/joinFloatArray global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" - (local $0 i32) - (local $1 i32) + (func $~lib/typedarray/Float32Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24919,200 +24423,158 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7616 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7616 + local.get $1 i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.get $0 i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int16Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Int16Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.extend16_s - i32.ne + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $2 + block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" + loop $for-loop|0 + local.get $2 + i32.const 0 + i32.ge_s if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $13) + br_if $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end + i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/typedarray/Float32Array#findIndex (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.store offset=20 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 2 - call $~lib/typedarray/Int16Array#__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 + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=8 local.get $0 - i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $13) + br_if $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) - (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25138,92 +24600,66 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $3 + i32.store offset=8 local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link + i32.load offset=4 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $3 + i32.store offset=8 local.get $0 - i32.load offset=4 - i32.const 4 - local.get $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select + call $~lib/typedarray/Int32Array#get:length + local.set $4 + block $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $5 + local.get $2 + local.get $0 + local.get $1 + i32.load + call_indirect (type $13) + i32.eqz + br_if $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) + (local $2 f32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -25239,824 +24675,988 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 - i32.store offset=8 + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 + i32.const 1 + i32.const 27 local.get $1 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1504 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + i32.const -1 + local.get $2 + i32.const 1 + i32.add + i32.shl + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 1 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl i32.add - local.set $0 - br $for-loop|0 + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1504 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1504 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1504 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int16Array#reverse - drop + local.get $1 i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 7152 + call $~lib/rt/itcms/__visit + i32.const 7616 + call $~lib/rt/itcms/__visit + i32.const 7728 + call $~lib/rt/itcms/__visit + i32.const 10928 + call $~lib/rt/itcms/__visit + i32.const 11008 + call $~lib/rt/itcms/__visit + i32.const 11088 + call $~lib/rt/itcms/__visit + i32.const 11184 + call $~lib/rt/itcms/__visit + i32.const 11264 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + i32.const 1168 + call $~lib/rt/itcms/__visit + i32.const 8432 + call $~lib/rt/itcms/__visit + i32.const 9488 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - loop $for-loop|1 + loop $while-continue|0 local.get $0 - local.get $4 - i32.lt_s + local.get $1 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Uint16Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 - i32.const 1 - i32.sub local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 65535 + i32.load offset=4 + i32.const 3 i32.and + i32.const 3 i32.ne if i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 + i32.const 1232 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 1 + i32.const 20 i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and local.set $0 - br $for-loop|1 + br $while-continue|0 end end + ) + (func $~lib/arraybuffer/ArrayBuffer#constructor (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 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 52 + i32.const 43 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 f64) (param $2 i32) (param $3 i32) (result f64) + local.get $0 local.get $1 - i32.store offset=16 + f64.add + ) + (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 f32) (param $2 i32) (param $3 i32) (result f32) + local.get $0 local.get $1 - i32.const 8 - call $~lib/typedarray/Uint16Array#subarray - local.set $1 + f32.add + ) + (func $std/typedarray/testInstantiate (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 48 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 48 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.store offset=20 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 8 + local.get $1 + i32.load offset=8 i32.ne if i32.const 0 i32.const 1568 - i32.const 575 + i32.const 33 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#get:length local.get $0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 576 + i32.const 34 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 6 - i32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 577 + i32.const 37 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $0 - i32.const 3 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 + local.get $1 + i32.load offset=8 i32.ne if i32.const 0 i32.const 1568 - i32.const 578 + i32.const 38 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#reverse (param $0 i32) (result 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.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $4 - i32.const 1 - i32.gt_u + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - local.get $4 - i32.const 1 - i32.shr_u - local.set $3 - local.get $4 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load - local.set $4 - local.get $6 - local.get $2 - local.get $5 - local.get $1 - i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $6 - i32.load - i32.store - local.get $6 - local.get $4 - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0 - end - end + i32.const 0 + i32.const 1568 + i32.const 42 + 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 + local.get $1 + i32.store offset=4 local.get $0 - ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.load offset=8 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7616 + local.get $1 i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 - i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int32Array#constructor + local.get $0 + call $~lib/typedarray/Int16Array#constructor local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int32Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Int32Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - local.get $2 - 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 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=16 + i32.store offset=4 local.get $1 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $1 + i32.load offset=8 + local.get $0 + i32.const 1 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - call $~lib/typedarray/Int32Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/typedarray/Int16Array#get:length local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 8 i32.ne if i32.const 0 i32.const 1568 - i32.const 575 + i32.const 49 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 7 - i32.ne + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if i32.const 0 i32.const 1568 - i32.const 576 + i32.const 52 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 6 + i32.const 1 + i32.shl i32.ne if i32.const 0 i32.const 1568 - i32.const 577 + i32.const 53 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#get:length local.get $0 - i32.const 3 - call $~lib/typedarray/Int32Array#__get - i32.const 5 i32.ne if i32.const 0 i32.const 1568 - i32.const 578 + i32.const 54 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#subarray (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store offset=24 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 57 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 - i32.store + i32.const 2 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 + i32.load offset=8 local.get $0 - i32.load offset=4 - i32.const 4 - local.get $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.tee $0 i32.const 2 i32.shl - i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $3 local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.get $0 + i32.ne + if i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select + i32.const 1568 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.tee $1 - local.get $0 + global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.lt_s - select + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 - i32.sub - i32.const 2 + i32.const 3 i32.shl - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 68 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store + local.get $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store offset=36 global.get $~lib/memory/__stack_pointer - i32.const 7616 + local.get $1 i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - 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 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int32Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Uint32Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - local.get $2 - 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 + local.get $1 + i32.load offset=8 + local.get $0 + i32.const 3 + i32.shl + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=16 + i32.store offset=4 local.get $1 - i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $1 + call $~lib/typedarray/Int64Array#get:length + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - call $~lib/typedarray/Int32Array#reverse - local.tee $0 - i32.store offset=20 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 8 + i32.const 2 + i32.shl i32.ne if i32.const 0 i32.const 1568 - i32.const 575 + i32.const 78 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#get:length local.get $0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 7 i32.ne if i32.const 0 i32.const 1568 - i32.const 576 + i32.const 79 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=8 local.get $0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 6 + i32.const 3 + i32.shl i32.ne if i32.const 0 i32.const 1568 - i32.const 577 + i32.const 83 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#get:length local.get $0 - 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 84 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 48 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 255 + i32.and + local.tee $1 + local.get $0 + i32.const 255 + i32.and + local.tee $0 + i32.gt_u + local.get $0 + local.get $1 + i32.gt_u + i32.sub + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 255 + i32.and + i32.eqz + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.eqz + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.eqz + ) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i64) + local.get $0 + local.get $0 + i64.mul + ) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26076,75 +25676,59 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7152 i32.store local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $5 - i32.const 1 - i32.gt_u + i32.const 255 + i32.and + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne if - local.get $5 - i32.const 1 - i32.shr_u - local.set $3 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $2 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.tee $6 - i64.load - local.set $4 - local.get $6 - local.get $2 - local.get $5 - local.get $1 - i32.sub - i32.const 3 - i32.shl - i32.add - local.tee $6 - i64.load - i64.store - local.get $6 - local.get $4 - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0 - end - end + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + local.get $1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -26159,101 +25743,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load - local.tee $4 + i32.const 7152 i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + i64.extend_i32_s local.get $0 - i32.load offset=4 - i32.const 4 - local.get $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 + i32.ne + if i32.const 0 - local.get $1 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" - (local $0 i32) - (local $1 i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -26269,615 +25811,385 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - local.get $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int64Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Int64Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 7152 + i32.store + i32.const 7152 local.get $1 - call $~lib/typedarray/Int64Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + call $~lib/array/Array#__get local.get $0 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.ne + i32.ne if i32.const 0 i32.const 1568 - i32.const 576 - i32.const 3 + i32.const 536 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.ne + global.get $std/typedarray/forEachCallCount + local.get $1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 577 - i32.const 3 + i32.const 537 + i32.const 5 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne if i32.const 0 i32.const 1568 - i32.const 578 - i32.const 3 + i32.const 538 + i32.const 5 call $~lib/builtins/abort unreachable end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint64Array#subarray (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $2 - local.get $2 + i32.const 65535 + i32.and i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 3 - i32.shl - i32.add - i32.store offset=4 - local.get $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - end - local.tee $1 + i32.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 + f64.const 4 + f64.eq + ) + (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - local.get $1 - i32.lt_s - select + f32.const 4 + f32.eq + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.sub - i32.const 3 - i32.shl - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + i32.const 255 + i32.and + i32.const 2 + i32.gt_u ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" - (local $0 i32) - (local $1 i32) - (local $2 i64) - (local $3 i32) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.and + i32.eqz + ) + (func $~start + call $start:std/typedarray + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - 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 + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 + i64.const 0 + i64.store local.get $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/typedarray/Int64Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Uint64Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 i32.const 1 i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne + local.tee $7 + i32.const 0 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + return end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Int64Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $3 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_u + local.get $7 + i32.eqz if - local.get $2 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.tee $6 - f32.load - local.set $4 - local.get $6 - local.get $2 - local.get $5 - local.get $1 + local.get $0 + i64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.const 2 - i32.shl - i32.add - local.tee $6 - f32.load - f32.store - local.get $6 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64$749 + local.get $3 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + local.set $1 + br $__inlined_func$~lib/util/number/utoa64$749 + end + local.get $3 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.wrap_i64 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $3 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $3 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $3 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $3 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $3 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $3 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $3 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $3 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $0 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $3 + local.get $0 + call $~lib/util/number/utoa64_dec_lut + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 20 + i32.add + local.get $7 + i32.mul + i32.const 20 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + loop $for-loop|0 local.get $4 - f32.store - local.get $1 - i32.const 1 - i32.add + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $1 + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $5 + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/string/String#substring local.set $1 - br $while-continue|0 + br $folding-inner1 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float32Array#subarray (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 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -26886,312 +26198,458 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load - local.tee $4 - i32.store - local.get $3 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.const 4 - local.get $2 - local.get $2 - i32.const 4 - i32.gt_s - select - local.tee $0 - i32.const 2 - i32.shl - i32.add - i32.store offset=4 - local.get $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $2 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - end - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - local.get $0 - i32.sub - i32.const 2 - i32.shl - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" - (local $0 i32) - (local $1 i32) - (local $2 f32) - (local $3 i32) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f64) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - 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 + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 + i64.const 0 + i64.store local.get $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/typedarray/Float32Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + return + end + local.get $7 + i32.eqz + if + local.get $0 + f64.load + 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 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 9664 + local.set $0 + block $~lib/util/number/dtoa_impl|inlined.1 + local.get $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.1 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + i32.const 9696 + local.set $0 + local.get $3 + local.get $3 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.1 + i32.const 9728 + i32.const 9776 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.1 + end + global.get $~lib/memory/__stack_pointer + i32.const 9808 + local.get $3 + i32.const 0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 9808 + local.get $1 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $folding-inner1 + end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Float32Array#__get + i32.const 9584 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 7616 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 28 + i32.add + local.get $7 + i32.mul + i32.const 28 + i32.add + local.tee $5 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 i32.store offset=4 - i32.const 7616 - local.get $4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $1 + if + local.get $6 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $5 + local.get $6 + local.get $2 i32.const 1 - i32.sub + i32.shl + i32.add local.get $0 - i32.sub - call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner1 end - local.get $0 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.set $0 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Float32Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - 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 + ) + (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 f64) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + return + end + local.get $8 + i32.eqz + if + local.get $0 + f32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 9664 + local.set $0 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $5 + f64.promote_f32 + local.tee $3 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.ne + if + i32.const 9696 + local.set $0 + local.get $3 + local.get $3 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 9728 + i32.const 9776 + local.get $3 + f64.const 0 + f64.lt + select + local.set $0 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + i32.const 9808 + local.get $3 + i32.const 1 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 9808 + local.get $1 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.const 28 + i32.add + local.get $8 + i32.mul + i32.const 28 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $1 + if + local.get $7 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 9584 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $2 + i32.add + local.set $2 + end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + local.get $6 + local.get $7 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + f32.load + call $~lib/util/number/dtoa_buffered + local.get $2 + i32.add + local.tee $0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner1 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/typedarray/Float64Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 f64) + (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 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -27210,78 +26668,423 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store8 + local.get $0 + i32.load8_u offset=2 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store8 offset=1 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 i32.const 1 - i32.shr_u - local.set $3 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 i32.const 1 i32.sub - local.set $5 - loop $while-continue|0 + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 local.get $1 - local.get $3 - i32.lt_u + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $1 - i32.const 3 - i32.shl + i32.store + local.get $0 + local.get $4 + i32.const 1 i32.add local.tee $6 - f64.load - local.set $4 - local.get $6 + local.get $9 local.get $2 - local.get $5 - local.get $1 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 i32.sub - i32.const 3 - i32.shl + i32.const 1 i32.add - local.tee $6 - f64.load - f64.store + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add local.get $4 - f64.store + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if local.get $1 - i32.const 1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub local.set $1 - br $while-continue|0 + br $for-loop|4 end end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" - (local $0 i32) - (local $1 i32) - (local $2 f64) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + (local $17 i64) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -27297,960 +27100,1290 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7616 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=12 - loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 - 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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=16 local.get $1 - 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 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $~lib/typedarray/Float64Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/typedarray/Float64Array#__get - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=4 - i32.const 7616 - local.get $4 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - if + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $9 + local.get $9 + local.get $16 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + i64.load offset=16 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $16 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store offset=8 + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $9 + local.get $9 + local.get $16 + local.get $2 + i32.load + call_indirect (type $7) i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + local.get $9 + local.get $16 + local.get $1 + select + i64.store offset=8 + br $folding-inner0 end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store local.get $0 + i32.const 0 + local.get $1 i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 end - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/typedarray/Float64Array#reverse - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - 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 24 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.tee $3 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" - drop - local.get $2 - i32.const 0 - i32.lt_s if - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 + call $~lib/rt/tlsf/initialize end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 local.get $3 - i32.lt_s + local.get $4 + i32.lt_u if - local.get $2 - local.get $0 - local.get $2 + local.get $11 + local.get $3 + i32.const 2 + i32.shl i32.add - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" - drop - local.get $2 + i32.const -1 + i32.store + local.get $3 i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $3 + br $for-loop|1 end end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" (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 $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $13 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.tee $3 - i32.eqz - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" - drop - local.get $2 - local.get $3 - i32.add - local.get $3 + i32.const 0 + local.get $1 i32.const 1 i32.sub + local.tee $10 local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + if + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store + local.get $0 i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store local.get $0 - local.get $2 + local.get $4 + i32.const 1 i32.add - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" - drop + local.tee $6 + local.get $10 local.get $2 - i32.const 1 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int8Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $11 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end end + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if + i32.store + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 i32.const 4 - i32.const 9 - call $~lib/typedarray/Int8Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 11 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if + i32.store + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_u + local.set $1 + local.get $0 + i32.load16_u offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store16 + local.get $0 + i32.load16_u offset=4 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_u + local.set $1 + local.get $0 + i32.load16_u offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store16 offset=2 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -28266,525 +28399,1726 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 + block $folding-inner0 local.get $1 - i32.lt_s + i32.const 48 + i32.le_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_s + local.set $1 + local.get $0 + i32.load8_s offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store8 + local.get $0 + i32.load8_s offset=2 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_s + local.set $1 + local.get $0 + i32.load8_s offset=1 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store8 offset=1 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i64) + (local $17 i64) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 + i32.store + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $9 + local.get $9 + local.get $16 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + i64.load offset=16 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $16 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store offset=8 + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $16 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $16 + local.get $9 + local.get $9 + local.get $16 + local.get $2 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + local.get $9 + local.get $16 + local.get $1 + select + i64.store offset=8 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $11 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $11 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if + i32.const 0 + i32.store + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9 - call $~lib/typedarray/Uint8Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if + i32.store + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $4 + select + i32.store16 + local.get $0 + i32.load16_s offset=4 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $5 + local.get $1 + local.get $3 + local.get $4 + select + local.tee $1 + local.get $1 + local.get $5 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $5 + local.get $3 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $3 + local.get $1 + local.get $1 + local.get $3 + local.get $2 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 + local.get $1 + local.get $3 + local.get $2 + select + i32.store16 offset=2 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + i32.add + local.set $11 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $10 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if + local.get $1 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + i32.const 31 + local.get $9 + local.get $9 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 633 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $9 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $9 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $9 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $9 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $13 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $13 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $14 + local.get $10 + i32.add + local.tee $15 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $11 + local.get $14 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $15 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $10 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $11 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $10 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $11 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $9 + local.get $12 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $12 + call $~lib/rt/tlsf/__free + local.get $10 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" - (local $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i32) + (local $17 f64) + (local $18 f64) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -28800,1999 +30134,2326 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 + block $folding-inner0 local.get $1 - i32.lt_s + i32.const 48 + i32.le_s if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $9 + local.get $0 + f64.load offset=8 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $10) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + f64.load offset=16 + local.set $18 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $18 + local.get $9 + local.get $17 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $18 + local.get $2 + i32.load + call_indirect (type $10) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store offset=8 + local.get $0 + local.get $9 + local.get $18 + local.get $1 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $9 + local.get $0 + f64.load offset=8 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $10) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + f64.store offset=8 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=4 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 + local.get $3 + local.get $4 + i32.lt_u + if + local.get $11 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $13 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=12 local.get $2 + i32.store local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 + i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if + local.set $1 i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $14 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $14 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $15 + local.get $11 + i32.add + local.tee $16 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $15 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $16 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + local.get $11 + i32.add + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|4 + end + end + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 f32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i32) + (local $16 i32) + (local $17 f32) + (local $18 f32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne + i32.const 16320 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 0 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 11 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const -1 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int8Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 11 i32.const 0 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int8Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int8Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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/Int16Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" - drop - local.get $2 - i32.const 0 - i32.lt_s + i32.store + block $folding-inner0 + local.get $1 + i32.const 48 + i32.le_s if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $9 + local.get $0 + f32.load offset=4 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $11) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + f32.load offset=8 + local.set $18 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $18 + local.get $9 + local.get $17 + local.get $1 + select + local.tee $9 + local.get $9 + local.get $18 + local.get $2 + i32.load + call_indirect (type $11) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store offset=4 + local.get $0 + local.get $9 + local.get $18 + local.get $1 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $9 + local.get $0 + f32.load offset=4 + local.set $17 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $17 + local.get $9 + local.get $9 + local.get $17 + local.get $2 + i32.load + call_indirect (type $11) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + local.get $9 + local.get $17 + local.get $1 + select + f32.store offset=4 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 - i32.add - local.tee $2 + i32.store + local.get $0 i32.const 0 - local.get $2 + local.get $1 + i32.const 1 + i32.sub i32.const 0 - i32.gt_s - select - local.set $2 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $4 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + local.get $5 + global.get $~lib/rt/tlsf/ROOT + local.get $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + i32.add + local.set $12 + loop $for-loop|1 local.get $3 - i32.lt_s + local.get $4 + i32.lt_u if - local.get $2 - local.get $0 - local.get $2 - i32.const 1 + local.get $11 + local.get $3 + i32.const 2 i32.shl i32.add - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" - drop - local.get $2 + i32.const -1 + i32.store + local.get $3 i32.const 1 i32.add - local.set $2 - br $while-continue|0 + local.set $3 + br $for-loop|1 end end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" (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 $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $13 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.tee $3 - i32.eqz - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" - drop - local.get $2 - local.get $3 - i32.add - local.get $3 + i32.const 0 + local.get $1 i32.const 1 i32.sub + local.tee $10 local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 + call $~lib/util/sort/extendRunRight + local.tee $4 + i32.const 1 + i32.add + local.tee $1 + i32.const 32 i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + if + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store + local.get $0 i32.const 0 + i32.const 31 + local.get $10 + local.get $10 + i32.const 31 i32.ge_s + select + local.tee $4 + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $1 + i32.const 0 + local.set $3 + loop $while-continue|2 + local.get $4 + local.get $10 + i32.lt_s if + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $6 + local.get $10 local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $10 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $14 + i64.div_u + local.get $5 + local.get $6 + i32.add i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $14 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $1 + local.get $7 + i32.gt_u + if + local.get $1 + i32.const 2 + i32.shl + local.tee $15 + local.get $11 + i32.add + local.tee $16 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $12 + local.get $15 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $8 + local.get $3 + local.get $4 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $16 + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|3 + end + end + local.get $7 + i32.const 2 i32.shl + local.tee $1 + local.get $11 i32.add - i32.load16_u + local.get $3 + i32.store + local.get $1 + local.get $12 + i32.add + local.get $4 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $4 + local.get $7 + local.set $1 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $1 + if + local.get $1 + i32.const 2 + i32.shl + local.tee $3 + local.get $11 + i32.add + i32.load + local.tee $4 + i32.const -1 + i32.ne + if + local.get $3 + local.get $12 + i32.add + i32.load + i32.const 1 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $0 + local.get $4 + local.get $3 + local.get $10 + local.get $13 + local.get $2 + call $~lib/util/sort/mergeRuns + end local.get $1 - i32.const 65535 - i32.and - i32.eq - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" - drop - local.get $2 i32.const 1 i32.sub - local.set $2 - br $while-continue|0 + local.set $1 + br $for-loop|4 end end - i32.const -1 + local.get $13 + call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 + local.get $1 + i64.gt_u + local.get $0 + local.get $1 + i64.lt_u i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.store + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + local.tee $0 + local.get $1 + i32.const 65535 + i32.and + local.tee $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend8_s + local.get $1 + i32.extend8_s + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $0 + local.get $1 + i64.gt_s local.get $0 local.get $1 + i64.lt_s + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend16_s + local.get $1 + i32.extend16_s + i32.sub + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + local.get $0 + i64.reinterpret_f64 + local.tee $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u local.get $2 - call $~lib/typedarray/Int16Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i64.xor + local.tee $2 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + local.get $3 + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" - (local $0 i32) - (local $1 i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 + (local $3 i32) + local.get $0 + i32.reinterpret_f32 + local.tee $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + local.get $2 + i32.xor + local.tee $2 + local.get $1 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + local.get $3 + i32.xor + local.tee $3 + i32.gt_s + local.get $2 + local.get $3 i32.lt_s + i32.sub + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz if - i32.const 49120 - i32.const 49168 - i32.const 1 + local.get $0 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end local.get $0 - local.get $1 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=12 - local.get $2 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) local.get $0 - i32.const 7728 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + memory.copy local.get $0 + i32.const 46 + i32.store16 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0 + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $1 + call $~lib/util/number/utoa32_dec_lut + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $4 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $4 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + local.set $1 + end + local.get $1 + i32.const 2 + i32.add + end end end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + ) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) local.get $2 - i32.const 3 + local.get $1 + i64.sub + local.set $9 + i64.const 1 i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $12 + i64.const 1 + i64.sub + local.tee $11 local.get $2 - i32.store offset=4 + i64.and + local.set $8 local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + i64.shr_u + i32.wrap_i64 + local.tee $3 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if + local.set $7 + loop $while-continue|0 + local.get $7 i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $3 + i32.const 1000000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100000 + i32.div_u + local.set $6 + local.get $3 + i32.const 100000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10000 + i32.div_u + local.set $6 + local.get $3 + i32.const 10000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 1000 + i32.div_u + local.set $6 + local.get $3 + i32.const 1000 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 100 + i32.div_u + local.set $6 + local.get $3 + i32.const 100 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + i32.const 10 + i32.div_u + local.set $6 + local.get $3 + i32.const 10 + i32.rem_u + local.set $3 + br $break|1 + end + local.get $3 + local.set $6 + i32.const 0 + local.set $3 + br $break|1 + end + i32.const 0 + local.set $6 + end + local.get $5 + local.get $6 + i32.or + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $6 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $4 + local.get $3 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + local.tee $2 + i64.shl + local.get $8 + i64.add + local.tee $1 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 10736 + i32.add + i64.load32_u + local.get $2 + i64.shl + local.set $2 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $1 + local.get $9 + i64.lt_u + local.get $4 + local.get $1 + i64.sub + local.get $2 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $1 + local.get $2 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $1 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $2 + i64.add + local.set $1 + br $while-continue|3 + end + end + local.get $0 + local.get $7 + i32.store16 + local.get $5 + return + end + br $while-continue|0 + end end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $while-continue|4 + local.get $4 + i64.const 10 + i64.mul + local.set $4 + local.get $8 + i64.const 10 + i64.mul + local.tee $1 + local.get $10 + i64.extend_i32_s + i64.shr_u + local.tee $2 + local.get $5 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $5 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $5 + i32.const 1 + i32.add + local.set $5 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.and + local.tee $8 + local.get $4 + i64.ge_u + br_if $while-continue|4 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 + local.get $7 + i32.sub i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int16Array#lastIndexOf + i32.shl + i32.const 10736 + i32.add + i64.load32_u + i64.mul + local.set $1 + local.get $0 + local.get $5 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 + i32.sub i32.const 1 - i32.const -11 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9 - call $~lib/typedarray/Int16Array#subarray + i32.shl + i32.add local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $1 + local.get $8 + i64.gt_u + local.get $4 + local.get $8 + i64.sub + local.get $12 + i64.ge_u + i32.and + if (result i32) + local.get $1 + local.get $8 + local.get $12 + i64.add + local.tee $2 + i64.gt_u + local.get $1 + local.get $8 + i64.sub + local.get $2 + local.get $1 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $12 + i64.add + local.set $8 + br $while-continue|6 + end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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 + local.get $7 + i32.store16 + local.get $5 ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (local $0 i32) (local $1 i32) - (local $2 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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 i32.store offset=4 + local.get $5 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + 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 $7 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + 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/Uint8ClampedArray#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 7728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $10 + loop $for-loop|0 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $1 + local.get $9 + i32.add + i32.const 255 + local.get $10 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.sub + i32.const 31 + i32.shr_s + local.get $4 + i32.or + local.get $4 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int16Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int16Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9 - call $~lib/typedarray/Uint16Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int16Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int16Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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/Int32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 i32.const 0 - local.get $2 + i32.const 64 + i32.const 11728 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $4 + i32.const 3 + i32.add i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.add + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + i32.const 0 + local.set $1 + loop $for-loop|00 local.get $1 - i32.eq - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $8 + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $2 + local.get $2 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $2 + f32.const 255 + f32.min + f32.const 0 + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 i32.const 0 - i32.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load + i32.const 64 + i32.const 11824 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11856 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $4 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|01 local.get $1 - i32.eq - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $5 + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $3 + f64.const 255 + f64.min + f64.const 0 + f64.max + i32.trunc_sat_f64_u + else + i32.const 0 + end + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|01 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11888 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $4 + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 7 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $6 + i32.const 0 + local.set $1 + loop $for-loop|02 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $5 + i32.add + i32.const 255 + local.get $1 + local.get $6 + i32.add + i32.load8_s + local.tee $7 + i32.sub + i32.const 31 + i32.shr_s + local.get $7 + i32.or + local.get $7 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|02 + end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11920 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -30800,756 +32461,877 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 f32) + (local $4 f64) + (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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int32Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store offset=4 + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=12 - local.get $2 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $7 + i32.store offset=4 + local.get $7 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + 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 $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11520 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $1 + local.get $6 + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + i32.trunc_sat_f32_u + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11600 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11632 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $1 + local.get $7 + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_u + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11664 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 11696 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 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/testTypedArraySet<~lib/typedarray/Uint64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 11 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const -1 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Int32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Int32Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Int32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Int32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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/Uint32Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + 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 $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + 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 $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.eq - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 13872 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $7 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 local.get $1 - i32.eq - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $7 + i32.lt_s + if + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + i64.trunc_sat_f32_u + i64.const 0 + local.get $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + select + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 14032 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 14144 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $8 + local.get $1 + i32.const 3 + i32.shl + local.tee $9 + i32.add + f64.load + local.set $3 + local.get $7 + local.get $9 + i32.add + local.get $3 + i64.trunc_sat_f64_u + i64.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 14256 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 69 + i32.const 14368 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -31557,755 +33339,884 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 f32) + (local $4 f64) + (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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint32Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + 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 $2 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 7728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 12896 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $6 + i32.const 3 i32.add - local.set $0 - br $for-loop|0 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $10 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $10 + local.get $1 + i32.const 2 + i32.shl + local.tee $7 + i32.add + f32.load + local.set $3 + local.get $7 + local.get $9 + i32.add + local.get $3 + i32.trunc_sat_f32_u + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 13008 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $0 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 13072 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_u + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 13136 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 67 + i32.const 13200 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const -1 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 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/testTypedArraySet<~lib/typedarray/Uint16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 10 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -100 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 11 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const -1 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 3 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 3 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 2 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -10 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const -11 - call $~lib/typedarray/Uint32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9 - call $~lib/typedarray/Uint32Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 9 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 11 - i32.const 0 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/typedarray/Uint32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 2 - call $~lib/typedarray/Uint32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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/Int64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + 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 $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12240 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 6 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 local.get $1 - i64.eq - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 + local.get $8 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + i32.trunc_sat_f32_u + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end end - end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12336 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12384 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 local.get $1 - i64.eq - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_u + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12432 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 66 + i32.const 12480 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -32313,756 +34224,877 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 f32) + (local $4 f64) + (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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store offset=4 + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7728 + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + 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 $2 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 7728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11312 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.const 3 i32.add - local.set $0 - br $for-loop|0 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $1 + local.get $6 + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + i32.trunc_sat_f32_s + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11392 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11424 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 2 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $1 + local.get $7 + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_s + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11456 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 16 + i32.const 11488 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const -1 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 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/testTypedArraySet<~lib/typedarray/Int64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f64) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Int64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const 10 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const -100 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i64.const 0 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i64.const 11 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i64.const -1 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i64.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const 100 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const -10 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const -11 - call $~lib/typedarray/Int64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9 - call $~lib/typedarray/Int64Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 4 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 5 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 9 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 10 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 5 - i32.const 1 - call $~lib/typedarray/Int64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 5 - i32.const 2 - call $~lib/typedarray/Int64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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/Uint64Array#indexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - local.get $1 - i64.eq - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + 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 $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + 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 $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 i32.const 0 - i32.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13264 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $7 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 local.get $1 - i64.eq - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + local.get $7 + i32.lt_s + if + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + i64.trunc_sat_f32_s + i64.const 0 + local.get $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + select + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13424 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13536 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 16 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $8 + local.get $1 + i32.const 3 + i32.shl + local.tee $9 + i32.add + f64.load + local.set $3 + local.get $7 + local.get $9 + i32.add + local.get $3 + i64.trunc_sat_f64_s + i64.const 0 + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.eq + select + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13648 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13760 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -33070,670 +35102,884 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 f32) + (local $4 f64) + (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.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 i32.store offset=4 + local.get $8 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7728 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + 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 $2 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 7728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12528 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $6 + i32.const 3 i32.add - local.set $0 - br $for-loop|0 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 12 + i32.add + local.set $9 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $10 + loop $for-loop|0 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $10 + local.get $1 + i32.const 2 + i32.shl + local.tee $7 + i32.add + f32.load + local.set $3 + local.get $7 + local.get $9 + i32.add + local.get $3 + i32.trunc_sat_f32_s + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12640 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $0 + local.get $8 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12704 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 8 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_s + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12768 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 17 + i32.const 12832 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 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/testTypedArraySet<~lib/typedarray/Int16Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const -1 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const 10 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const -100 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i64.const 0 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i64.const 11 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i64.const -1 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - i64.const 3 - call $~lib/typedarray/Uint64Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 4 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 3 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 3 - i32.const 2 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const 100 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const -10 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 1 - i32.const -11 - call $~lib/typedarray/Uint64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9 - call $~lib/typedarray/Uint64Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 3 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 4 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 5 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 9 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 10 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 11 - i32.const 0 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 5 - i32.const 1 - call $~lib/typedarray/Uint64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 5 - i32.const 2 - call $~lib/typedarray/Uint64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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/Float32Array#indexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 - i32.add - local.tee $2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $2 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + 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 $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $2 - local.get $3 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 11952 + call $~lib/rt/__newArray + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $0 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $8 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 6 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $9 + loop $for-loop|0 local.get $1 - f32.eq - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 + local.get $8 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $9 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $3 + i32.trunc_sat_f32_s + i32.const 0 + local.get $3 + local.get $3 + f32.sub + f32.const 0 + f32.eq + select + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12048 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $0 + local.get $7 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12096 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11184 + call $~lib/array/Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $6 + i32.const 2 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 4 + i32.add + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11184 + i32.store offset=8 + i32.const 11188 + i32.load + local.set $8 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $6 + i32.lt_s + if + local.get $7 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $4 + i32.trunc_sat_f64_s + i32.const 0 + local.get $4 + local.get $4 + f64.sub + f64.const 0 + f64.eq + select + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12144 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=20 + local.get $0 + local.get $5 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $0 + local.get $2 + call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12192 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -33741,842 +35987,699 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.tee $3 - i32.eqz - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.get $1 - f32.eq - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 - end - end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result i32) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + (local $0 i32) + (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7728 + local.get $2 + i32.store offset=4 + local.get $2 + 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 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $5 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $7 + loop $for-loop|0 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + f64.convert_i32_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 63 + i32.const 14784 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11088 + call $~lib/array/Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $5 + i32.const 3 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=8 + i32.const 11092 + i32.load + local.set $7 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $5 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + f64.promote_f32 + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 63 + i32.const 14944 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $2 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Int64Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.store offset=8 local.get $0 - i32.const 1 + call $~lib/typedarray/Int64Array#get:length + local.get $5 + i32.const 6 i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 0 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 11 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const -1 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 3 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 3 - i32.const 3 - call $~lib/typedarray/Float32Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 3 - i32.const 4 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 1 - i32.const 10 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 1 - i32.const -100 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - f32.const 0 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - f32.const 11 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - f32.const -1 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - f32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 3 - i32.const 4 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 3 - i32.const 3 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 3 - i32.const 2 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 1 - i32.const 100 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 1 - i32.const -10 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 1 - i32.const -11 - call $~lib/typedarray/Float32Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9 - call $~lib/typedarray/Float32Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 3 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 4 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 5 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 9 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 10 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 11 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 5 - i32.const 1 - call $~lib/typedarray/Float32Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 5 - i32.const 2 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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/Float64Array#indexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - local.get $2 - local.get $3 - i32.ge_s - i32.or - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" - drop - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - local.get $3 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 48 i32.add - local.tee $2 - i32.const 0 + local.set $6 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 0 - i32.gt_s - select - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + i32.store offset=8 local.get $2 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $0 - local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $1 + loop $for-loop|01 local.get $1 - f64.eq - br_if $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" - drop - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 + local.get $5 + i32.lt_s + if + local.get $6 + local.get $1 + i32.const 3 + i32.shl + local.tee $7 + i32.add + local.get $2 + local.get $7 + i32.add + i64.load + f64.convert_i64_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|01 + end end - end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const -1 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.tee $3 - i32.eqz - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" - drop - local.get $2 - local.get $3 - i32.add - local.get $3 - i32.const 1 - i32.sub - local.get $2 - local.get $2 - local.get $3 - i32.ge_s - select - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $0 - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 63 + i32.const 15056 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/typedarray/Int8Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length local.get $2 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $3 i32.const 0 - i32.ge_s - if + local.set $1 + loop $for-loop|02 + local.get $1 local.get $2 - local.get $0 + i32.lt_s + if + local.get $5 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $1 + local.get $3 + i32.add + i32.load8_u + f64.convert_i32_u + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|02 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.const 4 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 32 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|03 + local.get $1 local.get $2 - i32.const 3 - i32.shl - i32.add - f64.load + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $4 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + f64.convert_i32_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|03 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $2 + i32.const 7 + i32.add + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 56 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|04 local.get $1 - f64.eq - br_if $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" - drop local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|0 + i32.lt_s + if + local.get $3 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_s + f64.convert_i32_s + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|04 + end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 3 + i32.const 63 + i32.const 15168 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const -1 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if i32.const 49120 i32.const 49168 i32.const 1 @@ -34584,2388 +36687,257 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array#lastIndexOf - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable ) - (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> (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 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + 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 $2 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=12 local.get $2 - local.get $0 - i32.const 7728 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $0 + i32.store offset=4 + local.get $2 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 0 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 603 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 11 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 604 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const -1 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 605 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 3 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 606 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 3 - i32.const 2 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 607 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 3 - i32.const 3 - call $~lib/typedarray/Float64Array#indexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 608 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 3 - i32.const 4 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 609 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 1 - i32.const 10 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 610 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 1 - i32.const -100 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 611 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - f64.const 0 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - f64.const 11 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - f64.const -1 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $2 - f64.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 3 - i32.const 4 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 3 - i32.const 3 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 618 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 3 - i32.const 2 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 619 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 1 - i32.const 100 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 620 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 1 - i32.const -10 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 621 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 1 - i32.const -11 - call $~lib/typedarray/Float64Array#lastIndexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 622 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 4 - i32.const 9 - call $~lib/typedarray/Float64Array#subarray - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 3 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 626 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 4 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - if - i32.const 0 - i32.const 1568 - i32.const 627 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 5 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 628 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 9 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 629 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 10 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 630 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 11 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 631 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 5 - i32.const 1 - call $~lib/typedarray/Float64Array#indexOf - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 5 - i32.const 2 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 633 - 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/string/String#substring (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - i32.const 1 - i32.shl - local.set $3 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.ge_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $3 - i32.sub - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - return - end - local.get $3 - i32.eqz - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $3 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/typedarray/Int8Array#join (param $0 i32) (result 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1408 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1408 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1408 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1408 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$714 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$714 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1409 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1409 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1409 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1409 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint8Array#toString (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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Uint8Array#join - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#join (param $0 i32) (result 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1410 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1410 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load16_s - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1410 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1410 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1411 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1411 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1411 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1411 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int32Array#join (param $0 i32) (result 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1412 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1412 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1412 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add - local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1412 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1413 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1413 - end - local.get $6 - i32.eqz - if - local.get $5 - i32.load - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1413 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $2 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1413 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) - (local $1 i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$5 - local.get $0 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$5 - end - block $folding-inner0 - local.get $6 - i32.eqz - if - block $__inlined_func$~lib/util/number/itoa64 (result i32) - local.get $5 - i64.load - i64.extend32_s - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $2 - i64.sub - local.get $2 - local.get $2 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.const 1 - i32.shl - local.tee $0 - select - local.tee $2 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $4 - i32.const 1 - i32.shl - local.get $0 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $0 - local.get $1 - i32.add - local.get $3 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $2 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $2 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $2 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $2 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $2 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $2 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $2 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $3 - i32.const 1 - i32.shl - local.get $0 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $0 - local.get $1 - i32.add - local.get $2 - local.get $3 - call $~lib/util/number/utoa64_dec_lut - end - local.get $0 - if - local.get $1 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - end - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $7 - i32.const 21 - i32.add - local.get $6 - i32.mul - i32.const 21 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $7 - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $7 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $7 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + 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 $3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + 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 $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11008 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $4 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=8 + i32.const 11012 + i32.load + local.set $8 + loop $for-loop|0 local.get $1 - i32.add - local.tee $1 local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + local.get $7 local.get $1 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 + i32.const 2 + i32.shl + local.tee $5 + i32.add + local.get $5 + local.get $8 + i32.add + i32.load + f32.convert_i32_s + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$5 end 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 - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 62 + i32.const 14480 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=20 + local.get $0 + i32.const 11088 + i32.const 3 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 62 + i32.const 14592 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s @@ -36973,350 +36945,101 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $7 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - return - end - local.get $7 - i32.eqz - if - local.get $0 - i64.load - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64$749 - local.get $3 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - local.set $1 - br $__inlined_func$~lib/util/number/utoa64$749 - end - local.get $3 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.wrap_i64 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $3 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $3 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $3 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $3 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $3 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $3 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $3 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $0 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $3 - local.get $0 - call $~lib/util/number/utoa64_dec_lut - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner1 - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 9584 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 20 + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $4 + i32.const 6 i32.add - local.get $7 - i32.mul - i32.const 20 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 24 i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $6 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 local.get $4 - local.get $7 i32.lt_s if - local.get $6 - local.get $2 - i32.const 1 + local.get $5 + local.get $1 + i32.const 2 i32.shl i32.add - local.get $0 - local.get $4 + local.get $6 + local.get $1 i32.const 3 i32.shl i32.add i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 + f32.convert_i64_s + f32.store local.get $1 - if - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.set $2 - end - local.get $4 i32.const 1 i32.add - local.set $4 - br $for-loop|0 + local.set $1 + br $for-loop|00 end end - local.get $5 - local.get $6 - local.get $2 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 62 + i32.const 14656 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner1 - end + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + i32.const 12 + i32.sub global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/typedarray/Uint64Array#join (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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - call $~lib/util/string/joinIntegerArray - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s @@ -37324,256 +37047,167 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $8 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $4 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - return - end - local.get $8 - i32.eqz - if - local.get $0 - f32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.set $2 + i32.const 0 + local.set $1 + loop $for-loop|01 + local.get $1 + local.get $4 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 9664 - local.set $0 - block $~lib/util/number/dtoa_impl|inlined.0 + if local.get $5 - f64.promote_f32 - local.tee $3 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.ne - if - i32.const 9696 - local.set $0 - local.get $3 - local.get $3 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 9728 - i32.const 9776 - local.get $3 - f64.const 0 - f64.lt - select - local.set $0 - br $~lib/util/number/dtoa_impl|inlined.0 - end - i32.const 9808 - local.get $3 - i32.const 1 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer local.get $1 i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 9808 + i32.shl + i32.add local.get $1 - memory.copy + local.get $2 + i32.add + i32.load8_u + f32.convert_i32_u + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|01 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner1 end global.get $~lib/memory/__stack_pointer - i32.const 9584 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 28 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + call $~lib/typedarray/Int16Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + i32.const 4 i32.add - local.get $8 - i32.mul - i32.const 28 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + i32.const 16 i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $3 + i32.load offset=4 + local.set $3 + i32.const 0 + local.set $1 + loop $for-loop|02 + local.get $1 + local.get $2 i32.lt_s if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 local.get $4 + local.get $1 i32.const 2 i32.shl i32.add - f32.load - call $~lib/util/number/dtoa_buffered - local.get $2 + local.get $3 + local.get $1 + i32.const 1 + i32.shl i32.add - local.set $2 + i32.load16_s + f32.convert_i32_s + f32.store local.get $1 - if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.set $2 - end - local.get $4 i32.const 1 i32.add - local.set $4 - br $for-loop|0 + local.set $1 + br $for-loop|02 end end - local.get $6 - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - f32.load - call $~lib/util/number/dtoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner1 - end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float32Array#join (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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - call $~lib/util/string/joinFloatArray - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s @@ -37581,187 +37215,93 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 - i32.const 1 - i32.sub - local.tee $7 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - return - end - local.get $7 - i32.eqz - if - local.get $0 - f64.load - 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 9664 - local.set $0 - block $~lib/util/number/dtoa_impl|inlined.1 - local.get $3 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.1 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.ne - if - i32.const 9696 - local.set $0 - local.get $3 - local.get $3 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.1 - i32.const 9728 - i32.const 9776 - local.get $3 - f64.const 0 - f64.lt - select - local.set $0 - br $~lib/util/number/dtoa_impl|inlined.1 - end - i32.const 9808 - local.get $3 - i32.const 0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 9808 - local.get $1 - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner1 - end + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 9584 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.const 28 + i32.const 11264 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11264 + call $~lib/array/Array#get:length + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $2 + i32.const 7 i32.add - local.get $7 - i32.mul + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 i32.const 28 i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 - local.get $4 - local.get $7 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 11264 + i32.store offset=8 + i32.const 11268 + i32.load + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|03 + local.get $1 + local.get $2 i32.lt_s if - local.get $6 - local.get $2 - i32.const 1 + local.get $3 + local.get $1 + i32.const 2 i32.shl i32.add - local.get $0 + local.get $1 local.get $4 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 i32.add - local.set $2 + i32.load8_s + f32.convert_i32_s + f32.store local.get $1 - if - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $2 - i32.add - local.set $2 - end - local.get $4 i32.const 1 i32.add - local.set $4 - br $for-loop|0 + local.set $1 + br $for-loop|03 end end - local.get $5 - local.get $6 - local.get $2 - i32.const 1 - i32.shl + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner1 - end + i32.store offset=4 + i32.const 10 + i32.const 2 + i32.const 62 + i32.const 14720 + call $~lib/rt/__newArray + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.store offset=20 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> + global.get $~lib/memory/__stack_pointer + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 return end i32.const 49120 @@ -37771,292 +37311,14 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Float64Array#join (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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - call $~lib/util/string/joinFloatArray - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $3 - local.get $1 - i32.lt_u - if - i32.const 1360 - i32.const 1632 - i32.const 1860 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - i32.const -1 - i32.eq - if (result i32) - local.get $3 - local.get $1 - i32.sub - else - i32.const 1056 - i32.const 1632 - i32.const 1869 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.set $2 - else - local.get $1 - local.get $2 - i32.add - local.get $3 - i32.gt_s - if - i32.const 1056 - i32.const 1632 - i32.const 1874 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - local.get $3 - local.get $0 - i32.store - local.get $3 - local.get $0 - call $~lib/rt/itcms/__link - local.get $3 - local.get $2 - i32.store offset=8 - local.get $3 - local.get $0 - local.get $1 - i32.add - i32.store offset=4 - 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 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 1360 + i32.const 1632 + i32.const 1902 + i32.const 5 call $~lib/builtins/abort unreachable ) - (func $~lib/arraybuffer/ArrayBuffer#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $3 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - local.get $2 - local.get $3 - i32.add - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - else - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - end - local.get $1 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - local.get $1 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -38087,7 +37349,7 @@ local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $2 i32.store offset=8 loop $for-loop|0 @@ -38106,8 +37368,9 @@ i32.const 10928 local.get $0 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 1 i32.add @@ -38195,7 +37458,7 @@ local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 4 + i32.const 6 call $~lib/rt/itcms/__new local.tee $5 i32.store offset=8 @@ -38233,14 +37496,14 @@ i32.store offset=4 local.get $2 local.get $0 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 local.get $5 local.get $0 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get local.get $3 i32.ne if @@ -38271,13 +37534,14 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -38299,31 +37563,30 @@ i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.get $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $2 + local.get $1 local.get $0 i32.const 10928 local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 1 i32.add @@ -38332,33 +37595,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 local.get $0 - local.get $4 local.get $5 - local.get $2 + local.get $6 + local.get $1 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -38408,23 +37671,33 @@ i32.const 20 i32.sub i32.load offset=16 - local.set $4 + local.tee $5 + i32.const 7 + i32.and + if + i32.const 1056 + i32.const 1632 + i32.const 1865 + i32.const 9 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 6 + i32.const 12 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=8 - local.get $5 + local.get $6 local.get $0 i32.store - local.get $5 + local.get $6 local.get $0 call $~lib/rt/itcms/__link + local.get $6 local.get $5 - local.get $4 i32.store offset=8 - local.get $5 + local.get $6 local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -38435,30 +37708,30 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 i32.const 0 local.set $0 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get + call $~lib/typedarray/Uint64Array#__get local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get + call $~lib/typedarray/Uint64Array#__get local.get $3 - i32.ne + i64.ne if i32.const 0 i32.const 1568 @@ -38487,7 +37760,7 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -38518,7 +37791,7 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Uint32Array#constructor local.tee $1 i32.store offset=8 loop $for-loop|0 @@ -38537,8 +37810,7 @@ i32.const 10928 local.get $0 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 1 i32.add @@ -38624,7 +37896,7 @@ i32.sub i32.load offset=16 local.tee $4 - i32.const 1 + i32.const 3 i32.and if i32.const 1056 @@ -38636,7 +37908,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 7 + i32.const 10 call $~lib/rt/itcms/__new local.tee $5 i32.store offset=8 @@ -38674,14 +37946,14 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Uint32Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 local.get $5 local.get $0 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Uint32Array#__get local.get $3 i32.ne if @@ -38938,7 +38210,7 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" (local $0 i32) (local $1 i32) (local $2 i32) @@ -38966,29 +38238,30 @@ i32.store offset=4 i32.const 10928 call $~lib/array/Array#get:length - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $2 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10928 i32.store offset=12 - local.get $1 + local.get $2 local.get $0 i32.const 10928 local.get $0 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set local.get $0 i32.const 1 i32.add @@ -38997,33 +38270,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 - local.get $1 + local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 local.get $0 local.get $4 local.get $5 - local.get $1 + local.get $2 i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice @@ -39073,20 +38346,10 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $4 - i32.const 3 - i32.and - if - i32.const 1056 - i32.const 1632 - i32.const 1865 - i32.const 9 - call $~lib/builtins/abort - unreachable - end + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 9 + i32.const 4 call $~lib/rt/itcms/__new local.tee $5 i32.store offset=8 @@ -39116,22 +38379,22 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $2 + local.get $1 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Int8Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 local.get $5 local.get $0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Int8Array#__get local.get $3 i32.ne if @@ -39162,13 +38425,14 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -39193,7 +38457,7 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Uint32Array#constructor + call $~lib/typedarray/Int64Array#constructor local.tee $1 i32.store offset=8 loop $for-loop|0 @@ -39212,7 +38476,8 @@ i32.const 10928 local.get $0 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 i32.const 1 i32.add @@ -39234,19 +38499,19 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 local.get $0 - local.get $4 local.get $5 + local.get $6 local.get $1 i32.load offset=8 i32.add @@ -39297,8 +38562,8 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $4 - i32.const 3 + local.tee $5 + i32.const 7 i32.and if i32.const 1056 @@ -39310,20 +38575,20 @@ end global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 10 + i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=8 - local.get $5 + local.get $6 local.get $0 i32.store - local.get $5 + local.get $6 local.get $0 call $~lib/rt/itcms/__link + local.get $6 local.get $5 - local.get $4 i32.store offset=8 - local.get $5 + local.get $6 local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -39334,7 +38599,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=20 i32.const 0 local.set $0 @@ -39348,16 +38613,16 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int64Array#__get local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int64Array#__get local.get $3 - i32.ne + i64.ne if i32.const 0 i32.const 1568 @@ -39386,14 +38651,13 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -39418,7 +38682,7 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Int64Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $1 i32.store offset=8 loop $for-loop|0 @@ -39437,8 +38701,7 @@ i32.const 10928 local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + call $~lib/typedarray/Int32Array#__set local.get $0 i32.const 1 i32.add @@ -39460,19 +38723,19 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 local.get $0 + local.get $4 local.get $5 - local.get $6 local.get $1 i32.load offset=8 i32.add @@ -39523,8 +38786,8 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $5 - i32.const 7 + local.tee $4 + i32.const 3 i32.and if i32.const 1056 @@ -39536,20 +38799,20 @@ end global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 11 + i32.const 9 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=8 - local.get $6 + local.get $5 local.get $0 i32.store - local.get $6 + local.get $5 local.get $0 call $~lib/rt/itcms/__link - local.get $6 local.get $5 + local.get $4 i32.store offset=8 - local.get $6 + local.get $5 local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -39560,7 +38823,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=20 i32.const 0 local.set $0 @@ -39574,16 +38837,16 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/typedarray/Int64Array#__get + call $~lib/typedarray/Int32Array#__get local.set $3 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 - call $~lib/typedarray/Int64Array#__get + call $~lib/typedarray/Int32Array#__get local.get $3 - i64.ne + i32.ne if i32.const 0 i32.const 1568 @@ -39612,14 +38875,13 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -39644,7 +38906,7 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Uint64Array#constructor + call $~lib/typedarray/Int16Array#constructor local.tee $1 i32.store offset=8 loop $for-loop|0 @@ -39663,8 +38925,8 @@ i32.const 10928 local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.extend16_s + call $~lib/typedarray/Int16Array#__set local.get $0 i32.const 1 i32.add @@ -39686,19 +38948,19 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 local.get $0 + local.get $4 local.get $5 - local.get $6 local.get $1 i32.load offset=8 i32.add @@ -39749,8 +39011,8 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $5 - i32.const 7 + local.tee $4 + i32.const 1 i32.and if i32.const 1056 @@ -39762,20 +39024,20 @@ end global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 12 + i32.const 7 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=8 - local.get $6 + local.get $5 local.get $0 i32.store - local.get $6 + local.get $5 local.get $0 call $~lib/rt/itcms/__link - local.get $6 local.get $5 + local.get $4 i32.store offset=8 - local.get $6 + local.get $5 local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -39786,7 +39048,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=20 i32.const 0 local.set $0 @@ -39800,16 +39062,16 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/typedarray/Uint64Array#__get + call $~lib/typedarray/Int16Array#__get local.set $3 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 - call $~lib/typedarray/Uint64Array#__get + call $~lib/typedarray/Int16Array#__get local.get $3 - i64.ne + i32.ne if i32.const 0 i32.const 1568 @@ -39838,11 +39100,11 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -39870,7 +39132,7 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Float32Array#constructor + call $~lib/typedarray/Float64Array#constructor local.tee $1 i32.store offset=8 loop $for-loop|0 @@ -39889,8 +39151,8 @@ i32.const 10928 local.get $0 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 1 i32.add @@ -39976,7 +39238,7 @@ i32.sub i32.load offset=16 local.tee $5 - i32.const 3 + i32.const 7 i32.and if i32.const 1056 @@ -39988,7 +39250,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 13 + i32.const 14 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=8 @@ -40026,16 +39288,16 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/typedarray/Float32Array#__get + call $~lib/typedarray/Float64Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 local.get $0 - call $~lib/typedarray/Float32Array#__get + call $~lib/typedarray/Float64Array#__get local.get $3 - f32.ne + f64.ne if i32.const 0 i32.const 1568 @@ -40064,11 +39326,11 @@ call $~lib/builtins/abort unreachable ) - (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" + (func $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -40096,7 +39358,7 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Float64Array#constructor + call $~lib/typedarray/Float32Array#constructor local.tee $1 i32.store offset=8 loop $for-loop|0 @@ -40115,8 +39377,8 @@ i32.const 10928 local.get $0 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 1 i32.add @@ -40202,7 +39464,7 @@ i32.sub i32.load offset=16 local.tee $5 - i32.const 7 + i32.const 3 i32.and if i32.const 1056 @@ -40214,7 +39476,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 14 + i32.const 13 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=8 @@ -40252,16 +39514,16 @@ i32.store offset=4 local.get $1 local.get $0 - call $~lib/typedarray/Float64Array#__get + call $~lib/typedarray/Float32Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 local.get $0 - call $~lib/typedarray/Float64Array#__get + call $~lib/typedarray/Float32Array#__get local.get $3 - f64.ne + f32.ne if i32.const 0 i32.const 1568 @@ -40288,503 +39550,127 @@ i32.const 1 i32.const 1 call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $1 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $0 - local.get $2 - i32.add - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store8 - 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> (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 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_s - local.set $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 $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - local.get $1 - i32.load offset=4 - i32.add - i32.load8_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i32.ne - if - i32.const 11344 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_s - local.get $5 - f64.convert_i32_s - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + unreachable + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i64) (result i32) local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i64.lt_u + local.get $0 local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer + i64.gt_u + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.store offset=8 + local.get $1 + i32.lt_u local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $2 - i32.const 6 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.gt_u + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 65535 + i32.and + local.tee $1 local.get $0 - i32.store offset=8 + i32.const 65535 + i32.and + local.tee $0 + i32.gt_u local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store8 - 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.gt_u i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.extend8_s + local.tee $1 + local.get $0 + i32.extend8_s + local.tee $0 + i32.gt_s + local.get $0 local.get $1 - i32.store offset=8 + i32.gt_s + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i64) (result i32) + local.get $0 local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer + i64.lt_s local.get $0 - i32.store offset=8 + local.get $1 + i64.gt_s + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $2 + local.get $1 i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $1 - i32.load offset=4 - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.gt_s + i32.sub ) - (func $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 + (func $"std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.extend16_s + local.tee $1 + local.get $0 + i32.extend16_s + local.tee $0 + i32.gt_s + local.get $0 + local.get $1 + i32.gt_s i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 f64) (result i32) local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + f64.lt + local.get $0 local.get $1 - i32.store offset=8 + f64.gt + i32.sub + ) + (func $"std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 f32) (result i32) + local.get $0 local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer + f32.lt local.get $0 - i32.store offset=8 + local.get $1 + f32.gt + i32.sub + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $2 - i32.const 4 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 65535 + i32.and + i32.eqz + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=8 + f64.const 0 + f64.eq + ) + (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store8 - 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 12 - i32.add - global.set $~lib/memory/__stack_pointer + f32.const 0 + f32.eq ) - (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" + (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -40799,535 +39685,422 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11264 + i32.const 7616 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $1 - i32.const 7 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 7 - i32.add - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11312 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 11088 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 local.get $0 - i32.store offset=8 + i32.const 7616 local.get $0 - i32.load offset=4 - i32.const 3 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s - if - local.get $1 - local.get $6 - i32.add - local.get $9 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - i32.trunc_sat_f32_s - i32.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11392 - call $~lib/rt/__newArray - local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 local.get $1 - i32.store offset=20 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - local.get $7 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11424 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + local.get $3 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + call $~lib/typedarray/Uint8ClampedArray#__get global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 7616 + local.get $4 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $6 - i32.const 2 + i32.const 1 i32.add - i32.lt_s - br_if $folding-inner1 + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__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 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 local.get $0 - i32.store offset=8 + i32.const 7616 local.get $0 - i32.load offset=4 - i32.const 2 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $1 - local.get $7 - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $4 - i32.trunc_sat_f64_s - i32.const 0 - local.get $4 - local.get $4 - f64.sub - f64.const 0 - f64.eq - select - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11456 - call $~lib/rt/__newArray - local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 local.get $1 - i32.store offset=20 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.get $5 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 + local.get $3 local.get $0 - local.get $2 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Uint8Array#__get global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 16 - i32.const 11488 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|1 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + 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 offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/typedarray/Uint8Array#__uget (param $0 i32) (param $1 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 16320 - i32.lt_s + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__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 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $1 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.add - i32.load8_u + i32.const 3 + call $~lib/typedarray/Uint8Array#__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 24 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" + (local $0 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -41343,524 +40116,629 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + i32.const 7616 + i32.store offset=4 + i32.const 7616 call $~lib/array/Array#get:length - local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store offset=12 loop $for-loop|0 - local.get $2 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 local.get $0 - i32.store + i32.const 7616 local.get $0 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.set $4 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.tee $5 + 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 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 local.get $4 - i32.ne + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne if - 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 + 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 - i32.const 4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 24 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) + (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11520 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 11088 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 local.get $0 - i32.store offset=8 + i32.const 7616 local.get $0 - i32.load offset=4 - i32.const 3 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s - if - local.get $1 - local.get $6 - i32.add - local.get $9 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - i32.trunc_sat_f32_u - i32.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11600 - call $~lib/rt/__newArray - local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 local.get $1 - i32.store offset=20 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $0 - local.get $7 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11632 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + local.get $3 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + call $~lib/typedarray/Uint32Array#__get + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 7616 + local.get $4 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.sub + call $~lib/array/Array#__get + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $6 - i32.const 2 + i32.const 1 i32.add - i32.lt_s - br_if $folding-inner1 + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 local.get $0 - i32.store offset=8 + i32.const 7616 local.get $0 - i32.load offset=4 - i32.const 2 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $1 - local.get $7 - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $4 - i32.trunc_sat_f64_u - i32.const 0 - local.get $4 - local.get $4 - f64.sub - f64.const 0 - f64.eq - select - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11664 - call $~lib/rt/__newArray - local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 local.get $1 - i32.store offset=20 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 - local.get $5 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 + local.get $3 local.get $0 - local.get $2 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> + call $~lib/typedarray/Uint16Array#__get global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11696 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|1 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__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 - i32.const 1360 - i32.const 1632 - i32.const 1902 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint16Array#__get i32.const 5 - call $~lib/builtins/abort - unreachable + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" + (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 4 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -41876,206 +40754,204 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + i32.const 7616 + i32.store offset=4 + i32.const 7616 call $~lib/array/Array#get:length - local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store offset=12 loop $for-loop|0 - local.get $2 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 local.get $0 - i32.store + i32.const 7616 local.get $0 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.set $4 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#__uget - local.tee $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Int8Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.extend8_s i32.ne if - 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 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 8 + i32.ne if - i32.const 49120 - i32.const 49168 - 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 - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $3 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $2 - local.get $3 - i32.add - i32.lt_s - end + local.get $0 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 7 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $2 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.add - local.set $2 + i32.const 2 + call $~lib/typedarray/Int8Array#__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 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $2 - i32.add - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.tee $4 - i32.wrap_i64 - local.tee $5 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i64.extend_i32_s - i32.const 255 - local.get $5 - i32.sub - i32.const 31 - i32.shr_s - i64.extend_i32_s - local.get $4 - i64.or - i64.and - i64.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#__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 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" + (local $0 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -42090,733 +40966,841 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 7616 i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $2 - local.get $3 - i32.add + local.get $4 i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + 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 - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.load offset=4 - i32.add - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $4 + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int64Array#reverse + drop i32.const 0 local.set $0 - loop $for-loop|0 + loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 local.get $0 - local.get $2 - i32.add - i32.const 255 + call $~lib/typedarray/Int64Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 local.get $4 - local.get $0 i32.const 1 - i32.shl - i32.add - i32.load16_s - local.tee $1 i32.sub - i32.const 31 - i32.shr_s - local.get $1 - i32.or - local.get $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 + 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|0 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 24 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" (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) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - 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 $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store offset=4 - 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/Uint8ClampedArray#constructor - local.tee $0 + i32.const 7616 i32.store offset=16 - global.get $~lib/memory/__stack_pointer + local.get $3 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 11008 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 7616 + i32.store offset=16 + local.get $1 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store offset=8 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set local.get $0 - i32.load offset=4 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $10 - loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s - if - local.get $1 - local.get $9 - i32.add - i32.const 255 - local.get $10 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - i32.sub - i32.const 31 - i32.shr_s - local.get $4 - i32.or - local.get $4 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11728 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int32Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $3 local.get $0 - i32.store + call $~lib/typedarray/Int32Array#__get + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11088 + i32.const 7616 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int8Array#get:length + i32.const 7616 local.get $4 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 1 + i32.sub local.get $0 - i32.load offset=4 - i32.const 3 - i32.add - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $8 - i32.add - local.get $9 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $2 - local.get $2 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $2 - f32.const 255 - f32.min - f32.const 0 - f32.max - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end + i32.sub + call $~lib/array/Array#__get + local.get $2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11824 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 + i32.const 7616 + i32.store offset=16 + local.get $3 local.get $0 - local.get $5 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11856 - call $~lib/rt/__newArray - local.set $1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 7616 + i32.store offset=16 + local.get $1 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $4 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store offset=8 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.load offset=4 - i32.const 2 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|01 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $5 - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $3 - f64.const 255 - f64.min - f64.const 0 - f64.max - i32.trunc_sat_f64_u - else - i32.const 0 - end - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|01 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11888 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + local.get $3 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + call $~lib/typedarray/Int16Array#__get global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 + i32.sub + call $~lib/array/Array#__get + i32.extend16_s + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $7 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int16Array#__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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int16Array#__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 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" + (local $0 i32) + (local $1 i32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $3 local.get $0 - i32.store + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 11264 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 7616 + i32.store offset=16 + local.get $1 local.get $0 - call $~lib/typedarray/Int8Array#get:length - local.get $4 - i32.const 7 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 7616 local.get $0 - i32.store offset=8 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.load offset=4 - i32.const 7 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $6 - i32.const 0 - local.set $1 - loop $for-loop|02 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $5 - i32.add - i32.const 255 - local.get $1 - local.get $6 - i32.add - i32.load8_s - local.tee $7 - i32.sub - i32.const 31 - i32.shr_s - local.get $7 - i32.or - local.get $7 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|02 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float64Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 11920 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + local.get $3 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + call $~lib/typedarray/Float64Array#__get global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 + 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 - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|1 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Float64Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (func $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" + (local $0 i32) (local $1 i32) - (local $2 i32) + (local $2 f32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -42831,1800 +41815,2586 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7616 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11008 + i32.const 7616 i32.store offset=4 + i32.const 7616 + call $~lib/array/Array#get:length + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 11008 + local.get $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=12 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=16 + local.get $1 + 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 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $~lib/typedarray/Float32Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $0 + call $~lib/typedarray/Float32Array#__get + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=4 + i32.const 7616 + local.get $4 + 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray local.set $1 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Float32Array#reverse + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $1 - i32.lt_s + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=4 - local.set $2 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|0 + local.get $0 + i32.store offset=4 + local.get $0 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + 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 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3664 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3664 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=16 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 + i32.add + local.get $7 + local.get $2 + local.get $0 + i32.const 3664 + i32.load + call_indirect (type $1) + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + call $~lib/rt/itcms/__link + local.get $1 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $1 - i32.lt_s + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.ne if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#__uget (param $0 i32) (param $1 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - i32.add - i32.load16_s - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" + (local $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 758 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3632 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int16Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3632 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=16 + loop $for-loop|0 local.get $2 - call $~lib/typedarray/Int16Array#__uget - local.tee $5 local.get $4 - i32.ne + i32.lt_s if - i32.const 12000 + local.get $2 + local.get $6 + i32.add + i32.load8_u + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 i32.const 3 + global.set $~argumentsLength 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 + local.get $3 + i32.add + local.get $7 + local.get $2 + local.get $0 + i32.const 3632 + i32.load + call_indirect (type $1) + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 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 $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + call $~lib/rt/itcms/__link + local.get $1 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $2 - i32.const 6 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s + i32.ne if - local.get $3 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $0 + i32.const 0 + i32.const 1568 + i32.const 388 i32.const 3 - i32.shl - i32.add - i64.load - i64.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $2 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.ne if - local.get $3 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.add - i32.load8_u - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" + (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 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3856 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl + local.tee $7 i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 3 + i32.shl + local.tee $8 + i32.add + i64.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3856 + i32.load + call_indirect (type $27) + i64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $2 - i32.const 4 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.get $2 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int16Array#set<~lib/array/Array> (param $0 i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" + (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $1 - i32.const 7 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 14 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3792 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3792 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 2 + i32.shl + local.tee $8 + i32.add + i32.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3792 + i32.load + call_indirect (type $1) + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.lt_s + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.add - i32.load8_s - i32.store16 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $3 i32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 11952 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $9 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - i32.trunc_sat_f32_s - i32.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12048 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $0 - local.get $7 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12096 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $6 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $4 - i32.trunc_sat_f64_s - i32.const 0 - local.get $4 - local.get $4 - f64.sub - f64.const 0 - f64.eq - select - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3728 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3728 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 1 + i32.shl + local.tee $8 + i32.add + i32.load16_u + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3728 + i32.load + call_indirect (type $1) + i32.store16 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12144 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $0 - local.get $5 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12192 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Uint16Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3600 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3600 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=16 + loop $for-loop|0 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $6 + i32.add + i32.load8_s + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $3 + i32.add + local.get $7 + local.get $2 + local.get $0 + i32.const 3600 + i32.load + call_indirect (type $1) + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.get $3 + i32.store + local.get $1 + local.get $3 + call $~lib/rt/itcms/__link + local.get $1 + local.get $3 + i32.store offset=4 + local.get $1 + local.get $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 + i32.const 49120 + i32.const 49168 i32.const 1 - i32.shl - i32.add - i32.load16_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" + (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 i64) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - if + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3824 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 758 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3824 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Uint16Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Uint16Array#__uget - local.tee $5 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 local.get $4 - i32.ne + i32.lt_s if - i32.const 12288 + local.get $6 + local.get $3 + i32.const 3 + i32.shl + local.tee $8 + i32.add + i64.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 i32.const 3 + global.set $~argumentsLength 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 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3824 + i32.load + call_indirect (type $27) + i64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 9 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $3 i32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12240 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $8 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 6 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $1 - local.get $8 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $9 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $3 - i32.trunc_sat_f32_u - i32.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12336 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $0 - local.get $7 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12384 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $6 - i32.const 2 - i32.add + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3760 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3760 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 4 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 + if local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $4 - i32.trunc_sat_f64_u - i32.const 0 - local.get $4 - local.get $4 - f64.sub - f64.const 0 - f64.eq - select - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end + local.get $3 + i32.const 2 + i32.shl + local.tee $8 + i32.add + i32.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3760 + i32.load + call_indirect (type $1) + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12432 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $0 - local.get $5 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 1 - i32.const 66 - i32.const 12480 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 49120 - i32.const 49168 + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/array/Array#get:length - local.set $3 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3696 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3696 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1 - else + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 1 + i32.shl + local.tee $8 + i32.add + i32.load16_s + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3696 + i32.load + call_indirect (type $1) + i32.store16 + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $2 - local.get $3 + i32.const 16 i32.add - i32.lt_s - end - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result f64) local.get $0 - i32.store offset=8 local.get $0 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + f64.mul ) - (func $~lib/typedarray/Int32Array#__uget (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" + (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 f64) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3920 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3920 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl + local.tee $7 i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 3 + i32.shl + local.tee $8 + i32.add + f64.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3920 + i32.load + call_indirect (type $32) + f64.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $1 + local.get $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result f32) local.get $0 - i32.store local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + f32.mul ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" + (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 f32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - i32.ne - if + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3888 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 758 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - loop $for-loop|0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3888 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=16 + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 2 + i32.shl + local.tee $8 + i32.add + f32.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $8 + i32.add + local.get $9 + local.get $3 + local.get $0 + i32.const 3888 + i32.load + call_indirect (type $33) + f32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $1 local.get $2 - local.get $3 - i32.lt_s + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $2 + i32.store offset=4 + local.get $1 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 388 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 389 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int32Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Int32Array#__uget - local.tee $5 - local.get $4 - i32.ne - if - 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 + i32.const 0 + i32.const 1568 + i32.const 390 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -44639,73 +44409,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 7728 i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $2 - i32.const 6 - i32.add - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 loop $for-loop|0 local.get $0 - local.get $2 + local.get $1 i32.lt_s if - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 + local.get $2 local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $1 + i32.const 7728 local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store32 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 i32.const 1 i32.add @@ -44714,782 +44453,1016 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length local.get $2 - i32.lt_s + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $0 - local.get $1 - i32.add - i32.load8_u - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + 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 - ) - (func $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - i32.store offset=8 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $2 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 4 - i32.add - i32.lt_s + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + 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 - ) - (func $~lib/typedarray/Int32Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11264 + local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $1 - i32.const 7 - i32.add - i32.lt_s + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 28 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $3 - i32.const 0 - local.set $0 - loop $for-loop|0 - 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 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) - (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 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $0 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12528 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $6 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $10 - loop $for-loop|0 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $10 - local.get $1 - i32.const 2 - i32.shl - local.tee $7 - i32.add - f32.load - local.set $3 - local.get $7 - local.get $9 - i32.add - local.get $3 - i32.trunc_sat_f32_s - i32.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12640 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $0 - local.get $8 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12704 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $6 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $4 - i32.trunc_sat_f64_s - i32.const 0 - local.get $4 - local.get $4 - f64.sub - f64.const 0 - f64.eq - select - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12768 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $0 - local.get $5 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 + i32.const 7728 + i32.store offset=12 + local.get $2 local.get $0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer + i32.const 7728 local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 17 - i32.const 12832 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + 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 $~lib/typedarray/Uint32Array#__uget (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint8Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9 i32.const 0 - i32.store + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 - local.get $1 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 i32.const 2 - i32.shl - i32.add - i32.load + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + 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/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" + (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 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -45505,530 +45478,524 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7728 i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + i32.const 7728 + i32.store offset=4 + i32.const 7728 call $~lib/array/Array#get:length - local.get $3 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 + local.get $2 + local.get $0 + i32.const 7728 + 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const 10 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const -100 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 0 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 11 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const -1 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 3 + call $~lib/typedarray/Uint64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const 100 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const -10 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 621 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Uint32Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Uint32Array#__uget - local.tee $5 - local.get $4 - i32.ne - if - 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const -11 + call $~lib/typedarray/Uint64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $0 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 12896 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $6 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 12 - i32.add - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $10 - loop $for-loop|0 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $10 - local.get $1 - i32.const 2 - i32.shl - local.tee $7 - i32.add - f32.load - local.set $3 - local.get $7 - local.get $9 - i32.add - local.get $3 - i32.trunc_sat_f32_u - i32.const 0 - local.get $3 - local.get $3 - f32.sub - f32.const 0 - f32.eq - select - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13008 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $0 - local.get $8 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13072 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $6 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 8 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $4 - i32.trunc_sat_f64_u - i32.const 0 - local.get $4 - local.get $4 - f64.sub - f64.const 0 - f64.eq - select - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13136 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $0 - local.get $5 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 67 - i32.const 13200 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint64Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 4 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 5 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 9 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 10 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 5 + i32.const 1 + call $~lib/typedarray/Uint64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 5 + i32.const 2 + call $~lib/typedarray/Uint64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + 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/Int64Array#set<~lib/array/Array> (param $0 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" + (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -46043,69 +46010,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 7728 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11008 + i32.const 7728 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11008 + i32.const 7728 call $~lib/array/Array#get:length local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length local.get $1 - i32.lt_s - if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 11008 + call $~lib/typedarray/Uint32Array#constructor + local.tee $2 i32.store offset=8 - i32.const 11012 - i32.load - local.set $3 - i32.const 0 - local.set $0 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 local.get $2 local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $3 + i32.const 7728 local.get $0 - i32.const 2 - i32.shl - i32.add - i64.load32_s - i64.store + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set local.get $0 i32.const 1 i32.add @@ -46114,2311 +46052,2616 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#__uget (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 0 - i32.store + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 i32.const 3 - i32.shl - i32.add - i64.load + i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + 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 - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i64) + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - i32.store + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $3 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 615 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Int64Array#__uget - local.tee $5 - local.get $4 - i64.ne - if - i32.const 13376 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i64_s - local.get $5 - 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length local.get $2 - i32.const 6 - i32.add - i32.lt_s + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 3 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 48 - i32.add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 + local.get $2 + i32.store offset=4 local.get $2 i32.const 3 - i32.shl - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.const 2 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length local.get $2 - i32.lt_s + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 - i32.const 0 - local.set $0 - loop $for-loop|0 - 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 $1 - i32.add - i64.load8_u - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + 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 - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint32Array#lastIndexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint32Array#subarray + local.tee $0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $2 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $2 i32.const 4 - i32.add - i32.lt_s + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.const 32 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $1 + i32.const 5 i32.const 0 - local.set $0 - loop $for-loop|0 - 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 $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i64.load16_s - i64.store - 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 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#set<~lib/array/Array> (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11264 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $1 - i32.const 7 - i32.add - i32.lt_s + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne if - i32.const 1360 - i32.const 1632 - i32.const 1902 - i32.const 5 + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=4 - i32.const 56 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $3 + i32.const 10 i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.add - i64.load8_s - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + 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 - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - 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 $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - local.get $2 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13264 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $0 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $7 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $9 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $4 - i64.trunc_sat_f32_s - i64.const 0 - local.get $4 - local.get $4 - f32.sub - f32.const 0 - f32.eq - select - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13424 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13536 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $6 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $8 - local.get $1 - i32.const 3 - i32.shl - local.tee $9 - i32.add - f64.load - local.set $3 - local.get $7 - local.get $9 - i32.add - local.get $3 - i64.trunc_sat_f64_s - i64.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13648 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $0 - local.get $5 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer + i32.const 7728 local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13760 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 $~lib/typedarray/Uint64Array#__uget (param $0 i32) (param $1 i32) (result i64) - (local $2 i64) global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - i32.store + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Uint16Array#subarray + local.tee $0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 - local.get $1 i32.const 3 - i32.shl - i32.add - i64.load + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i64) + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 i32.const 0 - i32.store + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $3 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 632 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Uint64Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Uint64Array#__uget - local.tee $5 - local.get $4 - i64.ne - if - i32.const 13984 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i64_u - local.get $5 - 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 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + 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/Uint64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - 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 $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - 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 $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - local.get $2 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 13872 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $0 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $7 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $9 - loop $for-loop|0 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $8 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $9 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $4 - i64.trunc_sat_f32_u - i64.const 0 - local.get $4 - local.get $4 - f32.sub - f32.const 0 - f32.eq - select - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14032 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $0 - local.get $6 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14144 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11184 - call $~lib/array/Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $6 - i32.const 2 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11184 - i32.store offset=8 - i32.const 11188 - i32.load - local.set $8 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $8 - local.get $1 - i32.const 3 - i32.shl - local.tee $9 - i32.add - f64.load - local.set $3 - local.get $7 - local.get $9 - i32.add - local.get $3 - i64.trunc_sat_f64_u - i64.const 0 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.eq - select - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14256 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=20 - local.get $0 - local.get $5 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 local.get $2 - i32.store offset=20 - local.get $0 - local.get $2 - call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer + i32.const 7728 local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 69 - i32.const 14368 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 $~lib/typedarray/Float32Array#__uget (param $0 i32) (param $1 i32) (result f32) - (local $2 f32) global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 758 + i32.const 614 i32.const 3 call $~lib/builtins/abort unreachable end - loop $for-loop|0 - local.get $2 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Float32Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Float32Array#__uget - local.tee $5 - local.get $4 - f32.ne - if - i32.const 14544 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.promote_f32 - local.get $5 - 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/testTypedArraySet<~lib/typedarray/Float32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - 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 $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $4 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $8 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $7 - local.get $1 - i32.const 2 - i32.shl - local.tee $5 - i32.add - local.get $5 - local.get $8 - i32.add - i32.load - f32.convert_i32_s - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 62 - i32.const 14480 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - local.get $0 - i32.const 11088 - i32.const 3 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 62 - i32.const 14592 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $4 - i32.const 6 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $6 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $6 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - f32.convert_i64_s - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 62 - i32.const 14656 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $4 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $5 + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint8Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int8Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint8Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint8Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $1 - loop $for-loop|01 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $2 - i32.add - i32.load8_u - f32.convert_i32_u - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|01 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length + i32.const 7728 + i32.store offset=12 local.get $2 - i32.const 4 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 16 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - local.set $3 - i32.const 0 - local.set $1 - loop $for-loop|02 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f32.convert_i32_s - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|02 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.get $2 - i32.const 7 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 7728 local.get $0 - i32.store offset=8 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $0 - i32.load offset=4 - i32.const 28 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $4 - i32.const 0 - local.set $1 - loop $for-loop|03 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_s - f32.convert_i32_s - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|03 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const -1 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Int64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const 10 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const -100 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 0 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 11 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const -1 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i64.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 4 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 3 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 3 + i32.const 2 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const 100 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const -10 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 1 + i32.const -11 + call $~lib/typedarray/Int64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Int64Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 3 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 4 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 5 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 9 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 10 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 11 + i32.const 0 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 5 + i32.const 1 + call $~lib/typedarray/Int64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 5 + i32.const 2 + call $~lib/typedarray/Int64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - i32.const 10 - i32.const 2 - i32.const 62 - i32.const 14720 - call $~lib/rt/__newArray - local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + i32.const 7728 + i32.store offset=12 + local.get $2 local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 7728 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + 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 $~lib/typedarray/Float64Array#__uget (param $0 i32) (param $1 i32) (result f64) - (local $2 f64) global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 i32.const 0 - i32.store + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Int32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Int32Array#subarray + local.tee $0 + i32.store offset=16 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=4 local.get $0 - i32.load offset=4 - local.get $1 i32.const 3 - i32.shl - i32.add - f64.load + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 4 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Int32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Int32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 f64) 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 @@ -48434,1214 +48677,1058 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.set $3 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 7728 i32.store - local.get $1 - call $~lib/array/Array#get:length - local.get $3 - 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $~lib/typedarray/Float64Array#__uget - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $2 - call $~lib/typedarray/Float64Array#__uget - local.tee $5 - local.get $4 - f64.ne - if - i32.const 14896 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - local.get $5 - 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/Float64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - 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 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - 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 $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11008 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $5 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=8 - i32.const 11012 - i32.load - local.set $7 - loop $for-loop|0 - local.get $1 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - f64.convert_i32_s - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 63 - i32.const 14784 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11088 - call $~lib/array/Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $5 - i32.const 3 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 24 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=8 - i32.const 11092 - i32.load - local.set $7 - i32.const 0 - local.set $1 - loop $for-loop|00 - local.get $1 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $7 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - f64.promote_f32 - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 63 - i32.const 14944 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/typedarray/Int64Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - local.get $5 - i32.const 6 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 48 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - local.set $2 - i32.const 0 - local.set $1 - loop $for-loop|01 - local.get $1 - local.get $5 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 3 - i32.shl - local.tee $7 - i32.add - local.get $2 - local.get $7 - i32.add - i64.load - f64.convert_i64_s - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|01 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 63 - i32.const 15056 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length + i32.const 7728 + i32.store offset=12 local.get $2 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $3 - i32.load offset=4 - local.set $3 - i32.const 0 - local.set $1 - loop $for-loop|02 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $1 - local.get $3 - i32.add - i32.load8_u - f64.convert_i32_u - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|02 - end - end - 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 7728 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - call $~lib/typedarray/Int16Array#get:length - local.set $2 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const -1 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 10 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -100 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 3 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 2 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -10 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const -11 + call $~lib/typedarray/Uint16Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Int16Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 9 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 11 + i32.const 0 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/typedarray/Uint16Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 2 + call $~lib/typedarray/Uint16Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length local.get $2 - i32.const 4 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 32 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $1 - loop $for-loop|03 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - f64.convert_i32_s - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|03 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11264 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11264 - call $~lib/array/Array#get:length - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int64Array#get:length + i32.const 7728 + i32.store offset=12 local.get $2 - i32.const 7 - i32.add - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - i32.const 56 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 11264 - i32.store offset=8 - i32.const 11268 - i32.load - local.set $4 - i32.const 0 - local.set $1 - loop $for-loop|04 - local.get $1 - local.get $2 - i32.lt_s - if - local.get $3 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_s - f64.convert_i32_s - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|04 - end - end - 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 7728 local.get $0 - i32.store offset=4 - i32.const 10 - i32.const 3 - i32.const 63 - i32.const 15168 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $0 + br $for-loop|0 end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const -1 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 1 + i32.const 10 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 1 + i32.const -100 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f64.const 0 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f64.const 11 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f64.const -1 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f64.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 4 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 3 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 3 + i32.const 2 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + 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 $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) - (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 1 + i32.const 100 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 1 + i32.const -10 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const 1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load8_s - local.set $1 - local.get $0 - i32.load8_s offset=1 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store8 - local.get $0 - i32.load8_s offset=2 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store8 offset=1 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store8 offset=2 - end - local.get $0 - i32.load8_s - local.set $1 - local.get $0 - i32.load8_s offset=1 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store8 - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store8 offset=1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 1 + i32.const -11 + call $~lib/typedarray/Float64Array#lastIndexOf + i32.const -1 + i32.ne + if i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 4 + i32.const 9 + call $~lib/typedarray/Float64Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 3 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - local.set $1 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 4 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + if i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 5 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 9 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 10 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 11 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 5 + i32.const 1 + call $~lib/typedarray/Float64Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 5 + i32.const 2 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 633 + 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/Int8Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -49656,465 +49743,522 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/array/Array#get:length + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=12 + local.get $2 + local.get $0 + i32.const 7728 + 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 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 603 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 11 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 604 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const -1 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 605 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 606 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 607 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#indexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 608 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 609 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 1 + i32.const 10 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 610 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 1 + i32.const -100 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 611 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f32.const 0 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f32.const 11 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f32.const -1 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $2 + f32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 4 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 3 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 618 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 3 + i32.const 2 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 619 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 1 + i32.const 100 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 620 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 1 + i32.const -10 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 621 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 1 + i32.const -11 + call $~lib/typedarray/Float32Array#lastIndexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 622 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 9 + call $~lib/typedarray/Float32Array#subarray + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 3 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 626 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 4 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + if + i32.const 0 + i32.const 1568 + i32.const 627 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=4 + f32.const 5 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 628 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - call $~lib/typedarray/Int8Array#get:length - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT + f32.const 9 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 629 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) - (local $14 i32) - (local $15 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s + i32.store offset=4 + local.get $0 + f32.const 10 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 630 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 11 i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load8_u - local.set $1 - local.get $0 - i32.load8_u offset=1 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store8 - local.get $0 - i32.load8_u offset=2 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store8 offset=1 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store8 offset=2 - end - local.get $0 - i32.load8_u - local.set $1 - local.get $0 - i32.load8_u offset=1 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store8 - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store8 offset=1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end + i32.const 1568 + i32.const 631 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 5 + i32.const 1 + call $~lib/typedarray/Float32Array#indexOf + i32.const 1 + i32.ne + if i32.const 0 - local.set $1 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 5 + i32.const 2 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 633 + 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 $~lib/typedarray/Uint8Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -50129,43 +50273,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - global.get $~lib/memory/__stack_pointer + i32.const 65535 + i32.and + i32.const 7152 local.get $1 - i32.store + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount local.get $1 - call $~lib/util/sort/SORT + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $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 i64) - (local $14 i32) - (local $15 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -50184,412 +50345,57 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load16_s - local.set $1 - local.get $0 - i32.load16_s offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store16 - local.get $0 - i32.load16_s offset=4 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store16 offset=2 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store16 offset=4 - end - local.get $0 - i32.load16_s - local.set $1 - local.get $0 - i32.load16_s offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store16 - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store16 offset=2 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 1 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store + i32.const 7152 + local.get $1 + call $~lib/array/Array#__get + f64.convert_i32_s + local.get $0 + f64.ne + if i32.const 0 - local.get $1 - i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + local.get $1 + i32.ne + if i32.const 0 - local.set $1 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $11 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 - end - end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $"std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -50604,2885 +50410,3394 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 7152 i32.store + i32.const 7152 local.get $1 - call $~lib/util/sort/SORT + call $~lib/array/Array#__get + f32.convert_i32_s + local.get $0 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 536 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + local.get $1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 537 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + global.get $std/typedarray/forEachSelf + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 538 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $std/typedarray/forEachCallCount + i32.const 1 + i32.add + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" + (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 i64) - (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4016 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4016 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $7 + i32.add + i32.load8_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4016 + i32.load + call_indirect (type $1) + if + local.get $0 + local.get $4 + i32.add + local.get $5 + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.get $4 + local.get $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" + (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 0 - i32.store + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load16_u - local.set $1 - local.get $0 - i32.load16_u offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store16 - local.get $0 - i32.load16_u offset=4 - local.set $5 - i32.const 2 - global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint8Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3984 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3984 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int8Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 + local.get $7 + i32.add + i32.load8_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 3984 + i32.load + call_indirect (type $1) + if local.get $0 - local.get $5 - local.get $1 - local.get $3 local.get $4 - select - local.tee $1 - local.get $1 + i32.add local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store16 offset=2 + i32.store8 local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store16 offset=4 + i32.const 1 + i32.add + local.set $0 end - local.get $0 - i32.load16_u - local.set $1 - local.get $0 - i32.load16_u offset=2 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store16 - local.get $0 - local.get $1 - local.get $3 local.get $2 - select - i32.store16 offset=2 - br $folding-inner0 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 end - i32.const 33 local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz + local.get $4 + local.get $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 i32.const 1 - i32.shl - call $~lib/rt/tlsf/allocateBlock + call $~lib/typedarray/Uint8Array#__get i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $12 + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i64.const 2 + i64.gt_u + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $8 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 0 - local.get $1 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4208 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4208 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int64Array#get:length local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 + local.get $2 + i32.const 3 i32.shl - local.tee $3 - local.get $10 i32.add + i64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4208 i32.load - local.tee $4 - i32.const -1 - i32.ne + call_indirect (type $8) if - local.get $3 - local.get $11 + local.get $4 + local.get $0 + i32.const 3 + i32.shl i32.add - i32.load + local.get $5 + i64.store + local.get $0 i32.const 1 i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns + local.set $0 end - local.get $1 + local.get $2 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free + local.get $1 + local.get $4 + local.get $0 + i32.const 3 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.const 2 + i32.gt_u ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" + (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 i64) - (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint32Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4144 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4144 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4144 + i32.load + call_indirect (type $1) + if + local.get $4 local.get $0 - i32.load offset=8 - local.set $5 i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 + i32.shl + i32.add local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store offset=4 + i32.store local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store offset=8 + i32.const 1 + i32.add + local.set $0 end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store - local.get $0 - local.get $1 - local.get $3 local.get $2 - select - i32.store offset=4 - br $folding-inner0 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 + end + local.get $1 + local.get $4 + local.get $0 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if i32.const 0 - local.get $1 - i32.const 1 - i32.sub + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 33 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + i32.ne if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $12 + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + i32.const 2 + i32.gt_u + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" + (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 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Uint16Array#constructor + local.tee $8 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 0 - local.get $1 i32.const 1 - i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 - i32.add - local.tee $1 - i32.const 32 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4080 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4080 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int16Array#get:length local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 + local.get $7 local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end - local.get $7 - i32.const 2 i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 + i32.load16_u + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add + local.get $2 + local.get $8 + i32.const 4080 i32.load - local.tee $4 - i32.const -1 - i32.ne + call_indirect (type $1) if - local.get $3 - local.get $11 - i32.add - i32.load + local.get $4 + local.get $0 i32.const 1 + i32.shl i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.get $5 + i32.store16 local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns + i32.const 1 + i32.add + local.set $0 end - local.get $1 + local.get $2 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free + local.get $1 + local.get $4 + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.extend8_s + i32.const 2 + i32.gt_s ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" + (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 i64) - (local $14 i32) - (local $15 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $4 - select - i32.store - local.get $0 - i32.load offset=8 - local.set $5 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $5 - local.get $1 - local.get $3 - local.get $4 - select - local.tee $1 - local.get $1 - local.get $5 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $3 - select - i32.store offset=4 - local.get $0 - local.get $1 - local.get $5 - local.get $3 - select - i32.store offset=8 - end - local.get $0 - i32.load - local.set $1 - local.get $0 - i32.load offset=4 - local.set $3 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - local.get $1 - local.get $3 - local.get $2 - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - local.tee $2 - select - i32.store - local.get $0 - local.get $1 - local.get $3 - local.get $2 - select - i32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - i32.add - local.set $11 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $10 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 i32.const 4 - i32.add - local.set $12 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3952 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub - local.tee $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $9 - local.get $9 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3952 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int8Array#get:length local.set $3 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $9 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $9 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $9 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $13 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $13 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $10 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $11 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $2 local.get $7 - i32.const 2 - i32.shl - local.tee $1 - local.get $10 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $11 i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 + i32.load8_s + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $10 - i32.add + local.get $2 + local.get $8 + i32.const 3952 i32.load - local.tee $4 - i32.const -1 - i32.ne + call_indirect (type $1) if - local.get $3 - local.get $11 + local.get $0 + local.get $4 i32.add - i32.load + local.get $5 + i32.store8 + local.get $0 i32.const 1 i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $9 - local.get $12 - local.get $2 - call $~lib/util/sort/mergeRuns + local.set $0 end - local.get $1 + local.get $2 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $12 - call $~lib/rt/tlsf/__free - local.get $10 - call $~lib/rt/tlsf/__free + local.get $1 + local.get $4 + local.get $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i64.const 2 + i64.gt_s ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 i64) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i64) - (local $17 i64) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i64.load - local.set $9 - local.get $0 - i64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $9 - local.get $9 - local.get $16 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store - local.get $0 - i64.load offset=16 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $16 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store offset=8 - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - i64.store offset=16 - end - local.get $0 - i64.load - local.set $9 - local.get $0 - i64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $9 - local.get $9 - local.get $16 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store - local.get $0 - local.get $9 - local.get $16 - local.get $1 - select - i64.store offset=8 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 - end - i32.const 33 - local.get $1 - i32.clz - i32.sub - local.tee $4 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int64Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4176 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4176 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int64Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 i32.shl - local.tee $5 i32.const 1 - i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 local.get $3 - local.get $4 - i32.lt_u + i32.lt_s if - local.get $11 - local.get $3 - i32.const 2 + local.get $7 + local.get $2 + i32.const 3 i32.shl i32.add - i32.const -1 - i32.store - local.get $3 + i64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4176 + i32.load + call_indirect (type $8) + if + local.get $4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $5 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 i32.const 1 i32.add - local.set $3 - br $for-loop|1 + local.set $2 + br $for-loop|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $1 + local.get $4 + local.get $0 i32.const 3 i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 local.get $0 - i32.const 0 + i32.store offset=8 local.get $1 - i32.const 1 - i32.sub - local.tee $10 local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add - local.tee $1 - i32.const 32 - i32.lt_s + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - local.set $1 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.gt_s + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int32Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4112 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4112 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int32Array#get:length local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $9 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $11 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end local.get $7 + local.get $2 i32.const 2 i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add + local.get $2 + local.get $8 + i32.const 4112 i32.load - local.tee $4 - i32.const -1 - i32.ne + call_indirect (type $1) if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 + local.get $4 + local.get $0 + i32.const 2 + i32.shl i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns + i32.const 1 + i32.add + local.set $0 end - local.get $1 + local.get $2 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free + local.get $1 + local.get $4 + local.get $0 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#get:length - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.extend16_s + i32.const 2 + i32.gt_s ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" + (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 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i64) - (local $17 i64) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int16Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s - if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - i64.load - local.set $9 - local.get $0 - i64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $9 - local.get $9 - local.get $16 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store - local.get $0 - i64.load offset=16 - local.set $17 - i32.const 2 - global.set $~argumentsLength + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4048 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4048 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int16Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + local.get $8 + i32.const 4048 + i32.load + call_indirect (type $1) + if + local.get $4 local.get $0 - local.get $17 - local.get $9 - local.get $16 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store offset=8 + i32.const 1 + i32.shl + i32.add + local.get $5 + i32.store16 local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - i64.store offset=16 + i32.const 1 + i32.add + local.set $0 end - local.get $0 - i64.load - local.set $9 - local.get $0 - i64.load offset=8 - local.set $16 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $16 - local.get $9 - local.get $9 - local.get $16 local.get $2 - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - local.tee $1 - select - i64.store - local.get $0 - local.get $9 - local.get $16 - local.get $1 - select - i64.store offset=8 - br $folding-inner0 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 end - i32.const 33 local.get $1 - i32.clz - i32.sub - local.tee $4 - i32.const 2 - i32.shl - local.tee $5 + local.get $4 + local.get $0 i32.const 1 i32.shl - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $5 - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 - local.get $3 - local.get $4 - i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne if - call $~lib/rt/tlsf/initialize + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 3 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.set $13 + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f64.const 2 + f64.gt + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Float64Array#constructor + local.tee $8 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 0 - local.get $1 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4272 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 - local.get $1 - local.get $2 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.set $1 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4272 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int64Array#get:length local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 i32.lt_s if - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 + i32.const 3 + i32.shl i32.add - local.tee $6 - local.get $10 + f64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s + local.get $8 + i32.const 4272 + i32.load + call_indirect (type $12) if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.get $4 local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 + i32.const 3 + i32.shl i32.add - local.tee $5 local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $9 - i64.div_u - local.get $5 - local.get $6 - i32.add + local.get $2 i32.const 1 i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $9 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 - local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $14 - local.get $11 - i32.add - local.tee $15 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $14 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $15 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end - end + local.set $2 + br $for-loop|0 + end + end + local.get $1 + local.get $4 + local.get $0 + i32.const 3 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + f32.const 2 + f32.gt + ) + (func $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Float32Array#constructor + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 5 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4240 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4240 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + call $~lib/typedarray/Int32Array#get:length + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + if local.get $7 + local.get $2 i32.const 2 i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 + f32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $5 - local.set $4 - local.get $7 - local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add + local.get $2 + local.get $8 + i32.const 4240 i32.load - local.tee $4 - i32.const -1 - i32.ne + call_indirect (type $13) if - local.get $3 - local.get $12 + local.get $4 + local.get $0 + i32.const 2 + i32.shl i32.add - i32.load + local.get $5 + f32.store + local.get $0 i32.const 1 i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns + local.set $0 end - local.get $1 + local.get $2 i32.const 1 - i32.sub - local.set $1 - br $for-loop|4 + i32.add + local.set $2 + br $for-loop|0 end end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free + local.get $1 + local.get $4 + local.get $0 + i32.const 2 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $2 + i32.store + local.get $1 + local.get $2 + call $~lib/rt/itcms/__link + local.get $1 + local.get $0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0" (param $0 i64) (param $1 i32) (param $2 i32) (result i32) local.get $0 - i32.store offset=4 + i64.const 1 + i64.and + i64.eqz + ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 - call $~lib/typedarray/Int64Array#get:length - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.extend8_s + i32.const 1 + i32.and + i32.eqz + ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 + i32.extend16_s + i32.const 1 + i32.and + i32.eqz ) - (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 i32) - (local $17 f32) - (local $18 f32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $folding-inner0 - local.get $1 - i32.const 48 - i32.le_s + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0" (param $0 f64) (param $1 i32) (param $2 i32) (result i32) + (local $3 i64) + (local $4 i64) + (local $5 i64) + (local $6 i64) + block $__inlined_func$~lib/math/NativeMath.mod$1 (result f64) + local.get $0 + i64.reinterpret_f64 + local.tee $4 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $6 + i64.const 2047 + i64.eq if - local.get $1 - i32.const 1 - i32.le_s - br_if $folding-inner0 - block $break|0 - block $case1|0 - local.get $1 - i32.const 3 - i32.ne - if - local.get $1 - i32.const 2 - i32.eq - br_if $case1|0 - br $break|0 - end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - f32.load offset=8 - local.set $18 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $18 - local.get $9 - local.get $17 - local.get $1 - select - local.tee $9 - local.get $9 - local.get $18 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store offset=4 + local.get $0 + local.get $0 + f64.add + local.tee $0 + local.get $0 + f64.div + br $__inlined_func$~lib/math/NativeMath.mod$1 + end + local.get $4 + i64.const 1 + i64.shl + local.tee $3 + i64.const -9223372036854775808 + i64.le_u + if + local.get $0 + local.get $3 + i64.const -9223372036854775808 + i64.ne + f64.convert_i32_u + f64.mul + br $__inlined_func$~lib/math/NativeMath.mod$1 + end + local.get $4 + i64.const 63 + i64.shr_u + local.set $5 + local.get $6 + i64.eqz + if (result i64) + local.get $4 + i64.const 1 + local.get $6 + local.get $4 + i64.const 12 + i64.shl + i64.clz + i64.sub + local.tee $6 + i64.sub + i64.shl + else + local.get $4 + i64.const 4503599627370495 + i64.and + i64.const 4503599627370496 + i64.or + end + local.set $3 + loop $while-continue|0 + local.get $6 + i64.const 1024 + i64.gt_s + if + local.get $3 + i64.const 4503599627370496 + i64.ge_u + if (result i64) local.get $0 - local.get $9 - local.get $18 - local.get $1 - select - f32.store offset=8 + f64.const 0 + f64.mul + local.get $3 + i64.const 4503599627370496 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$1 + drop + local.get $3 + i64.const 4503599627370496 + i64.sub + else + local.get $3 end - local.get $0 - f32.load - local.set $9 - local.get $0 - f32.load offset=4 - local.set $17 - i32.const 2 - global.set $~argumentsLength - local.get $0 - local.get $17 - local.get $9 - local.get $9 - local.get $17 - local.get $2 - i32.load - call_indirect (type $11) - i32.const 0 - i32.gt_s - local.tee $1 - select - f32.store - local.get $0 - local.get $9 - local.get $17 - local.get $1 - select - f32.store offset=4 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + i64.const 1 + i64.shl + local.set $3 + local.get $6 + i64.const 1 + i64.sub + local.set $6 + br $while-continue|0 + end + end + local.get $3 + i64.const 4503599627370496 + i64.ge_u + if local.get $0 - i32.const 0 - local.get $1 - i32.const 1 - i32.sub - i32.const 0 - local.get $2 - call $~lib/util/sort/insertionSort - br $folding-inner0 + f64.const 0 + f64.mul + local.get $3 + i64.const 4503599627370496 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod$1 + drop + local.get $3 + i64.const 4503599627370496 + i64.sub + local.set $3 end - i32.const 33 - local.get $1 - i32.clz - i32.sub + local.get $6 + local.get $3 + i64.const 11 + i64.shl + i64.clz local.tee $4 - i32.const 2 - i32.shl - local.tee $5 - i32.const 1 - i32.shl + i64.sub local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - local.get $5 - global.get $~lib/rt/tlsf/ROOT + local.get $3 + local.get $4 + i64.shl + local.set $3 local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $11 - i32.add - local.set $12 - loop $for-loop|1 + i64.const 0 + i64.gt_s + if (result i64) local.get $3 - local.get $4 - i32.lt_u - if - local.get $11 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + i64.const 4503599627370496 + i64.sub + local.get $6 + i64.const 52 + i64.shl + i64.or + else + local.get $3 + i64.const 1 + local.get $6 + i64.sub + i64.shr_u end - global.get $~lib/rt/tlsf/ROOT - i32.eqz + local.get $5 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 + end + f64.const 0 + f64.eq + ) + (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0" (param $0 f32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + block $__inlined_func$~lib/math/NativeMathf.mod (result f32) + local.get $0 + i32.reinterpret_f32 + local.tee $1 + i32.const 23 + i32.shr_u + i32.const 255 + i32.and + local.tee $2 + i32.const 255 + i32.eq if - call $~lib/rt/tlsf/initialize + local.get $0 + local.get $0 + f32.add + local.tee $0 + local.get $0 + f32.div + br $__inlined_func$~lib/math/NativeMathf.mod end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - i32.const 2 - i32.shl - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $13 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - i32.const 0 local.get $1 i32.const 1 - i32.sub - local.tee $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $4 - i32.const 1 - i32.add - local.tee $1 - i32.const 32 - i32.lt_s + i32.shl + local.tee $3 + i32.const -2147483648 + i32.le_u if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $0 - i32.const 0 - i32.const 31 - local.get $10 - local.get $10 - i32.const 31 - i32.ge_s - select - local.tee $4 + local.get $3 + i32.const -2147483648 + i32.ne + f32.convert_i32_u + f32.mul + br $__inlined_func$~lib/math/NativeMathf.mod + end + local.get $1 + i32.const -2147483648 + i32.and + local.set $3 + local.get $2 + if (result i32) + local.get $1 + i32.const 8388607 + i32.and + i32.const 8388608 + i32.or + else local.get $1 + i32.const 1 local.get $2 - call $~lib/util/sort/insertionSort + local.get $1 + i32.const 9 + i32.shl + i32.clz + i32.sub + local.tee $2 + i32.sub + i32.shl end - i32.const 0 local.set $1 - i32.const 0 - local.set $3 - loop $while-continue|2 - local.get $4 - local.get $10 - i32.lt_s + loop $while-continue|0 + local.get $2 + i32.const 128 + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.add - local.tee $6 - local.get $10 - local.get $2 - call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 - i32.sub - i32.const 1 - i32.add - local.tee $7 - i32.const 32 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.get $1 + i32.const 8388608 + i32.ge_u + if (result i32) local.get $0 - local.get $6 - local.get $10 - local.get $6 - i32.const 31 - i32.add - local.tee $5 - local.get $5 - local.get $10 - i32.gt_s - select - local.tee $5 - local.get $7 - local.get $2 - call $~lib/util/sort/insertionSort - end - local.get $3 - local.get $6 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $10 - i32.const 1 - i32.add - i64.extend_i32_u - local.tee $14 - i64.div_u - local.get $5 - local.get $6 - i32.add - i32.const 1 - i32.add - i64.extend_i32_u - i64.const 30 - i64.shl - local.get $14 - i64.div_u - i64.xor - i32.wrap_i64 - i32.clz - local.set $7 - loop $for-loop|3 + f32.const 0 + f32.mul + local.get $1 + i32.const 8388608 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop + local.get $1 + i32.const 8388608 + i32.sub + else local.get $1 - local.get $7 - i32.gt_u - if - local.get $1 - i32.const 2 - i32.shl - local.tee $15 - local.get $11 - i32.add - local.tee $16 - i32.load - local.tee $8 - i32.const -1 - i32.ne - if - local.get $12 - local.get $15 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $8 - local.get $3 - local.get $4 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - local.get $16 - i32.const -1 - i32.store - local.get $8 - local.set $3 - end - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|3 - end end - local.get $7 - i32.const 2 + i32.const 1 i32.shl - local.tee $1 - local.get $11 - i32.add - local.get $3 - i32.store - local.get $1 - local.get $12 - i32.add - local.get $4 - i32.store - local.get $6 - local.set $3 - local.get $5 - local.set $4 - local.get $7 local.set $1 - br $while-continue|2 - end - end - loop $for-loop|4 - local.get $1 - if - local.get $1 - i32.const 2 - i32.shl - local.tee $3 - local.get $11 - i32.add - i32.load - local.tee $4 - i32.const -1 - i32.ne - if - local.get $3 - local.get $12 - i32.add - i32.load - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $0 - local.get $4 - local.get $3 - local.get $10 - local.get $13 - local.get $2 - call $~lib/util/sort/mergeRuns - end - local.get $1 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|4 + local.set $2 + br $while-continue|0 end end - local.get $13 - call $~lib/rt/tlsf/__free - local.get $11 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 8388608 + i32.ge_u + if + local.get $0 + f32.const 0 + f32.mul + local.get $1 + i32.const 8388608 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop + local.get $1 + i32.const 8388608 + i32.sub + local.set $1 + end + local.get $2 + local.get $1 + i32.const 8 + i32.shl + i32.clz + local.tee $4 + i32.sub + local.set $2 + local.get $1 + local.get $4 + i32.shl + local.set $1 + local.get $2 + i32.const 0 + i32.gt_s + if (result i32) + local.get $1 + i32.const 8388608 + i32.sub + local.get $2 + i32.const 23 + i32.shl + i32.or + else + local.get $1 + i32.const 1 + local.get $2 + i32.sub + i32.shr_u + end + local.get $3 + i32.or + f32.reinterpret_i32 end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 + f32.const 0 + f32.eq ) (func $start:std/typedarray (local $0 i32) @@ -56883,7 +57198,7 @@ local.get $1 i32.const 3184 i32.load - call_indirect (type $22) + call_indirect (type $26) local.set $4 local.get $0 i32.const 1 @@ -57007,7 +57322,7 @@ local.get $1 i32.const 3216 i32.load - call_indirect (type $23) + call_indirect (type $25) local.set $5 local.get $0 i32.const 1 @@ -58883,7 +59198,7 @@ local.get $1 i32.const 3536 i32.load - call_indirect (type $22) + call_indirect (type $26) local.set $4 local.get $0 i32.const 1 @@ -59009,7 +59324,7 @@ local.get $1 i32.const 3568 i32.load - call_indirect (type $23) + call_indirect (type $25) local.set $5 local.get $0 i32.const 1 @@ -63253,7 +63568,7 @@ local.get $1 i32.const 7488 i32.load - call_indirect (type $33) + call_indirect (type $35) local.get $0 i32.const 1 i32.add @@ -63482,13 +63797,13 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 i32.const 0 local.get $1 call $~lib/typedarray/Int64Array#get:length @@ -63590,13 +63905,13 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 i32.const 0 local.get $1 call $~lib/typedarray/Int32Array#get:length @@ -67799,320 +68114,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.set $1 - local.get $3 - if - local.get $1 - local.get $3 - local.get $5 - memory.copy - end - local.get $1 - i32.store - i32.const 16 - local.get $2 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $1 - i32.store - local.get $2 - local.get $1 - call $~lib/rt/itcms/__link - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/number/itoa32 (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - i32.const 1 - i32.shl - local.tee $0 - select - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - local.get $0 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $0 - local.get $3 - i32.add - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $0 - if - local.get $3 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/util/number/utoa32 (param $0 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 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - return - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $2 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - 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 (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 16320 - i32.lt_s - if - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 52 - i32.const 43 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) ) diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index d6410645a6..e69563783a 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -1,13 +1,13 @@ (module - (type $0 (func)) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func (param i32) (result i32))) + (type $0 (func (param i32 i32) (result i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32))) (type $4 (func (param i32 i32))) (type $5 (func (param i32 i32 i32) (result i32))) (type $6 (func (param i32 i32 i32 i32))) - (type $7 (func (param i32 i32 i64))) - (type $8 (func (result i32))) + (type $7 (func (result i32))) + (type $8 (func (param i32 i32 i64))) (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)) @@ -153,790 +153,463 @@ (data $66 (i32.const 4336) "\04\00\00\00 \00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1376 - call $~lib/rt/itcms/__visit - i32.const 1184 - call $~lib/rt/itcms/__visit - i32.const 1584 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1248 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.eqz + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4356 + i32.lt_s if - return + i32.const 37152 + i32.const 37200 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + local.get $1 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 local.get $1 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $1 - i32.load offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$132 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 37124 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$132 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1248 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 4336 - i32.load - i32.gt_u - if - i32.const 1376 - i32.const 1440 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 4340 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load 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 offset=4 - local.get $1 local.get $0 - i32.store offset=8 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + i32.store local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1520 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + local.get $1 + i32.const 20 i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $3 - local.get $4 + local.tee $0 i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1520 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 + i32.ge_u + if (result i32) local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const 7 i32.and - local.set $3 local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end + i32.const 7 + i32.and + i32.or + else + i32.const 1 end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1520 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1520 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and i32.eqz if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$88 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$88 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end i32.const 0 - i32.const 1520 - i32.const 221 - i32.const 16 - call $~lib/builtins/abort - unreachable + local.set $3 end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer local.get $3 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store + i32.eqz + return end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/uri/encodeURIComponent (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 4356 + i32.lt_s if - i32.const 0 - i32.const 1520 - i32.const 233 - i32.const 14 + i32.const 37152 + i32.const 37200 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1068 + call $~lib/util/uri/encode + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $2 - i32.add - i32.ne - if - i32.const 0 - i32.const 1520 - i32.const 234 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/uri/decodeURI (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub - local.get $1 - i32.store - 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 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4356 + i32.lt_s if - i32.const 0 - i32.const 1520 - i32.const 251 - i32.const 14 + i32.const 37152 + i32.const 37200 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $5 + i32.store + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 0 + call $~lib/util/uri/decode + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.shl - local.get $2 i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/uri/decodeURIComponent (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 4356 + i32.lt_s if - local.get $3 - local.get $1 - i32.store offset=4 + i32.const 37152 + i32.const 37200 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or i32.store local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 local.get $0 - i32.load offset=4 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 + i32.shr_u + i32.const 1 + call $~lib/util/uri/decode + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + (func $~lib/uri/encodeURI (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 4356 + i32.lt_s if - i32.const 0 - i32.const 1520 - i32.const 382 - i32.const 14 + i32.const 37152 + i32.const 37200 + i32.const 1 + i32.const 1 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 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $0 - i32.load offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1520 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1520 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 i32.sub - local.tee $3 + i32.load offset=16 i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 + i32.shr_u + i32.const 3388 + call $~lib/util/uri/encode + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) + (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz if - unreachable + return end - i32.const 37136 - i32.const 0 - i32.store - i32.const 38704 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1248 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 2 - i32.shl - i32.const 37136 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$132 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if local.get $1 - i32.const 16 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 37124 i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 37136 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1248 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$132 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1248 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 + else + local.get $0 + i32.const 4336 + i32.load + i32.gt_u + if + i32.const 1376 + i32.const 1440 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 4340 i32.add - local.set $0 - br $for-loop|0 + i32.load + i32.const 32 + i32.and end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - i32.const 37136 - i32.const 38708 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 37136 - global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/itcms/step (result i32) (local $0 i32) @@ -1184,68 +857,382 @@ call $~lib/rt/tlsf/insertBlock end end - i32.const 10 - return + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $3 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 + local.get $0 + local.get $1 + local.get $3 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $1 + i32.gt_u + select + memory.copy + local.get $2 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1520 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1520 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (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.const 256 - i32.lt_u + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1520 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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.shr_u - local.set $1 - else + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store local.get $1 - i32.const 536870910 - i32.lt_u + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if - 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.set $1 + i32.const 0 + i32.const 1520 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $0 local.get $1 - i32.const 31 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1520 + 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 1520 + 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 + 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 $2 + 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 - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 end - local.get $1 + local.tee $2 i32.const 16 i32.lt_u - local.get $2 + local.get $5 i32.const 23 i32.lt_u i32.and @@ -1253,78 +1240,66 @@ if i32.const 0 i32.const 1520 - i32.const 334 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 - i32.load offset=4 - i32.const -1 local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 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 - i32.load offset=96 - else - local.get $0 - i32.load - 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1520 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1424,8 +1399,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1453,7 +1426,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1467,7 +1441,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1639,43 +1615,30 @@ memory.fill local.get $1 ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $3 - local.get $1 - i32.store offset=16 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + return + end local.get $0 + i32.load + call $~lib/rt/itcms/__visit return end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - memory.copy - local.get $2 + unreachable ) (func $~lib/util/uri/encode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -2605,339 +2568,377 @@ local.get $9 end ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - call $start:std/uri - ) - (func $~lib/uri/encodeURIComponent (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 4356 - i32.lt_s - if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1068 - call $~lib/util/uri/encode - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4356 - i32.lt_s - if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 + i32.const 4 i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer + local.set $1 + else local.get $1 - i32.store - local.get $3 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end local.get $1 - i32.const 20 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 i32.sub - i32.load offset=16 - i32.const 1 i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub local.set $2 - global.get $~lib/memory/__stack_pointer + end + local.get $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 1520 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.const -1 + local.get $1 + i32.shl + i32.and + local.tee $1 + if (result i32) + local.get $0 local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 + i32.ctz + local.get $2 i32.const 4 - i32.ge_u + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1520 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + local.get $0 local.get $2 - i32.const 7 - i32.and + i32.ctz local.get $1 - i32.const 7 - i32.and - i32.or + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - i32.const 1 + i32.const 0 end - i32.eqz + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) + i32.const 1 + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 37136 + i32.const 0 + i32.store + i32.const 38704 + i32.const 0 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u if - loop $do-loop|0 - local.get $2 - i64.load + local.get $0 + i32.const 2 + i32.shl + i32.const 37136 + i32.add + i32.const 0 + i32.store offset=4 + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - i64.load - i64.eq + i32.const 16 + i32.lt_u if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 local.get $0 i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl$88 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 + i32.shl local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$88 - local.get $2 + i32.add i32.const 2 + i32.shl + i32.const 37136 i32.add - local.set $2 + i32.const 0 + i32.store offset=96 local.get $1 - i32.const 2 + i32.const 1 i32.add local.set $1 - br $while-continue|1 + br $for-loop|1 end end - i32.const 0 - local.set $3 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + 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 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const 37136 + i32.const 38708 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 37136 + global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/uri/encodeURI (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 4356 - i32.lt_s + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1520 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 3388 - call $~lib/util/uri/encode - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.const 19 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/uri/decodeURIComponent (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer + i32.const -16 + i32.and i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4356 - i32.lt_s + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1520 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1520 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - call $~lib/util/uri/decode - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/uri/decodeURI (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4356 - i32.lt_s + local.tee $3 + i32.const 20 + i32.lt_u if - i32.const 37152 - i32.const 37200 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + return end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $0 - i32.const 20 + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 i32.sub - i32.load offset=16 + local.tee $3 i32.const 1 - i32.shr_u + i32.or + i32.or + i32.store + local.get $1 i32.const 0 - call $~lib/util/uri/decode - global.get $~lib/memory/__stack_pointer + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1376 + call $~lib/rt/itcms/__visit + i32.const 1184 + call $~lib/rt/itcms/__visit + i32.const 1584 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1248 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~start + call $start:std/uri ) (func $start:std/uri (local $0 i32) diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index 35da8ff691..d1ffdaa805 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1,7 +1,7 @@ (module - (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32) (result i32))) + (type $0 (func (param i32))) + (type $1 (func (param i32) (result i32))) + (type $2 (func)) (type $3 (func (param i32 i32))) (type $4 (func (param i32 i32 i32 i32))) (type $5 (func (param i32 i32 i64))) @@ -34,63 +34,6 @@ (data $8 (i32.const 1440) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $super-inline/foo - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $super-inline/bar - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1248 - call $~lib/rt/itcms/__visit - i32.const 1056 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 160 - 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -635,127 +578,331 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 382 - i32.const 14 - call $~lib/builtins/abort - unreachable + block $__inlined_func$~lib/rt/itcms/interrupt$69 + 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 + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$69 + end + local.get $1 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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 - 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 offset=1568 - local.tee $3 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $3 + 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 + i32.const 4 + local.get $2 + i32.load offset=1568 + memory.size + local.tee $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.set $3 local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1392 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end local.get $3 local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s if local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end end - else - local.get $0 - i32.const 1572 - i32.add + local.get $2 local.get $1 - i32.gt_u + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.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 402 - i32.const 5 + i32.const 499 + i32.const 16 call $~lib/builtins/abort unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and local.get $1 - i32.sub - local.tee $3 - i32.const 20 + i32.load + i32.const -4 + i32.and + i32.const 28 i32.lt_u if - return + i32.const 0 + i32.const 1392 + i32.const 501 + i32.const 14 + call $~lib/builtins/abort + unreachable end + local.get $2 local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add + i32.load local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s + 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 + 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 + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $0 + i32.load offset=8 + local.set $2 + local.get $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $1 + i32.load + 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 + local.get $0 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $super-inline/Bar + block $super-inline/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $super-inline/Foo $super-inline/Bar $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + return + end + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s if (result i32) i32.const 1 local.get $1 @@ -829,582 +976,270 @@ i32.const 34240 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if 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 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 34236 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1392 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + global.get $super-inline/foo + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $super-inline/bar + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1248 + call $~lib/rt/itcms/__visit + i32.const 1056 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1120 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34236 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34236 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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.const 20 i32.add - i32.load offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end + call $~lib/rt/__visit_members 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 offset=96 - else - i32.const 0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) - (func $~lib/rt/itcms/__new (param $0 i32) (result i32) + (func $super-inline/Foo#constructor (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$69 - 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 - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$69 - end - local.get $1 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + 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 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 - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer 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 - i32.const 0 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1468 i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz if - local.get $3 - memory.grow + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if - unreachable - end + call $~lib/rt/itcms/__new + local.tee $0 + i32.store end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.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 499 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $1 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 501 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - local.get $2 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 + i32.const 34256 + i32.const 34304 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $super-inline/Bar#a (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.tee $4 - i32.const 16 - i32.ge_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1468 + i32.lt_s if - local.get $1 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $1 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub + i32.const 34256 + i32.const 34304 i32.const 1 - i32.or - i32.store - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 - local.get $0 - i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $0 - i32.load offset=8 - local.set $2 - local.get $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $1 - i32.load - i32.const -4 - i32.and + i32.store + global.get $~lib/memory/__stack_pointer 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 - local.get $0 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $super-inline/Bar - block $super-inline/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $super-inline/Foo $super-inline/Bar $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - unreachable + global.set $~lib/memory/__stack_pointer ) (func $~start (local $0 i32) @@ -1518,98 +1353,264 @@ call $~lib/builtins/abort unreachable ) - (func $super-inline/Foo#constructor (param $0 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $super-inline/Bar#a (param $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 1468 - i32.lt_s - if - i32.const 34256 - i32.const 34304 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34236 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34236 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34236 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/switch.release.wat b/tests/compiler/switch.release.wat index 2b5172a5ea..9b967b3838 100644 --- a/tests/compiler/switch.release.wat +++ b/tests/compiler/switch.release.wat @@ -65,539 +65,837 @@ (data $23 (i32.const 1936) "\06\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 \00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $switch/foo1 - local.tee $0 - if + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $switch/foo2 - local.tee $0 - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 1520 - call $~lib/rt/itcms/__visit - i32.const 1328 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + local.tee $2 + i32.store local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 + i32.store + block $__inlined_func$~lib/string/String#concat$191 + local.get $1 i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 + i32.sub + i32.load offset=16 + i32.const -2 i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load 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 offset=8 + local.tee $4 + local.get $3 + i32.add local.tee $0 i32.eqz if - i32.const 0 - i32.const 1392 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1296 + local.set $0 + br $__inlined_func$~lib/string/String#concat$191 end + global.get $~lib/memory/__stack_pointer local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$186 - local.get $1 - i32.load offset=4 - i32.const -4 - i32.and + i32.const 2 + call $~lib/rt/itcms/__new local.tee $0 - i32.eqz - if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34732 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink$186 - end - local.get $1 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else local.get $0 - i32.const 1936 - i32.load - i32.gt_u - if - i32.const 1520 - i32.const 1584 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end + local.get $2 + local.get $3 + memory.copy local.get $0 - i32.const 2 - i32.shl - i32.const 1940 + local.get $3 i32.add - i32.load - i32.const 32 - i32.and + local.get $1 + local.get $4 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.set $3 - local.get $2 - i32.load 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 offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount + return + end + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $switch/doSwitchNullableString (param $0 i32) (result 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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 0 + call $~lib/string/String.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1104 + call $~lib/string/String.__eq + br_if $case1|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1136 + call $~lib/string/String.__eq + br_if $case2|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1168 + call $~lib/string/String.__eq + br_if $case3|0 + br $case4|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - global.set $~lib/rt/itcms/visitCount + global.set $~lib/memory/__stack_pointer + i32.const 3 + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $switch/doSwitchString (param $0 i32) (result 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 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 1104 + call $~lib/string/String.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1136 + call $~lib/string/String.__eq + br_if $case1|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1168 + call $~lib/string/String.__eq + br_if $case2|0 + br $case3|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4 + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + 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 1964 + i32.lt_s if - i32.const 0 - i32.const 1664 - i32.const 268 - i32.const 14 + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq if - i32.const 0 - i32.const 1664 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 + local.get $1 + i32.const 20 i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $3 - local.get $4 + local.tee $0 i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$76 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$76 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1664 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 + return end - local.get $1 + global.get $~lib/rt/itcms/white local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add + i32.const 20 + i32.sub local.tee $1 - i32.load offset=96 + i32.load offset=4 + i32.const 3 + i32.and i32.eq if local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz + global.get $~lib/rt/itcms/iter + i32.eq if + local.get $1 + i32.load offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$186 + local.get $1 i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl + i32.const -4 i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 + local.tee $0 i32.eqz if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34732 + i32.lt_u i32.and - i32.store + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$186 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1664 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1664 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1936 + i32.load + i32.gt_u + if + i32.const 1520 + i32.const 1584 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1940 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $0 local.get $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 - i32.const 4 - i32.add + select local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store + i32.or + i32.store offset=4 local.get $1 - i32.const 4 - i32.add + local.get $0 + i32.store offset=8 + local.get $0 local.get $1 - i32.load - i32.const -4 + local.get $0 + i32.load offset=4 + i32.const 3 i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if + i32.or + i32.store offset=4 + local.get $2 local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1664 - 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 + global.set $~lib/rt/itcms/visitCount end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u + ) + (func $switch/FooClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s if - i32.const 0 - i32.const 1664 - i32.const 233 - i32.const 14 + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.get $2 - i32.add - i32.ne + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $switch/BarClass#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s if - i32.const 0 - i32.const 1664 - i32.const 234 - i32.const 14 + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $4 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 + i32.const 0 i32.store - 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 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $switch/doSwitchClassInstanceWithOverload (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + block $case3|0 + block $case2|0 + block $case1|0 + local.get $0 + i32.const 0 + call $switch/BarClass.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 1 + call $switch/BarClass#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $switch/BarClass.__eq + br_if $case1|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 2 + call $switch/BarClass#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $switch/BarClass.__eq + br_if $case2|0 + br $case3|0 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1664 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor end - local.tee $2 + local.tee $3 i32.const 16 i32.lt_u - local.get $5 + local.get $2 i32.const 23 i32.lt_u i32.and @@ -605,648 +903,323 @@ if i32.const 0 i32.const 1664 - i32.const 251 + i32.const 284 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 offset=96 - local.set $3 local.get $1 - i32.const 0 - i32.store offset=4 + i32.load offset=8 + local.set $5 local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 + i32.load offset=4 + local.tee $4 if - local.get $3 - local.get $1 + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 i32.store offset=4 end + local.get $1 local.get $0 - local.get $5 - i32.const 4 - i32.shl local.get $2 - i32.add - i32.const 2 + i32.const 4 i32.shl + local.get $3 i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1664 - i32.const 382 - 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 offset=1568 - local.tee $3 + local.tee $1 + i32.load offset=96 + i32.eq if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1664 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1664 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 34736 - i32.const 0 - i32.store - i32.const 36304 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz if local.get $0 + local.get $2 i32.const 2 i32.shl - i32.const 34736 i32.add - i32.const 0 - i32.store 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 34736 - i32.add - i32.const 0 - i32.store 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 34736 - i32.const 36308 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 34736 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 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 34732 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 offset=4 local.tee $1 - i32.const -4 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz + local.set $3 local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34732 - i32.lt_u + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 i32.load - i32.const -4 + i32.const -2 + local.get $2 + i32.rotl 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 34732 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1664 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.store + end + end end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (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.const 256 - i32.lt_u + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1664 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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.shr_u - local.set $1 - else + i32.add + local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store local.get $1 - i32.const 536870910 - i32.lt_u + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz if - 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.set $1 + i32.const 0 + i32.const 1664 + i32.const 221 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $0 local.get $1 - i32.const 31 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.clz - i32.sub - local.tee $2 + local.get $6 i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 + i32.add + local.get $3 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store end - local.get $1 - i32.const 16 - i32.lt_u + local.get $4 local.get $2 - i32.const 23 - i32.lt_u + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 i32.and - i32.eqz + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1664 - i32.const 334 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 + local.get $4 + local.get $1 + i32.const 4 + i32.add local.get $2 - i32.const 2 - i32.shl i32.add - i32.load offset=4 - i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1664 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + i32.const 4 + i32.sub local.get $1 - i32.shl - i32.and - local.tee $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u 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 - i32.load offset=96 + i32.shr_u else - local.get $0 - i32.load - i32.const -1 + i32.const 31 + i32.const 1073741820 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end + 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 1664 + 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 offset=96 + local.set $3 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1346,8 +1319,6 @@ local.tee $2 i32.eqz if - memory.size - local.tee $2 local.get $5 i32.const 256 i32.ge_u @@ -1375,7 +1346,8 @@ i32.const 4 local.get $4 i32.load offset=1568 - local.get $2 + memory.size + local.tee $2 i32.const 16 i32.shl i32.const 4 @@ -1389,7 +1361,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $2 + local.get $3 local.get $2 local.get $3 i32.gt_s @@ -1518,248 +1492,83 @@ local.get $1 i32.store offset=12 local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $switch/BarClass - block $switch/FooClass - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $switch/FooClass $switch/BarClass $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - return - end - unreachable - ) - (func $~start - call $start:switch - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1964 - i32.lt_s - if - i32.const 34752 - i32.const 34800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + local.get $0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $2 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $2 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $2 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $1 + local.get $2 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + local.get $0 + memory.fill + local.get $1 + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $switch/BarClass + block $switch/FooClass + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $switch/FooClass $switch/BarClass $invalid + end + return + end + return + end + return end - end - end - block $__inlined_func$~lib/util/string/compareImpl$76 - loop $while-continue|1 local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$76 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end + i32.load + call $~lib/rt/itcms/__visit + return end - i32.const 0 - local.set $3 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + unreachable ) - (func $switch/doSwitchString (param $0 i32) (result i32) + (func $switch/doSwitchClassMember (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1774,171 +1583,102 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - block $case3|0 - block $case2|0 - block $case1|0 + i32.store + block $case2|0 + block $case1|0 + local.get $0 + i32.load + local.tee $0 + i32.const 1 + i32.ne + if local.get $0 - i32.const 1104 - call $~lib/string/String.__eq - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1136 - call $~lib/string/String.__eq - br_if $case1|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1168 - call $~lib/string/String.__eq - br_if $case2|0 - br $case3|0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + i32.const 2 + i32.eq + br_if $case1|0 + br $case2|0 end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 2 + i32.const 1 return end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 3 + i32.const 2 return end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3 ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $switch/doSwitchClassInstance (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1964 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1964 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - block $__inlined_func$~lib/string/String#concat$191 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $4 - local.get $3 - i32.add - local.tee $0 - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 1964 + i32.lt_s + if + i32.const 34752 + i32.const 34800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $case2|0 + block $case1|0 + global.get $switch/foo1 + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1296 - local.set $0 - br $__inlined_func$~lib/string/String#concat$191 + local.get $0 + global.get $switch/foo2 + i32.eq + br_if $case1|0 + br $case2|0 end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $2 - local.get $3 - memory.copy - local.get $0 - local.get $3 - i32.add - local.get $1 - local.get $4 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 1 + return end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + i32.const 2 return end - i32.const 34752 - i32.const 34800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 ) - (func $switch/doSwitchNullableString (param $0 i32) (result i32) + (func $switch/BarClass.__eq (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1953,374 +1693,689 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + return + end global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + i32.eq global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 + end + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 + i32.sub + local.set $2 + end + local.get $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 1664 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.store offset=4 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - local.get $0 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1104 - call $~lib/string/String.__eq - br_if $case1|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1136 - call $~lib/string/String.__eq - br_if $case2|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1168 - call $~lib/string/String.__eq - br_if $case3|0 - br $case4|0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else + local.get $0 + i32.load + 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 $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer i32.const 2 - return + i32.shl + i32.add + i32.load offset=96 + else + i32.const 0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3 - return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4 ) - (func $switch/FooClass#constructor (param $0 i32) (result i32) + (func $~lib/rt/tlsf/initialize + (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 1964 - i32.lt_s - if - i32.const 34752 - i32.const 34800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new + memory.size local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $switch/doSwitchClassMember (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 1964 - i32.lt_s - if - i32.const 34752 - i32.const 34800 - i32.const 1 + i32.le_s + if (result i32) i32.const 1 - call $~lib/builtins/abort + local.get $1 + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if unreachable end - global.get $~lib/memory/__stack_pointer + i32.const 34736 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 36304 + i32.const 0 i32.store - block $case2|0 - block $case1|0 + loop $for-loop|0 + local.get $0 + i32.const 23 + i32.lt_u + if local.get $0 - i32.load - local.tee $0 - i32.const 1 - i32.ne - if - local.get $0 - i32.const 2 - i32.eq - br_if $case1|0 - br $case2|0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl + i32.const 34736 i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 + i32.store 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 34736 + i32.add + i32.const 0 + i32.store 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 - return + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2 - return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3 + i32.const 34736 + i32.const 36308 + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + i32.const 34736 + global.set $~lib/rt/tlsf/ROOT ) - (func $switch/BarClass.__eq (param $0 i32) (param $1 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 1964 - i32.lt_s + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u if - i32.const 34752 - i32.const 34800 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1664 + i32.const 382 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 local.get $1 - i32.eq + i32.const 19 + i32.add + i32.const -16 + i32.and + i32.const 4 + i32.sub + local.set $1 + local.get $0 + i32.load offset=1568 + local.tee $3 if - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1664 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + 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 1664 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end end - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $1 - i32.load - i32.eq - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $switch/BarClass#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + i32.and + local.get $3 i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1964 - i32.lt_s - if - i32.const 34752 - i32.const 34800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 + i32.const 1 + i32.or + i32.or i32.store - global.get $~lib/memory/__stack_pointer local.get $1 + i32.const 0 i32.store offset=4 local.get $1 i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.store offset=8 local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $switch/doSwitchClassInstanceWithOverload (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1964 - i32.lt_s + global.get $switch/foo1 + local.tee $0 if - i32.const 34752 - i32.const 34800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $~lib/rt/itcms/__visit end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - block $case3|0 + global.get $switch/foo2 + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1520 + call $~lib/rt/itcms/__visit + i32.const 1328 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1392 + i32.const 160 + 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~start + call $start:switch + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34732 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 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 1392 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34732 + i32.lt_u + if local.get $0 i32.const 0 - call $switch/BarClass.__eq - i32.eqz + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34732 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 1 - call $switch/BarClass#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - local.get $1 - call $switch/BarClass.__eq - br_if $case1|0 - global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + local.set $2 local.get $0 - i32.store offset=4 - i32.const 2 - call $switch/BarClass#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 + i32.const 15 + i32.and + i32.const 1 local.get $0 - local.get $1 - call $switch/BarClass.__eq - br_if $case2|0 - br $case3|0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1664 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 + i32.const 10 return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2 - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3 + i32.const 0 ) (func $start:switch (local $0 i32) @@ -2912,58 +2967,4 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $switch/doSwitchClassInstance (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 1964 - i32.lt_s - if - i32.const 34752 - i32.const 34800 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $case2|0 - block $case1|0 - global.get $switch/foo1 - local.get $0 - i32.ne - if - local.get $0 - global.get $switch/foo2 - i32.eq - br_if $case1|0 - br $case2|0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3 - ) ) diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 9256be15f6..e99c91217f 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -3,14 +3,14 @@ (type $1 (func (param i32) (result i32))) (type $2 (func)) (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) - (type $5 (func (param i32 i32 i32))) - (type $6 (func (param f64) (result i32))) + (type $4 (func (param i32 i32 i32))) + (type $5 (func (param f64) (result i32))) + (type $6 (func (param i32 i32))) (type $7 (func (param i32 i32 i32 i32))) (type $8 (func (param i32 i32 i64))) - (type $9 (func (result i32))) + (type $9 (func (param i32 i32 i32) (result i32))) (type $10 (func (param i64 i64 i32 i64 i32) (result i32))) - (type $11 (func (param i32 i32 i32) (result i32))) + (type $11 (func (result i32))) (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)) @@ -140,1667 +140,1670 @@ (data $62 (i32.const 5872) "\07\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00\04A\00\00 ") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1408 - call $~lib/rt/itcms/__visit - i32.const 1216 - call $~lib/rt/itcms/__visit - i32.const 2464 - call $~lib/rt/itcms/__visit - i32.const 3520 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + if + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1280 - i32.const 160 - 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 offset=4 - i32.const -4 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$91 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$91 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) + (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + local.get $1 + i32.eqz + if + return + end local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq + i32.eqz if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter + i32.const 0 + i32.const 1280 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/rt/itcms/Object#unlink$165 + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if local.get $0 + i32.const 20 + i32.sub + local.tee $0 i32.load offset=4 - i32.const -4 + i32.const 3 i32.and - local.tee $1 + local.tee $3 + global.get $~lib/rt/itcms/white i32.eqz + i32.eq if local.get $0 - i32.load offset=8 - i32.eqz - local.get $0 - i32.const 38672 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + local.get $1 + local.get $2 + select + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $3 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray end - br $__inlined_func$~lib/rt/itcms/Object#unlink$165 - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 2 - i32.le_u - if (result i32) + ) + (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + if + i32.const 38704 + i32.const 38752 i32.const 1 - else - local.get $1 - i32.const 5872 - i32.load - i32.gt_u - if - i32.const 1408 - i32.const 1472 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - i32.shl - i32.const 5876 - i32.add - i32.load - i32.const 32 - i32.and + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 + i32.store local.get $1 - i32.load offset=4 - i32.const 3 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 i32.and - i32.or - i32.store offset=4 + local.tee $3 local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - local.get $0 + i32.add + local.tee $4 i32.eqz if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1184 return end - global.get $~lib/rt/itcms/white + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=4 + local.get $4 local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end + local.get $2 + memory.copy + local.get $2 + local.get $4 + i32.add + local.get $1 + local.get $3 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (func $~lib/number/I32#toString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + 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 5904 + i32.lt_s if - i32.const 0 - i32.const 1552 - i32.const 268 - i32.const 14 + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32$75 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2032 + local.set $0 + br $__inlined_func$~lib/util/number/itoa32$75 + end + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1552 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else + local.get $0 + i32.sub + local.get $0 + local.get $0 i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u + i32.shr_u + i32.const 1 + i32.shl + local.tee $1 select local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $3 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $3 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $3 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $3 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $3 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $3 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $3 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $2 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $1 + i32.add local.get $3 - local.get $4 + local.get $2 + call $~lib/util/number/utoa32_dec_lut + local.get $1 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor + i32.add + global.set $~lib/memory/__stack_pointer end - local.tee $3 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and + local.get $0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + local.get $0 i32.eqz if - i32.const 0 - i32.const 1552 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable + return end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $0 i32.load offset=4 - local.tee $4 + i32.const 3 + i32.and + i32.eq if - local.get $4 - local.get $5 - i32.store offset=8 + local.get $0 + call $~lib/rt/itcms/Object#makeGray + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount end - local.get $5 + ) + (func $~lib/staticarray/StaticArray<~lib/string/String>#join (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 5904 + i32.lt_s if - local.get $5 - local.get $4 - i32.store offset=4 + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 2 - i32.shl + i32.shr_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store + local.get $0 + local.get $1 + call $~lib/util/string/joinStringArray + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end + global.set $~lib/memory/__stack_pointer ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) + (func $~lib/rt/itcms/__new (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 $1 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz + local.get $0 + i32.const 1073741804 + i32.ge_u if - i32.const 0 - i32.const 1552 - i32.const 203 - i32.const 14 + i32.const 1216 + i32.const 1280 + i32.const 261 + i32.const 31 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u 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 - local.get $1 - i32.const 4 + block $__inlined_func$~lib/rt/itcms/interrupt$70 + i32.const 2048 + local.set $2 + loop $do-loop|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i32.const 1 + i32.shl + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt$70 + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/total + 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.set $4 + local.get $0 + i32.const 16 + i32.add + local.tee $2 + i32.const 1073741820 + i32.gt_u + if + i32.const 1216 + i32.const 1552 + i32.const 461 + i32.const 29 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $2 + i32.const 12 + i32.le_u + if (result i32) + i32.const 12 + else + local.get $2 + i32.const 19 i32.add - local.get $1 - i32.load - i32.const -4 + i32.const -16 i32.and - i32.add - local.tee $4 - i32.load - local.set $2 + i32.const 4 + i32.sub end - local.get $3 - i32.const 2 - i32.and + local.tee $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 + i32.eqz if - local.get $1 + local.get $5 + i32.const 256 + i32.ge_u + if (result i32) + local.get $5 + i32.const 536870910 + i32.lt_u + if (result i32) + local.get $5 + i32.const 1 + i32.const 27 + local.get $5 + i32.clz + i32.sub + i32.shl + i32.add + i32.const 1 + i32.sub + else + local.get $5 + end + else + local.get $5 + end + i32.const 4 + local.get $4 + i32.load offset=1568 + memory.size + local.tee $2 + i32.const 16 + i32.shl i32.const 4 i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 + i32.ne + i32.shl + i32.add + i32.const 65535 + i32.add + i32.const -65536 i32.and + i32.const 16 + i32.shr_u + local.set $3 + local.get $2 + local.get $3 + local.get $2 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $2 + i32.const 16 + i32.shl + memory.size + i64.extend_i32_s + i64.const 16 + i64.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + local.get $5 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if i32.const 0 i32.const 1552 - i32.const 221 + i32.const 499 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 end - local.get $4 + local.get $5 local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 + i32.load i32.const -4 i32.and - local.tee $2 - i32.const 12 - i32.lt_u + i32.gt_u if i32.const 0 i32.const 1552 - i32.const 233 + i32.const 501 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $1 - i32.const 4 - i32.add local.get $2 + call $~lib/rt/tlsf/removeBlock + local.get $2 + i32.load + local.set $6 + local.get $5 + i32.const 4 i32.add - i32.ne + i32.const 15 + i32.and if i32.const 0 i32.const 1552 - i32.const 234 + i32.const 361 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $4 - i32.const 4 + local.get $6 + i32.const -4 + i32.and + local.get $5 i32.sub - local.get $1 - i32.store - 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.tee $3 + i32.const 16 + i32.ge_u + if 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 $5 + local.get $6 + i32.const 2 + i32.and + i32.or + i32.store local.get $2 + i32.const 4 + i32.add + local.get $5 + i32.add + local.tee $5 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 1552 - 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $2 + local.get $6 + i32.const -2 + i32.and + i32.store + local.get $2 + i32.const 4 + i32.add + local.get $2 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $3 local.get $3 - local.get $1 - i32.store offset=4 + i32.load + i32.const -3 + i32.and + i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 + i32.store offset=12 + local.get $2 local.get $0 - i32.load offset=4 - i32.const 1 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 local.get $2 - i32.shl + local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1552 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1552 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - 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 1552 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - end + local.get $3 + i32.store offset=8 + local.get $3 local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or + i32.load offset=4 + i32.const 3 + i32.and i32.or - i32.store - local.get $1 - i32.const 0 i32.store offset=4 local.get $1 - i32.const 0 + local.get $2 i32.store offset=8 - local.get $1 + global.get $~lib/rt/itcms/total + local.get $2 + i32.load + i32.const -4 + i32.and i32.const 4 i32.add - local.get $3 i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + global.set $~lib/rt/itcms/total + local.get $2 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 local.get $0 + memory.fill local.get $1 - call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 + (func $templateliteral/Ref#toString (param $0 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 5904 i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 38672 - i32.const 0 - i32.store - i32.const 40240 - i32.const 0 - i32.store - loop $for-loop|0 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 23 - i32.lt_u + i32.store offset=4 + local.get $0 + i32.load + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 5904 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 5328 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 5328 + local.get $0 + call $~lib/string/String#concat + 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.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/number/F64#toString (param $0 f64) (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 + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + if + i32.const 38704 + i32.const 38752 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 3776 + local.set $1 + block $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + f64.const 0 + f64.eq + br_if $~lib/util/number/dtoa_impl|inlined.0 + local.get $0 + local.get $0 + f64.sub + f64.const 0 + f64.ne if + i32.const 3808 + local.set $1 local.get $0 - i32.const 2 - i32.shl - i32.const 38672 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 + local.get $0 + f64.ne + br_if $~lib/util/number/dtoa_impl|inlined.0 + i32.const 3840 + i32.const 3888 + local.get $0 + f64.const 0 + f64.lt + select + local.set $1 + br $~lib/util/number/dtoa_impl|inlined.0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 3920 + local.get $2 + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u 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 38672 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 i32.const 1 + i32.shl i32.add - local.set $0 - br $for-loop|0 + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 2044 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2044 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end - i32.const 38672 - i32.const 40244 - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - i32.const 38672 - global.set $~lib/rt/tlsf/ROOT + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 2044 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 2044 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 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 + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1552 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1552 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 + i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 i32.load offset=4 - i32.const -4 + i32.const -2 + local.get $3 + i32.rotl i32.and - i32.eq + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 38672 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 offset=4 - i32.const -4 + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 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 1280 - i32.const 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 38672 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 38672 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1552 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end + i32.store end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state end - i32.const 0 ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/insertBlock (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.const 256 - i32.lt_u + i32.eqz if - local.get $1 - i32.const 4 - i32.shr_u - local.set $1 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if - 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.set $1 - end - local.get $1 - i32.const 31 - local.get $1 - i32.clz - i32.sub - local.tee $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - local.set $1 - local.get $2 - i32.const 7 - i32.sub - local.set $2 + i32.const 0 + i32.const 1552 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable end local.get $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u + i32.load + local.tee $3 + i32.const 1 i32.and i32.eqz if i32.const 0 i32.const 1552 - i32.const 334 + i32.const 203 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - i32.const 2 - i32.shl + local.get $1 + i32.const 4 i32.add - i32.load offset=4 - i32.const -1 local.get $1 - i32.shl + i32.load + i32.const -4 i32.and - local.tee $1 - if (result i32) + i32.add + local.tee $4 + i32.load + local.tee $2 + i32.const 1 + i32.and + if local.get $0 + local.get $4 + call $~lib/rt/tlsf/removeBlock local.get $1 - i32.ctz + local.get $3 + i32.const 4 + i32.add local.get $2 + i32.const -4 + i32.and + i32.add + local.tee $3 + i32.store + local.get $1 i32.const 4 - i32.shl i32.add - i32.const 2 - i32.shl + local.get $1 + i32.load + i32.const -4 + i32.and i32.add - i32.load offset=96 - else - local.get $0 + local.tee $4 i32.load - i32.const -1 - local.get $2 + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 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 $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 347 - i32.const 18 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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 1216 - i32.const 1280 - i32.const 261 - 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$70 - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i32.const 1 - i32.shl - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt$70 - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/total - 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.set $4 - local.get $0 - i32.const 16 - i32.add - local.tee $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1216 - i32.const 1552 - i32.const 461 - i32.const 29 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $2 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $2 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - end - local.tee $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 - i32.eqz - if - memory.size - local.tee $2 - local.get $5 - i32.const 256 - i32.ge_u - if (result i32) - local.get $5 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1 - i32.const 27 - local.get $5 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $5 - end - else - local.get $5 - end - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $2 - i32.const 16 - i32.shl - memory.size - i64.extend_i32_s - i64.const 16 - i64.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $5 - call $~lib/rt/tlsf/searchBlock - local.tee $2 i32.eqz if i32.const 0 i32.const 1552 - i32.const 499 + 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 end - local.get $5 + local.get $4 local.get $2 - i32.load + i32.const 2 + i32.or + i32.store + local.get $3 i32.const -4 i32.and - i32.gt_u + local.tee $2 + i32.const 12 + i32.lt_u if i32.const 0 i32.const 1552 - i32.const 501 + i32.const 233 i32.const 14 call $~lib/builtins/abort unreachable end local.get $4 - local.get $2 - call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $6 - local.get $5 + local.get $1 i32.const 4 i32.add - i32.const 15 - i32.and + local.get $2 + i32.add + i32.ne if i32.const 0 i32.const 1552 - i32.const 361 + i32.const 234 i32.const 14 call $~lib/builtins/abort unreachable end - local.get $6 - i32.const -4 - i32.and - local.get $5 + local.get $4 + i32.const 4 i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $2 - local.get $5 - local.get $6 - i32.const 2 - i32.and - i32.or - i32.store + local.get $1 + i32.store + local.get $2 + i32.const 256 + i32.lt_u + if (result i32) local.get $2 i32.const 4 - i32.add - local.get $5 - i32.add - local.tee $5 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $5 - call $~lib/rt/tlsf/insertBlock + i32.shr_u else + i32.const 31 + i32.const 1073741820 local.get $2 - local.get $6 - i32.const -2 - i32.and - i32.store - local.get $2 - i32.const 4 - i32.add local.get $2 - i32.load - i32.const -4 - i32.and - i32.add + 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.load - i32.const -3 - i32.and - i32.store + 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 1552 + i32.const 251 + i32.const 14 + call $~lib/builtins/abort + unreachable end - local.get $2 - local.get $1 - i32.store offset=12 - local.get $2 local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 + local.get $5 + i32.const 4 + i32.shl local.get $2 + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + local.set $3 local.get $1 - global.get $~lib/rt/itcms/white - i32.or + i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and + if + local.get $3 + local.get $1 + i32.store 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 - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 + local.get $1 + i32.store offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl i32.add - local.tee $1 - i32.const 0 + local.tee $0 local.get $0 - memory.fill - local.get $1 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/itcms/Object#makeGray (param $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) - local.get $1 - i32.eqz - if - return - end local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1280 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter i32.eq if local.get $0 - i32.const 20 - i32.sub - local.tee $0 + i32.load offset=8 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1280 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $1 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$165 + local.get $0 i32.load offset=4 - i32.const 3 + i32.const -4 i32.and - local.tee $3 - global.get $~lib/rt/itcms/white + local.tee $1 i32.eqz - i32.eq if local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq + i32.load offset=8 + i32.eqz + local.get $0 + i32.const 38672 + i32.lt_u i32.and + i32.eqz if - local.get $1 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1280 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable end + br $__inlined_func$~lib/rt/itcms/Object#unlink$165 end - end - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u + local.get $0 + i32.load offset=8 + local.tee $2 + i32.eqz if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 2044 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 2044 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.const 0 + i32.const 1280 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 + local.get $1 local.get $2 - i32.const 2 - i32.sub - local.tee $2 + i32.store offset=8 + local.get $2 + local.get $1 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $0 + i32.load offset=12 + local.tee $1 + i32.const 2 + i32.le_u + if (result i32) i32.const 1 - i32.shl - i32.add + else + local.get $1 + i32.const 5872 + i32.load + i32.gt_u + if + i32.const 1408 + i32.const 1472 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 100 - i32.rem_u i32.const 2 i32.shl - i32.const 2044 + i32.const 5876 i32.add i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 + i32.const 32 + i32.and end + local.set $3 + local.get $2 + i32.load offset=8 + local.set $1 + local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 + local.get $3 + select + local.get $2 + i32.or + i32.store offset=4 + local.get $0 local.get $1 - i32.const 10 - i32.ge_u - if + i32.store offset=8 + local.get $1 + local.get $0 + local.get $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + ) + (func $~lib/rt/__visit_members (param $0 i32) + (local $1 i32) + (local $2 i32) + block $invalid + block $templateliteral/RecursiveObject + block $templateliteral/Ref + block $~lib/staticarray/StaticArray<~lib/string/String> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray<~lib/string/String> $templateliteral/Ref $templateliteral/RecursiveObject $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.add + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $1 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + return + end + return + end local.get $0 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 2044 - i32.add i32.load - i32.store - else + call $~lib/rt/itcms/__visit local.get $0 - local.get $2 + i32.load offset=4 + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $templateliteral/Ref#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + if + i32.const 38704 + i32.const 38752 i32.const 1 - i32.sub i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 ) - (func $~lib/number/I32#toString (param $0 i32) (result i32) - (local $1 i32) + (func $templateliteral/RecursiveObject#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1815,633 +1818,843 @@ unreachable end global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $2 i32.store - block $__inlined_func$~lib/util/number/itoa32$75 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2032 - local.set $0 - br $__inlined_func$~lib/util/number/itoa32$75 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $1 + i32.store offset=4 + local.get $2 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 256 + i32.lt_u + if + local.get $1 + i32.const 4 + i32.shr_u + local.set $1 + else + local.get $1 + i32.const 536870910 + i32.lt_u + if + 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.set $1 end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 + local.get $1 + i32.const 31 + local.get $1 + i32.clz + i32.sub + local.tee $2 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + local.set $1 + local.get $2 + i32.const 7 i32.sub + local.set $2 + end + local.get $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 1552 + i32.const 334 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + 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 + i32.load offset=96 + else local.get $0 - i32.const 31 - i32.shr_u + i32.load + i32.const -1 + local.get $2 i32.const 1 + i32.add i32.shl + i32.and local.tee $1 - select - local.tee $3 - i32.const 100000 - i32.lt_u if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add + local.get $0 + local.get $1 + i32.ctz + local.tee $1 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 347 + i32.const 18 + call $~lib/builtins/abort + unreachable end + local.get $0 + local.get $2 + i32.ctz + local.get $1 + i32.const 4 + i32.shl + i32.add + i32.const 2 + i32.shl + i32.add + i32.load offset=96 else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.const 0 end - local.tee $2 + end + ) + (func $~lib/rt/tlsf/initialize + (local $0 i32) + (local $1 i32) + memory.size + local.tee $1 + i32.const 0 + i32.le_s + if (result i32) i32.const 1 - i32.shl local.get $1 - i32.add - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + i32.sub + memory.grow + i32.const 0 + i32.lt_s + else + i32.const 0 + end + if + unreachable + end + i32.const 38672 + i32.const 0 + i32.store + i32.const 40240 + i32.const 0 + i32.store + loop $for-loop|0 local.get $0 - local.get $1 - i32.add - local.get $3 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - local.get $1 + i32.const 23 + i32.lt_u if local.get $0 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) - (local $5 i32) - (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 - local.get $0 - i64.sub - local.set $10 - i64.const 1 - i32.const 0 - local.get $2 - i32.sub - local.tee $11 + i32.const 2 + i32.shl + i32.const 38672 + i32.add + i32.const 0 + i32.store 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 38672 + i32.add + i32.const 0 + i32.store 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 38672 + i32.const 40244 + memory.size i64.extend_i32_s - local.tee $0 + i64.const 16 i64.shl - local.tee $7 - i64.const 1 - i64.sub - local.tee $12 + call $~lib/rt/tlsf/addMemory + i32.const 38672 + global.set $~lib/rt/tlsf/ROOT + ) + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 local.get $1 - i64.and - local.set $9 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1552 + i32.const 382 + 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 - i64.shr_u - i32.wrap_i64 - local.tee $5 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 100 - i32.lt_u - if (result i32) - local.get $5 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $5 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add + i32.load offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1552 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 local.get $5 - i32.const 1000 - i32.ge_u - i32.add + local.set $1 end else - local.get $5 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $5 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $5 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $5 - i32.const 100000000 - i32.ge_u - i32.add + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1552 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end end - local.set $8 + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1408 + call $~lib/rt/itcms/__visit + i32.const 1216 + call $~lib/rt/itcms/__visit + i32.const 2464 + call $~lib/rt/itcms/__visit + i32.const 3520 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 loop $while-continue|0 - local.get $8 - i32.const 0 - i32.gt_s + local.get $0 + local.get $1 + i32.ne if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $8 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $5 - i32.const 1000000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100000 - i32.div_u - local.set $6 - local.get $5 - i32.const 100000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 1000 - i32.div_u - local.set $6 - local.get $5 - i32.const 1000 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - i32.const 10 - i32.div_u - local.set $6 - local.get $5 - i32.const 10 - i32.rem_u - local.set $5 - br $break|1 - end - local.get $5 - local.set $6 - i32.const 0 - local.set $5 - br $break|1 - end - i32.const 0 - local.set $6 - end - local.get $4 - local.get $6 - i32.or - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 3920 - i32.add - local.get $6 - i32.const 65535 - i32.and - i32.const 48 - i32.add - i32.store16 - end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $3 - local.get $5 - i64.extend_i32_u - local.get $11 - i64.extend_i32_s - local.tee $1 - i64.shl - local.get $9 - i64.add - local.tee $0 - i64.ge_u + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne if - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $8 - i32.const 2 - i32.shl - i32.const 4848 - i32.add - i64.load32_u - local.get $1 - i64.shl - local.set $7 - local.get $4 - i32.const 1 - i32.shl - i32.const 3918 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|3 - local.get $0 - local.get $10 - i64.lt_u - local.get $3 - local.get $0 - i64.sub - local.get $7 - i64.ge_u - i32.and - if (result i32) - local.get $10 - local.get $0 - local.get $7 - i64.add - local.tee $1 - i64.gt_u - local.get $10 - local.get $0 - i64.sub - local.get $1 - local.get $10 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $0 - local.get $7 - i64.add - local.set $0 - br $while-continue|3 - end - end - local.get $2 - local.get $6 - i32.store16 - local.get $4 - return + i32.const 0 + i32.const 1280 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - br $while-continue|0 - end - end - loop $while-continue|4 - local.get $3 - i64.const 10 - i64.mul - local.set $3 - local.get $9 - i64.const 10 - i64.mul - local.tee $1 - local.get $11 - i64.extend_i32_s - i64.shr_u - local.tee $0 - local.get $4 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $4 - local.tee $2 - i32.const 1 - i32.add - local.set $4 - local.get $2 - i32.const 1 - i32.shl - i32.const 3920 + local.get $0 + i32.const 20 i32.add + call $~lib/rt/__visit_members local.get $0 - i32.wrap_i64 - i32.const 65535 + i32.load offset=4 + i32.const -4 i32.and - i32.const 48 - i32.add - i32.store16 + local.set $0 + br $while-continue|0 end - local.get $8 + end + ) + (func $templateliteral/RecursiveObject#toString (param $0 i32) (result i32) + (local $1 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 5904 + i32.lt_s + if + i32.const 38704 + i32.const 38752 i32.const 1 - i32.sub - local.set $8 - local.get $1 - local.get $12 - i64.and - local.tee $9 - local.get $3 - i64.ge_u - br_if $while-continue|4 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/util/number/_K - local.get $8 - i32.add - global.set $~lib/util/number/_K - local.get $10 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $8 - i32.sub - i32.const 2 - i32.shl - i32.const 4848 - i32.add - i64.load32_u - i64.mul - local.set $1 - local.get $4 - i32.const 1 - i32.shl - i32.const 3918 - i32.add - local.tee $2 - i32.load16_u - local.set $6 - loop $while-continue|6 - local.get $1 - local.get $9 - i64.gt_u - local.get $3 - local.get $9 - i64.sub - local.get $7 - i64.ge_u - i32.and - if (result i32) - local.get $1 - local.get $7 - local.get $9 - i64.add - local.tee $0 - i64.gt_u - local.get $1 - local.get $9 - i64.sub - local.get $0 - local.get $1 - i64.sub - i64.gt_u - i32.or - else - i32.const 0 - end - if - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $7 - local.get $9 - i64.add - local.set $9 - br $while-continue|6 - end - end - local.get $2 - local.get $6 - i32.store16 - local.get $4 - ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - local.get $2 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $1 + i32.store offset=4 + local.get $1 i32.eqz if + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 3145774 i32.store - local.get $1 - i32.const 2 + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + i32.const 20 i32.add + global.set $~lib/memory/__stack_pointer return end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 - i32.add - local.tee $3 - i32.const 21 - i32.le_s + i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $3 - i32.le_s - i32.and - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - local.get $0 - local.get $3 + call $templateliteral/RecursiveObject#toString + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 5824 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 5824 + local.get $0 + i32.store + i32.const 5824 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5824 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + i32.const 5832 + local.get $1 + i32.store + i32.const 5824 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5824 + i32.store + i32.const 5824 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~start + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:templateliteral + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + if + i32.const 38704 + i32.const 38752 i32.const 1 - i32.shl + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - i32.const 3145774 + global.set $~lib/memory/__stack_pointer + i32.const 1184 + return + end + local.get $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $0 i32.store - local.get $3 - i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - else - local.get $3 - i32.const 21 - i32.le_s + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 1184 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 local.get $3 - i32.const 0 i32.gt_s - i32.and - if (result i32) + if + global.get $~lib/memory/__stack_pointer local.get $0 local.get $3 - i32.const 1 - i32.shl - i32.add - local.tee $0 i32.const 2 - i32.add - local.get $0 - i32.const 0 - local.get $2 - i32.sub - i32.const 1 i32.shl - memory.copy - local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 i32.add - else - local.get $3 - i32.const 0 - i32.le_s - local.get $3 - i32.const -6 - i32.gt_s - i32.and - if (result i32) - local.get $0 - i32.const 2 - local.get $3 - i32.sub - local.tee $3 - i32.const 1 + i32.load + local.tee $5 + i32.store offset=4 + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $2 + local.get $5 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $2 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + i32.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1180 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + local.get $4 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $6 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + i32.const 1 + i32.shl + memory.copy + local.get $3 + local.get $6 + i32.add + local.set $3 + end + local.get $1 + if + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 1184 + local.get $1 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $3 + i32.add + local.set $3 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const -2 + i32.and + memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.const 21 + i32.le_s + local.get $1 + local.get $3 + i32.le_s + i32.and + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + local.get $3 + i32.const 0 + i32.gt_s + i32.and + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + local.get $3 + i32.const -6 + i32.gt_s + i32.and + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 i32.shl i32.add local.get $0 @@ -2667,1076 +2880,1122 @@ end end ) - (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) + (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) (local $10 i64) - (local $11 i64) + (local $11 i32) (local $12 i64) - (local $13 i64) - (local $14 i64) - local.get $0 - f64.const 0 - f64.lt - local.tee $2 - if (result f64) - i32.const 3920 - i32.const 45 - i32.store16 - local.get $0 - f64.neg - else - local.get $0 - end - i64.reinterpret_f64 - local.tee $1 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $8 - i32.const 1 - i32.sub local.get $1 - i64.const 4503599627370495 - i64.and - local.get $4 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - i64.add - local.tee $1 - i64.const 1 - i64.shl + local.get $0 + i64.sub + local.set $9 i64.const 1 - i64.add - local.tee $3 - i64.clz - i32.wrap_i64 - local.tee $9 + i32.const 0 + local.get $2 i32.sub - local.set $4 - local.get $3 - local.get $9 - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_plus - local.get $1 - local.get $1 - i64.const 4503599627370496 - i64.eq - i32.const 1 - i32.add - local.tee $9 + local.tee $11 i64.extend_i32_s + local.tee $0 i64.shl + local.tee $10 i64.const 1 i64.sub - local.get $8 - local.get $9 - i32.sub - local.get $4 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $4 - global.set $~lib/util/number/_exp - i32.const 348 - i32.const -61 - global.get $~lib/util/number/_exp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.tee $0 - i32.trunc_sat_f64_s - local.tee $4 - local.get $4 - f64.convert_i32_s - local.get $0 - f64.ne - i32.add - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.tee $4 - i32.const 3 - i32.shl - local.tee $8 - i32.sub - global.set $~lib/util/number/_K - local.get $8 - i32.const 3976 - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - local.get $4 - i32.const 1 - i32.shl - i32.const 4672 - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow - local.get $1 + local.tee $12 local.get $1 - i64.clz - i64.shl - local.tee $1 - i64.const 4294967295 - i64.and - local.set $5 - global.get $~lib/util/number/_frc_pow - local.tee $10 - i64.const 4294967295 i64.and - local.tee $11 + local.set $8 local.get $1 - i64.const 32 - i64.shr_u - local.tee $1 - i64.mul - local.get $5 - local.get $11 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $6 - global.get $~lib/util/number/_frc_plus - local.tee $3 - i64.const 4294967295 - i64.and - local.set $12 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - local.get $11 - i64.mul - local.get $11 - local.get $12 - i64.mul - i64.const 32 + local.get $0 i64.shr_u - i64.add + i32.wrap_i64 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end local.set $7 - global.get $~lib/util/number/_frc_minus - local.tee $13 - i64.const 4294967295 - i64.and - local.set $14 - local.get $13 - i64.const 32 - i64.shr_u - local.tee $13 - local.get $11 - i64.mul - local.get $11 - local.get $14 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.set $11 - local.get $2 - i32.const 1 - i32.shl - i32.const 3920 - i32.add - local.get $1 - local.get $10 - i64.const 32 - i64.shr_u - local.tee $1 - i64.mul - local.get $6 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $5 - i64.mul - local.get $6 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $3 - i64.mul - local.get $7 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $12 - i64.mul - local.get $7 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $3 - global.get $~lib/util/number/_exp_pow - global.get $~lib/util/number/_exp - i32.add - i32.const -64 - i32.sub - local.get $3 - local.get $1 - local.get $13 - i64.mul - local.get $11 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - local.get $14 - i64.mul - local.get $11 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - local.get $2 - call $~lib/util/number/genDigits - local.get $2 - i32.sub - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - local.get $2 - i32.add - ) - (func $~lib/number/F64#toString (param $0 f64) (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 - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 3776 - local.set $1 - block $~lib/util/number/dtoa_impl|inlined.0 - local.get $0 - f64.const 0 - f64.eq - br_if $~lib/util/number/dtoa_impl|inlined.0 - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.ne - if - i32.const 3808 - local.set $1 - local.get $0 - local.get $0 - f64.ne - br_if $~lib/util/number/dtoa_impl|inlined.0 - i32.const 3840 - i32.const 3888 - local.get $0 - f64.const 0 - f64.lt - select - local.set $1 - br $~lib/util/number/dtoa_impl|inlined.0 - end - local.get $0 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 3920 - local.get $2 - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $start:templateliteral - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - memory.size - i32.const 16 - i32.shl - i32.const 38672 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/pinSpace - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/toSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 - i32.store - i32.const 1504 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + loop $while-continue|0 + local.get $7 i32.const 0 - i32.const 28 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - i32.const 1056 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 4 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=16 - i32.const 1056 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz + i32.gt_s if - i32.const 0 - i32.const 1120 - i32.const 5 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=16 - i32.const 1748 - i32.const 1056 - i32.store - i32.const 1744 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=16 - i32.const 1756 - i32.const 1088 - i32.store - i32.const 1744 - i32.const 1088 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=12 - i32.const 1744 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 1792 - call $~lib/string/String.__eq - i32.eqz + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $7 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $2 + i32.const 1000000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000 + i32.div_u + local.set $5 + local.get $2 + i32.const 100000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000 + i32.div_u + local.set $5 + local.get $2 + i32.const 10000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000 + i32.div_u + local.set $5 + local.get $2 + i32.const 1000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100 + i32.div_u + local.set $5 + local.get $2 + i32.const 100 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $5 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $5 + end + local.get $4 + local.get $5 + i32.or + if + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $6 + i32.const 1 + i32.shl + i32.const 3920 + i32.add + local.get $5 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + end + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $3 + local.get $2 + i64.extend_i32_u + local.get $11 + i64.extend_i32_s + local.tee $1 + i64.shl + local.get $8 + i64.add + local.tee $0 + i64.ge_u + if + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $7 + i32.const 2 + i32.shl + i32.const 4848 + i32.add + i64.load32_u + local.get $1 + i64.shl + local.set $1 + local.get $4 + i32.const 1 + i32.shl + i32.const 3918 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|3 + local.get $0 + local.get $9 + i64.lt_u + local.get $3 + local.get $0 + i64.sub + local.get $1 + i64.ge_u + i32.and + if (result i32) + local.get $9 + local.get $0 + local.get $1 + i64.add + local.tee $8 + i64.gt_u + local.get $9 + local.get $0 + i64.sub + local.get $8 + local.get $9 + i64.sub + i64.gt_u + i32.or + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.get $1 + i64.add + local.set $0 + br $while-continue|3 + end + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + local.get $3 + i64.const 10 + i64.mul + local.set $3 + local.get $8 + i64.const 10 + i64.mul + local.tee $0 + local.get $11 + i64.extend_i32_s + i64.shr_u + local.tee $1 + local.get $4 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne if - i32.const 0 - i32.const 1120 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $4 + local.tee $2 + i32.const 1 + i32.add + local.set $4 + local.get $2 + i32.const 1 + i32.shl + i32.const 3920 + i32.add + local.get $1 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 end - global.get $~lib/memory/__stack_pointer - i32.const 28 - 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 5904 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - i32.const 1 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 13 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 2 - call $~lib/number/I32#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 3648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 14 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/number/I32#toString - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/number/I32#toString - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 3684 - local.get $0 - i32.store - i32.const 3680 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3692 - local.get $1 - i32.store - i32.const 3680 - local.get $1 + local.get $7 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=4 - i32.const 3680 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.sub + local.set $7 local.get $0 - i32.store + local.get $12 + i64.and + local.tee $8 + local.get $3 + i64.ge_u + br_if $while-continue|4 + end + global.get $~lib/util/number/_K + local.get $7 + i32.add + global.set $~lib/util/number/_K + local.get $9 + i32.const 0 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.const 4848 + i32.add + i64.load32_u + i64.mul + local.set $0 + local.get $4 + i32.const 1 + i32.shl + i32.const 3918 + i32.add + local.tee $2 + i32.load16_u + local.set $7 + loop $while-continue|6 local.get $0 - i32.const 3728 - call $~lib/string/String.__eq - i32.eqz - if + local.get $8 + i64.gt_u + local.get $3 + local.get $8 + i64.sub + local.get $10 + i64.ge_u + i32.and + if (result i32) + local.get $0 + local.get $8 + local.get $10 + i64.add + local.tee $1 + i64.gt_u + local.get $0 + local.get $8 + i64.sub + local.get $1 + local.get $0 + i64.sub + i64.gt_u + i32.or + else i32.const 0 - i32.const 1120 - i32.const 15 - 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 - 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 5904 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - f64.const 1 - call $~lib/number/F64#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 4912 - call $~lib/string/String.__eq - i32.eqz if - i32.const 0 - i32.const 1120 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $8 + local.get $10 + i64.add + local.set $8 + br $while-continue|6 end - f64.const 1 - call $~lib/number/F64#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - f64.const 2 - call $~lib/number/F64#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer + end + local.get $2 + local.get $7 + i32.store16 + local.get $4 + ) + (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) + (local $1 i64) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + local.get $0 + f64.const 0 + f64.lt + local.tee $2 + if (result f64) + i32.const 3920 + i32.const 45 + i32.store16 local.get $0 - i32.store + f64.neg + else local.get $0 - i32.const 4944 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - f64.const 1 - call $~lib/number/F64#toString - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - f64.const 2 - call $~lib/number/F64#toString - local.tee $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 4980 - local.get $0 - i32.store - i32.const 4976 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4988 - local.get $1 - i32.store - i32.const 4976 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=4 - i32.const 4976 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 5024 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 24 - 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 - 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 5904 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5072 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 31 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 - i32.const 1088 - i32.const 1088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 5104 - local.get $0 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=8 - i32.const 5104 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=8 - i32.const 1088 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5264 - call $~lib/string/String.__eq - i32.eqz - if + end + i64.reinterpret_f64 + local.tee $1 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.tee $8 + i32.const 1 + i32.sub + local.get $1 + i64.const 4503599627370495 + i64.and + local.get $4 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.tee $1 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $3 + i64.clz + i32.wrap_i64 + local.tee $9 + i32.sub + local.set $4 + local.get $3 + local.get $9 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $1 + local.get $1 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + local.tee $9 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $8 + local.get $9 + i32.sub + local.get $4 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $4 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $0 + i32.trunc_sat_f64_s + local.tee $4 + local.get $4 + f64.convert_i32_s + local.get $0 + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.tee $8 + i32.sub + global.set $~lib/util/number/_K + local.get $8 + i32.const 3976 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $4 + i32.const 1 + i32.shl + i32.const 4672 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + local.get $1 + local.get $1 + i64.clz + i64.shl + local.tee $1 + i64.const 4294967295 + i64.and + local.set $5 + global.get $~lib/util/number/_frc_pow + local.tee $10 + i64.const 4294967295 + i64.and + local.tee $11 + local.get $1 + i64.const 32 + i64.shr_u + local.tee $1 + i64.mul + local.get $5 + local.get $11 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $6 + global.get $~lib/util/number/_frc_plus + local.tee $3 + i64.const 4294967295 + i64.and + local.set $12 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 + local.get $11 + i64.mul + local.get $11 + local.get $12 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $7 + global.get $~lib/util/number/_frc_minus + local.tee $13 + i64.const 4294967295 + i64.and + local.set $14 + local.get $13 + i64.const 32 + i64.shr_u + local.tee $13 + local.get $11 + i64.mul + local.get $11 + local.get $14 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $11 + local.get $2 + i32.const 1 + i32.shl + i32.const 3920 + i32.add + local.get $1 + local.get $10 + i64.const 32 + i64.shr_u + local.tee $1 + i64.mul + local.get $6 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $5 + i64.mul + local.get $6 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $3 + i64.mul + local.get $7 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $12 + i64.mul + local.get $7 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $3 + global.get $~lib/util/number/_exp_pow + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $3 + local.get $1 + local.get $13 + i64.mul + local.get $11 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + local.get $14 + i64.mul + local.get $11 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $2 + call $~lib/util/number/genDigits + local.get $2 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $2 + i32.add + ) + (func $~lib/rt/itcms/step (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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end i32.const 0 - i32.const 1120 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable + 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 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 38672 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=12 - local.get $0 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5296 - call $~lib/string/String.__eq - i32.eqz + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - i32.const 0 - i32.const 1120 - i32.const 37 + local.get $0 + i32.load 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 - call $~lib/builtins/abort - unreachable + i32.and + i32.ne + if + i32.const 0 + i32.const 1280 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 38672 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 38672 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1552 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end - 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 32 - i32.sub - global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $start:templateliteral + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + memory.size + i32.const 16 + i32.shl + i32.const 38672 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1332 + i32.const 1328 + i32.store + i32.const 1336 + i32.const 1328 + i32.store + i32.const 1328 + global.set $~lib/rt/itcms/pinSpace + i32.const 1364 + i32.const 1360 + i32.store + i32.const 1368 + i32.const 1360 + i32.store + i32.const 1360 + global.set $~lib/rt/itcms/toSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 5904 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 32 + i32.const 28 memory.fill global.get $~lib/memory/__stack_pointer - i32.const 1 - call $templateliteral/Ref#constructor - local.tee $2 + i32.const 1056 i32.store global.get $~lib/memory/__stack_pointer - i32.const 2 - call $templateliteral/Ref#constructor - local.tee $0 + i32.const 1088 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $templateliteral/Ref#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 1056 i32.store offset=8 - local.get $1 - i32.const 5360 + i32.const 1056 + i32.const 1056 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 51 + i32.const 4 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $2 - call $templateliteral/Ref#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 1056 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $0 - call $templateliteral/Ref#toString - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 1088 i32.store offset=16 - local.get $1 - local.get $3 + i32.const 1056 + i32.const 1088 call $~lib/string/String#concat - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - i32.const 5392 + local.get $0 + i32.const 1616 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 52 + i32.const 5 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 + i32.const 1056 + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $2 - call $templateliteral/Ref#toString - local.tee $1 + i32.const 1088 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $templateliteral/Ref#toString - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - i32.const 5440 + i32.const 1744 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 1056 i32.store offset=16 - i32.const 5444 - local.get $1 + i32.const 1748 + i32.const 1056 i32.store - i32.const 5440 - local.get $1 + i32.const 1744 + i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5440 + i32.const 1744 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1088 i32.store offset=16 - i32.const 5452 - local.get $0 + i32.const 1756 + i32.const 1088 i32.store - i32.const 5440 - local.get $0 + i32.const 1744 + i32.const 1088 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5440 + i32.const 1744 i32.store offset=12 - i32.const 5440 + i32.const 1744 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - i32.const 5488 + i32.const 1792 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 53 + i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 32 + i32.const 28 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3745,76 +4004,116 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 28 + i32.const 20 memory.fill + i32.const 1 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 3 - call $templateliteral/Ref#constructor - local.tee $0 + local.get $0 i32.store + local.get $0 + i32.const 3616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + i32.const 2 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - call $templateliteral/Ref#toString + i32.store + local.get $0 + i32.const 3648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 14 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/number/I32#toString local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.const 2 + call $~lib/number/I32#toString + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 5664 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store offset=8 + i32.const 3680 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=24 - i32.const 5620 + i32.store offset=8 + i32.const 3684 local.get $0 i32.store - i32.const 5616 + i32.const 3680 local.get $0 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store offset=8 + i32.const 3680 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5664 - i32.store offset=24 - i32.const 5628 - i32.const 5664 + local.get $1 + i32.store offset=8 + i32.const 3692 + local.get $1 i32.store - i32.const 5616 - i32.const 5664 + i32.const 3680 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store offset=8 - i32.const 5616 + i32.const 3680 + i32.store offset=4 + i32.const 3680 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - i32.const 5696 + i32.const 3728 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 60 + i32.const 15 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -3829,47 +4128,108 @@ i32.const 0 i32.const 20 memory.fill + f64.const 1 + call $~lib/number/F64#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 5760 - i32.const 0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 + local.get $0 i32.store + local.get $0 + i32.const 4912 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/number/F64#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + f64.const 2 + call $~lib/number/F64#toString + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 1088 - local.get $0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + local.get $1 + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 1056 local.get $0 - call $templateliteral/RecursiveObject#constructor + i32.store + local.get $0 + i32.const 4944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + f64.const 1 + call $~lib/number/F64#toString local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + f64.const 2 + call $~lib/number/F64#toString + local.tee $1 i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - call $templateliteral/RecursiveObject#toString + i32.store offset=8 + i32.const 4980 + local.get $0 + i32.store + i32.const 4976 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4988 + local.get $1 + i32.store + i32.const 4976 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=4 + i32.const 4976 + call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $0 - i32.const 5856 + i32.const 5024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 125 + i32.const 24 i32.const 3 call $~lib/builtins/abort unreachable @@ -3878,839 +4238,479 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - return - end - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - block $invalid - block $templateliteral/RecursiveObject - block $templateliteral/Ref - block $~lib/staticarray/StaticArray<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray<~lib/string/String> $templateliteral/Ref $templateliteral/RecursiveObject $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:templateliteral - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add + i32.const 16 + i32.sub global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 + i32.const 5904 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1088 i32.store - local.get $0 - local.set $2 + i32.const 2 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - else - i32.const 1 - end + local.get $0 + i32.const 5072 + call $~lib/string/String.__eq i32.eqz if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end + i32.const 0 + i32.const 1120 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable end - block $__inlined_func$~lib/util/string/compareImpl$91 - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$91 - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=4 + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - local.set $3 + i32.const 1120 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $0 + i32.store offset=8 + i32.const 5104 + local.get $0 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5136 + call $~lib/string/String.__eq i32.eqz - return - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - local.tee $3 - local.get $2 - i32.add - local.tee $4 - i32.eqz - if + if + i32.const 0 + i32.const 1120 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1184 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - local.get $2 - memory.copy - local.get $2 - local.get $4 - i32.add - local.get $1 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if + i32.const 1088 + i32.store offset=8 + i32.const 5104 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1184 - return - end - local.get $4 - i32.eqz - if + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.load - local.tee $0 - i32.store + i32.store offset=8 + local.get $0 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - i32.const 1184 + i32.store offset=4 local.get $0 - select - return - end - loop $for-loop|0 - local.get $1 - local.get $3 - i32.gt_s + i32.const 5232 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 - i32.store offset=4 - local.get $5 - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $2 - local.get $5 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $2 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.const 0 + i32.const 1120 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - i32.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1180 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - local.get $4 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $4 - i32.lt_s + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=8 + i32.const 1088 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store offset=4 - local.get $6 - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $5 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $6 - local.get $6 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - i32.const 1 - i32.shl - memory.copy - local.get $3 - local.get $6 - i32.add - local.set $3 - end - local.get $1 - if - local.get $5 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $1 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $3 - i32.add - local.set $3 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 + i32.const 0 + i32.const 1120 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=12 + local.get $0 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $templateliteral/Ref#constructor + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $2 + call $templateliteral/Ref#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 5360 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $2 + call $templateliteral/Ref#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $5 + i32.store offset=20 + local.get $0 + call $templateliteral/Ref#toString + local.set $3 + global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 1 - i32.shl - i32.add + i32.store offset=16 + local.get $1 + local.get $3 + call $~lib/string/String#concat + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 5392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $templateliteral/Ref#toString + local.tee $1 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const -2 - i32.and - memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#join (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 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store - local.get $0 - local.get $1 - call $~lib/util/string/joinStringArray - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $templateliteral/Ref#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 + call $templateliteral/Ref#toString + local.tee $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + i32.const 5444 + local.get $1 + i32.store + i32.const 5440 + local.get $1 i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 5452 + local.get $0 + i32.store + i32.const 5440 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $templateliteral/Ref#toString (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=12 + i32.const 5440 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 5488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 28 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $templateliteral/Ref#toString + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 5664 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + i32.const 5620 + local.get $0 + i32.store + i32.const 5616 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.lt_s - br_if $folding-inner0 + i32.const 5616 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 5664 + i32.store offset=24 + i32.const 5628 + i32.const 5664 + i32.store + i32.const 5616 + i32.const 5664 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=8 + i32.const 5616 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load - call $~lib/number/I32#toString - local.set $0 + i32.const 5696 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 5904 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 5328 + i32.const 5760 + i32.const 0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 5328 + global.get $~lib/memory/__stack_pointer + i32.const 1088 local.get $0 - call $~lib/string/String#concat + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $templateliteral/RecursiveObject#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $1 - i32.store offset=4 - local.get $2 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $templateliteral/RecursiveObject#toString (param $0 i32) (result i32) - (local $1 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 5904 - i32.lt_s - if - i32.const 38704 - i32.const 38752 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.tee $1 - i32.store offset=4 - local.get $1 - i32.eqz - if + i32.const 1056 + local.get $0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=16 local.get $0 - i32.load + call $templateliteral/RecursiveObject#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 125 + 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 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - call $templateliteral/RecursiveObject#toString - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 5824 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - i32.const 5824 - local.get $0 - i32.store - i32.const 5824 - local.get $0 + i32.const 38704 + i32.const 38752 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5824 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - i32.const 5832 - local.get $1 - i32.store - i32.const 5824 - local.get $1 i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5824 - i32.store - i32.const 5824 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/ternary.release.wat b/tests/compiler/ternary.release.wat index fda76df259..fa841a2a0c 100644 --- a/tests/compiler/ternary.release.wat +++ b/tests/compiler/ternary.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32 i32 i32) (result i32))) + (type $1 (func (param i32 i32 i32 i32))) (type $2 (func (param i32))) - (type $3 (func (param i32 i32 i32 i32))) + (type $3 (func (param i32 i32 i32) (result i32))) (type $4 (func (param i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33836)) @@ -14,12 +14,6 @@ (export "testDropWithTypeMismatch" (func $ternary/testDropWithTypeMismatch)) (export "memory" (memory $0)) (export "testVoidInclTypeMismatch" (func $export:ternary/testVoidInclTypeMismatch)) - (func $ternary/test (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $1 - local.get $2 - local.get $0 - select - ) (func $ternary/testDropWithTypeMismatch (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -47,6 +41,12 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $ternary/test (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + local.get $2 + local.get $0 + select + ) (func $export:ternary/testVoidInclTypeMismatch (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index d1427154ca..7336e48213 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -45,766 +45,179 @@ (export "doThrow" (func $throw/doThrow)) (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $~lib/rt/itcms/step (local $0 i32) (local $1 i32) - i32.const 1488 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + (local $2 i64) + (local $3 i32) + (local $4 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 - i32.const 1392 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + return end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load 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 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $3 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $3 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$92 - local.get $1 + 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 offset=4 i32.const -4 i32.and - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34516 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34516 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 offset=4 + i32.const -4 i32.and - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $3 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $3 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end end - br $__inlined_func$~lib/rt/itcms/Object#unlink$92 + 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 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - local.get $1 - i32.load offset=8 - local.tee $2 + 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 offset=4 + local.tee $3 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white i32.eqz + local.get $3 + i32.const 3 + i32.and + i32.ne if i32.const 0 i32.const 1392 - i32.const 132 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $1 - i32.load offset=12 - local.tee $0 - i32.const 2 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $0 - i32.const 1728 - i32.load - i32.gt_u - if - i32.const 1488 - i32.const 1552 - i32.const 21 - i32.const 28 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 2 - i32.shl - i32.const 1732 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load 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 offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1632 - i32.const 268 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const -4 - i32.and - local.tee $3 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1632 - i32.const 270 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if (result i32) - local.get $3 - i32.const 4 - i32.shr_u - else - i32.const 31 - i32.const 1073741820 - local.get $3 - local.get $3 - i32.const 1073741820 - i32.ge_u - select - local.tee $3 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $2 - local.get $3 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $3 - 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 1632 - i32.const 284 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $2 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=96 - i32.eq - if - local.get $1 - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $3 - i32.rotl - i32.and - local.set $3 - local.get $1 - local.get $3 - i32.store offset=4 - local.get $3 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $2 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (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 1632 - i32.const 201 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1632 - 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 - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - 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 - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1632 - 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 - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1632 - 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 1632 - 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 - 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 1632 - 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 offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store 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 offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/itcms/step - (local $0 i32) - (local $1 i32) - (local $2 i64) - (local $3 i32) - (local $4 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 - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 offset=4 - local.tee $3 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $3 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - return - end - local.get $0 - i32.load 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 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 34516 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $3 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $3 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - 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 offset=4 - local.tee $3 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $3 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 229 - i32.const 20 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end @@ -1039,69 +452,627 @@ end return end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$92 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34516 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$92 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + end + global.get $~lib/rt/itcms/toSpace + local.set $2 + local.get $1 + i32.load offset=12 + local.tee $0 + i32.const 2 + i32.le_u + if (result i32) + i32.const 1 + else + local.get $0 + i32.const 1728 + i32.load + i32.gt_u + if + i32.const 1488 + i32.const 1552 + i32.const 21 + i32.const 28 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 2 + i32.shl + i32.const 1732 + i32.add + i32.load + i32.const 32 + i32.and + end + local.set $3 + local.get $2 + i32.load 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 offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.or + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.add + global.set $~lib/rt/itcms/visitCount + end + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + unreachable + ) + (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1632 + i32.const 268 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const -4 + i32.and + local.tee $3 + i32.const 12 + i32.lt_u + if + i32.const 0 + i32.const 1632 + i32.const 270 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 256 + i32.lt_u + if (result i32) + local.get $3 + i32.const 4 + i32.shr_u + else + i32.const 31 + i32.const 1073741820 + local.get $3 + local.get $3 + i32.const 1073741820 + i32.ge_u + select + local.tee $3 + i32.clz + i32.sub + local.tee $4 + i32.const 7 + i32.sub + local.set $2 + local.get $3 + local.get $4 + i32.const 4 + i32.sub + i32.shr_u + i32.const 16 + i32.xor + end + local.tee $3 + 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 1632 + i32.const 284 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load offset=8 + local.set $5 + local.get $1 + i32.load offset=4 + local.tee $4 + if + local.get $4 + local.get $5 i32.store offset=8 + end + local.get $5 + if + local.get $5 + local.get $4 + i32.store offset=4 + end + local.get $1 + local.get $0 + local.get $2 + i32.const 4 + i32.shl + local.get $3 + i32.add + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=96 + i32.eq + if + local.get $1 + local.get $5 + i32.store offset=96 + local.get $5 + i32.eqz + if + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + i32.const -2 + local.get $3 + i32.rotl + i32.and + local.set $3 + local.get $1 + local.get $3 + i32.store offset=4 + local.get $3 + i32.eqz + if + local.get $0 + local.get $0 + i32.load + i32.const -2 + local.get $2 + i32.rotl + i32.and + i32.store + end + end + end + ) + (func $~lib/rt/tlsf/insertBlock (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 1632 + i32.const 201 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.load + local.tee $3 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1632 + 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 + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + 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 + local.get $1 + i32.const 4 + i32.add + local.get $1 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $4 + i32.load + local.set $2 + end + local.get $3 + i32.const 2 + i32.and + if + local.get $1 + i32.const 4 + i32.sub + i32.load + local.tee $1 + i32.load + local.tee $6 + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + i32.const 1632 + 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 + end + local.get $4 + local.get $2 + i32.const 2 + i32.or + i32.store + local.get $3 + i32.const -4 + i32.and + local.tee $2 + i32.const 12 + i32.lt_u + if i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 1632 + i32.const 233 + i32.const 14 + call $~lib/builtins/abort + unreachable end - ) - (func $throw/doThrow - global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.const 4 + i32.add + local.get $2 + i32.add + i32.ne + if + i32.const 0 + i32.const 1632 + i32.const 234 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 i32.const 4 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s + local.get $1 + i32.store + 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 34544 - i32.const 34592 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1632 + i32.const 251 + i32.const 14 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + 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 offset=96 + local.set $3 + local.get $1 i32.const 0 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $3 + local.get $1 + i32.store 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 offset=96 + local.get $0 + local.get $0 + i32.load + i32.const 1 + local.get $5 + i32.shl + i32.or i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1696 - i32.const 1168 - i32.const 3 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.tee $0 + local.get $0 + i32.load offset=4 + i32.const 1 + local.get $2 + i32.shl + i32.or + i32.store offset=4 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $invalid - end - return - end - return + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1488 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 offset=4 + i32.const 3 + i32.and + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1392 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end - return + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return end - unreachable ) (func $~start (local $0 i32) @@ -1208,8 +1179,6 @@ i32.store i32.const 1584 global.set $~lib/rt/itcms/fromSpace - memory.size - drop global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s @@ -1240,4 +1209,33 @@ unreachable end ) + (func $throw/doThrow + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + if + i32.const 34544 + i32.const 34592 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1696 + i32.const 1168 + i32.const 3 + i32.const 3 + call $~lib/builtins/abort + unreachable + ) ) diff --git a/tests/compiler/typealias.release.wat b/tests/compiler/typealias.release.wat index 997ab9cfcc..19dc83cfe9 100644 --- a/tests/compiler/typealias.release.wat +++ b/tests/compiler/typealias.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) (type $1 (func (param i32 i32 i32 i32))) - (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32 i32) (result i32))) + (type $2 (func (param i32 i32) (result i32))) + (type $3 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33948)) (memory $0 1) @@ -19,65 +19,6 @@ (export "alias" (func $typealias/alias)) (export "memory" (memory $0)) (start $~start) - (func $typealias/outer_function~inner_function - i32.const 1136 - i32.const 1136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 17 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - ) - (func $typealias/alias (param $0 i32) (result i32) - local.get $0 - ) - (func $~start - 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 1180 - i32.lt_s - if - i32.const 33968 - i32.const 34016 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1056 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 13 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1168 - i32.load - call_indirect (type $0) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -240,4 +181,63 @@ global.set $~lib/memory/__stack_pointer i32.const 0 ) + (func $~start + 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 1180 + i32.lt_s + if + i32.const 33968 + i32.const 34016 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1168 + i32.load + call_indirect (type $0) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $typealias/outer_function~inner_function + i32.const 1136 + i32.const 1136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 17 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + ) + (func $typealias/alias (param $0 i32) (result i32) + local.get $0 + ) ) diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 5a767c425a..f2e06714bf 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -4,9 +4,9 @@ (type $2 (func (param i32 i32))) (type $3 (func (param i32) (result i32))) (type $4 (func (param i32 i32 i32 i32))) - (type $5 (func (param i32 i32 i64))) - (type $6 (func (result i32))) - (type $7 (func (param i32 i32) (result i32))) + (type $5 (func (param i32 i32) (result i32))) + (type $6 (func (param i32 i32 i64))) + (type $7 (func (result i32))) (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)) @@ -54,58 +54,167 @@ (data $17.1 (i32.const 1816) " ") (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 1264 - call $~lib/rt/itcms/__visit - global.get $typeof/c - local.tee $0 + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1820 + i32.lt_s if - local.get $0 - call $~lib/rt/itcms/__visit + i32.const 34608 + i32.const 34656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 1552 - call $~lib/rt/itcms/__visit - i32.const 1360 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + local.get $1 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + return + end + block $folding-inner0 + local.get $1 + i32.eqz + local.get $0 + i32.eqz + i32.or + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + if (result i32) + local.get $2 + i32.const 7 i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1424 - i32.const 160 - 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 offset=4 - i32.const -4 + local.get $1 + i32.const 7 i32.and - local.set $0 - br $while-continue|0 + i32.or + else + i32.const 1 + end + i32.eqz + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end + end + end + block $__inlined_func$~lib/util/string/compareImpl$78 + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $2 + i32.load16_u + local.tee $5 + local.get $1 + i32.load16_u + local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl$78 + local.get $2 + i32.const 2 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i32.eqz + return end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) (func $~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -651,119 +760,121 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1696 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1696 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 - i32.load - local.set $4 - local.get $5 - local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $typeof/SomeClass + block $~lib/function/Function<%28%29=>void> + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $typeof/SomeClass $invalid + end + return + end + return + end + return + end + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + return + end + 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 1820 + i32.lt_s + if + i32.const 34608 + i32.const 34656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1696 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + call $~lib/rt/itcms/__visit + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if return end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock + i32.load 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 offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1696 + i32.const 347 + 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 offset=96 + else + i32.const 0 + end + end ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -845,342 +956,192 @@ i32.const 34592 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1696 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1696 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 local.set $1 - global.get $~lib/rt/itcms/iter - i32.load 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + end + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if 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 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 34588 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1696 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return + end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock + ) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) + (local $1 i32) + i32.const 1264 + call $~lib/rt/itcms/__visit + global.get $typeof/c + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + i32.const 1552 + call $~lib/rt/itcms/__visit + i32.const 1360 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 + i32.load 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 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.const 3 i32.ne if i32.const 0 i32.const 1424 - i32.const 229 - i32.const 20 + i32.const 160 + i32.const 16 call $~lib/builtins/abort unreachable end local.get $0 - i32.const 34588 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add + i32.const 20 + i32.add + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 + end + end + ) + (func $~lib/rt/itcms/__new (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$70 + i32.const 2048 + local.set $1 + loop $do-loop|0 + local.get $1 + call $~lib/rt/itcms/step i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 34588 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1696 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.load 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 offset=96 - else - local.get $0 - i32.load - 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 offset=4 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1696 - i32.const 347 - 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 offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/itcms/__new (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$70 - 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 + local.set $1 + global.get $~lib/rt/itcms/state + i32.eqz if global.get $~lib/rt/itcms/total i32.const 1 @@ -1218,12 +1179,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1236,7 +1196,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1391,65 +1353,6 @@ memory.fill local.get $0 ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $typeof/SomeClass - block $~lib/function/Function<%28%29=>void> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/function/Function<%28%29=>void> $typeof/SomeClass $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - 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 1820 - i32.lt_s - if - i32.const 34608 - i32.const 34656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - call $~lib/rt/itcms/__visit - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - return - end - unreachable - ) (func $~start global.get $~started if @@ -1459,166 +1362,264 @@ global.set $~started call $start:typeof ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/itcms/step (result i32) + (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 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1820 - i32.lt_s - if - i32.const 34608 - i32.const 34656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - local.get $1 - i32.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1 - return - end - block $folding-inner0 - local.get $1 - i32.eqz - local.get $0 - i32.eqz - i32.or - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - if (result i32) - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 + 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 offset=4 + i32.const -4 i32.and - i32.or - else - i32.const 1 - end - i32.eqz - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq + local.set $0 + loop $while-continue|1 + local.get $0 + global.get $~lib/rt/itcms/toSpace + i32.ne if - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.get $0 + global.set $~lib/rt/itcms/iter local.get $1 - i32.const 8 - i32.add - local.set $1 local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + i32.load offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 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 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 34588 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load 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 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 - block $__inlined_func$~lib/util/string/compareImpl$78 - loop $while-continue|1 + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load 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 1424 + i32.const 229 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 34588 + i32.lt_u + if local.get $0 - local.tee $3 - i32.const 1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add i32.sub - local.set $0 - local.get $3 + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 34588 + i32.ge_u if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl$78 - local.get $2 - i32.const 2 - i32.add local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 + 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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1696 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end end - i32.const 0 - local.set $3 + i32.const 10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i32.eqz - return + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer i32.const 0 ) (func $start:typeof diff --git a/tests/compiler/unary.release.wat b/tests/compiler/unary.release.wat index 202341c088..6c711e0cb2 100644 --- a/tests/compiler/unary.release.wat +++ b/tests/compiler/unary.release.wat @@ -8,8 +8,6 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) - (local $1 i64) global.get $unary/i i32.const 1 i32.add diff --git a/tests/compiler/unify-local-flags.release.wat b/tests/compiler/unify-local-flags.release.wat index 25c3a2b4ca..7e2c3911fe 100644 --- a/tests/compiler/unify-local-flags.release.wat +++ b/tests/compiler/unify-local-flags.release.wat @@ -5,35 +5,35 @@ (export "testWhile" (func $unify-local-flags/testWhile)) (export "testDo" (func $unify-local-flags/testDo)) (export "memory" (memory $0)) - (func $unify-local-flags/testFor + (func $unify-local-flags/testWhile (local $0 i32) - loop $for-loop|0 + loop $while-continue|2 local.get $0 i32.const 255 + i32.and + i32.const 255 i32.lt_u if local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0 + br $while-continue|2 end end ) - (func $unify-local-flags/testWhile + (func $unify-local-flags/testFor (local $0 i32) - loop $while-continue|2 + loop $for-loop|0 local.get $0 i32.const 255 - i32.and - i32.const 255 i32.lt_u if local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|2 + br $for-loop|0 end end ) diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index c90bf786b3..90a58e5b7a 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1,8 +1,8 @@ (module (type $0 (func)) - (type $1 (func (param i32))) - (type $2 (func (param i32 i32))) - (type $3 (func (result i32))) + (type $1 (func (result i32))) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) (type $4 (func (param i32) (result i32))) (type $5 (func (param i32 i32 i32 i32))) (type $6 (func (param i32 i32 i64))) @@ -34,132 +34,347 @@ (data $9 (i32.const 1488) "\05\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00 ") (export "memory" (memory $0)) (start $~start) - (func $~lib/rt/itcms/visitRoots + (func $~lib/rt/itcms/step (result i32) (local $0 i32) (local $1 i32) - i32.const 1296 - call $~lib/rt/itcms/__visit - i32.const 1104 - call $~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load 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 offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if + (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 - i32.const 1168 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + 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 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/__visit (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - return - end - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $1 - i32.load 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 offset=8 - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 148 - i32.const 30 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store 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 offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end end - local.get $0 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink$128 - local.get $1 + 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 offset=4 i32.const -4 i32.and - local.tee $0 - i32.eqz + i32.eq if - local.get $1 - i32.load offset=8 - i32.eqz - local.get $1 - i32.const 34280 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 34280 + i32.lt_u + if + local.get $0 + i32.load + call $~lib/rt/itcms/__visit + 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 offset=4 + i32.const -4 i32.and - i32.eqz - if - i32.const 0 - i32.const 1168 - i32.const 128 - i32.const 18 - call $~lib/builtins/abort - unreachable + 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 offset=4 + local.tee $2 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $2 + i32.const -4 + i32.and + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end end - br $__inlined_func$~lib/rt/itcms/Object#unlink$128 + 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 offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - local.get $1 - i32.load offset=8 - local.tee $2 + 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 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 132 - i32.const 16 + i32.const 229 + i32.const 20 call $~lib/builtins/abort unreachable end local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $0 + i32.const 34280 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + 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 34280 + 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.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 + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 562 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return + end + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=4 + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/toSpace + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state + end + i32.const 0 + ) + (func $~lib/rt/itcms/__visit (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.eqz + if + return + end + global.get $~lib/rt/itcms/white + local.get $0 + i32.const 20 + i32.sub + local.tee $1 + i32.load 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 offset=8 + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 148 + i32.const 30 + call $~lib/builtins/abort + unreachable + end + local.get $0 + global.set $~lib/rt/itcms/iter + end + block $__inlined_func$~lib/rt/itcms/Object#unlink$128 + local.get $1 + i32.load offset=4 + i32.const -4 + i32.and + local.tee $0 + i32.eqz + if + local.get $1 + i32.load offset=8 + i32.eqz + local.get $1 + i32.const 34280 + i32.lt_u + i32.and + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 128 + i32.const 18 + call $~lib/builtins/abort + unreachable + end + br $__inlined_func$~lib/rt/itcms/Object#unlink$128 + end + local.get $1 + i32.load offset=8 + local.tee $2 + i32.eqz + if + i32.const 0 + i32.const 1168 + i32.const 132 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $0 local.get $2 i32.load offset=4 i32.const 3 @@ -231,6 +446,70 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $while/Ref#constructor (result i32) + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1512 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1512 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 34304 + i32.const 34352 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -623,119 +902,90 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $2 - local.get $1 - i64.extend_i32_u - i64.lt_u - if - i32.const 0 - i32.const 1440 - i32.const 382 - 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 offset=1568 - local.tee $3 - if - local.get $3 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 389 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $1 - i32.const 16 - i32.sub - local.tee $5 - i32.eq - if - local.get $3 + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $while/Ref + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $while/Ref $invalid + end + return + end + return + end + return + end + local.get $0 i32.load - local.set $4 - local.get $5 - local.set $1 + call $~lib/rt/itcms/__visit + return end - else + return + end + unreachable + ) + (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + local.get $0 + i32.load offset=4 + i32.const -2 + i32.and + local.tee $1 + if (result i32) local.get $0 - i32.const 1572 - i32.add local.get $1 - i32.gt_u - if + i32.ctz + i32.const 2 + i32.shl + i32.add + i32.load offset=96 + else + local.get $0 + i32.load + 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 offset=4 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1440 + i32.const 347 + 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 offset=96 + else i32.const 0 - i32.const 1440 - i32.const 402 - i32.const 5 - call $~lib/builtins/abort - unreachable end end - local.get $2 - i32.wrap_i64 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $3 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $4 - i32.const 2 - i32.and - local.get $3 - i32.const 8 - i32.sub - local.tee $3 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - i32.const 2 - i32.store - local.get $0 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock ) (func $~lib/rt/tlsf/initialize (local $0 i32) @@ -817,320 +1067,162 @@ i32.const 34288 global.set $~lib/rt/tlsf/ROOT ) - (func $~lib/rt/itcms/step (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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store 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 offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end + (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $2 + local.get $1 + i64.extend_i32_u + i64.lt_u + if + i32.const 0 + i32.const 1440 + i32.const 382 + 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 offset=1568 + local.tee $3 + if + local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.gt_u + if 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 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 34280 - i32.lt_u - if - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - 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 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 offset=4 - local.tee $2 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $2 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load 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 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 + i32.const 1440 + i32.const 389 + i32.const 16 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load 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 229 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 34280 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - 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 34280 - 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.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 - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 562 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock - end - end - i32.const 10 - return + local.get $3 + local.get $1 + i32.const 16 + i32.sub + local.tee $5 + i32.eq + if + local.get $3 + i32.load + local.set $4 + local.get $5 + local.set $1 end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + else + local.get $0 + i32.const 1572 + i32.add + local.get $1 + i32.gt_u + if + i32.const 0 + i32.const 1440 + i32.const 402 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + end + local.get $2 + i32.wrap_i64 + i32.const -16 + i32.and + local.get $1 + i32.sub + local.tee $3 + i32.const 20 + i32.lt_u + if + return end + local.get $1 + local.get $4 + i32.const 2 + i32.and + local.get $3 + i32.const 8 + i32.sub + local.tee $3 + i32.const 1 + i32.or + i32.or + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.add + local.get $3 + i32.add + local.tee $3 + i32.const 2 + i32.store + local.get $0 + local.get $3 + i32.store offset=1568 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) + (func $~lib/rt/itcms/visitRoots + (local $0 i32) (local $1 i32) - (local $2 i32) - local.get $0 + i32.const 1296 + call $~lib/rt/itcms/__visit + i32.const 1104 + call $~lib/rt/itcms/__visit + global.get $~lib/rt/itcms/pinSpace + local.tee $1 i32.load offset=4 - i32.const -2 + i32.const -4 i32.and - local.tee $1 - if (result i32) + local.set $0 + loop $while-continue|0 local.get $0 local.get $1 - i32.ctz - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -2 - i32.and - local.tee $1 - if (result i32) + i32.ne + if local.get $0 - local.get $1 - i32.ctz - local.tee $2 - i32.const 2 - i32.shl - i32.add i32.load offset=4 - local.tee $1 - i32.eqz + i32.const 3 + i32.and + i32.const 3 + i32.ne if i32.const 0 - i32.const 1440 - i32.const 347 - i32.const 18 + i32.const 1168 + i32.const 160 + i32.const 16 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.const 20 i32.add - i32.load offset=96 - else - i32.const 0 + call $~lib/rt/__visit_members + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|0 end end ) @@ -1190,12 +1282,11 @@ local.tee $1 i32.eqz if - memory.size - local.tee $1 i32.const 4 local.get $2 i32.load offset=1568 - local.get $1 + memory.size + local.tee $1 i32.const 16 i32.shl i32.const 4 @@ -1208,7 +1299,9 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.set $3 + local.get $1 + local.get $3 local.get $1 local.get $3 i32.gt_s @@ -1363,6 +1456,9 @@ memory.fill local.get $0 ) + (func $~start + call $start:while + ) (func $start:while (local $0 i32) (local $1 i32) @@ -1538,11 +1634,10 @@ local.tee $0 i32.const 10 i32.ne + local.tee $1 br_if $while-continue|05 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1560,11 +1655,10 @@ local.tee $0 i32.const 10 i32.ne + local.tee $1 br_if $while-continue|07 end - local.get $0 - i32.const 10 - i32.ne + local.get $1 if i32.const 0 i32.const 1056 @@ -1877,99 +1971,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $while/Ref - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $while/Ref $invalid - end - return - end - return - end - return - end - local.get $0 - i32.load - call $~lib/rt/itcms/__visit - return - end - return - end - unreachable - ) - (func $~start - call $start:while - ) - (func $while/Ref#constructor (result i32) - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1512 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 34304 - i32.const 34352 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) ) diff --git a/tsconfig-base.json b/tsconfig-base.json index 10a2d884e4..9695cb47c4 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -8,7 +8,6 @@ "noEmitOnError": true, "strictNullChecks": true, "experimentalDecorators": true, - "preserveConstEnums": false, - "downlevelIteration": true + "preserveConstEnums": false } } From ffed83a942222ebb504e9350aad99a831752b043 Mon Sep 17 00:00:00 2001 From: Changqing Jing Date: Mon, 1 Jun 2026 21:21:02 +0800 Subject: [PATCH 82/86] fix: evaluate call_indirect callee before arguments (#2994) --- src/compiler.ts | 48 +- src/module.ts | 11 +- tests/compiler/call-rest.debug.wat | 103 +- tests/compiler/call-rest.release.wat | 17 +- tests/compiler/function-expression.debug.wat | 6 +- tests/compiler/infer-generic.debug.wat | 44 +- tests/compiler/infer-generic.release.wat | 12 +- tests/compiler/issues/2707.debug.wat | 23 +- tests/compiler/issues/2707.release.wat | 13 +- tests/compiler/issues/2989.debug.wat | 89 + tests/compiler/issues/2989.release.wat | 74 + tests/compiler/issues/2989.ts | 20 + tests/compiler/std/array.debug.wat | 2772 ++++---- tests/compiler/std/array.release.wat | 4054 ++++++----- tests/compiler/std/staticarray.debug.wat | 624 +- tests/compiler/std/staticarray.release.wat | 159 +- tests/compiler/std/typedarray.debug.wat | 6696 ++++++++++-------- tests/compiler/std/typedarray.release.wat | 1301 +++- 18 files changed, 9232 insertions(+), 6834 deletions(-) create mode 100644 tests/compiler/issues/2989.debug.wat create mode 100644 tests/compiler/issues/2989.release.wat create mode 100644 tests/compiler/issues/2989.ts diff --git a/src/compiler.ts b/src/compiler.ts index 87ec94adfb..5a5f9e8b77 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -7104,36 +7104,48 @@ export class Compiler extends DiagnosticEmitter { } } + let allTrivial = (getSideEffects(functionArg, module.ref) & SideEffects.WritesGlobal) == 0; + if (operands && allTrivial) { + for (let i = 0; i < numOperands; ++i) { + if (!module.isTrivialExpression(operands[i])) { + allTrivial = false; + break; + } + } + } + + let stmts = new Array(); + let sizeTypeRef = this.options.sizeTypeRef; + + if (!allTrivial) { + let functionArgLocal = this.currentFlow.getTempLocal(this.options.usizeType); + let functionArgSetExpr = module.local_set(functionArgLocal.index, functionArg, true); + stmts.push(functionArgSetExpr); + functionArg = module.local_get(functionArgLocal.index, sizeTypeRef); + } + // We might be calling a varargs stub here, even if all operands have been // provided, so we must set `argumentsLength` in any case. Inject setting it // into the index argument, which becomes executed last after any operands. let argumentsLength = this.ensureArgumentsLength(); - let sizeTypeRef = this.options.sizeTypeRef; - if (getSideEffects(functionArg, module.ref) & SideEffects.WritesGlobal) { - let flow = this.currentFlow; - let temp = flow.getTempLocal(this.options.usizeType); - let tempIndex = temp.index; - functionArg = module.block(null, [ - module.local_set(tempIndex, functionArg, true), // Function - module.global_set(argumentsLength, module.i32(numArguments)), - module.local_get(tempIndex, sizeTypeRef) - ], sizeTypeRef); - } else { // simplify - functionArg = module.block(null, [ - module.global_set(argumentsLength, module.i32(numArguments)), - functionArg - ], sizeTypeRef); - } + + + let functionArgWithVararg = module.block(null, [ + module.global_set(argumentsLength, module.i32(numArguments)), + functionArg + ], sizeTypeRef); + if (operands) this.operandsTostack(signature, operands); let expr = module.call_indirect( null, // TODO: handle multiple tables - module.load(4, false, functionArg, TypeRef.I32), // ._index + module.load(4, false, functionArgWithVararg, TypeRef.I32), // ._index operands, signature.paramRefs, signature.resultRefs ); this.currentType = returnType; - return expr; + stmts.push(expr); + return module.flatten(stmts, returnType.toRef()); } private compileCommaExpression( diff --git a/src/module.ts b/src/module.ts index 79efc7896e..f02ffb2f44 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2978,6 +2978,13 @@ export class Module { /** Makes a copy of a trivial expression (doesn't contain subexpressions). Returns `0` if non-trivial. */ tryCopyTrivialExpression(expr: ExpressionRef): ExpressionRef { + if (this.isTrivialExpression(expr)) { + return this.copyExpression(expr); + } + return 0; + } + + isTrivialExpression(expr: ExpressionRef): bool { switch (binaryen._BinaryenExpressionGetId(expr)) { case ExpressionId.LocalGet: case ExpressionId.GlobalGet: @@ -2986,9 +2993,9 @@ export class Module { case ExpressionId.Nop: case ExpressionId.Unreachable: case ExpressionId.DataDrop: - case ExpressionId.RefNull: return this.copyExpression(expr); + case ExpressionId.RefNull: return true; } - return 0; + return false; } /** Makes a copy of any expression including all subexpressions. */ diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat index 6ff41f9bea..4bedb4c4ec 100644 --- a/tests/compiler/call-rest.debug.wat +++ b/tests/compiler/call-rest.debug.wat @@ -3403,14 +3403,19 @@ (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 memory.size i32.const 16 i32.shl @@ -3469,11 +3474,11 @@ i32.const 4 i32.const 560 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/fn i32.const 6 i32.eq @@ -3493,11 +3498,11 @@ i32.const 4 i32.const 592 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/fn i32.const 15 i32.eq @@ -3548,6 +3553,10 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + global.get $call-rest/indirect + local.tee $3 + i32.store offset=4 i32.const 1 i32.const 2 i32.const 1 @@ -3555,14 +3564,14 @@ i32.const 4 i32.const 656 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 i32.const 3 global.set $~argumentsLength - global.get $call-rest/indirect + local.get $3 i32.load call_indirect (type $3) i32.const 6 @@ -3576,6 +3585,10 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + global.get $call-rest/indirect + local.tee $5 + i32.store offset=8 i32.const 1 i32.const 2 i32.const 3 @@ -3583,14 +3596,14 @@ i32.const 4 i32.const 688 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 i32.const 3 global.set $~argumentsLength - global.get $call-rest/indirect + local.get $5 i32.load call_indirect (type $3) i32.const 15 @@ -3611,11 +3624,11 @@ global.set $~argumentsLength i32.const 0 call $call-rest/Foo#constructor@varargs - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/Foo#sum i32.const 1 i32.eq @@ -3635,11 +3648,11 @@ global.set $~argumentsLength i32.const 0 call $call-rest/Foo#constructor@varargs - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/Foo#sum i32.const 3 i32.eq @@ -3660,17 +3673,17 @@ i32.const 4 i32.const 800 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $11 + i32.store offset=12 + local.get $11 call $call-rest/Foo#constructor - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/Foo#sum i32.const 6 i32.eq @@ -3691,17 +3704,17 @@ i32.const 4 i32.const 832 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 + local.get $11 + i32.store offset=12 + local.get $11 call $call-rest/Foo#constructor - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/Foo#sum i32.const 15 i32.eq @@ -3734,11 +3747,11 @@ i32.const 4 i32.const 896 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/count i32.const 1 i32.eq @@ -3756,11 +3769,11 @@ i32.const 4 i32.const 928 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/count i32.const 3 i32.eq @@ -3778,11 +3791,11 @@ i32.const 8 i32.const 1056 call $~lib/rt/__newArray - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $call-rest/count<~lib/string/String> i32.const 3 i32.eq @@ -3796,7 +3809,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index f36eff6343..418eed48ad 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -2553,7 +2553,7 @@ (func $start:call-rest (local $0 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -2564,6 +2564,9 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 memory.size i32.const 16 i32.shl @@ -2706,6 +2709,9 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 i32.const 1 i32.const 4 i32.const 1680 @@ -2732,6 +2738,9 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=8 i32.const 3 i32.const 4 i32.const 1712 @@ -2805,7 +2814,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=12 i32.const 2 local.get $0 call $call-rest/Foo#constructor @@ -2832,7 +2841,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store offset=12 i32.const 2 local.get $0 call $call-rest/Foo#constructor @@ -2950,7 +2959,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index 15aa15e36f..8758a369fa 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -155,7 +155,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength @@ -165,6 +164,7 @@ local.tee $0 i32.store i32.const 1 + i32.const 1 global.set $~argumentsLength local.get $0 i32.load @@ -206,7 +206,6 @@ i32.const 544 local.tee $localFunc i32.store - i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength @@ -216,6 +215,7 @@ local.tee $1 i32.store offset=4 i32.const 1 + i32.const 1 global.set $~argumentsLength local.get $1 i32.load @@ -2805,7 +2805,6 @@ call $function-expression/FieldClass#constructor local.tee $fieldInst i32.store offset=4 - i32.const 1 global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength @@ -2821,6 +2820,7 @@ local.tee $1 i32.store offset=8 i32.const 1 + i32.const 1 global.set $~argumentsLength local.get $1 i32.load diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index 4eba1f7c8d..387d796ac2 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -2495,24 +2495,28 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc i32.const 0 local.set $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -2520,11 +2524,11 @@ local.get $len local.tee $6 local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -2533,13 +2537,17 @@ select i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $8 + i32.store offset=4 local.get $acc local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $9 + i32.store offset=8 + local.get $9 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -2548,14 +2556,14 @@ f32.load local.get $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $5) local.set $acc @@ -2567,12 +2575,12 @@ end end local.get $acc - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $infer-generic/Ref#constructor (param $this i32) (result i32) diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index 788794869f..a2b525afea 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1435,7 +1435,7 @@ i32.const 1200 i32.store offset=4 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 @@ -1446,6 +1446,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 1152 i32.store i32.const 1164 @@ -1467,8 +1470,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 1152 + i32.const 1200 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1152 + i32.store offset=8 i32.const 1156 i32.load local.get $1 @@ -1496,7 +1502,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer memory.size diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat index 58a64cf649..388b0f0f43 100644 --- a/tests/compiler/issues/2707.debug.wat +++ b/tests/compiler/issues/2707.debug.wat @@ -2439,14 +2439,15 @@ (func $start:issues/2707 (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 call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store memory.size i32.const 16 i32.shl @@ -2464,24 +2465,28 @@ i32.const 400 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + global.get $issues/2707/func + local.tee $1 + i32.store i32.const 4 i32.const 2 i32.const 4 i32.const 64 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 + local.get $2 + i32.store offset=4 + local.get $2 i32.const 1 global.set $~argumentsLength - global.get $issues/2707/func + local.get $1 i32.load call_indirect (type $0) drop global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat index 4857753a2a..ad235b50e2 100644 --- a/tests/compiler/issues/2707.release.wat +++ b/tests/compiler/issues/2707.release.wat @@ -1201,7 +1201,7 @@ (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 @@ -1210,8 +1210,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store memory.size i32.const 16 i32.shl @@ -1245,6 +1245,9 @@ i32.const 1424 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1334,14 +1337,14 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $2 - i32.store + i32.store offset=4 local.get $2 i32.const 1056 i32.load call_indirect (type $0) drop global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return diff --git a/tests/compiler/issues/2989.debug.wat b/tests/compiler/issues/2989.debug.wat new file mode 100644 index 0000000000..274c42c3f8 --- /dev/null +++ b/tests/compiler/issues/2989.debug.wat @@ -0,0 +1,89 @@ +(module + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (param i32) (result i32))) + (type $3 (func (param i32 i32 i32 i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $issues/2989/value (mut i32) (i32.const 0)) + (global $issues/2989/fn (mut i32) (i32.const 32)) + (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/memory/__data_end i32 (i32.const 124)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 32892)) + (global $~lib/memory/__heap_base i32 (i32.const 32892)) + (memory $0 1) + (data $0 (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data $1 (i32.const 44) "\1c\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\08\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data $2 (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\009\008\009\00.\00t\00s\00") + (table $0 3 3 funcref) + (elem $0 (i32.const 1) $issues/2989/logA $issues/2989/logB) + (export "memory" (memory $0)) + (start $~start) + (func $issues/2989/logA (param $x i32) + i32.const 100 + global.set $issues/2989/value + ) + (func $issues/2989/logB (param $x i32) + i32.const 200 + global.set $issues/2989/value + ) + (func $issues/2989/foo (param $x i32) (result i32) + i32.const 64 + global.set $issues/2989/fn + local.get $x + return + ) + (func $start:issues/2989 + (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 + global.get $~lib/memory/__stack_pointer + global.get $issues/2989/fn + local.tee $0 + i32.store + i32.const 42 + call $issues/2989/foo + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.load + call_indirect (type $0) + global.get $issues/2989/value + i32.const 100 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 20 + 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 $~start + call $start:issues/2989 + ) + (func $~stack_check + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__data_end + i32.lt_s + if + i32.const 32912 + i32.const 32960 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + ) +) diff --git a/tests/compiler/issues/2989.release.wat b/tests/compiler/issues/2989.release.wat new file mode 100644 index 0000000000..5b88950dd6 --- /dev/null +++ b/tests/compiler/issues/2989.release.wat @@ -0,0 +1,74 @@ +(module + (type $0 (func (param i32))) + (type $1 (func (param i32 i32 i32 i32))) + (type $2 (func)) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (global $issues/2989/value (mut i32) (i32.const 0)) + (global $issues/2989/fn (mut i32) (i32.const 1056)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33916)) + (memory $0 1) + (data $0 (i32.const 1036) "\1c") + (data $0.1 (i32.const 1048) "\04\00\00\00\08\00\00\00\01") + (data $1 (i32.const 1068) "\1c") + (data $1.1 (i32.const 1080) "\04\00\00\00\08\00\00\00\02") + (data $2 (i32.const 1100) ",") + (data $2.1 (i32.const 1112) "\02\00\00\00\1c\00\00\00i\00s\00s\00u\00e\00s\00/\002\009\008\009\00.\00t\00s") + (table $0 3 3 funcref) + (elem $0 (i32.const 1) $issues/2989/logA $issues/2989/logB) + (export "memory" (memory $0)) + (start $~start) + (func $~start + (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 1148 + i32.lt_s + if + i32.const 33936 + i32.const 33984 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $issues/2989/fn + local.tee $0 + i32.store + i32.const 1088 + global.set $issues/2989/fn + i32.const 42 + local.get $0 + i32.load + call_indirect (type $0) + global.get $issues/2989/value + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 20 + 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 $issues/2989/logB (param $0 i32) + i32.const 200 + global.set $issues/2989/value + ) + (func $issues/2989/logA (param $0 i32) + i32.const 100 + global.set $issues/2989/value + ) +) diff --git a/tests/compiler/issues/2989.ts b/tests/compiler/issues/2989.ts new file mode 100644 index 0000000000..bab7dbdfd5 --- /dev/null +++ b/tests/compiler/issues/2989.ts @@ -0,0 +1,20 @@ + +let value: i32 = 0; + +function logA(x: i32):void { + value = 100; +} + +function logB(x: i32):void { + value = 200; +} + +let fn = logA; + +function foo(x: i32):i32 { + fn = logB; + return x; +} + +fn(foo(42)); +assert(value == 100); \ No newline at end of file diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index 7c585db17c..b54061ee14 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -4503,161 +4503,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp f32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - f32.load - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - f32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/nodePower (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) (local $s i32) @@ -5062,161 +4907,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp f64) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - f64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -5570,161 +5260,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -6049,161 +5584,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -14281,22 +13661,26 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -14304,11 +13688,11 @@ local.get $len local.tee $4 local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.tee $5 local.get $4 @@ -14317,12 +13701,16 @@ select i32.lt_s if - local.get $this - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $fn + local.tee $6 i32.store offset=4 - local.get $6 + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14331,24 +13719,24 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $3) if local.get $i - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end local.get $i @@ -14359,12 +13747,12 @@ end end i32.const -1 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $start:std/array~anonymous|3 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -14429,20 +13817,24 @@ (func $~lib/array/Array#findLastIndex (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $this - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $~lib/array/Array#get:length_ i32.const 1 i32.sub @@ -14452,12 +13844,16 @@ i32.const 0 i32.ge_s if - local.get $this - local.set $3 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $fn + local.tee $3 i32.store offset=4 - local.get $3 + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $4 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14466,24 +13862,24 @@ i32.load local.get $i local.get $this - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $3 i32.load call_indirect (type $3) if local.get $i - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 return end local.get $i @@ -14494,12 +13890,12 @@ end end i32.const -1 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 return ) (func $start:std/array~anonymous|9 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -14537,22 +13933,26 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -14560,11 +13960,11 @@ local.get $len local.tee $4 local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.tee $5 local.get $4 @@ -14573,12 +13973,16 @@ select i32.lt_s if - local.get $this - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $fn + local.tee $6 i32.store offset=4 - local.get $6 + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14587,25 +13991,25 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $3) i32.eqz if i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end local.get $i @@ -14616,12 +14020,12 @@ end end i32.const 1 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $start:std/array~anonymous|12 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -14689,22 +14093,26 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -14712,11 +14120,11 @@ local.get $len local.tee $4 local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.tee $5 local.get $4 @@ -14725,12 +14133,16 @@ select i32.lt_s if - local.get $this - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $fn + local.tee $6 i32.store offset=4 - local.get $6 + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14739,24 +14151,24 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $3) if i32.const 1 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end local.get $i @@ -14767,12 +14179,12 @@ end end i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $start:std/array~anonymous|17 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -14840,22 +14252,26 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -14863,11 +14279,11 @@ local.get $len local.tee $4 local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/array/Array#get:length_ local.tee $5 local.get $4 @@ -14876,12 +14292,16 @@ select i32.lt_s if - local.get $this - local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $fn + local.tee $6 i32.store offset=4 - local.get $6 + local.get $this + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -14890,14 +14310,14 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $5) local.get $i @@ -14908,7 +14328,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -15109,25 +14529,24 @@ (local $i i32) (local $6 i32) (local $7 i32) + (local $8 i32) (local $result i32) - (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.const 20 + memory.fill local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer @@ -15139,11 +14558,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array<~lib/string/String>#get:dataStart local.set $outStart i32.const 0 @@ -15153,11 +14572,11 @@ local.get $len local.tee $6 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15167,12 +14586,16 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $this - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $fn + local.tee $8 i32.store offset=8 - local.get $9 + local.get $this + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $10 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15181,18 +14604,18 @@ i32.load local.get $i local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $3) local.tee $result - i32.store offset=12 + i32.store offset=16 local.get $outStart local.get $i i32.const 2 @@ -15214,12 +14637,12 @@ end end local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $~lib/array/Array#map (param $this i32) (param $fn i32) (result i32) @@ -15229,10 +14652,11 @@ (local $i i32) (local $6 i32) (local $7 i32) + (local $8 i32) (local $result f32) - (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -15240,14 +14664,14 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer @@ -15259,11 +14683,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 @@ -15273,11 +14697,11 @@ local.get $len local.tee $6 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15286,12 +14710,16 @@ select i32.lt_s if - local.get $this - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $fn + local.tee $8 i32.store offset=8 - local.get $9 + local.get $this + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $10 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15300,14 +14728,14 @@ i32.load local.get $i local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $18) local.set $result @@ -15328,12 +14756,12 @@ end end local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $start:std/array~anonymous|27 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -15375,10 +14803,11 @@ (local $i i32) (local $6 i32) (local $7 i32) + (local $8 i32) (local $result i32) - (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -15386,14 +14815,14 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.set $len global.get $~lib/memory/__stack_pointer @@ -15405,11 +14834,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 @@ -15419,11 +14848,11 @@ local.get $len local.tee $6 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15432,12 +14861,16 @@ select i32.lt_s if - local.get $this - local.set $9 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $fn + local.tee $8 i32.store offset=8 - local.get $9 + local.get $this + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $10 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15446,14 +14879,14 @@ i32.load local.get $i local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $3) local.set $result @@ -15474,12 +14907,12 @@ end end local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $start:std/array~anonymous|29 (param $value i32) (param $_ i32) (param $array i32) (result i32) @@ -15692,24 +15125,28 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc i32.const 0 local.set $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -15717,11 +15154,11 @@ local.get $len local.tee $6 local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15730,13 +15167,17 @@ select i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $8 + i32.store offset=4 local.get $acc local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $9 + i32.store offset=8 + local.get $9 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15745,14 +15186,14 @@ i32.load local.get $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $4) local.set $acc @@ -15764,12 +15205,12 @@ end end local.get $acc - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $~lib/array/Array#reduce (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) @@ -15779,24 +15220,28 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc i32.const 0 local.set $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.set $len loop $for-loop|0 @@ -15804,11 +15249,11 @@ local.get $len local.tee $6 local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length_ local.tee $7 local.get $6 @@ -15817,13 +15262,17 @@ select i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $8 + i32.store offset=4 local.get $acc local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + local.get $9 + i32.store offset=8 + local.get $9 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15832,14 +15281,14 @@ i32.load local.get $i local.get $this - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $4) local.set $acc @@ -15851,12 +15300,12 @@ end end local.get $acc - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $start:std/array~anonymous|38 (param $prev i32) (param $current i32) (param $_ i32) (param $array i32) (result i32) @@ -15922,22 +15371,26 @@ (local $acc i32) (local $i i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 call $~lib/array/Array#get:length_ i32.const 1 i32.sub @@ -15947,13 +15400,17 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $5 + i32.store offset=4 local.get $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + local.get $6 + i32.store offset=8 + local.get $6 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -15962,14 +15419,14 @@ i32.load local.get $i local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $5 i32.load call_indirect (type $4) local.set $acc @@ -15981,34 +15438,38 @@ end end local.get $acc - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return ) (func $~lib/array/Array#reduceRight (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) (local $i i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $initialValue local.set $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 call $~lib/array/Array#get:length_ i32.const 1 i32.sub @@ -16018,13 +15479,17 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $5 + i32.store offset=4 local.get $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + local.get $6 + i32.store offset=8 + local.get $6 call $~lib/array/Array#get:dataStart local.get $i i32.const 2 @@ -16033,14 +15498,14 @@ i32.load local.get $i local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $5 i32.load call_indirect (type $4) local.set $acc @@ -16052,12 +15517,12 @@ end end local.get $acc - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return ) (func $start:std/array~anonymous|45 (param $prev i32) (param $current i32) (param $_ i32) (param $array i32) (result i32) @@ -18907,22 +18372,23 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array#get:length local.set $len loop $for-loop|0 @@ -18930,39 +18396,43 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array#__get local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $i call $~lib/array/Array#__get i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 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 $5 return end local.get $i @@ -18973,12 +18443,12 @@ end end i32.const 1 - local.set $4 + local.set $5 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 $5 return ) (func $std/array/assertSorted (param $arr i32) (param $comparator i32) @@ -19553,46 +19023,51 @@ ) (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -19602,14 +19077,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -19620,31 +19095,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -19675,7 +19154,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -19712,31 +19191,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -19754,12 +19237,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -21290,46 +20773,51 @@ ) (func $~lib/util/sort/extendRunRight<~lib/array/Array> (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -21339,14 +20827,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -21357,31 +20845,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -21412,7 +20904,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -21449,31 +20941,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -21491,12 +20987,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns<~lib/array/Array> (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -22320,8 +21816,9 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22329,16 +21826,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array<~lib/array/Array>#get:length local.set $len loop $for-loop|0 @@ -22346,49 +21843,53 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/array/Array>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i call $~lib/array/Array<~lib/array/Array>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $5 + i32.store offset=8 + local.get $5 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -22399,12 +21900,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted<~lib/array/Array> (param $arr i32) (param $comparator i32) @@ -23045,46 +22546,51 @@ ) (func $~lib/util/sort/extendRunRight> (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -23094,14 +22600,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -23112,31 +22618,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -23167,7 +22677,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -23204,31 +22714,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -23246,12 +22760,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns> (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -24075,8 +23589,9 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -24084,16 +23599,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array>#get:length local.set $len loop $for-loop|0 @@ -24101,49 +23616,53 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i call $~lib/array/Array>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $5 + i32.store offset=8 + local.get $5 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -24154,12 +23673,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted> (param $arr i32) (param $comparator i32) @@ -24457,46 +23976,51 @@ ) (func $~lib/util/sort/extendRunRight<~lib/string/String|null> (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -24506,14 +24030,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -24524,31 +24048,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -24579,7 +24107,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -24616,31 +24144,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -24658,12 +24190,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns<~lib/string/String|null> (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -25477,8 +25009,9 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -25486,16 +25019,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array<~lib/string/String|null>#get:length local.set $len loop $for-loop|0 @@ -25503,49 +25036,53 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/string/String|null>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i call $~lib/array/Array<~lib/string/String|null>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $5 + i32.store offset=8 + local.get $5 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -25556,12 +25093,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted<~lib/string/String|null> (param $arr i32) (param $comparator i32) @@ -26803,46 +26340,51 @@ ) (func $~lib/util/sort/extendRunRight<~lib/string/String> (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) (local $j i32) + (local $5 i32) + (local $6 i32) (local $k i32) (local $tmp i32) - (local $7 i32) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $i local.get $right i32.eq if local.get $i - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return end local.get $i local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 1 @@ -26852,14 +26394,14 @@ i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $5 i32.load call_indirect (type $0) i32.const 0 @@ -26870,31 +26412,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=12 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $6 i32.load call_indirect (type $0) i32.const 31 @@ -26925,7 +26471,7 @@ i32.add i32.load local.tee $tmp - i32.store offset=8 + i32.store offset=16 local.get $ptr local.get $i i32.const 2 @@ -26962,31 +26508,35 @@ local.get $right i32.lt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=20 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load offset=4 - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $10 + i32.store offset=4 + local.get $10 local.get $ptr local.get $j i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + local.get $10 + i32.store offset=8 + local.get $10 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $9 i32.load call_indirect (type $0) i32.const 0 @@ -27004,12 +26554,12 @@ end end local.get $j - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $10 return ) (func $~lib/util/sort/mergeRuns<~lib/string/String> (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) @@ -27833,8 +27383,9 @@ (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -27842,16 +27393,16 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $i local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/array/Array<~lib/string/String>#get:length local.set $len loop $for-loop|0 @@ -27859,49 +27410,53 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $4 + i32.store offset=4 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i i32.const 1 i32.sub call $~lib/array/Array<~lib/string/String>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 local.get $data - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $4 + local.get $5 + i32.store offset=12 + local.get $5 local.get $i call $~lib/array/Array<~lib/string/String>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + local.get $5 + i32.store offset=8 + local.get $5 i32.const 2 global.set $~argumentsLength - local.get $comparator + local.get $4 i32.load call_indirect (type $0) i32.const 0 i32.gt_s if i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return end local.get $i @@ -27912,12 +27467,12 @@ end end i32.const 1 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 return ) (func $std/array/assertSorted<~lib/string/String> (param $arr i32) (param $comparator i32) @@ -33438,23 +32993,24 @@ (local $i i32) (local $6 i32) (local $7 i32) + (local $8 i32) (local $result i32) - (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array<~lib/array/Array>#get:length_ local.set $len global.get $~lib/memory/__stack_pointer @@ -33466,11 +33022,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array<~lib/array/Array>#get:dataStart local.set $outStart i32.const 0 @@ -33480,11 +33036,11 @@ local.get $len local.tee $6 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array<~lib/array/Array>#get:length_ local.tee $7 local.get $6 @@ -33494,37 +33050,41 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $8 + i32.store offset=8 local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=12 - local.get $9 + local.get $10 + i32.store offset=16 + local.get $10 call $~lib/array/Array<~lib/array/Array>#get:dataStart local.get $i i32.const 2 i32.shl i32.add i32.load - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 local.get $i local.get $this - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 + local.get $10 + i32.store offset=12 + local.get $10 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $8 i32.load call_indirect (type $3) local.tee $result - i32.store offset=16 + i32.store offset=20 local.get $outStart local.get $i i32.const 2 @@ -33546,12 +33106,12 @@ end end local.get $out - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $start:std/array @@ -46236,6 +45796,782 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp f32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $7) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + f32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $7) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp f64) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + f64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $8) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) (func $~lib/util/number/utoa32 (param $value i32) (param $radix i32) (result i32) (local $out i32) (local $decimals i32) diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 51cb4b38f6..d3525108c2 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -1554,7 +1554,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/string/String#concat$736 + block $__inlined_func$~lib/string/String#concat$740 local.get $1 i32.const 20 i32.sub @@ -1573,7 +1573,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/string/String#concat$736 + br $__inlined_func$~lib/string/String#concat$740 end global.get $~lib/memory/__stack_pointer local.get $0 @@ -2807,7 +2807,7 @@ (local $3 i32) (local $4 i32) 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 @@ -2825,6 +2825,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2838,8 +2841,11 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 local.get $3 @@ -2869,7 +2875,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -2879,7 +2885,7 @@ (local $4 i32) (local $5 i32) 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 @@ -2897,6 +2903,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -2918,8 +2927,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 local.get $3 @@ -2949,7 +2961,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3405,7 +3417,7 @@ (local $3 i32) (local $4 i32) 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 @@ -3423,6 +3435,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3444,8 +3459,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 local.get $2 @@ -3465,7 +3483,7 @@ call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3479,7 +3497,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 @@ -3747,7 +3765,7 @@ select local.set $1 end - block $__inlined_func$~lib/rt/itcms/__renew$653 + block $__inlined_func$~lib/rt/itcms/__renew$657 local.get $3 i32.const 20 i32.sub @@ -3765,7 +3783,7 @@ i32.store offset=16 local.get $3 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$653 + br $__inlined_func$~lib/rt/itcms/__renew$657 end local.get $1 local.get $4 @@ -3859,7 +3877,7 @@ (local $3 i32) (local $4 i32) 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 @@ -3877,6 +3895,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -3898,8 +3919,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 local.get $2 @@ -3919,7 +3943,7 @@ call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -3933,7 +3957,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 @@ -4034,7 +4058,7 @@ (local $3 i32) (local $4 i32) 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 @@ -4052,6 +4076,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4073,8 +4100,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 local.get $2 @@ -4100,7 +4130,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) @@ -4109,7 +4139,7 @@ (local $3 i32) (local $4 i32) 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 @@ -4127,6 +4157,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -4148,8 +4181,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 local.get $2 @@ -4170,7 +4206,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 @@ -4184,7 +4220,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -4347,7 +4383,7 @@ local.get $1 i32.store offset=4 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 @@ -4355,8 +4391,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 1 local.set $0 global.get $~lib/memory/__stack_pointer @@ -4365,12 +4401,15 @@ local.get $2 call $~lib/array/Array#get:length local.set $3 - block $__inlined_func$std/array/isSorted$658 (result i32) + block $__inlined_func$std/array/isSorted$662 (result i32) loop $for-loop|0 local.get $0 local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -4394,11 +4433,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted$658 + br $__inlined_func$std/array/isSorted$662 end local.get $0 i32.const 1 @@ -4408,7 +4447,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -5143,7 +5182,7 @@ (local $2 i32) (local $3 i32) 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 @@ -5161,6 +5200,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -5174,8 +5216,11 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 i32.load offset=4 local.get $2 @@ -5195,7 +5240,7 @@ call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -5209,7 +5254,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 @@ -7012,7 +7057,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$731 + block $__inlined_func$~lib/rt/itcms/Object#unlink$735 local.get $0 i32.load offset=4 i32.const -4 @@ -7036,7 +7081,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$731 + br $__inlined_func$~lib/rt/itcms/Object#unlink$735 end local.get $0 i32.load offset=8 @@ -7787,7 +7832,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$743 + block $__inlined_func$~lib/util/string/joinIntegerArray$747 local.get $0 i32.const 1 i32.sub @@ -7801,7 +7846,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$743 + br $__inlined_func$~lib/util/string/joinIntegerArray$747 end local.get $6 i32.eqz @@ -7814,7 +7859,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$743 + br $__inlined_func$~lib/util/string/joinIntegerArray$747 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -7907,7 +7952,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$743 + br $__inlined_func$~lib/util/string/joinIntegerArray$747 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8464,7 +8509,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8482,8 +8527,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -8519,8 +8564,11 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 local.get $2 i32.const 2 i32.shl @@ -8553,7 +8601,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -8602,7 +8650,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$738 + block $__inlined_func$~lib/util/string/joinIntegerArray$742 local.get $0 i32.const 1 i32.sub @@ -8616,7 +8664,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$738 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end local.get $7 i32.eqz @@ -8629,7 +8677,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$738 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -8728,7 +8776,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$738 + br $__inlined_func$~lib/util/string/joinIntegerArray$742 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8841,7 +8889,7 @@ local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8854,8 +8902,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 local.set $1 global.get $~lib/memory/__stack_pointer @@ -8864,15 +8912,18 @@ local.get $5 call $~lib/array/Array#get:length local.set $4 - block $__inlined_func$std/array/isSorted<~lib/array/Array>$660 (result i32) + block $__inlined_func$std/array/isSorted<~lib/array/Array>$664 (result i32) loop $for-loop|0 local.get $1 local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=12 local.get $5 local.get $1 i32.const 1 @@ -8884,14 +8935,14 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $5 - i32.store offset=8 + i32.store offset=12 local.get $5 local.get $1 call $~lib/array/Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 - i32.store offset=4 + i32.store offset=8 i32.const 2 global.set $~argumentsLength local.get $2 @@ -8903,11 +8954,11 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/array/Array>$660 + br $__inlined_func$std/array/isSorted<~lib/array/Array>$664 end local.get $1 i32.const 1 @@ -8917,7 +8968,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -9612,13 +9663,41 @@ (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store local.get $0 local.get $1 i32.const 2 @@ -9647,6 +9726,9 @@ local.get $3 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store offset=4 local.get $0 local.get $3 i32.const 2 @@ -9718,6 +9800,9 @@ local.get $3 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 10848 + i32.store offset=8 local.get $0 local.get $3 i32.const 2 @@ -9746,6 +9831,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $3 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) @@ -9753,7 +9842,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -9768,23 +9857,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 + i32.const 24 + memory.fill local.get $1 local.get $2 i32.eq if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 return end global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 i32.const 2 @@ -9792,7 +9882,7 @@ i32.add i32.load local.tee $5 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 @@ -9804,7 +9894,7 @@ i32.add i32.load local.tee $6 - i32.store offset=4 + i32.store offset=8 i32.const 2 global.set $~argumentsLength local.get $5 @@ -9820,6 +9910,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 local.get $4 @@ -9829,12 +9922,12 @@ local.tee $5 i32.load offset=4 local.tee $6 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $5 i32.load local.tee $5 - i32.store offset=4 + i32.store offset=8 i32.const 2 global.set $~argumentsLength local.get $6 @@ -9871,7 +9964,7 @@ local.tee $3 i32.load local.tee $5 - i32.store offset=8 + i32.store offset=16 local.get $3 local.get $0 local.get $2 @@ -9901,6 +9994,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 local.get $4 @@ -9910,12 +10006,12 @@ local.tee $1 i32.load offset=4 local.tee $5 - i32.store + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.load local.tee $1 - i32.store offset=4 + i32.store offset=8 i32.const 2 global.set $~argumentsLength local.get $5 @@ -9938,7 +10034,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -9947,13 +10043,41 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 2 @@ -9982,6 +10106,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 2 @@ -10053,6 +10180,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 2 @@ -10081,6 +10211,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -10088,15 +10222,43 @@ (local $4 f64) (local $5 f64) (local $6 i32) - local.get $1 - local.get $2 - i32.eq - if - local.get $1 - return - end - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store + local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -10123,6 +10285,9 @@ local.get $3 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store offset=4 local.get $0 local.get $3 i32.const 3 @@ -10194,6 +10359,9 @@ local.get $3 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 10544 + i32.store offset=8 local.get $0 local.get $3 i32.const 3 @@ -10222,6 +10390,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $3 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) @@ -10229,13 +10401,41 @@ (local $5 f32) (local $6 i32) (local $7 f32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + if + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 2 @@ -10264,6 +10464,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 2 @@ -10335,6 +10538,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 2 @@ -10363,6 +10569,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -12076,7 +12286,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$739 + block $__inlined_func$~lib/util/string/joinIntegerArray$743 local.get $0 i32.const 1 i32.sub @@ -12090,7 +12300,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$739 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end local.get $7 i32.eqz @@ -12103,7 +12313,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$739 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -12202,7 +12412,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$739 + br $__inlined_func$~lib/util/string/joinIntegerArray$743 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -12654,7 +12864,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$740 + block $__inlined_func$~lib/util/string/joinIntegerArray$744 local.get $0 i32.const 1 i32.sub @@ -12668,7 +12878,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$740 + br $__inlined_func$~lib/util/string/joinIntegerArray$744 end local.get $6 i32.eqz @@ -12681,7 +12891,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$740 + br $__inlined_func$~lib/util/string/joinIntegerArray$744 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -12774,7 +12984,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$740 + br $__inlined_func$~lib/util/string/joinIntegerArray$744 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17629,17 +17839,19 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) - (local $5 f64) - (local $6 f32) - (local $7 i32) - (local $8 i32) + (local $5 i32) + (local $6 i64) + (local $7 f64) + (local $8 f32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) + (local $15 i32) global.get $~lib/memory/__stack_pointer i32.const 444 i32.sub @@ -17690,9 +17902,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17709,11 +17921,11 @@ i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -17729,87 +17941,87 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $10 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=12 - local.get $1 - local.get $8 + local.get $0 + local.get $10 i32.store - local.get $1 - local.get $8 + local.get $0 + local.get $10 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - local.get $8 + local.get $0 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -17825,30 +18037,30 @@ i32.const 7 i32.const 1696 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1728 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -17860,28 +18072,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1760 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -17893,27 +18105,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1792 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -17925,28 +18137,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1824 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -17958,27 +18170,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1856 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -17990,28 +18202,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18028,31 +18240,31 @@ i32.const 8 i32.const 1920 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 1968 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 - call $std/array/isArraysEqual + local.get $0 + local.get $9 + call $std/array/isArraysEqual i32.eqz if i32.const 0 @@ -18063,28 +18275,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2016 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18096,27 +18308,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2064 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18128,28 +18340,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2112 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18161,27 +18373,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2160 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18193,28 +18405,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2208 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18231,30 +18443,30 @@ i32.const 9 i32.const 2256 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2304 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18266,28 +18478,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 f32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18299,27 +18511,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2400 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18331,28 +18543,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 f32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2448 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18364,27 +18576,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2496 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18396,28 +18608,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 f32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2544 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18429,28 +18641,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 f32.const -0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2592 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $std/array/isArraysEqual i32.eqz if @@ -18463,9 +18675,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 @@ -18477,9 +18689,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18493,16 +18705,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 42 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -18517,9 +18729,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18533,9 +18745,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18549,9 +18761,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -18565,9 +18777,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 @@ -18579,9 +18791,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18595,16 +18807,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18618,9 +18830,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18634,9 +18846,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18651,16 +18863,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -18674,9 +18886,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18690,9 +18902,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18707,9 +18919,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18724,16 +18936,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 45 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18747,9 +18959,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18763,9 +18975,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18780,9 +18992,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18797,9 +19009,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18819,22 +19031,22 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $9 i32.store offset=20 - local.get $7 + local.get $9 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $7 + local.get $9 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $7 + local.get $9 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18847,14 +19059,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $9 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18862,9 +19074,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length if i32.const 0 @@ -18880,12 +19092,12 @@ i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -18899,9 +19111,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -18915,9 +19127,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -18931,9 +19143,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -18949,26 +19161,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $1 + local.tee $0 i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $9 + local.get $0 call $~lib/array/Array#concat - local.tee $7 + local.tee $9 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $10 i32.store - local.get $8 + local.get $10 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18982,9 +19194,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $10 i32.store - local.get $8 + local.get $10 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18997,9 +19209,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19012,26 +19224,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $10 i32.store - local.get $8 + local.get $10 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19044,9 +19256,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19060,9 +19272,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19076,9 +19288,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19092,35 +19304,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 46 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 47 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $9 + local.get $0 call $~lib/array/Array#concat - local.tee $7 + local.tee $9 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $10 i32.store - local.get $8 + local.get $10 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19133,9 +19345,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -19148,9 +19360,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19163,9 +19375,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19179,9 +19391,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19195,9 +19407,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19211,9 +19423,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -19227,9 +19439,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -19243,15 +19455,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19269,12 +19481,12 @@ i32.const 4 i32.const 2768 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 @@ -19285,22 +19497,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $7 + local.get $0 + local.get $9 call $~lib/array/Array#concat - local.tee $7 + local.tee $9 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19313,9 +19525,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 @@ -19331,32 +19543,32 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 0 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2848 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19374,32 +19586,32 @@ i32.const 4 i32.const 2896 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 1 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2944 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19417,32 +19629,32 @@ i32.const 4 i32.const 2992 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3040 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19460,32 +19672,32 @@ i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 2 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3136 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19503,31 +19715,31 @@ i32.const 4 i32.const 3184 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3232 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19545,31 +19757,31 @@ i32.const 4 i32.const 3280 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3328 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19587,31 +19799,31 @@ i32.const 4 i32.const 3376 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3424 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19629,32 +19841,32 @@ i32.const 4 i32.const 3472 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 0 i32.const -2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3520 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19672,31 +19884,31 @@ i32.const 4 i32.const 3568 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3616 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19714,31 +19926,31 @@ i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3712 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19756,31 +19968,31 @@ i32.const 4 i32.const 3760 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3808 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19798,32 +20010,32 @@ i32.const 4 i32.const 3856 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const -4 i32.const -3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3904 call $~lib/rt/__newArray - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store offset=8 - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19837,16 +20049,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 42 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19860,9 +20072,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19876,9 +20088,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -19893,9 +20105,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -19910,9 +20122,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -19927,9 +20139,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -19944,16 +20156,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 41 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19967,9 +20179,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19983,9 +20195,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -20000,9 +20212,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -20017,9 +20229,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -20034,9 +20246,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -20051,9 +20263,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -20068,7 +20280,7 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20082,11 +20294,11 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $9 i32.const 0 i32.le_s if @@ -20098,34 +20310,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.tee $8 + local.tee $10 i32.load - local.get $8 - local.get $8 + local.get $10 + local.get $10 i32.const 4 i32.add - local.get $7 + local.get $9 i32.const 1 i32.sub - local.tee $7 + local.tee $9 i32.const 2 i32.shl - local.tee $10 + local.tee $12 memory.copy - local.get $8 local.get $10 + local.get $12 i32.add i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - local.get $7 + local.get $0 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20145,9 +20357,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -20161,9 +20373,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20177,9 +20389,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20194,9 +20406,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20211,9 +20423,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20228,9 +20440,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20245,9 +20457,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -20263,9 +20475,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20279,9 +20491,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20295,9 +20507,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20312,9 +20524,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20329,9 +20541,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20350,33 +20562,33 @@ i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $9 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4000 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20389,29 +20601,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $7 + local.tee $9 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20424,29 +20636,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $7 + local.tee $9 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 4 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20459,24 +20671,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $9 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $7 - local.get $1 + local.get $9 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20489,30 +20701,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -2 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $9 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4112 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20525,29 +20737,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $7 + local.tee $9 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20560,29 +20772,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $7 + local.tee $9 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=8 - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20595,17 +20807,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 call $~lib/array/Array#get:length if i32.const 0 @@ -20616,18 +20828,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 10 call $~lib/array/Array#slice@varargs - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length if i32.const 0 @@ -20639,7 +20851,7 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20653,59 +20865,59 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.gt_u if - local.get $1 + local.get $0 i32.const 1 i32.shr_u - local.set $8 - local.get $1 + local.set $10 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $while-continue|0 - local.get $4 - local.get $8 + local.get $2 + local.get $10 i32.lt_u if - local.get $7 - local.get $4 + local.get $9 + local.get $2 i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $11 i32.load - local.set $10 + local.set $12 + local.get $11 local.get $9 - local.get $7 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.sub i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $11 i32.load i32.store - local.get $9 - local.get $10 + local.get $11 + local.get $12 i32.store - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $while-continue|0 end end @@ -20716,9 +20928,9 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20732,9 +20944,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20748,9 +20960,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -20765,9 +20977,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20782,9 +20994,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -20799,16 +21011,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer @@ -20817,37 +21029,37 @@ i32.const 7 i32.const 4208 call $~lib/rt/__newArray - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $4 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $2 loop $for-loop|0 - local.get $0 - local.get $4 - i32.lt_s + local.get $2 + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -20860,10 +21072,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -20873,39 +21085,39 @@ i32.const 7 i32.const 4240 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=64 i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $2 loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s + local.get $2 + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -20918,10 +21130,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|1 end end @@ -20931,39 +21143,39 @@ i32.const 7 i32.const 4272 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=68 i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $2 loop $for-loop|2 - local.get $0 - local.get $4 - i32.lt_s + local.get $2 + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -20976,10 +21188,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|2 end end @@ -20989,39 +21201,39 @@ i32.const 11 i32.const 4320 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=72 i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $2 loop $for-loop|3 - local.get $0 - local.get $4 - i32.lt_s + local.get $2 + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21034,10 +21246,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|3 end end @@ -21047,39 +21259,39 @@ i32.const 11 i32.const 4368 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=76 i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $2 loop $for-loop|4 - local.get $0 - local.get $4 - i32.lt_s + local.get $2 + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21092,10 +21304,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|4 end end @@ -21105,39 +21317,39 @@ i32.const 11 i32.const 4416 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=80 i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $2 loop $for-loop|5 - local.get $0 - local.get $4 - i32.lt_s + local.get $2 + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 - call $~lib/array/Array#get:length local.get $0 + call $~lib/array/Array#get:length + local.get $3 i32.sub i32.const 1 i32.sub @@ -21150,10 +21362,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|5 end end @@ -21360,9 +21572,9 @@ i32.const 9 i32.const 4464 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 local.set $0 @@ -21378,14 +21590,14 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf$714 - local.get $1 + block $__inlined_func$~lib/array/Array#indexOf$718 + local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.eqz - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.or @@ -21396,20 +21608,20 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$714 + br $__inlined_func$~lib/array/Array#indexOf$718 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 2 i32.shl @@ -21422,7 +21634,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$714 + br $__inlined_func$~lib/array/Array#indexOf$718 end local.get $0 i32.const 1 @@ -21454,9 +21666,9 @@ i32.const 12 i32.const 4496 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 local.set $0 @@ -21472,14 +21684,14 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf$715 - local.get $1 + block $__inlined_func$~lib/array/Array#indexOf$719 + local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.eqz - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.or @@ -21490,20 +21702,20 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/array/Array#indexOf$715 + br $__inlined_func$~lib/array/Array#indexOf$719 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|07 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 3 i32.shl @@ -21516,7 +21728,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/array/Array#indexOf$715 + br $__inlined_func$~lib/array/Array#indexOf$719 end local.get $0 i32.const 1 @@ -21832,9 +22044,9 @@ i32.const 9 i32.const 4576 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 local.set $0 @@ -21850,14 +22062,14 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - block $__inlined_func$~lib/array/Array#includes$716 (result i32) - local.get $1 + block $__inlined_func$~lib/array/Array#includes$720 (result i32) + local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.eqz - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.or @@ -21867,27 +22079,27 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$716 + br $__inlined_func$~lib/array/Array#includes$720 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|09 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 2 i32.shl i32.add f32.load - local.tee $6 - local.get $6 + local.tee $8 + local.get $8 f32.ne if global.get $~lib/memory/__stack_pointer @@ -21895,7 +22107,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$716 + br $__inlined_func$~lib/array/Array#includes$720 end local.get $0 i32.const 1 @@ -21924,9 +22136,9 @@ i32.const 12 i32.const 4608 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 local.set $0 @@ -21942,14 +22154,14 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - block $__inlined_func$~lib/array/Array#includes$717 (result i32) - local.get $1 + block $__inlined_func$~lib/array/Array#includes$721 (result i32) + local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.eqz - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.or @@ -21959,27 +22171,27 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/array/Array#includes$717 + br $__inlined_func$~lib/array/Array#includes$721 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $1 + local.get $2 local.get $0 i32.const 3 i32.shl i32.add f64.load - local.tee $5 - local.get $5 + local.tee $7 + local.get $7 f64.ne if global.get $~lib/memory/__stack_pointer @@ -21987,7 +22199,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/array/Array#includes$717 + br $__inlined_func$~lib/array/Array#includes$721 end local.get $0 i32.const 1 @@ -22102,21 +22314,21 @@ local.get $0 i32.const 0 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 4688 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22136,12 +22348,12 @@ i32.const 4 i32.const 4736 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22168,21 +22380,21 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 4816 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22202,12 +22414,12 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22235,21 +22447,21 @@ local.get $0 i32.const 2 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4944 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22269,12 +22481,12 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22301,21 +22513,21 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 5056 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22335,12 +22547,12 @@ i32.const 4 i32.const 5088 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22367,21 +22579,21 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5168 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22401,12 +22613,12 @@ i32.const 4 i32.const 5200 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22434,21 +22646,21 @@ local.get $0 i32.const -1 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5296 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22468,12 +22680,12 @@ i32.const 4 i32.const 5328 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22501,21 +22713,21 @@ local.get $0 i32.const -2 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 5424 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22535,12 +22747,12 @@ i32.const 4 i32.const 5456 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22567,21 +22779,21 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5536 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22601,12 +22813,12 @@ i32.const 4 i32.const 5568 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22633,21 +22845,21 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5664 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22667,12 +22879,12 @@ i32.const 4 i32.const 5696 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22699,21 +22911,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 5792 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22733,12 +22945,12 @@ i32.const 4 i32.const 5824 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22765,21 +22977,21 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 5920 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22799,12 +23011,12 @@ i32.const 4 i32.const 5952 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22831,21 +23043,21 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6048 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22865,12 +23077,12 @@ i32.const 4 i32.const 6080 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22897,21 +23109,21 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6176 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22931,12 +23143,12 @@ i32.const 4 i32.const 6208 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22963,21 +23175,21 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6304 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22997,12 +23209,12 @@ i32.const 4 i32.const 6336 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23029,12 +23241,12 @@ local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $1 + local.tee $2 i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -23064,40 +23276,40 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=100 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#splice local.tee $0 @@ -23123,11 +23335,11 @@ local.get $0 i32.const 0 call $~lib/array/Array#__get - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 i32.load i32.const 3 i32.ne @@ -23162,9 +23374,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -23177,9 +23389,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get local.set $0 @@ -23199,9 +23411,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get local.set $0 @@ -23221,9 +23433,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get local.set $0 @@ -23249,27 +23461,27 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=104 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.store offset=108 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23283,98 +23495,98 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.le_s select - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 1 - local.get $4 - local.get $7 + local.get $3 + local.get $9 i32.sub - local.tee $8 - local.get $8 + local.tee $10 + local.get $10 i32.const 1 i32.gt_s select - local.tee $8 + local.tee $10 i32.const 0 - local.get $8 + local.get $10 i32.const 0 i32.gt_s select - local.tee $8 + local.tee $10 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $11 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.tee $10 - local.get $7 + local.tee $12 + local.get $9 i32.const 2 i32.shl i32.add - local.tee $11 - local.get $8 + local.tee $13 + local.get $10 i32.const 2 i32.shl memory.copy - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.add - local.tee $7 - local.get $4 + local.tee $9 + local.get $3 i32.ne if - local.get $11 - local.get $10 - local.get $7 + local.get $13 + local.get $12 + local.get $9 i32.const 2 i32.shl i32.add - local.get $4 - local.get $7 + local.get $3 + local.get $9 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 - local.get $4 - local.get $8 + local.get $2 + local.get $3 + local.get $10 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store offset=112 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store - local.get $9 + local.get $11 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -23387,10 +23599,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $11 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -23421,9 +23633,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -23436,9 +23648,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get if @@ -23450,10 +23662,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get local.tee $0 @@ -24348,9 +24560,9 @@ if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#pop drop local.get $0 @@ -24391,13 +24603,13 @@ global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 9296 i32.store offset=8 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 @@ -24405,105 +24617,106 @@ i32.lt_s br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.load offset=12 - local.tee $7 + local.tee $9 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store - local.get $8 + local.get $10 i32.load offset=4 - local.set $9 + local.set $11 i32.const 0 - local.set $4 + local.set $2 loop $for-loop|012 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $4 - local.get $7 - local.get $1 + local.get $2 + local.get $9 + local.get $3 i32.load offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.tee $12 + local.get $9 + local.get $12 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 9296 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $2 i32.const 2 i32.shl - local.tee $10 - local.get $1 + local.tee $12 + local.get $3 i32.load offset=4 i32.add i32.load - local.set $11 + local.set $13 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store i32.const 3 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $4 - local.get $1 + local.get $13 + local.get $2 + local.get $3 i32.const 9296 i32.load call_indirect (type $1) - local.tee $11 - i32.store offset=12 - local.get $9 - local.get $10 - i32.add + local.tee $13 + i32.store offset=16 local.get $11 + local.get $12 + i32.add + local.get $13 i32.store - local.get $8 - local.get $11 + local.get $10 + local.get $13 i32.const 1 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|012 end end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=128 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 9328 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24514,88 +24727,91 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.load offset=12 - local.tee $7 + local.tee $9 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store - local.get $8 + local.get $10 i32.load offset=4 - local.set $9 + local.set $11 i32.const 0 - local.set $4 + local.set $2 loop $for-loop|013 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $4 - local.get $7 - local.get $1 + local.get $2 + local.get $9 + local.get $3 i32.load offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.tee $12 + local.get $9 + local.get $12 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 9328 i32.store offset=8 - local.get $4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $2 i32.const 2 i32.shl - local.tee $10 - local.get $1 + local.tee $12 + local.get $3 i32.load offset=4 i32.add i32.load - local.set $11 + local.set $13 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $10 - i32.add local.get $11 - local.get $4 - local.get $1 + local.get $12 + i32.add + local.get $13 + local.get $2 + local.get $3 i32.const 9328 i32.load call_indirect (type $17) f32.store - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|013 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store - local.get $8 + local.get $10 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -24608,9 +24824,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store - local.get $8 + local.get $10 i32.const 0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer @@ -25418,26 +25634,26 @@ i64.const -7046029254386353131 call $~lib/bindings/dom/Math.random i64.reinterpret_f64 - local.tee $3 - local.get $3 + local.tee $6 + local.get $6 i64.eqz select - local.tee $3 - local.get $3 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $3 - local.get $3 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $3 - local.get $3 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor @@ -25445,22 +25661,22 @@ global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $3 - local.get $3 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $3 - local.get $3 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $3 - local.get $3 + local.tee $6 + local.get $6 i64.const 33 i64.shr_u i64.xor @@ -25477,243 +25693,243 @@ i32.store offset=140 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store offset=4 local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=148 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store offset=4 local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=152 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 95 i32.store offset=4 local.get $0 i32.const 2 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store offset=4 local.get $0 i32.const 3 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store offset=4 local.get $0 i32.const 4 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=164 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 115 i32.store offset=4 local.get $0 i32.const 5 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=168 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 120 i32.store offset=4 local.get $0 i32.const 6 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=172 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 125 i32.store offset=4 local.get $0 i32.const 7 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=176 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 130 i32.store offset=4 local.get $0 i32.const 8 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=180 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 135 i32.store offset=4 local.get $0 i32.const 9 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=184 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 10 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=188 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 11 - local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $0 global.set $std/array/inputStabArr @@ -25727,243 +25943,243 @@ i32.store offset=192 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=196 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 95 i32.store offset=4 local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=200 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 125 i32.store offset=4 local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=204 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 130 i32.store offset=4 local.get $0 i32.const 2 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=208 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 3 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=212 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 4 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=216 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store offset=4 local.get $0 i32.const 5 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=220 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store offset=4 local.get $0 i32.const 6 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=224 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store offset=4 local.get $0 i32.const 7 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=228 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store offset=4 local.get $0 i32.const 8 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=232 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 120 i32.store offset=4 local.get $0 i32.const 9 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=236 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 135 i32.store offset=4 local.get $0 i32.const 10 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=240 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 115 i32.store offset=4 local.get $0 i32.const 11 - local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $0 global.set $std/array/outputStabArr @@ -25990,12 +26206,12 @@ i32.const 9 i32.const 10288 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -26029,12 +26245,12 @@ i32.const 9 i32.const 10384 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -26122,13 +26338,13 @@ i32.const 12 i32.const 10576 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual$7 (result i32) i32.const 0 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26145,44 +26361,44 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store block $folding-inner1 block $folding-inner01 - local.get $1 + local.get $3 call $~lib/array/Array#get:length - local.get $7 + local.get $9 i32.ne br_if $folding-inner01 local.get $0 - local.get $1 + local.get $3 i32.eq br_if $folding-inner1 loop $for-loop|02 - local.get $4 - local.get $7 + local.get $2 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $4 + local.get $2 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $7 + local.get $7 f64.ne if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 - local.get $4 + local.get $3 + local.get $2 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $7 + local.get $7 f64.ne else i32.const 0 @@ -26193,17 +26409,17 @@ local.get $0 i32.store local.get $0 - local.get $4 + local.get $2 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 - local.get $4 + local.get $3 + local.get $2 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 @@ -26215,23 +26431,23 @@ local.get $0 i32.store local.get $0 - local.get $4 + local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 - local.get $4 + local.get $3 + local.get $2 call $~lib/array/Array#__get - local.get $5 + local.get $7 f64.ne br_if $folding-inner01 end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|02 end end @@ -26311,12 +26527,12 @@ i32.const 4 i32.const 10752 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26405,12 +26621,12 @@ i32.const 8 i32.const 10880 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -26427,7 +26643,7 @@ i32.const 4 i32.const 10928 call $~lib/rt/__newArray - local.tee $1 + local.tee $3 i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26435,7 +26651,7 @@ i32.const 4 i32.const 10960 call $~lib/rt/__newArray - local.tee $4 + local.tee $9 i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -26443,7 +26659,7 @@ i32.const 4 i32.const 10992 call $~lib/rt/__newArray - local.tee $7 + local.tee $10 i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26451,7 +26667,7 @@ i32.const 4 i32.const 11024 call $~lib/rt/__newArray - local.tee $8 + local.tee $11 i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26459,57 +26675,57 @@ i32.const 4 i32.const 11072 call $~lib/rt/__newArray - local.tee $9 + local.tee $12 i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $10 + local.tee $13 i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $14 i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $15 i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $13 + local.tee $0 i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $0 + local.tee $2 i32.store offset=300 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store - local.get $1 + local.get $3 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $9 i32.store - local.get $4 + local.get $9 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $9 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 11152 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 - local.get $4 - local.get $1 + local.get $9 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26522,24 +26738,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $10 i32.store - local.get $7 + local.get $10 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $10 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 11184 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 - local.get $7 - local.get $1 + local.get $10 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26552,18 +26768,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $11 i32.store - local.get $8 + local.get $11 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $12 i32.store offset=8 - local.get $8 - local.get $9 + local.get $11 + local.get $12 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26576,18 +26792,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $13 i32.store - local.get $10 + local.get $13 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $13 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $12 i32.store offset=8 - local.get $10 - local.get $9 + local.get $13 + local.get $12 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26600,18 +26816,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $14 i32.store - local.get $11 + local.get $14 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $14 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $12 i32.store offset=8 - local.get $11 - local.get $9 + local.get $14 + local.get $12 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26624,18 +26840,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $15 i32.store - local.get $12 + local.get $15 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $15 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $12 i32.store offset=8 + local.get $15 local.get $12 - local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26648,18 +26864,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $0 i32.store - local.get $13 + local.get $0 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $12 i32.store offset=8 - local.get $13 - local.get $9 + local.get $0 + local.get $12 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26672,9 +26888,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer i32.const 24 @@ -26725,68 +26941,68 @@ i32.store local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.le_s select - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $7 + local.get $3 + local.get $9 i32.sub - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select - local.tee $4 + local.tee $3 i32.const 2 i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store - local.get $8 + local.get $10 i32.load offset=4 - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.get $7 + local.get $9 i32.const 2 i32.shl i32.add - local.set $7 + local.set $9 i32.const 0 local.set $0 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.set $4 + local.set $3 loop $while-continue|06 local.get $0 - local.get $4 + local.get $3 i32.lt_u if local.get $0 - local.get $9 + local.get $11 i32.add local.get $0 - local.get $7 + local.get $9 i32.add i32.load - local.tee $10 + local.tee $12 i32.store - local.get $8 local.get $10 + local.get $12 i32.const 1 call $~lib/rt/itcms/__link local.get $0 @@ -26805,28 +27021,28 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store global.get $~lib/memory/__stack_pointer i32.const 11216 i32.store offset=4 - local.get $8 + local.get $10 i32.const 11216 call $~lib/array/Array#sort local.tee $0 i32.store offset=12 i32.const 1 - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 call $~lib/array/Array#get:length - local.set $1 + local.set $3 loop $for-loop|014 - local.get $1 - local.get $2 + local.get $3 + local.get $4 i32.gt_s if block $for-break0 @@ -26835,60 +27051,60 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $4 call $~lib/array/Array#__get - local.tee $7 + local.tee $9 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $8 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $10 + local.get $4 call $~lib/array/Array#__get - local.tee $8 + local.tee $10 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.load global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store - local.get $8 + local.get $10 i32.load i32.ne if (result i32) i32.const 1 else global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store - local.get $7 + local.get $9 i32.load offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store - local.get $8 + local.get $10 i32.load offset=4 i32.ne end if i32.const 0 - local.set $4 + local.set $2 br $for-break0 end - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|014 end end end - local.get $4 + local.get $2 i32.eqz if i32.const 0 @@ -26910,7 +27126,7 @@ global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $1 + local.tee $2 i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 @@ -26931,21 +27147,21 @@ i32.const 11280 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 11312 i32.store offset=8 - local.get $1 + local.get $2 i32.const 11312 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 11344 i32.store offset=8 - local.get $1 + local.get $2 i32.const 11344 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer @@ -26982,34 +27198,34 @@ i32.const 16 i32.const 29 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -27019,41 +27235,41 @@ local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 - local.get $2 + local.get $3 local.get $4 i32.store - local.get $2 + local.get $3 local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 32 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store i32.const 0 local.set $0 @@ -27077,12 +27293,12 @@ i32.sub call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 local.get $4 call $~lib/array/Array#__set @@ -27097,15 +27313,15 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=312 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 11376 i32.store offset=8 - local.get $2 + local.get $3 i32.const 11376 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27142,34 +27358,34 @@ i32.const 16 i32.const 32 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -27179,51 +27395,51 @@ local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $4 i32.store offset=12 - local.get $2 + local.get $3 local.get $4 i32.store - local.get $2 + local.get $3 local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2048 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 512 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store i32.const 0 - local.set $4 + local.set $2 loop $for-loop|06 - local.get $4 + local.get $2 i32.const 512 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27240,14 +27456,14 @@ i32.const 4 i32.const 31 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 - i32.const 511 local.get $4 + i32.const 511 + local.get $2 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -27255,16 +27471,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=8 + local.get $3 local.get $2 local.get $4 - local.get $1 call $~lib/array/Array#__set - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|06 end end @@ -27272,15 +27488,15 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=316 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 11408 i32.store offset=8 - local.get $2 + local.get $3 i32.const 11408 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27297,7 +27513,7 @@ i32.const 34 i32.const 11648 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 @@ -27350,15 +27566,15 @@ local.get $0 i32.const 11696 call $~lib/array/Array#sort - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 11696 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -27369,48 +27585,51 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 i32.const 1 - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 call $~lib/array/Array#get:length - local.set $7 - block $__inlined_func$std/array/isSorted<~lib/string/String|null>$662 (result i32) + local.set $9 + block $__inlined_func$std/array/isSorted<~lib/string/String|null>$666 (result i32) loop $for-loop|07 - local.get $2 - local.get $7 + local.get $4 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer + i32.const 11696 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 local.get $4 - i32.store offset=8 - local.get $4 - local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 local.get $4 - i32.store offset=8 - local.get $4 - local.get $2 call $~lib/array/Array#__get - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 + local.get $11 + i32.store offset=8 i32.const 2 global.set $~argumentsLength - local.get $8 - local.get $9 + local.get $10 + local.get $11 i32.const 11696 i32.load call_indirect (type $0) @@ -27418,21 +27637,21 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isSorted<~lib/string/String|null>$662 + br $__inlined_func$std/array/isSorted<~lib/string/String|null>$666 end - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|07 end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -27458,7 +27677,7 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27479,14 +27698,14 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 (result i32) - local.get $1 + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$752 (result i32) + local.get $2 call $~lib/array/Array#get:length - local.get $4 + local.get $3 i32.ne if global.get $~lib/memory/__stack_pointer @@ -27494,10 +27713,10 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$752 end local.get $0 - local.get $1 + local.get $2 i32.eq if global.get $~lib/memory/__stack_pointer @@ -27505,34 +27724,34 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$752 end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|08 - local.get $2 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $2 + local.get $4 call $~lib/array/Array#__get - local.set $7 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 local.get $2 + local.get $4 call $~lib/array/Array#__get - local.set $8 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27546,13 +27765,13 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $7 - local.get $8 + local.get $9 + local.get $10 call $~lib/string/String.__eq i32.eqz global.get $~lib/memory/__stack_pointer @@ -27565,12 +27784,12 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$748 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$752 end - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|08 end end @@ -27623,94 +27842,94 @@ i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 0 i32.store - local.get $8 + local.get $10 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 1600 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 - local.get $8 - local.get $1 + local.get $10 + local.get $2 i32.store - local.get $8 - local.get $1 + local.get $10 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 - local.get $1 + local.get $10 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 1600 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 - local.get $8 + local.get $10 i32.const 400 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store i32.const 0 - local.set $4 + local.set $2 loop $for-loop|019 - local.get $4 + local.get $2 i32.const 400 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_sat_f64_s - local.set $9 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27731,10 +27950,10 @@ i32.const 11568 i32.store i32.const 0 - local.set $2 + local.set $4 loop $for-loop|00 - local.get $2 - local.get $9 + local.get $4 + local.get $11 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -27750,7 +27969,7 @@ f64.mul f64.floor i32.trunc_sat_f64_s - local.set $11 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -27765,8 +27984,8 @@ global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store - block $__inlined_func$~lib/string/String#charAt$737 - local.get $11 + block $__inlined_func$~lib/string/String#charAt$741 + local.get $13 i32.const 10028 i32.load i32.const 1 @@ -27778,17 +27997,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $1 - br $__inlined_func$~lib/string/String#charAt$737 + local.set $3 + br $__inlined_func$~lib/string/String#charAt$741 end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store offset=4 - local.get $1 - local.get $11 + local.get $3 + local.get $13 i32.const 1 i32.shl i32.const 10032 @@ -27801,17 +28020,17 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=8 local.get $0 - local.get $1 + local.get $3 call $~lib/string/String.__concat local.tee $0 i32.store - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|00 end end @@ -27822,14 +28041,14 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $8 - local.get $4 + local.get $10 + local.get $2 local.get $0 call $~lib/array/Array#__set - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|019 end end @@ -27837,10 +28056,10 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=328 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store i32.const 1 global.set $~argumentsLength @@ -27862,12 +28081,12 @@ i32.const 11728 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store offset=8 - local.get $8 + local.get $10 i32.const 11728 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27899,7 +28118,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27928,7 +28147,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $9 i32.const 0 i32.lt_s if @@ -27941,12 +28160,12 @@ br $__inlined_func$~lib/util/string/joinBooleanArray$12 end block $folding-inner07 - local.get $7 + local.get $9 i32.eqz if i32.const 11792 i32.const 11824 - local.get $1 + local.get $3 i32.load8_u select local.set $0 @@ -27960,14 +28179,14 @@ i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $10 i32.const 5 i32.add - local.get $7 + local.get $9 i32.mul i32.const 5 i32.add - local.tee $9 + local.tee $11 i32.const 1 i32.shl i32.const 2 @@ -27976,18 +28195,18 @@ i32.store offset=4 loop $for-loop|18 local.get $4 - local.get $7 + local.get $9 i32.lt_s if - local.get $1 + local.get $3 local.get $4 i32.add i32.load8_u - local.tee $10 + local.tee $12 i32.eqz i32.const 4 i32.add - local.set $11 + local.set $13 local.get $0 local.get $2 i32.const 1 @@ -27995,17 +28214,17 @@ i32.add i32.const 11792 i32.const 11824 - local.get $10 + local.get $12 select - local.get $11 + local.get $13 i32.const 1 i32.shl memory.copy local.get $2 - local.get $11 + local.get $13 i32.add local.set $2 - local.get $8 + local.get $10 if local.get $0 local.get $2 @@ -28013,12 +28232,12 @@ i32.shl i32.add i32.const 11856 - local.get $8 + local.get $10 i32.const 1 i32.shl memory.copy local.get $2 - local.get $8 + local.get $10 i32.add local.set $2 end @@ -28029,11 +28248,11 @@ br $for-loop|18 end end - local.get $1 - local.get $7 + local.get $3 + local.get $9 i32.add i32.load8_u - local.tee $1 + local.tee $3 i32.eqz i32.const 4 i32.add @@ -28045,7 +28264,7 @@ i32.add i32.const 11792 i32.const 11824 - local.get $1 + local.get $3 select local.get $4 i32.const 1 @@ -28054,15 +28273,15 @@ local.get $2 local.get $4 i32.add - local.tee $1 - local.get $9 + local.tee $2 + local.get $11 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - local.get $1 + local.get $2 call $~lib/string/String#substring local.set $0 br $folding-inner07 @@ -28270,28 +28489,28 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=332 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 2 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.store offset=336 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -28316,24 +28535,24 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=340 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.store offset=344 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -28365,7 +28584,7 @@ i32.const 4 i32.const 13920 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=352 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -28373,7 +28592,7 @@ i32.const 4 i32.const 13952 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=356 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -28405,9 +28624,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer @@ -28426,9 +28645,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 - local.get $2 + local.get $3 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer @@ -28530,10 +28749,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28585,11 +28800,11 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$741 + block $__inlined_func$~lib/util/string/joinIntegerArray$745 local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -28599,9 +28814,9 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$745 end - local.get $7 + local.get $3 i32.eqz if local.get $2 @@ -28612,7 +28827,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$745 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -28622,10 +28837,10 @@ i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $4 i32.const 10 i32.add - local.get $7 + local.get $3 i32.mul i32.const 10 i32.add @@ -28637,9 +28852,9 @@ local.tee $0 i32.store offset=4 loop $for-loop|03 - local.get $4 - local.get $7 - i32.lt_s + local.get $3 + local.get $5 + i32.gt_s if local.get $0 local.get $1 @@ -28647,7 +28862,7 @@ i32.shl i32.add local.get $2 - local.get $4 + local.get $5 i32.const 1 i32.shl i32.add @@ -28656,7 +28871,7 @@ local.get $1 i32.add local.set $1 - local.get $8 + local.get $4 if local.get $0 local.get $1 @@ -28664,29 +28879,30 @@ i32.shl i32.add i32.const 11856 - local.get $8 + local.get $4 i32.const 1 i32.shl memory.copy local.get $1 - local.get $8 + local.get $4 i32.add local.set $1 end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|03 end end + local.get $9 local.get $0 local.get $1 i32.const 1 i32.shl i32.add local.get $2 - local.get $7 + local.get $3 i32.const 1 i32.shl i32.add @@ -28695,8 +28911,7 @@ local.get $1 i32.add local.tee $1 - local.get $9 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -28709,7 +28924,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$741 + br $__inlined_func$~lib/util/string/joinIntegerArray$745 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28751,7 +28966,7 @@ i32.const 0 local.set $1 i32.const 0 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28803,11 +29018,11 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$742 + block $__inlined_func$~lib/util/string/joinIntegerArray$746 local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -28817,9 +29032,9 @@ global.set $~lib/memory/__stack_pointer i32.const 11568 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$742 + br $__inlined_func$~lib/util/string/joinIntegerArray$746 end - local.get $7 + local.get $3 i32.eqz if local.get $2 @@ -28830,7 +29045,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$742 + br $__inlined_func$~lib/util/string/joinIntegerArray$746 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -28840,10 +29055,10 @@ i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $4 i32.const 11 i32.add - local.get $7 + local.get $3 i32.mul i32.const 11 i32.add @@ -28855,9 +29070,9 @@ local.tee $0 i32.store offset=4 loop $for-loop|05 - local.get $4 - local.get $7 - i32.lt_s + local.get $3 + local.get $5 + i32.gt_s if local.get $0 local.get $1 @@ -28865,7 +29080,7 @@ i32.shl i32.add local.get $2 - local.get $4 + local.get $5 i32.const 1 i32.shl i32.add @@ -28874,7 +29089,7 @@ local.get $1 i32.add local.set $1 - local.get $8 + local.get $4 if local.get $0 local.get $1 @@ -28882,29 +29097,30 @@ i32.shl i32.add i32.const 11856 - local.get $8 + local.get $4 i32.const 1 i32.shl memory.copy local.get $1 - local.get $8 + local.get $4 i32.add local.set $1 end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|05 end end + local.get $9 local.get $0 local.get $1 i32.const 1 i32.shl i32.add local.get $2 - local.get $7 + local.get $3 i32.const 1 i32.shl i32.add @@ -28913,8 +29129,7 @@ local.get $1 i32.add local.tee $1 - local.get $9 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -28927,7 +29142,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$742 + br $__inlined_func$~lib/util/string/joinIntegerArray$746 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29095,20 +29310,20 @@ i32.store local.get $0 i32.load offset=4 - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $0 + local.set $2 i32.const 0 - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29121,10 +29336,10 @@ i64.const 0 i64.store block $__inlined_func$~lib/util/string/joinIntegerArray$13 - local.get $2 + local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -29137,14 +29352,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray$13 end block $folding-inner09 - local.get $7 + local.get $3 i32.eqz if block $__inlined_func$~lib/util/number/itoa64$4 (result i32) - local.get $4 + local.get $1 i64.load i64.extend32_s - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -29156,7 +29371,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $6 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -29167,10 +29382,10 @@ br $__inlined_func$~lib/util/number/itoa64$4 end i64.const 0 - local.get $3 + local.get $6 i64.sub - local.get $3 - local.get $3 + local.get $6 + local.get $6 i64.const 63 i64.shr_u i32.wrap_i64 @@ -29178,145 +29393,145 @@ i32.shl local.tee $0 select - local.tee $3 + local.tee $6 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.wrap_i64 - local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $4 + local.tee $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store local.get $0 - local.get $1 + local.get $3 i32.add + local.get $1 local.get $2 - local.get $4 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $3 + local.get $6 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $3 + local.get $6 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $3 + local.get $6 i64.const 10000000000 i64.ge_u i32.add else - local.get $3 + local.get $6 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $3 + local.get $6 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $3 + local.get $6 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $3 + local.get $6 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $3 + local.get $6 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $3 + local.get $6 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store local.get $0 - local.get $1 - i32.add local.get $3 - local.get $2 + i32.add + local.get $6 + local.get $1 call $~lib/util/number/utoa64_dec_lut end local.get $0 if - local.get $1 + local.get $3 i32.const 45 i32.store16 end @@ -29324,7 +29539,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 end local.set $0 br $folding-inner09 @@ -29337,10 +29552,10 @@ i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $5 i32.const 21 i32.add - local.get $7 + local.get $3 i32.mul i32.const 21 i32.add @@ -29349,75 +29564,75 @@ i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store offset=4 loop $for-loop|010 - local.get $1 - local.get $7 - i32.lt_s + local.get $3 + local.get $4 + i32.gt_s if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $4 local.get $1 + local.get $4 i32.const 3 i32.shl i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 - local.get $8 + local.set $2 + local.get $5 if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add i32.const 11856 - local.get $8 + local.get $5 i32.const 1 i32.shl memory.copy - local.get $0 - local.get $8 + local.get $2 + local.get $5 i32.add - local.set $0 + local.set $2 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|010 end end - local.get $2 + local.get $9 local.get $0 + local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $7 + local.get $1 + local.get $3 i32.const 3 i32.shl i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 - local.get $9 - i32.lt_s + local.tee $1 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/string/String#substring local.set $0 br $folding-inner09 @@ -29426,8 +29641,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray$13 end global.get $~lib/memory/__stack_pointer @@ -29574,13 +29787,13 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store @@ -29599,7 +29812,7 @@ i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -29611,14 +29824,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.load local.tee $0 i32.store @@ -29632,7 +29845,7 @@ else i32.const 11568 end - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -29640,7 +29853,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$14 end i32.const 11568 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -29651,55 +29864,55 @@ i32.load i32.const 1 i32.shr_u - local.set $7 + local.set $2 loop $for-loop|011 local.get $1 local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=16 - local.get $8 + local.get $5 call $~lib/array/Array#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=12 - local.get $0 - local.get $8 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $7 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end local.get $4 @@ -29710,33 +29923,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 + local.get $3 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29753,9 +29966,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 + local.get $3 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -29827,13 +30040,13 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store @@ -29852,7 +30065,7 @@ i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -29864,14 +30077,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.load local.tee $0 i32.store @@ -29885,7 +30098,7 @@ else i32.const 11568 end - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -29893,7 +30106,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$15 end i32.const 11568 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -29904,55 +30117,55 @@ i32.load i32.const 1 i32.shr_u - local.set $7 + local.set $2 loop $for-loop|016 local.get $1 local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=16 - local.get $8 + local.get $5 call $~lib/array/Array#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=12 - local.get $0 - local.get $8 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $7 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end local.get $4 @@ -29963,33 +30176,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 + local.get $3 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30006,9 +30219,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 + local.get $3 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -30084,13 +30297,13 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store @@ -30109,7 +30322,7 @@ i32.const 20 memory.fill block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -30121,14 +30334,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 + local.set $3 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.load local.tee $0 i32.store @@ -30142,7 +30355,7 @@ else i32.const 11568 end - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add @@ -30150,7 +30363,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$16 end i32.const 11568 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -30161,55 +30374,55 @@ i32.load i32.const 1 i32.shr_u - local.set $7 + local.set $2 loop $for-loop|017 local.get $1 local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=16 - local.get $8 + local.get $5 call $~lib/array/Array<~lib/array/Array>#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=12 - local.get $0 - local.get $8 + local.get $3 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end - local.get $7 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end local.get $4 @@ -30220,33 +30433,33 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 + local.get $3 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $3 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30263,9 +30476,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store - local.get $0 + local.get $3 i32.const 13568 call $~lib/string/String.__eq i32.eqz @@ -30439,7 +30652,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30447,7 +30660,7 @@ i32.load offset=12 local.set $1 i32.const 0 - local.set $2 + local.set $4 i32.const 0 local.set $0 loop $for-loop|023 @@ -30455,22 +30668,22 @@ local.get $1 i32.lt_s if - local.get $8 + local.get $5 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.tee $4 + local.tee $2 if (result i32) - local.get $4 + local.get $2 i32.load offset=12 else i32.const 0 end - local.get $2 + local.get $4 i32.add - local.set $2 + local.set $4 local.get $0 i32.const 1 i32.add @@ -30479,7 +30692,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 2 i32.shl local.tee $0 @@ -30494,7 +30707,7 @@ local.tee $10 i32.store offset=8 local.get $10 - local.get $2 + local.get $4 i32.store offset=12 local.get $10 local.get $0 @@ -30512,14 +30725,14 @@ i32.const 0 local.set $0 i32.const 0 - local.set $4 + local.set $2 loop $for-loop|124 local.get $1 - local.get $4 + local.get $2 i32.gt_s if - local.get $8 - local.get $4 + local.get $5 + local.get $2 i32.const 2 i32.shl i32.add @@ -30542,10 +30755,10 @@ i32.add local.set $0 end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|124 end end @@ -30553,7 +30766,7 @@ local.set $0 loop $for-loop|225 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $9 @@ -30602,21 +30815,21 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/array/Array#get:length - local.get $4 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $10 i32.store offset=48 local.get $10 - local.get $4 + local.get $2 call $~lib/array/Array#__get local.set $1 global.get $~lib/memory/__stack_pointer @@ -30626,14 +30839,14 @@ local.get $0 i32.store offset=48 local.get $0 - local.get $4 + local.get $2 call $~lib/array/Array#__get - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -30644,10 +30857,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|8 end end @@ -30732,7 +30945,7 @@ i32.const 15984 i32.store offset=48 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -30741,7 +30954,7 @@ br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $1 @@ -30749,41 +30962,44 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 2 i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store - local.get $7 + local.get $4 i32.load offset=4 - local.set $8 + local.set $5 i32.const 0 - local.set $4 + local.set $2 loop $for-loop|026 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $4 local.get $2 + local.get $3 local.get $1 i32.load offset=12 local.tee $9 - local.get $2 + local.get $3 local.get $9 i32.lt_s select i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 15984 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 2 i32.shl local.tee $9 @@ -30795,42 +31011,42 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=12 i32.const 3 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $10 - local.get $4 + local.get $2 local.get $1 i32.const 15984 i32.load call_indirect (type $1) local.tee $10 - i32.store offset=16 - local.get $8 + i32.store offset=20 + local.get $5 local.get $9 i32.add local.get $10 i32.store - local.get $7 + local.get $4 local.get $10 i32.const 1 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|026 end end global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store - local.get $7 + local.get $4 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 i32.store offset=440 diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index 65ff72d2fc..fe1032fd29 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -3120,161 +3120,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/nodePower (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) (local $s i32) @@ -6123,22 +5968,26 @@ (local $out i32) (local $outStart i32) (local $i i32) + (local $6 i32) (local $result i32) - (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $this - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/staticarray/StaticArray#get:length local.set $len global.get $~lib/memory/__stack_pointer @@ -6150,11 +5999,11 @@ local.tee $out i32.store offset=4 local.get $out - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:dataStart local.set $outStart i32.const 0 @@ -6164,6 +6013,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $6 + i32.store offset=8 local.get $this local.get $i i32.const 2 @@ -6172,14 +6025,14 @@ i32.load local.get $i local.get $this - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $3) local.set $result @@ -6200,34 +6053,35 @@ end end local.get $out - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $~lib/staticarray/StaticArray#forEach (param $this i32) (param $fn i32) (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6235,6 +6089,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $4 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6243,14 +6101,14 @@ i32.load local.get $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $4 i32.load call_indirect (type $5) local.get $i @@ -6261,7 +6119,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) @@ -6534,24 +6392,25 @@ (local $i i32) (local $len i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $initialValue local.set $acc i32.const 0 local.set $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6559,6 +6418,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $6 + i32.store offset=4 local.get $acc local.get $this local.get $i @@ -6568,14 +6431,14 @@ i32.load local.get $i local.get $this - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store - local.get $6 + local.get $7 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $6 i32.load call_indirect (type $4) local.set $acc @@ -6587,34 +6450,35 @@ end end local.get $acc - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $~lib/staticarray/StaticArray#reduceRight (param $this i32) (param $fn i32) (param $initialValue i32) (result i32) (local $acc i32) (local $i i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $initialValue local.set $acc local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 call $~lib/staticarray/StaticArray#get:length i32.const 1 i32.sub @@ -6624,6 +6488,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $5 + i32.store offset=4 local.get $acc local.get $this local.get $i @@ -6633,14 +6501,14 @@ i32.load local.get $i local.get $this - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store - local.get $5 + local.get $6 i32.const 4 global.set $~argumentsLength - local.get $fn + local.get $5 i32.load call_indirect (type $4) local.set $acc @@ -6652,34 +6520,35 @@ end end local.get $acc - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return ) (func $~lib/staticarray/StaticArray#some (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6687,6 +6556,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $4 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6695,24 +6568,24 @@ i32.load local.get $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $4 i32.load call_indirect (type $3) if i32.const 1 - local.set $4 + local.set $5 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 $5 return end local.get $i @@ -6723,34 +6596,35 @@ end end i32.const 0 - local.set $4 + local.set $5 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 $5 return ) (func $~lib/staticarray/StaticArray#every (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6758,6 +6632,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $4 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6766,25 +6644,25 @@ i32.load local.get $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $4 i32.load call_indirect (type $3) i32.eqz if i32.const 0 - local.set $4 + local.set $5 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 $5 return end local.get $i @@ -6795,34 +6673,35 @@ end end i32.const 1 - local.set $4 + local.set $5 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 $5 return ) (func $~lib/staticarray/StaticArray#findIndex (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $len i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 call $~lib/staticarray/StaticArray#get:length local.set $len loop $for-loop|0 @@ -6830,6 +6709,10 @@ local.get $len i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $4 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6838,24 +6721,24 @@ i32.load local.get $i local.get $this - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $4 i32.load call_indirect (type $3) if local.get $i - local.set $4 + local.set $5 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 $5 return end local.get $i @@ -6866,31 +6749,32 @@ end end i32.const -1 - local.set $4 + local.set $5 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 $5 return ) (func $~lib/staticarray/StaticArray#findLastIndex (param $this i32) (param $fn i32) (result i32) (local $i i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store local.get $this - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $~lib/staticarray/StaticArray#get:length i32.const 1 i32.sub @@ -6900,6 +6784,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $3 + i32.store offset=4 local.get $this local.get $i i32.const 2 @@ -6908,24 +6796,24 @@ i32.load local.get $i local.get $this - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.const 3 global.set $~argumentsLength - local.get $fn + local.get $3 i32.load call_indirect (type $3) if local.get $i - local.set $3 + local.set $4 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 $4 return end local.get $i @@ -6936,12 +6824,12 @@ end end i32.const -1 - local.set $3 + local.set $4 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 $4 return ) (func $~lib/util/sort/SORT (param $ptr i32) (param $len i32) (param $comparator i32) @@ -10341,4 +10229,198 @@ local.get $7 return ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $2) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $2) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $2) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) ) diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index f83e7fdb29..e9b6c8eccb 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -1218,7 +1218,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 + block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$275 local.get $0 i32.const 20 i32.sub @@ -1238,7 +1238,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $2 - br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$275 end local.get $2 i32.const 0 @@ -1280,7 +1280,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$274 + br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf$275 end local.get $2 i32.const 1 @@ -2482,7 +2482,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$267 + block $__inlined_func$~lib/rt/itcms/Object#unlink$268 local.get $0 i32.load offset=4 i32.const -4 @@ -2506,7 +2506,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$267 + br $__inlined_func$~lib/rt/itcms/Object#unlink$268 end local.get $0 i32.load offset=8 @@ -2887,13 +2887,41 @@ (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + if + i32.const 36752 + i32.const 36800 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store local.get $0 local.get $1 i32.const 2 @@ -2922,6 +2950,9 @@ local.get $3 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store offset=4 local.get $0 local.get $3 i32.const 2 @@ -2993,6 +3024,9 @@ local.get $3 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3872 + i32.store offset=8 local.get $0 local.get $3 i32.const 2 @@ -3021,6 +3055,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $3 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> (param $0 i32) (param $1 i32) (result i32) @@ -3206,7 +3244,7 @@ (local $3 i32) (local $4 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 @@ -3221,8 +3259,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3238,6 +3276,9 @@ local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 local.get $2 i32.const 2 @@ -3256,7 +3297,7 @@ call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -3270,7 +3311,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 @@ -3332,7 +3373,7 @@ (local $2 i32) (local $3 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 @@ -3347,8 +3388,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3366,6 +3407,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 local.get $2 i32.const 2 @@ -3384,7 +3428,7 @@ call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3398,7 +3442,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 @@ -3408,7 +3452,7 @@ (local $3 i32) (local $4 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 @@ -3423,8 +3467,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3440,6 +3484,9 @@ local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 local.get $2 i32.const 2 @@ -3458,7 +3505,7 @@ call_indirect (type $1) if global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -3472,7 +3519,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const -1 @@ -3482,7 +3529,7 @@ (local $3 i32) (local $4 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 @@ -3497,8 +3544,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3514,6 +3561,9 @@ local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $0 local.get $2 i32.const 2 @@ -3533,7 +3583,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 @@ -3547,7 +3597,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 1 @@ -4843,7 +4893,7 @@ global.get $~lib/memory/__stack_pointer local.get $10 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$224 + block $__inlined_func$~lib/rt/itcms/__renew$225 i32.const 1073741820 local.get $1 i32.const 1 @@ -4886,7 +4936,7 @@ i32.store offset=16 local.get $1 local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$224 + br $__inlined_func$~lib/rt/itcms/__renew$225 end local.get $4 local.get $3 @@ -6385,7 +6435,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/staticarray/StaticArray#includes$276 (result i32) + block $__inlined_func$~lib/staticarray/StaticArray#includes$277 (result i32) local.get $0 i32.const 20 i32.sub @@ -6400,7 +6450,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/staticarray/StaticArray#includes$276 + br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end loop $while-continue|0 local.get $1 @@ -6422,7 +6472,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/staticarray/StaticArray#includes$276 + br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end local.get $2 i32.const 1 @@ -6472,7 +6522,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/staticarray/StaticArray#includes$277 (result i32) + block $__inlined_func$~lib/staticarray/StaticArray#includes$278 (result i32) local.get $0 i32.const 20 i32.sub @@ -6487,7 +6537,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$~lib/staticarray/StaticArray#includes$277 + br $__inlined_func$~lib/staticarray/StaticArray#includes$278 end loop $while-continue|030 local.get $1 @@ -6509,7 +6559,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$~lib/staticarray/StaticArray#includes$277 + br $__inlined_func$~lib/staticarray/StaticArray#includes$278 end local.get $2 i32.const 1 @@ -7334,7 +7384,7 @@ i32.const 3408 i32.store offset=24 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 @@ -7345,6 +7395,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -7373,6 +7426,9 @@ local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=8 local.get $0 local.get $1 i32.const 2 @@ -7404,7 +7460,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer local.get $6 @@ -7464,7 +7520,7 @@ i32.const 3440 i32.store offset=24 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 @@ -7472,8 +7528,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $2 global.get $~lib/memory/__stack_pointer @@ -7491,6 +7547,9 @@ local.get $2 i32.gt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=4 local.get $0 local.get $2 i32.const 2 @@ -7515,7 +7574,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $std/staticarray/maxVal @@ -7596,7 +7655,7 @@ i32.const 0 local.set $2 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 @@ -7604,8 +7663,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store i32.const 0 local.set $1 global.get $~lib/memory/__stack_pointer @@ -7623,6 +7682,9 @@ local.get $3 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=4 local.get $0 local.get $1 i32.const 2 @@ -7651,7 +7713,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -7674,7 +7736,7 @@ i32.const 0 local.set $2 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 @@ -7682,8 +7744,8 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7701,6 +7763,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=4 local.get $0 local.get $1 i32.const 2 @@ -7729,7 +7794,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $2 diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 1498ca5bde..c2e2f9861b 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -2899,161 +2899,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp f64) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - f64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/nodePower (param $left i32) (param $right i32) (param $startA i32) (param $startB i32) (param $endB i32) (result i32) (local $n i64) (local $s i32) @@ -8691,161 +8536,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $tmp - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - local.get $tmp - i32.store8 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -9185,161 +8875,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $tmp - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - local.get $tmp - i32.store8 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -9727,161 +9262,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $tmp - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - local.get $tmp - i32.store16 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -10221,161 +9601,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $tmp - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - local.get $tmp - i32.store16 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -10729,161 +9954,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -11217,161 +10287,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -11709,161 +10624,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i64) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - i64.load - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - i64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -12201,161 +10961,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp i64) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - i64.load - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - i64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -12693,161 +11298,6 @@ end end ) - (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) - (local $j i32) - (local $k i32) - (local $tmp f32) - local.get $i - local.get $right - i32.eq - if - local.get $i - return - end - local.get $i - local.set $j - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - local.get $ptr - local.get $j - i32.const 1 - i32.add - local.tee $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end - end - local.get $j - local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - f32.load - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - f32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end - end - else - loop $while-continue|2 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.ge_s - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|2 - end - end - end - local.get $j - return - ) (func $~lib/util/sort/mergeRuns (param $ptr i32) (param $l i32) (param $m i32) (param $r i32) (param $buffer i32) (param $comparator i32) (local $i i32) (local $j i32) @@ -18416,8 +16866,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18425,8 +16876,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -18439,21 +16890,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -18461,6 +16912,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -18470,14 +16925,14 @@ i32.load8_s local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -18491,12 +16946,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Int8Array,i8,i8>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>" @@ -18631,8 +17086,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18640,8 +17096,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -18654,21 +17110,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -18676,6 +17132,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -18685,14 +17145,14 @@ i32.load8_u local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -18706,12 +17166,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>" @@ -18804,8 +17264,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -18813,8 +17274,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -18827,21 +17288,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -18849,6 +17310,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -18858,14 +17323,14 @@ i32.load8_u local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -18879,12 +17344,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>" @@ -19024,8 +17489,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19033,8 +17499,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -19047,21 +17513,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -19069,6 +17535,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19078,14 +17548,14 @@ i32.load16_s local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -19099,12 +17569,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Int16Array,i16,i16>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>" @@ -19243,8 +17713,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19252,8 +17723,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -19266,21 +17737,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -19288,6 +17759,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19297,14 +17772,14 @@ i32.load16_u local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -19318,12 +17793,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>" @@ -19416,8 +17891,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19425,8 +17901,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -19439,21 +17915,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -19461,6 +17937,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19470,14 +17950,14 @@ i32.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -19491,12 +17971,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Int32Array,i32,i32>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>" @@ -19634,8 +18114,9 @@ (local $i i32) (local $k i32) (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19643,8 +18124,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -19657,21 +18138,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -19679,6 +18160,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19688,14 +18173,14 @@ i32.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -19709,12 +18194,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>" @@ -19852,9 +18337,10 @@ (local $i i32) (local $k i32) (local $9 i32) - (local $10 i64) + (local $10 i32) + (local $11 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19862,8 +18348,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this @@ -19876,21 +18362,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -19898,6 +18384,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -19907,14 +18397,14 @@ i64.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $16) local.set $initialValue|5 @@ -19928,12 +18418,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Int64Array,i64,i64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>" @@ -20071,9 +18561,10 @@ (local $i i32) (local $k i32) (local $9 i32) - (local $10 i64) + (local $10 i32) + (local $11 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20081,8 +18572,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this @@ -20095,21 +18586,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -20117,6 +18608,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -20126,14 +18621,14 @@ i64.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $16) local.set $initialValue|5 @@ -20147,12 +18642,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>" @@ -20290,9 +18785,10 @@ (local $i i32) (local $k i32) (local $9 i32) - (local $10 f32) + (local $10 i32) + (local $11 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20300,8 +18796,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0" (result f32) global.get $~lib/memory/__stack_pointer local.get $this @@ -20314,21 +18810,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -20336,6 +18832,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -20345,14 +18845,14 @@ f32.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $20) local.set $initialValue|5 @@ -20366,12 +18866,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Float32Array,f32,f32>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>" @@ -20462,9 +18962,10 @@ (local $i i32) (local $k i32) (local $9 i32) - (local $10 f64) + (local $10 i32) + (local $11 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -20472,8 +18973,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0" (result f64) global.get $~lib/memory/__stack_pointer local.get $this @@ -20486,21 +18987,21 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -20508,6 +19009,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $9 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -20517,14 +19022,14 @@ f64.load local.get $i local.get $array - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 - local.get $9 + local.get $10 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $9 i32.load call_indirect (type $21) local.set $initialValue|5 @@ -20538,12 +19043,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE<~lib/typedarray/Float64Array,f64,f64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $"std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>" @@ -22462,8 +20967,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22471,8 +20977,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -22485,19 +20991,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Int8Array#get:length i32.const 1 i32.sub @@ -22507,6 +21013,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -22516,14 +21026,14 @@ i32.load8_s local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -22537,12 +21047,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int8Array,i8,i8>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>" @@ -22633,8 +21143,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22642,8 +21153,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -22656,19 +21167,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint8Array#get:length i32.const 1 i32.sub @@ -22678,6 +21189,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -22687,14 +21202,14 @@ i32.load8_u local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -22708,12 +21223,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8Array,u8,u8>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>" @@ -22805,8 +21320,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22814,8 +21330,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -22828,19 +21344,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint8ClampedArray#get:length i32.const 1 i32.sub @@ -22850,6 +21366,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -22859,14 +21379,14 @@ i32.load8_u local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -22880,12 +21400,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint8ClampedArray,u8,u8>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>" @@ -22977,8 +21497,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -22986,8 +21507,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -23000,19 +21521,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Int16Array#get:length i32.const 1 i32.sub @@ -23022,6 +21543,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23031,14 +21556,14 @@ i32.load16_s local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -23052,12 +21577,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int16Array,i16,i16>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>" @@ -23148,8 +21673,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23157,8 +21683,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -23171,19 +21697,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint16Array#get:length i32.const 1 i32.sub @@ -23193,6 +21719,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23202,14 +21732,14 @@ i32.load16_u local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -23223,12 +21753,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint16Array,u16,u16>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>" @@ -23320,8 +21850,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23329,8 +21860,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -23343,19 +21874,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.sub @@ -23365,6 +21896,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23374,14 +21909,14 @@ i32.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -23395,12 +21930,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int32Array,i32,i32>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>" @@ -23490,8 +22025,9 @@ (local $ptr i32) (local $i i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23499,8 +22035,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -23513,19 +22049,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint32Array#get:length i32.const 1 i32.sub @@ -23535,6 +22071,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23544,14 +22084,14 @@ i32.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $6) local.set $initialValue|5 @@ -23565,12 +22105,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint32Array,u32,u32>|inlined.0" end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $9 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>" @@ -23660,9 +22200,10 @@ (local $ptr i32) (local $i i32) (local $8 i32) - (local $9 i64) + (local $9 i32) + (local $10 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23670,8 +22211,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this @@ -23684,19 +22225,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Int64Array#get:length i32.const 1 i32.sub @@ -23706,6 +22247,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23715,14 +22260,14 @@ i64.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $16) local.set $initialValue|5 @@ -23736,12 +22281,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Int64Array,i64,i64>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>" @@ -23831,9 +22376,10 @@ (local $ptr i32) (local $i i32) (local $8 i32) - (local $9 i64) + (local $9 i32) + (local $10 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -23841,8 +22387,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" (result i64) global.get $~lib/memory/__stack_pointer local.get $this @@ -23855,19 +22401,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Uint64Array#get:length i32.const 1 i32.sub @@ -23877,6 +22423,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -23886,14 +22436,14 @@ i64.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $16) local.set $initialValue|5 @@ -23907,12 +22457,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Uint64Array,u64,u64>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>" @@ -24002,9 +22552,10 @@ (local $ptr i32) (local $i i32) (local $8 i32) - (local $9 f32) + (local $9 i32) + (local $10 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -24012,8 +22563,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0" (result f32) global.get $~lib/memory/__stack_pointer local.get $this @@ -24026,19 +22577,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Float32Array#get:length i32.const 1 i32.sub @@ -24048,6 +22599,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -24057,14 +22612,14 @@ f32.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $20) local.set $initialValue|5 @@ -24078,12 +22633,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float32Array,f32,f32>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>" @@ -24173,9 +22728,10 @@ (local $ptr i32) (local $i i32) (local $8 i32) - (local $9 f64) + (local $9 i32) + (local $10 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -24183,8 +22739,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0" (result f64) global.get $~lib/memory/__stack_pointer local.get $this @@ -24197,19 +22753,19 @@ local.get $initialValue local.set $initialValue|5 local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 call $~lib/typedarray/Float64Array#get:length i32.const 1 i32.sub @@ -24219,6 +22775,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|4 + local.tee $8 + i32.store offset=12 local.get $initialValue|5 local.get $ptr local.get $i @@ -24228,14 +22788,14 @@ f64.load local.get $i local.get $array - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $8 + local.get $9 i32.const 4 global.set $~argumentsLength - local.get $fn|4 + local.get $8 i32.load call_indirect (type $21) local.set $initialValue|5 @@ -24249,12 +22809,12 @@ local.get $initialValue|5 br $"~lib/typedarray/REDUCE_RIGHT<~lib/typedarray/Float64Array,f64,f64>|inlined.0" end - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 return ) (func $"std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>" @@ -24347,14 +22907,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -24366,19 +22927,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Int8Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -24409,6 +22970,10 @@ i32.const 0 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 0 @@ -24417,14 +22982,14 @@ i32.load8_s local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store8 @@ -24451,12 +23016,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" @@ -24595,14 +23160,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -24614,19 +23180,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint8Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -24657,6 +23223,10 @@ i32.const 0 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 0 @@ -24665,14 +23235,14 @@ i32.load8_u local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store8 @@ -24699,12 +23269,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Uint8Array#__get (param $this i32) (param $index i32) (result i32) @@ -24888,14 +23458,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -24907,19 +23478,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -24950,6 +23521,10 @@ i32.const 0 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 0 @@ -24958,14 +23533,14 @@ i32.load8_u local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store8 @@ -24992,12 +23567,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" @@ -25136,14 +23711,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -25155,19 +23731,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Int16Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -25198,6 +23774,10 @@ i32.const 1 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 1 @@ -25206,14 +23786,14 @@ i32.load16_s local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store16 @@ -25240,12 +23820,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Int16Array#__get (param $this i32) (param $index i32) (result i32) @@ -25433,14 +24013,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -25452,19 +24033,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint16Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -25495,6 +24076,10 @@ i32.const 1 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 1 @@ -25503,14 +24088,14 @@ i32.load16_u local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store16 @@ -25537,12 +24122,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Uint16Array#__get (param $this i32) (param $index i32) (result i32) @@ -25730,14 +24315,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -25749,19 +24335,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Int32Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -25792,6 +24378,10 @@ i32.const 2 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 2 @@ -25800,14 +24390,14 @@ i32.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store @@ -25834,12 +24424,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" @@ -25978,14 +24568,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -25997,19 +24588,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint32Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -26040,6 +24631,10 @@ i32.const 2 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 2 @@ -26048,14 +24643,14 @@ i32.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $1) i32.store @@ -26082,12 +24677,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Uint32Array#__get (param $this i32) (param $index i32) (result i32) @@ -26275,14 +24870,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -26294,19 +24890,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Int64Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -26337,6 +24933,10 @@ i32.const 3 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 3 @@ -26345,14 +24945,14 @@ i64.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $22) i64.store @@ -26379,12 +24979,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Int64Array#__get (param $this i32) (param $index i32) (result i64) @@ -26573,14 +25173,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -26592,19 +25193,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Uint64Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -26635,6 +25236,10 @@ i32.const 3 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 3 @@ -26643,14 +25248,14 @@ i64.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $22) i64.store @@ -26677,12 +25282,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Uint64Array#__get (param $this i32) (param $index i32) (result i64) @@ -26871,14 +25476,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -26890,19 +25496,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Float32Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -26933,6 +25539,10 @@ i32.const 2 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 2 @@ -26941,14 +25551,14 @@ f32.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $30) f32.store @@ -26975,12 +25585,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $~lib/typedarray/Float32Array#__get (param $this i32) (param $index i32) (result f32) @@ -27169,14 +25779,15 @@ (local $buf i32) (local $i i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 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 24 memory.fill block $"~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer @@ -27188,19 +25799,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/typedarray/Float64Array#get:length local.set $len local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $len @@ -27231,6 +25842,10 @@ i32.const 3 i32.shl i32.add + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $10 + i32.store offset=20 local.get $ptr local.get $i i32.const 3 @@ -27239,14 +25854,14 @@ f64.load local.get $i local.get $array - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $10 + local.get $11 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $10 i32.load call_indirect (type $31) f64.store @@ -27273,12 +25888,12 @@ local.get $out br $"~lib/typedarray/MAP<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $11 return ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" @@ -30978,8 +29593,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -30987,8 +29603,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -30999,21 +29615,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -31021,6 +29637,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -31029,14 +29649,14 @@ i32.load8_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -31053,12 +29673,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>" @@ -31173,8 +29793,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31182,8 +29803,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -31194,21 +29815,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -31216,6 +29837,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -31224,14 +29849,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -31248,12 +29873,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>" @@ -31368,8 +29993,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31377,8 +30003,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -31389,21 +30015,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -31411,6 +30037,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -31419,14 +30049,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -31443,12 +30073,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>" @@ -31563,8 +30193,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31572,8 +30203,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -31584,21 +30215,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -31606,6 +30237,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -31614,14 +30249,14 @@ i32.load16_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -31638,12 +30273,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>" @@ -31758,8 +30393,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31767,8 +30403,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -31779,21 +30415,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -31801,6 +30437,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -31809,14 +30449,14 @@ i32.load16_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -31833,12 +30473,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>" @@ -31953,8 +30593,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -31962,8 +30603,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -31974,21 +30615,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -31996,6 +30637,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -32004,14 +30649,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -32028,12 +30673,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>" @@ -32148,8 +30793,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32157,8 +30803,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -32169,21 +30815,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -32191,6 +30837,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -32199,14 +30849,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -32223,12 +30873,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>" @@ -32343,8 +30993,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32352,8 +31003,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -32364,21 +31015,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -32386,6 +31037,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -32394,14 +31049,14 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if @@ -32418,12 +31073,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>" @@ -32538,8 +31193,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32547,8 +31203,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -32559,21 +31215,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -32581,6 +31237,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -32589,14 +31249,14 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if @@ -32613,12 +31273,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>" @@ -32733,8 +31393,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32742,8 +31403,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -32754,21 +31415,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -32776,6 +31437,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -32784,14 +31449,14 @@ f32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $9) if @@ -32808,12 +31473,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>" @@ -32928,8 +31593,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -32937,8 +31603,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -32949,21 +31615,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -32971,6 +31637,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -32979,14 +31649,14 @@ f64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $10) if @@ -33003,12 +31673,12 @@ i32.const 0 br $"~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>" @@ -33123,8 +31793,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33132,8 +31803,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -33144,21 +31815,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -33166,6 +31837,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -33174,14 +31849,14 @@ i32.load8_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -33198,12 +31873,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>" @@ -33319,8 +31994,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33328,8 +32004,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -33340,21 +32016,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -33362,6 +32038,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -33370,14 +32050,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -33394,12 +32074,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>" @@ -33515,8 +32195,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33524,8 +32205,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -33536,21 +32217,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -33558,6 +32239,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -33566,14 +32251,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -33590,12 +32275,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>" @@ -33711,8 +32396,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33720,8 +32406,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -33732,21 +32418,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -33754,6 +32440,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -33762,14 +32452,14 @@ i32.load16_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -33786,12 +32476,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>" @@ -33907,8 +32597,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -33916,8 +32607,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -33928,21 +32619,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -33950,6 +32641,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -33958,14 +32653,14 @@ i32.load16_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -33982,12 +32677,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>" @@ -34103,8 +32798,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34112,8 +32808,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -34124,21 +32820,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -34146,6 +32842,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -34154,14 +32854,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -34178,12 +32878,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>" @@ -34299,8 +32999,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34308,8 +33009,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -34320,21 +33021,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -34342,6 +33043,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -34350,14 +33055,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -34374,12 +33079,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>" @@ -34495,8 +33200,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34504,8 +33210,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -34516,21 +33222,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -34538,6 +33244,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -34546,14 +33256,14 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if @@ -34570,12 +33280,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>" @@ -34691,8 +33401,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34700,8 +33411,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -34712,21 +33423,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -34734,6 +33445,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -34742,14 +33457,14 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if @@ -34766,12 +33481,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>" @@ -34887,8 +33602,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -34896,8 +33612,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -34908,21 +33624,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -34930,6 +33646,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -34938,14 +33658,14 @@ f32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $9) if @@ -34962,12 +33682,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>" @@ -35083,8 +33803,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35092,8 +33813,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -35104,21 +33825,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -35126,6 +33847,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -35134,14 +33859,14 @@ f64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $10) if @@ -35158,12 +33883,12 @@ i32.const -1 br $"~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>" @@ -35278,8 +34003,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35287,8 +34013,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -35299,19 +34025,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Int8Array#get:length i32.const 1 i32.sub @@ -35321,6 +34047,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -35329,14 +34059,14 @@ i32.load8_s local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if @@ -35353,12 +34083,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int8Array,i8>" @@ -35473,8 +34203,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35482,8 +34213,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -35494,19 +34225,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint8Array#get:length i32.const 1 i32.sub @@ -35516,6 +34247,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -35524,14 +34259,14 @@ i32.load8_u local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if @@ -35548,12 +34283,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8Array,u8>" @@ -35668,8 +34403,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35677,8 +34413,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -35689,19 +34425,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint8ClampedArray#get:length i32.const 1 i32.sub @@ -35711,6 +34447,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -35719,14 +34459,14 @@ i32.load8_u local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if @@ -35743,12 +34483,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint8ClampedArray,u8>" @@ -35863,8 +34603,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -35872,8 +34613,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -35884,19 +34625,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Int16Array#get:length i32.const 1 i32.sub @@ -35906,6 +34647,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -35914,14 +34659,14 @@ i32.load16_s local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if @@ -35938,12 +34683,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int16Array,i16>" @@ -36058,8 +34803,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36067,8 +34813,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -36079,19 +34825,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint16Array#get:length i32.const 1 i32.sub @@ -36101,6 +34847,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -36109,14 +34859,14 @@ i32.load16_u local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if @@ -36133,12 +34883,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint16Array,u16>" @@ -36253,8 +35003,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36262,8 +35013,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -36274,19 +35025,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Int32Array#get:length i32.const 1 i32.sub @@ -36296,6 +35047,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -36304,14 +35059,14 @@ i32.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if @@ -36328,12 +35083,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int32Array,i32>" @@ -36448,8 +35203,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36457,8 +35213,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -36469,19 +35225,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint32Array#get:length i32.const 1 i32.sub @@ -36491,6 +35247,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -36499,14 +35259,14 @@ i32.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $1) if @@ -36523,12 +35283,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint32Array,u32>" @@ -36643,8 +35403,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36652,8 +35413,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -36664,19 +35425,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Int64Array#get:length i32.const 1 i32.sub @@ -36686,6 +35447,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -36694,14 +35459,14 @@ i64.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $7) if @@ -36718,12 +35483,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Int64Array,i64>" @@ -36838,8 +35603,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -36847,8 +35613,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -36859,19 +35625,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Uint64Array#get:length i32.const 1 i32.sub @@ -36881,6 +35647,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -36889,14 +35659,14 @@ i64.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $7) if @@ -36913,12 +35683,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Uint64Array,u64>" @@ -37033,8 +35803,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37042,8 +35813,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -37054,19 +35825,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Float32Array#get:length i32.const 1 i32.sub @@ -37076,6 +35847,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -37084,14 +35859,14 @@ f32.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $9) if @@ -37108,12 +35883,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float32Array,f32>" @@ -37228,8 +36003,9 @@ (local $ptr i32) (local $i i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37237,8 +36013,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -37249,19 +36025,19 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 call $~lib/typedarray/Float64Array#get:length i32.const 1 i32.sub @@ -37271,6 +36047,10 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $6 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -37279,14 +36059,14 @@ f64.load local.get $i local.get $array - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=8 - local.get $6 + local.get $7 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $6 i32.load call_indirect (type $10) if @@ -37303,12 +36083,12 @@ i32.const -1 br $"~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return ) (func $"std/typedarray/testArrayFindLastIndex<~lib/typedarray/Float64Array,f64>" @@ -37424,8 +36204,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37433,8 +36214,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -37445,21 +36226,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -37468,6 +36249,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -37476,14 +36261,14 @@ i32.load8_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -37502,12 +36287,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>" @@ -37622,8 +36407,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37631,8 +36417,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -37643,21 +36429,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -37666,6 +36452,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -37674,14 +36464,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -37700,12 +36490,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>" @@ -37820,8 +36610,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -37829,8 +36620,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -37841,21 +36632,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -37864,6 +36655,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -37872,14 +36667,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -37898,12 +36693,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>" @@ -38018,8 +36813,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38027,8 +36823,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -38039,21 +36835,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -38062,6 +36858,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -38070,14 +36870,14 @@ i32.load16_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -38096,12 +36896,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>" @@ -38216,8 +37016,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38225,8 +37026,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -38237,21 +37038,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -38260,6 +37061,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -38268,14 +37073,14 @@ i32.load16_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -38294,12 +37099,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>" @@ -38414,8 +37219,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38423,8 +37229,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -38435,21 +37241,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -38458,6 +37264,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -38466,14 +37276,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -38492,12 +37302,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>" @@ -38612,8 +37422,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38621,8 +37432,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -38633,21 +37444,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -38656,6 +37467,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -38664,14 +37479,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $1) if @@ -38690,12 +37505,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>" @@ -38810,8 +37625,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -38819,8 +37635,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -38831,21 +37647,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -38854,6 +37670,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -38862,14 +37682,14 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if @@ -38888,12 +37708,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>" @@ -39008,8 +37828,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39017,8 +37838,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -39029,21 +37850,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -39052,6 +37873,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -39060,14 +37885,14 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $7) if @@ -39086,12 +37911,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>" @@ -39206,8 +38031,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39215,8 +38041,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -39227,21 +38053,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -39250,6 +38076,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -39258,14 +38088,14 @@ f32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $9) if @@ -39284,12 +38114,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>" @@ -39404,8 +38234,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39413,8 +38244,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 block $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) global.get $~lib/memory/__stack_pointer local.get $this @@ -39425,21 +38256,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -39448,6 +38279,10 @@ i32.lt_s if block $for-continue|0 + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -39456,14 +38291,14 @@ f64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $10) if @@ -39482,12 +38317,12 @@ i32.const 1 br $"~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0" end - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 return ) (func $"std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>" @@ -39669,8 +38504,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39678,8 +38514,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -39689,21 +38525,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int8Array#get:length local.set $k loop $for-loop|0 @@ -39711,6 +38547,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -39719,14 +38559,14 @@ i32.load8_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -39737,7 +38577,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -39922,8 +38762,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -39931,8 +38772,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -39942,21 +38783,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8Array#get:length local.set $k loop $for-loop|0 @@ -39964,6 +38805,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -39972,14 +38817,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -39990,7 +38835,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -40178,8 +39023,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -40187,8 +39033,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -40198,21 +39044,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint8ClampedArray#get:length local.set $k loop $for-loop|0 @@ -40220,6 +39066,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 0 @@ -40228,14 +39078,14 @@ i32.load8_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -40246,7 +39096,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -40432,8 +39282,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -40441,8 +39292,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -40452,21 +39303,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int16Array#get:length local.set $k loop $for-loop|0 @@ -40474,6 +39325,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -40482,14 +39337,14 @@ i32.load16_s local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -40500,7 +39355,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -40685,8 +39540,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -40694,8 +39550,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -40705,21 +39561,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint16Array#get:length local.set $k loop $for-loop|0 @@ -40727,6 +39583,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 1 @@ -40735,14 +39595,14 @@ i32.load16_u local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -40753,7 +39613,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -40937,8 +39797,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -40946,8 +39807,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -40957,21 +39818,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int32Array#get:length local.set $k loop $for-loop|0 @@ -40979,6 +39840,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -40987,14 +39852,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -41005,7 +39870,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -41183,8 +40048,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -41192,8 +40058,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -41203,21 +40069,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint32Array#get:length local.set $k loop $for-loop|0 @@ -41225,6 +40091,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -41233,14 +40103,14 @@ i32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $5) local.get $i @@ -41251,7 +40121,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -41430,8 +40300,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -41439,8 +40310,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -41450,21 +40321,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Int64Array#get:length local.set $k loop $for-loop|0 @@ -41472,6 +40343,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -41480,14 +40355,14 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $26) local.get $i @@ -41498,7 +40373,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -41680,8 +40555,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -41689,8 +40565,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -41700,21 +40576,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Uint64Array#get:length local.set $k loop $for-loop|0 @@ -41722,6 +40598,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -41730,14 +40610,14 @@ i64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $26) local.get $i @@ -41748,7 +40628,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -41930,8 +40810,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -41939,8 +40820,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -41950,21 +40831,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float32Array#get:length local.set $k loop $for-loop|0 @@ -41972,6 +40853,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 2 @@ -41980,14 +40865,14 @@ f32.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $37) local.get $i @@ -41998,7 +40883,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -42180,8 +41065,9 @@ (local $i i32) (local $k i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -42189,8 +41075,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $this local.tee $array @@ -42200,21 +41086,21 @@ local.tee $fn|3 i32.store offset=4 local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $ptr i32.const 0 local.set $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 call $~lib/typedarray/Float64Array#get:length local.set $k loop $for-loop|0 @@ -42222,6 +41108,10 @@ local.get $k i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $fn|3 + local.tee $7 + i32.store offset=12 local.get $ptr local.get $i i32.const 3 @@ -42230,14 +41120,14 @@ f64.load local.get $i local.get $array - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $7 + local.get $8 i32.const 3 global.set $~argumentsLength - local.get $fn|3 + local.get $7 i32.load call_indirect (type $38) local.get $i @@ -42248,7 +41138,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -92832,6 +91722,200 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp f64) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $12) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $12) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + f64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $12) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) (func $~lib/rt/__newArray (param $length i32) (param $alignLog2 i32) (param $id i32) (param $data i32) (result i32) (local $bufferSize i32) (local $buffer i32) @@ -93819,4 +92903,1750 @@ local.get $3 return ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $tmp + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + local.get $tmp + i32.store8 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $tmp + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + local.get $tmp + i32.store8 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $tmp + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + local.get $tmp + i32.store16 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $tmp + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + local.get $tmp + i32.store16 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $0) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i64) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + i64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $8) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp i64) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + i64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $8) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/util/sort/extendRunRight (param $ptr i32) (param $i i32) (param $right i32) (param $comparator i32) (result i32) + (local $j i32) + (local $5 i32) + (local $6 i32) + (local $k i32) + (local $tmp f32) + (local $9 i32) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $i + local.get $right + i32.eq + if + local.get $i + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $i + local.set $j + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $5 + i32.store + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + local.get $ptr + local.get $j + i32.const 1 + i32.add + local.tee $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect (type $13) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $6 + i32.store offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.load + call_indirect (type $13) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end + end + local.get $j + local.set $k + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + f32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $j + local.get $right + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $comparator + local.tee $9 + i32.store offset=8 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $9 + i32.load + call_indirect (type $13) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|2 + end + end + end + local.get $j + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) ) diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index d4c4a18806..c05cdc426a 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -7375,7 +7375,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7393,8 +7393,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7419,6 +7419,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -7448,7 +7451,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -7457,7 +7460,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 global.get $~lib/memory/__stack_pointer @@ -7475,8 +7478,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7503,6 +7506,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -7529,7 +7535,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -7540,7 +7546,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7558,8 +7564,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7584,6 +7590,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -7610,7 +7619,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -7621,7 +7630,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -7639,8 +7648,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7665,6 +7674,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -7695,7 +7707,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -10962,7 +10974,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1409 + block $__inlined_func$~lib/util/string/joinIntegerArray$1419 local.get $0 i32.const 1 i32.sub @@ -10976,7 +10988,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1409 + br $__inlined_func$~lib/util/string/joinIntegerArray$1419 end local.get $6 i32.eqz @@ -10989,7 +11001,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1409 + br $__inlined_func$~lib/util/string/joinIntegerArray$1419 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -11082,7 +11094,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1409 + br $__inlined_func$~lib/util/string/joinIntegerArray$1419 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -12608,7 +12620,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$1403 + block $__inlined_func$~lib/rt/itcms/Object#unlink$1413 local.get $0 i32.load offset=4 i32.const -4 @@ -12632,7 +12644,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$1403 + br $__inlined_func$~lib/rt/itcms/Object#unlink$1413 end local.get $0 i32.load offset=8 @@ -14020,13 +14032,41 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.add @@ -14051,6 +14091,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.add @@ -14116,6 +14159,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.add @@ -14142,6 +14188,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) @@ -14149,13 +14199,41 @@ (local $5 i64) (local $6 i32) (local $7 i64) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 3 @@ -14184,6 +14262,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 3 @@ -14255,6 +14336,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 3 @@ -14283,19 +14367,51 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 2 @@ -14324,6 +14440,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 2 @@ -14395,6 +14514,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 2 @@ -14423,19 +14545,51 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 1 @@ -14464,6 +14618,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 1 @@ -14535,6 +14692,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 1 @@ -14563,19 +14723,51 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.add @@ -14600,6 +14792,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.add @@ -14665,6 +14860,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.add @@ -14691,6 +14889,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) @@ -14698,13 +14900,41 @@ (local $5 i64) (local $6 i32) (local $7 i64) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 3 @@ -14733,6 +14963,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 3 @@ -14804,6 +15037,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 3 @@ -14832,19 +15068,51 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 2 @@ -14873,6 +15141,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 2 @@ -14944,6 +15215,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 2 @@ -14972,19 +15246,51 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 1 @@ -15013,6 +15319,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 1 @@ -15084,6 +15393,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 1 @@ -15112,6 +15424,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) @@ -15119,13 +15435,41 @@ (local $5 f64) (local $6 i32) (local $7 f64) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 3 @@ -15154,6 +15498,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 3 @@ -15225,6 +15572,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 3 @@ -15253,6 +15603,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) @@ -15260,13 +15614,41 @@ (local $5 f32) (local $6 i32) (local $7 f32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + if + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 local.get $1 local.get $2 i32.eq if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 return end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store local.get $0 local.get $1 i32.const 2 @@ -15295,6 +15677,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 local.get $0 local.get $4 i32.const 2 @@ -15366,6 +15751,9 @@ local.get $4 i32.gt_s if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 local.get $0 local.get $4 i32.const 2 @@ -15394,6 +15782,10 @@ end end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $4 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -16781,7 +17173,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16799,8 +17191,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -16826,6 +17218,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $4 i32.add @@ -16852,7 +17247,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 @@ -16864,7 +17259,7 @@ (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16882,8 +17277,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -16907,6 +17302,9 @@ local.get $5 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $4 i32.add @@ -16933,7 +17331,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 @@ -16944,7 +17342,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16962,8 +17360,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -16987,6 +17385,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -17009,7 +17410,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -17200,7 +17601,7 @@ (local $4 i32) (local $5 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17218,8 +17619,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -17244,6 +17645,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -17275,7 +17679,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -17323,7 +17727,7 @@ (local $3 i32) (local $4 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17341,8 +17745,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -17369,6 +17773,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -17397,7 +17804,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -17408,7 +17815,7 @@ (local $4 i32) (local $5 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17426,8 +17833,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -17452,6 +17859,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -17480,7 +17890,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -17491,7 +17901,7 @@ (local $4 i32) (local $5 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17509,8 +17919,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -17535,6 +17945,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -17567,7 +17980,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -17761,7 +18174,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17779,8 +18192,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -17805,6 +18218,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -17836,7 +18252,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -17885,7 +18301,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1413 + block $__inlined_func$~lib/util/string/joinIntegerArray$1423 local.get $0 i32.const 1 i32.sub @@ -17899,7 +18315,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1413 + br $__inlined_func$~lib/util/string/joinIntegerArray$1423 end local.get $6 i32.eqz @@ -17912,7 +18328,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1413 + br $__inlined_func$~lib/util/string/joinIntegerArray$1423 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -18009,7 +18425,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1413 + br $__inlined_func$~lib/util/string/joinIntegerArray$1423 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -18035,7 +18451,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 global.get $~lib/memory/__stack_pointer @@ -18053,8 +18469,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18081,6 +18497,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -18109,7 +18528,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -18120,7 +18539,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18138,8 +18557,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18164,6 +18583,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -18192,7 +18614,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -18203,7 +18625,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18221,8 +18643,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18247,6 +18669,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -18279,7 +18704,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -18472,7 +18897,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18490,8 +18915,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18516,6 +18941,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 @@ -18547,7 +18975,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -18596,7 +19024,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1411 + block $__inlined_func$~lib/util/string/joinIntegerArray$1421 local.get $0 i32.const 1 i32.sub @@ -18610,7 +19038,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1411 + br $__inlined_func$~lib/util/string/joinIntegerArray$1421 end local.get $6 i32.eqz @@ -18623,7 +19051,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1411 + br $__inlined_func$~lib/util/string/joinIntegerArray$1421 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -18720,7 +19148,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1411 + br $__inlined_func$~lib/util/string/joinIntegerArray$1421 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -18746,7 +19174,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 global.get $~lib/memory/__stack_pointer @@ -18764,8 +19192,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18792,6 +19220,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 @@ -18820,7 +19251,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -18831,7 +19262,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18849,8 +19280,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18875,6 +19306,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 @@ -18903,7 +19337,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -18914,7 +19348,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18932,8 +19366,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -18958,6 +19392,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 @@ -18990,7 +19427,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -19076,7 +19513,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19094,8 +19531,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19120,6 +19557,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -19149,7 +19589,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -19554,7 +19994,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1408 + block $__inlined_func$~lib/util/string/joinIntegerArray$1418 local.get $0 i32.const 1 i32.sub @@ -19568,7 +20008,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1408 + br $__inlined_func$~lib/util/string/joinIntegerArray$1418 end local.get $6 i32.eqz @@ -19581,7 +20021,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1408 + br $__inlined_func$~lib/util/string/joinIntegerArray$1418 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -19674,7 +20114,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1408 + br $__inlined_func$~lib/util/string/joinIntegerArray$1418 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -19700,7 +20140,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 global.get $~lib/memory/__stack_pointer @@ -19718,8 +20158,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19746,6 +20186,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -19772,7 +20215,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -19783,7 +20226,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19801,8 +20244,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19827,6 +20270,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -19853,7 +20299,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -19864,7 +20310,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19882,8 +20328,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -19908,6 +20354,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $2 local.get $3 i32.add @@ -19938,7 +20387,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -20097,7 +20546,7 @@ (local $4 i32) (local $5 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -20115,8 +20564,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -20141,6 +20590,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -20172,7 +20624,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -21009,7 +21461,7 @@ (local $3 i32) (local $4 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21027,8 +21479,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -21055,6 +21507,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -21083,7 +21538,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -21094,7 +21549,7 @@ (local $4 i32) (local $5 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21112,8 +21567,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -21138,6 +21593,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -21166,7 +21624,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -21177,7 +21635,7 @@ (local $4 i32) (local $5 i64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21195,8 +21653,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -21221,6 +21679,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -21253,7 +21714,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -21340,7 +21801,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21358,8 +21819,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -21384,6 +21845,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -21415,7 +21879,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -21849,7 +22313,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1412 + block $__inlined_func$~lib/util/string/joinIntegerArray$1422 local.get $0 i32.const 1 i32.sub @@ -21863,7 +22327,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1412 + br $__inlined_func$~lib/util/string/joinIntegerArray$1422 end local.get $6 i32.eqz @@ -21876,7 +22340,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1412 + br $__inlined_func$~lib/util/string/joinIntegerArray$1422 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -21973,7 +22437,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1412 + br $__inlined_func$~lib/util/string/joinIntegerArray$1422 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -21999,7 +22463,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 global.get $~lib/memory/__stack_pointer @@ -22017,8 +22481,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -22045,6 +22509,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -22073,7 +22540,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -22084,7 +22551,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22102,8 +22569,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -22128,6 +22595,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -22156,7 +22626,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -22167,7 +22637,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22185,8 +22655,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -22211,6 +22681,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -22243,7 +22716,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -22436,7 +22909,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -22454,8 +22927,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -22480,6 +22953,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 @@ -22511,7 +22987,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -23015,7 +23491,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$1410 + block $__inlined_func$~lib/util/string/joinIntegerArray$1420 local.get $0 i32.const 1 i32.sub @@ -23029,7 +23505,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$1410 + br $__inlined_func$~lib/util/string/joinIntegerArray$1420 end local.get $6 i32.eqz @@ -23042,7 +23518,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1410 + br $__inlined_func$~lib/util/string/joinIntegerArray$1420 end global.get $~lib/memory/__stack_pointer i32.const 9584 @@ -23139,7 +23615,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$1410 + br $__inlined_func$~lib/util/string/joinIntegerArray$1420 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23165,7 +23641,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 global.get $~lib/memory/__stack_pointer @@ -23183,8 +23659,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23211,6 +23687,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 @@ -23239,7 +23718,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -23250,7 +23729,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23268,8 +23747,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23294,6 +23773,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 @@ -23322,7 +23804,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -23333,7 +23815,7 @@ (local $4 i32) (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23351,8 +23833,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23377,6 +23859,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 1 @@ -23409,7 +23894,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -23546,7 +24031,7 @@ (local $4 i32) (local $5 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23564,8 +24049,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23590,6 +24075,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -23621,7 +24109,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -23758,7 +24246,7 @@ (local $3 i32) (local $4 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23776,8 +24264,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23804,6 +24292,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -23832,7 +24323,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -23843,7 +24334,7 @@ (local $4 i32) (local $5 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23861,8 +24352,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23887,6 +24378,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -23915,7 +24409,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -23926,7 +24420,7 @@ (local $4 i32) (local $5 f64) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -23944,8 +24438,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -23970,6 +24464,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 3 @@ -24002,7 +24499,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -24196,7 +24693,7 @@ (local $4 i32) (local $5 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24214,8 +24711,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -24240,6 +24737,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -24271,7 +24771,7 @@ i32.const 0 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -24408,7 +24908,7 @@ (local $3 i32) (local $4 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24426,8 +24926,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -24454,6 +24954,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -24482,7 +24985,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -24493,7 +24996,7 @@ (local $4 i32) (local $5 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24511,8 +25014,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -24537,6 +25040,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -24565,7 +25071,7 @@ local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $2 @@ -24576,7 +25082,7 @@ (local $4 i32) (local $5 f32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -24594,8 +25100,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -24620,6 +25126,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 local.get $3 local.get $2 i32.const 2 @@ -24652,7 +25161,7 @@ i32.const 1 end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) @@ -42063,7 +42572,7 @@ i32.const 3664 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -42072,7 +42581,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -42109,6 +42618,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3664 + i32.store offset=20 local.get $2 local.get $6 i32.add @@ -42149,7 +42661,7 @@ local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -42273,7 +42785,7 @@ i32.const 3632 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -42282,7 +42794,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -42319,6 +42831,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3632 + i32.store offset=20 local.get $2 local.get $6 i32.add @@ -42359,7 +42874,7 @@ local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -42485,7 +43000,7 @@ i32.const 3856 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -42494,7 +43009,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -42534,6 +43049,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3856 + i32.store offset=20 local.get $6 local.get $3 i32.const 3 @@ -42577,7 +43095,7 @@ local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -42703,7 +43221,7 @@ i32.const 3792 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -42712,7 +43230,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -42752,6 +43270,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3792 + i32.store offset=20 local.get $6 local.get $3 i32.const 2 @@ -42795,7 +43316,7 @@ local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -42921,7 +43442,7 @@ i32.const 3728 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -42930,7 +43451,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -42970,6 +43491,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3728 + i32.store offset=20 local.get $6 local.get $3 i32.const 1 @@ -43013,7 +43537,7 @@ local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -43137,7 +43661,7 @@ i32.const 3600 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -43146,7 +43670,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -43183,6 +43707,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3600 + i32.store offset=20 local.get $2 local.get $6 i32.add @@ -43223,7 +43750,7 @@ local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -43349,7 +43876,7 @@ i32.const 3824 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -43358,7 +43885,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -43398,6 +43925,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3824 + i32.store offset=20 local.get $6 local.get $3 i32.const 3 @@ -43441,7 +43971,7 @@ local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -43567,7 +44097,7 @@ i32.const 3760 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -43576,7 +44106,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -43616,6 +44146,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3760 + i32.store offset=20 local.get $6 local.get $3 i32.const 2 @@ -43659,7 +44192,7 @@ local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -43785,7 +44318,7 @@ i32.const 3696 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -43794,7 +44327,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -43834,6 +44367,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3696 + i32.store offset=20 local.get $6 local.get $3 i32.const 1 @@ -43877,7 +44413,7 @@ local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -44008,7 +44544,7 @@ i32.const 3920 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -44017,7 +44553,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -44057,6 +44593,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3920 + i32.store offset=20 local.get $6 local.get $3 i32.const 3 @@ -44100,7 +44639,7 @@ local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -44231,7 +44770,7 @@ i32.const 3888 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -44240,7 +44779,7 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 + i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer local.get $0 @@ -44280,6 +44819,9 @@ local.get $4 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3888 + i32.store offset=20 local.get $6 local.get $3 i32.const 2 @@ -44323,7 +44865,7 @@ local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 24 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -56146,7 +56688,7 @@ i32.const 2896 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -56157,8 +56699,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -56182,6 +56724,9 @@ local.get $8 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store offset=12 local.get $0 local.get $7 i32.add @@ -56208,7 +56753,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -56386,7 +56931,7 @@ i32.const 2992 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -56397,8 +56942,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -56424,6 +56969,9 @@ local.get $8 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=12 local.get $7 local.get $0 i32.const 1 @@ -56452,7 +57000,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -56514,7 +57062,7 @@ i32.const 3024 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -56525,8 +57073,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -56552,6 +57100,9 @@ local.get $8 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3024 + i32.store offset=12 local.get $7 local.get $0 i32.const 1 @@ -56580,7 +57131,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -56642,7 +57193,7 @@ i32.const 3056 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -56653,8 +57204,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -56680,6 +57231,9 @@ local.get $8 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3056 + i32.store offset=12 local.get $7 local.get $0 i32.const 2 @@ -56708,7 +57262,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -56768,7 +57322,7 @@ i32.const 3088 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -56779,8 +57333,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -56806,6 +57360,9 @@ local.get $8 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3088 + i32.store offset=12 local.get $7 local.get $0 i32.const 2 @@ -56834,7 +57391,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -56894,7 +57451,7 @@ i32.const 3120 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -56905,8 +57462,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -56930,6 +57487,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3120 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -56958,7 +57518,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 @@ -57020,7 +57580,7 @@ i32.const 3152 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -57031,8 +57591,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -57056,6 +57616,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -57084,7 +57647,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 @@ -57144,7 +57707,7 @@ i32.const 3184 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -57155,8 +57718,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -57180,6 +57743,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=12 local.get $6 local.get $0 i32.const 2 @@ -57208,7 +57774,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -57268,7 +57834,7 @@ i32.const 3216 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -57279,8 +57845,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -57304,6 +57870,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -57332,7 +57901,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $5 @@ -58138,7 +58707,7 @@ i32.const 3248 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -58149,8 +58718,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -58178,6 +58747,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=12 local.get $0 local.get $7 i32.add @@ -58204,7 +58776,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -58380,7 +58952,7 @@ i32.const 3344 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -58391,8 +58963,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -58420,6 +58992,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=12 local.get $7 local.get $0 i32.const 1 @@ -58448,7 +59023,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -58508,7 +59083,7 @@ i32.const 3376 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -58519,8 +59094,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -58548,6 +59123,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=12 local.get $7 local.get $0 i32.const 1 @@ -58576,7 +59154,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -58636,7 +59214,7 @@ i32.const 3408 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -58647,8 +59225,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -58676,6 +59254,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=12 local.get $7 local.get $0 i32.const 2 @@ -58704,7 +59285,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -58762,7 +59343,7 @@ i32.const 3440 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -58773,8 +59354,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -58802,6 +59383,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=12 local.get $7 local.get $0 i32.const 2 @@ -58830,7 +59414,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $1 @@ -58890,7 +59474,7 @@ i32.const 3472 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -58901,8 +59485,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -58928,6 +59512,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -58956,7 +59543,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 @@ -59016,7 +59603,7 @@ i32.const 3504 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -59027,8 +59614,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -59054,6 +59641,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -59082,7 +59672,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $3 @@ -59142,7 +59732,7 @@ i32.const 3536 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -59153,8 +59743,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -59180,6 +59770,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=12 local.get $6 local.get $0 i32.const 2 @@ -59208,7 +59801,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $4 @@ -59268,7 +59861,7 @@ i32.const 3568 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -59279,8 +59872,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -59306,6 +59899,9 @@ i32.const 0 i32.ge_s if + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -59334,7 +59930,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer local.get $5 @@ -62364,7 +62960,7 @@ i32.const 7200 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -62375,8 +62971,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -62400,6 +62996,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=12 local.get $0 local.get $6 i32.add @@ -62422,7 +63021,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount @@ -62668,7 +63267,7 @@ i32.const 7296 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -62679,8 +63278,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -62704,6 +63303,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store offset=12 local.get $6 local.get $0 i32.const 1 @@ -62728,7 +63330,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount @@ -62813,7 +63415,7 @@ i32.const 7328 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -62824,8 +63426,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -62849,6 +63451,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=12 local.get $6 local.get $0 i32.const 1 @@ -62873,7 +63478,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount @@ -62952,7 +63557,7 @@ i32.const 7360 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -62963,8 +63568,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -62988,6 +63593,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7360 + i32.store offset=12 local.get $6 local.get $0 i32.const 2 @@ -63012,7 +63620,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount @@ -63091,7 +63699,7 @@ i32.const 7392 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -63102,8 +63710,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -63127,6 +63735,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7392 + i32.store offset=12 local.get $6 local.get $0 i32.const 2 @@ -63151,7 +63762,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount @@ -63233,7 +63844,7 @@ i32.const 7424 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -63244,8 +63855,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -63269,6 +63880,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -63293,7 +63907,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount @@ -63375,7 +63989,7 @@ i32.const 7456 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -63386,8 +64000,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -63411,6 +64025,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -63435,7 +64052,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount @@ -63517,7 +64134,7 @@ i32.const 7488 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -63528,8 +64145,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -63553,6 +64170,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7488 + i32.store offset=12 local.get $6 local.get $0 i32.const 2 @@ -63577,7 +64197,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount @@ -63659,7 +64279,7 @@ i32.const 7520 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -63670,8 +64290,8 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -63695,6 +64315,9 @@ local.get $7 i32.lt_s if + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store offset=12 local.get $6 local.get $0 i32.const 3 @@ -63719,7 +64342,7 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer global.get $std/typedarray/forEachCallCount From 18b17a7ade0b9f03b80f63e3235f5ce6f43e5562 Mon Sep 17 00:00:00 2001 From: Max Graey Date: Thu, 11 Jun 2026 19:00:39 +0300 Subject: [PATCH 83/86] feat: update binaryen to v130 (#3026) --- package-lock.json | 14 ++--- package.json | 2 +- src/compiler.ts | 13 ++-- src/glue/binaryen.d.ts | 3 + src/glue/binaryen.js | 3 + src/module.ts | 62 ++++++++++++++++--- tests/compiler/assert-nonnull.release.wat | 9 +-- .../compiler/features/relaxed-simd.debug.wat | 20 +++--- tests/compiler/ternary.release.wat | 5 +- 9 files changed, 89 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index d9b6348f52..b3b4565299 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "129.0.0-nightly.20260428", + "binaryen": "130.0.0-nightly.20260609", "long": "^5.2.4" }, "bin": { @@ -978,9 +978,9 @@ } }, "node_modules/binaryen": { - "version": "129.0.0-nightly.20260428", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-129.0.0-nightly.20260428.tgz", - "integrity": "sha512-RpjRVPZw8NOhkGzx3tTaKYdv4C+zO1VVI0VB9GSCNLM81flHOAZUwRJTLDM3Hqco3OmwB8hTLpkkpMSJjUfHXw==", + "version": "130.0.0-nightly.20260609", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-130.0.0-nightly.20260609.tgz", + "integrity": "sha512-Zyl9Tw638x08LDew22YtxdYiUGxn+quzpR3ySIS4Nccv6yAiO5j1Yko9IEPNpj/aBZf71xtD/6hYXsgZ2ye3ew==", "license": "Apache-2.0", "bin": { "wasm-as": "bin/wasm-as", @@ -995,9 +995,9 @@ } }, "node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 47b23f9761..a13ad55699 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "129.0.0-nightly.20260428", + "binaryen": "130.0.0-nightly.20260609", "long": "^5.2.4" }, "devDependencies": { diff --git a/src/compiler.ts b/src/compiler.ts index 5a5f9e8b77..f99bd5a049 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -881,7 +881,8 @@ export class Compiler extends DiagnosticEmitter { let options = this.options; let module = this.module; - // import and/or export table if requested (default table is named '0' by Binaryen) + // import and/or export table if requested (default table is named '0' by Binaryen). + // non-imported tables are declared lazily on first indirect call, see ensureFunctionTable if (options.importTable) { module.addTableImport( CommonNames.DefaultTable, @@ -2152,7 +2153,11 @@ export class Compiler extends DiagnosticEmitter { let memorySegment = instance.memorySegment; if (!memorySegment) { - // Add to the function table + // Add to the function table, declaring it on first use so effect analysis works + if (!this.options.importTable) { + this.module.ensureFunctionTable(CommonNames.DefaultTable); + } + let functionTable = this.functionTable; let tableBase = this.options.tableBase; if (!tableBase) tableBase = 1; // leave first elem blank @@ -7128,13 +7133,11 @@ export class Compiler extends DiagnosticEmitter { // provided, so we must set `argumentsLength` in any case. Inject setting it // into the index argument, which becomes executed last after any operands. let argumentsLength = this.ensureArgumentsLength(); - - let functionArgWithVararg = module.block(null, [ module.global_set(argumentsLength, module.i32(numArguments)), functionArg ], sizeTypeRef); - + if (operands) this.operandsTostack(signature, operands); let expr = module.call_indirect( null, // TODO: handle multiple tables diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index 347428aa8b..5b693f8fa0 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -267,6 +267,9 @@ export declare function _BinaryenUnarySetOp(expr: ExpressionRef, op: Op): void; export declare function _BinaryenUnaryGetValue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenUnarySetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; +export declare function _BinaryenWideIntAddSub(module: ModuleRef, op: Op, leftLowExpr: ExpressionRef, leftHighExpr: ExpressionRef, rightLowExpr: ExpressionRef, rightHighExpr: ExpressionRef): ExpressionRef; +export declare function _BinaryenWideIntMul(module: ModuleRef, op: Op, leftExpr: ExpressionRef, rightExpr: ExpressionRef): ExpressionRef; + export declare function _BinaryenBinary(module: ModuleRef, op: Op, leftExpr: ExpressionRef, rightExpr: ExpressionRef): ExpressionRef; export declare function _BinaryenBinaryGetOp(expr: ExpressionRef): Op; export declare function _BinaryenBinarySetOp(expr: ExpressionRef, op: Op): void; diff --git a/src/glue/binaryen.js b/src/glue/binaryen.js index 4caf71afbb..c47cc5ca77 100644 --- a/src/glue/binaryen.js +++ b/src/glue/binaryen.js @@ -223,6 +223,9 @@ export const { _BinaryenUnaryGetValue, _BinaryenUnarySetValue, + _BinaryenWideIntAddSub, + _BinaryenWideIntMul, + _BinaryenBinary, _BinaryenBinaryGetOp, _BinaryenBinarySetOp, diff --git a/src/module.ts b/src/module.ts index f02ffb2f44..c6c68ea710 100644 --- a/src/module.ts +++ b/src/module.ts @@ -331,7 +331,9 @@ export const enum ExpressionId { ResumeThrow = 102 /* _BinaryenResumeThrowId */, StackSwitch = 103 /* _BinaryenStackSwitchId */, StructWait = 104 /* _BinaryenStructWaitId */, - StructNotify = 105 /* _BinaryenStructNotifyId */ + StructNotify = 105 /* _BinaryenStructNotifyId */, + WideIntAddSub = 106 /* _BinaryenWideIntAddSubId */, + WideIntMul = 107 /* _BinaryenWideIntMulId */ } /** Binaryen external kind constants. */ @@ -1057,7 +1059,7 @@ export const enum BinaryOp { /** i16x8.relaxed_q15mulr_s */ RelaxedQ15MulrI16x8 = 215 /* _BinaryenRelaxedQ15MulrSVecI16x8 */, /** i16x8.relaxed_dot_i8x16_i7x16_s */ - RelaxedDotI8x16I7x16ToI16x8 = 216 /* _BinaryenDotI8x16I7x16SToVecI16x8 */, + RelaxedDotI8x16I7x16ToI16x8 = 216 /* _BinaryenRelaxedDotI8x16I7x16SToVecI16x8 */, _last = RelaxedDotI8x16I7x16ToI16x8, @@ -1258,15 +1260,15 @@ export const enum SIMDTernaryOp { /** f64x2.relaxed_nmadd */ RelaxedNmaddF64x2 = 4 /* _BinaryenRelaxedNmaddVecF64x2 */, /** i8x16.relaxed_laneselect */ - RelaxedLaneselectI8x16 = 5 /* _BinaryenLaneselectI8x16 */, + RelaxedLaneselectI8x16 = 5 /* _BinaryenRelaxedLaneselectI8x16 */, /** i16x8.relaxed_laneselect */ - RelaxedLaneselectI16x8 = 6 /* _BinaryenLaneselectI16x8 */, + RelaxedLaneselectI16x8 = 6 /* _BinaryenRelaxedLaneselectI16x8 */, /** i32x4.relaxed_laneselect */ - RelaxedLaneselectI32x4 = 7 /* _BinaryenLaneselectI32x4 */, + RelaxedLaneselectI32x4 = 7 /* _BinaryenRelaxedLaneselectI32x4 */, /** i64x2.relaxed_laneselect */ - RelaxedLaneselectI64x2 = 8 /* _BinaryenLaneselectI64x2 */, + RelaxedLaneselectI64x2 = 8 /* _BinaryenRelaxedLaneselectI64x2 */, /** i32x4.relaxed_dot_i8x16_i7x16_add_s */ - RelaxedDotI8x16I7x16AddToI32x4 = 9 /* _BinaryenDotI8x16I7x16AddSToVecI32x4 */, + RelaxedDotI8x16I7x16AddToI32x4 = 9 /* _BinaryenRelaxedDotI8x16I7x16AddSToVecI32x4 */, // FIXME: f16x8 madd/nmadd (= 10, 11) are in wasm.h but not yet exported via C API } @@ -1275,9 +1277,25 @@ export const enum RefAsOp { /** ref.as_non_null */ NonNull = 0 /* _BinaryenRefAsNonNull */, /** any.convert_extern */ - ExternInternalize = 1 /* _BinaryenRefAsAnyConvertExtern */, + AnyConvertExtern = 1 /* _BinaryenRefAsAnyConvertExtern */, /** extern.convert_any */ - ExternExternalize = 2 /* _BinaryenRefAsExternConvertAny */ + ExternConvertAny = 2 /* _BinaryenRefAsExternConvertAny */ +} + +/** Binaryen wide integer add/sub operation constants. */ +export const enum WideIntAddSubOp { + /** i64.add128 */ + Add = 0 /* _BinaryenAddInt128 */, + /** i64.sub128 */ + Sub = 1 /* _BinaryenSubInt128 */ +} + +/** Binaryen wide integer multiply operation constants. */ +export const enum WideIntMulOp { + /** i64.mul_wide_s */ + SignedI64 = 0 /* _BinaryenMulWideSInt64 */, + /** i64.mul_wide_u */ + UnsignedI64 = 1 /* _BinaryenMulWideUInt64 */ } /** Binaryen BrOn operation constants. */ @@ -1511,6 +1529,24 @@ export class Module { return binaryen._BinaryenBinary(this.ref, op, left, right); } + wide_int_add_sub( + op: WideIntAddSubOp, + leftLow: ExpressionRef, + leftHigh: ExpressionRef, + rightLow: ExpressionRef, + rightHigh: ExpressionRef + ): ExpressionRef { + return binaryen._BinaryenWideIntAddSub(this.ref, op, leftLow, leftHigh, rightLow, rightHigh); + } + + wide_int_mul( + op: WideIntMulOp, + left: ExpressionRef, + right: ExpressionRef + ): ExpressionRef { + return binaryen._BinaryenWideIntMul(this.ref, op, left, right); + } + memory_size(name: string = CommonNames.DefaultMemory, is64: bool = false): ExpressionRef { let cStr = this.allocStringCached(name); return binaryen._BinaryenMemorySize(this.ref, cStr, is64); @@ -2450,6 +2486,14 @@ export class Module { binaryen._free(cArr); } + /** Ensures that an empty function table of the given name exists, to be sized and filled later. */ + ensureFunctionTable(name: string): void { + let cStr = this.allocStringCached(name); + if (!binaryen._BinaryenGetTable(this.ref, cStr)) { + binaryen._BinaryenAddTable(this.ref, cStr, 0, Module.UNLIMITED_TABLE, TypeRef.Funcref); + } + } + /* setFunctionTable( initial: Index, maximum: Index, diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index 53e5430763..aabd543b52 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -1,7 +1,6 @@ (module (type $0 (func (param i32) (result i32))) - (type $1 (func (result i32))) - (type $2 (func (param i32 i32 i32 i32))) + (type $1 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 34236)) (memory $0 1) @@ -15,7 +14,6 @@ (data $3.1 (i32.const 1304) "\02\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") (data $4 (i32.const 1340) "|") (data $4.1 (i32.const 1352) "\02\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (table $0 1 1 funcref) (export "memory" (memory $0)) (export "testVar" (func $export:assert-nonnull/testVar)) (export "testObj" (func $export:assert-nonnull/testObj)) @@ -165,7 +163,6 @@ br_if $folding-inner1 local.get $0 i32.load - call_indirect (type $1) unreachable end i32.const 34256 @@ -283,7 +280,6 @@ br_if $folding-inner1 local.get $0 i32.load - call_indirect (type $1) unreachable end i32.const 34256 @@ -344,7 +340,6 @@ end local.get $0 i32.load - call_indirect (type $1) unreachable end i32.const 34256 @@ -456,7 +451,6 @@ i32.store offset=4 local.get $0 i32.load - call_indirect (type $1) unreachable end i32.const 34256 @@ -505,7 +499,6 @@ end local.get $0 i32.load - call_indirect (type $1) unreachable end i32.const 34256 diff --git a/tests/compiler/features/relaxed-simd.debug.wat b/tests/compiler/features/relaxed-simd.debug.wat index af8063a69d..0ede0f4814 100644 --- a/tests/compiler/features/relaxed-simd.debug.wat +++ b/tests/compiler/features/relaxed-simd.debug.wat @@ -83,42 +83,42 @@ global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i8x16.laneselect + i8x16.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i8x16.laneselect + i8x16.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i16x8.laneselect + i16x8.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i16x8.laneselect + i16x8.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i32x4.laneselect + i32x4.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i32x4.laneselect + i32x4.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i64x2.laneselect + i64x2.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i64x2.laneselect + i64x2.relaxed_laneselect global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v @@ -162,11 +162,11 @@ global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i16x8.dot_i8x16_i7x16_s + i16x8.relaxed_dot_i8x16_i7x16_s global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - i16x8.dot_i8x16_i7x16_s + i16x8.relaxed_dot_i8x16_i7x16_s global.set $features/relaxed-simd/r ) (func $~start diff --git a/tests/compiler/ternary.release.wat b/tests/compiler/ternary.release.wat index fa841a2a0c..7d2cc0437a 100644 --- a/tests/compiler/ternary.release.wat +++ b/tests/compiler/ternary.release.wat @@ -48,6 +48,7 @@ select ) (func $export:ternary/testVoidInclTypeMismatch (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -68,11 +69,11 @@ i32.store local.get $1 i32.load + local.tee $2 call_indirect (type $0) local.get $0 if - local.get $1 - i32.load + local.get $2 call_indirect (type $0) end local.get $0 From 282903732b48ddb2e268092384969e0c1ecfb12b Mon Sep 17 00:00:00 2001 From: Max Graey Date: Thu, 2 Jul 2026 15:59:32 +0300 Subject: [PATCH 84/86] chore: Update binaryen, esbuild & other dependencies (#3032) --- package-lock.json | 248 +++++++++++++++++++++++----------------------- package.json | 8 +- src/module.ts | 3 +- 3 files changed, 130 insertions(+), 129 deletions(-) diff --git a/package-lock.json b/package-lock.json index b3b4565299..d7f82e65b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "130.0.0-nightly.20260609", + "binaryen": "130.0.0-nightly.20260702", "long": "^5.2.4" }, "bin": { @@ -18,13 +18,13 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@types/node": "^25.6.0", + "@types/node": "^26.1.0", "as-float": "^1.0.1", "diff": "^9.0.0", - "esbuild": "^0.28.0", + "esbuild": "^0.28.1", "eslint": "^10.2.1", "glob": "^13.0.6", - "globals": "^17.5.0", + "globals": "^17.7.0", "typescript": "^6.0.3", "typescript-eslint": "^8.59.0" }, @@ -38,9 +38,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", - "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -55,9 +55,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", - "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -72,9 +72,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", - "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -89,9 +89,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", - "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -106,9 +106,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", - "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -123,9 +123,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", - "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -140,9 +140,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", - "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -157,9 +157,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", - "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -174,9 +174,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", - "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -191,9 +191,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", - "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -208,9 +208,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", - "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -225,9 +225,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", - "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -242,9 +242,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", - "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -259,9 +259,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", - "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -276,9 +276,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", - "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -293,9 +293,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", - "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -310,9 +310,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", - "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -327,9 +327,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", - "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -344,9 +344,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", - "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -361,9 +361,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", - "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -378,9 +378,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", - "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -395,9 +395,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", - "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], @@ -412,9 +412,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", - "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -429,9 +429,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", - "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -446,9 +446,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", - "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -463,9 +463,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", - "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -668,13 +668,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", - "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.0.tgz", + "integrity": "sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.19.0" + "undici-types": "~8.3.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -978,9 +978,9 @@ } }, "node_modules/binaryen": { - "version": "130.0.0-nightly.20260609", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-130.0.0-nightly.20260609.tgz", - "integrity": "sha512-Zyl9Tw638x08LDew22YtxdYiUGxn+quzpR3ySIS4Nccv6yAiO5j1Yko9IEPNpj/aBZf71xtD/6hYXsgZ2ye3ew==", + "version": "130.0.0-nightly.20260702", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-130.0.0-nightly.20260702.tgz", + "integrity": "sha512-Xy4enW4kgtuf43s/vK4wVrO33K4raeJ4j7cb/qHhSGp8l/+/bap3nyVlvlY6g3pKvaRyGLqrrUnvt0EgBU+50Q==", "license": "Apache-2.0", "bin": { "wasm-as": "bin/wasm-as", @@ -1058,9 +1058,9 @@ } }, "node_modules/esbuild": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", - "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1071,32 +1071,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.0", - "@esbuild/android-arm": "0.28.0", - "@esbuild/android-arm64": "0.28.0", - "@esbuild/android-x64": "0.28.0", - "@esbuild/darwin-arm64": "0.28.0", - "@esbuild/darwin-x64": "0.28.0", - "@esbuild/freebsd-arm64": "0.28.0", - "@esbuild/freebsd-x64": "0.28.0", - "@esbuild/linux-arm": "0.28.0", - "@esbuild/linux-arm64": "0.28.0", - "@esbuild/linux-ia32": "0.28.0", - "@esbuild/linux-loong64": "0.28.0", - "@esbuild/linux-mips64el": "0.28.0", - "@esbuild/linux-ppc64": "0.28.0", - "@esbuild/linux-riscv64": "0.28.0", - "@esbuild/linux-s390x": "0.28.0", - "@esbuild/linux-x64": "0.28.0", - "@esbuild/netbsd-arm64": "0.28.0", - "@esbuild/netbsd-x64": "0.28.0", - "@esbuild/openbsd-arm64": "0.28.0", - "@esbuild/openbsd-x64": "0.28.0", - "@esbuild/openharmony-arm64": "0.28.0", - "@esbuild/sunos-x64": "0.28.0", - "@esbuild/win32-arm64": "0.28.0", - "@esbuild/win32-ia32": "0.28.0", - "@esbuild/win32-x64": "0.28.0" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/escape-string-regexp": { @@ -1412,9 +1412,9 @@ } }, "node_modules/globals": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.5.0.tgz", - "integrity": "sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==", + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.7.0.tgz", + "integrity": "sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==", "dev": true, "license": "MIT", "engines": { @@ -1829,9 +1829,9 @@ } }, "node_modules/undici-types": { - "version": "7.19.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", - "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", "dev": true, "license": "MIT" }, diff --git a/package.json b/package.json index a13ad55699..117483ece2 100644 --- a/package.json +++ b/package.json @@ -25,18 +25,18 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "130.0.0-nightly.20260609", + "binaryen": "130.0.0-nightly.20260702", "long": "^5.2.4" }, "devDependencies": { "@eslint/js": "^10.0.1", - "@types/node": "^25.6.0", + "@types/node": "^26.1.0", "as-float": "^1.0.1", "diff": "^9.0.0", - "esbuild": "^0.28.0", + "esbuild": "^0.28.1", "eslint": "^10.2.1", "glob": "^13.0.6", - "globals": "^17.5.0", + "globals": "^17.7.0", "typescript": "^6.0.3", "typescript-eslint": "^8.59.0" }, diff --git a/src/module.ts b/src/module.ts index c6c68ea710..def4e780bf 100644 --- a/src/module.ts +++ b/src/module.ts @@ -221,7 +221,8 @@ export const enum FeatureFlags { CustomPageSizes = 8388608 /* _BinaryenFeatureCustomPageSizes */, Multibyte = 16777216 /* _BinaryenFeatureMultibyte */, WideArithmetic = 33554432 /* _BinaryenFeatureWideArithmetic */, - All = 67108863 /* _BinaryenFeatureAll */ + CompactImports = 67108864 /* _BinaryenFeatureCompactImports */, + All = 134217727 /* _BinaryenFeatureAll */ } /** Binaryen expression id constants. See wasm-delegations.def in Binaryen. */ From 9ca63f2ff046258afbf360d7bc147665882f8258 Mon Sep 17 00:00:00 2001 From: Max Graey Date: Tue, 21 Jul 2026 18:58:01 +0300 Subject: [PATCH 85/86] fix: optimize dayOfWeek & dateFromEpoch routines in date (#3033) --- std/assembly/date.ts | 40 +- tests/compiler/std/date.debug.wat | 2564 ++++++++++++++------------- tests/compiler/std/date.release.wat | 1425 +++++++++------ tests/compiler/std/date.ts | 8 +- 4 files changed, 2247 insertions(+), 1790 deletions(-) diff --git a/std/assembly/date.ts b/std/assembly/date.ts index 2f847e1786..7d273e1dd2 100644 --- a/std/assembly/date.ts +++ b/std/assembly/date.ts @@ -3,15 +3,14 @@ import { Date as Date_binding } from "./bindings/dom"; // @ts-ignore: decorator @inline const + MILLIS_LIMIT = 8640000000000000, MILLIS_PER_DAY = 1000 * 60 * 60 * 24, MILLIS_PER_HOUR = 1000 * 60 * 60, MILLIS_PER_MINUTE = 1000 * 60, MILLIS_PER_SECOND = 1000, - - YEARS_PER_EPOCH = 400, - DAYS_PER_EPOCH = 146097, - EPOCH_OFFSET = 719468, // Jan 1, 1970 - MILLIS_LIMIT = 8640000000000000; + YEARS_PER_EPOCH = 400, + DAYS_PER_EPOCH = 146097, // 400 * 365 + 400 / 4 - 400 / 100 + 1 + EPOCH_OFFSET = 719468; // Jan 1, 1970 // ymdFromEpochDays returns values via globals to avoid allocations // @ts-ignore: decorator @@ -62,7 +61,7 @@ export class Date { let timeString: string; dateString = dateTimeString.substring(0, posT); timeString = dateTimeString.substring(posT + 1); - + // might end with an offset ("Z", "+05:30", "-08:00", etc.) for (let i = timeString.length - 1; i >= 0; i--) { let c = timeString.charCodeAt(i); @@ -82,8 +81,8 @@ export class Date { } else { let offsetHours = i32.parse(timeString.substring(i + 1)); offsetMs = offsetHours * MILLIS_PER_HOUR; - } - + } + if (c == 45) offsetMs = -offsetMs; // negative offset timeString = timeString.substring(0, i); break; @@ -333,25 +332,23 @@ function invalidDate(millis: i64): bool { // Paper: https://arxiv.org/pdf/2102.06959.pdf function dateFromEpoch(ms: i64): i32 { let da = (floorDiv(ms, MILLIS_PER_DAY) * 4 + EPOCH_OFFSET * 4) | 3; - let q0 = floorDiv(da, DAYS_PER_EPOCH); // [0, 146096] + let q0 = floorDiv(da, DAYS_PER_EPOCH); // [0, 146096] let r1 = da - q0 * DAYS_PER_EPOCH; let u1 = u64(r1 | 3) * 2939745; let dm1 = u1 / 11758980; let n1 = 2141 * dm1 + 197913; let year = 100 * q0 + i32(u1 >>> 32); - let mo = n1 >>> 16; - _day = (n1 & 0xFFFF) / 2141 + 1; // [1, 31] - if (dm1 >= 306) { mo -= 12; ++year; } - _month = mo; // [1, 12] - return year; + _day = (n1 & 0xFFFF) / 2141 + 1; // [1, 31] + _month = (n1 >>> 16) - (dm1 >= 306 ? 12 : 0); // [1, 12] + return year + (dm1 >= 306 ? 1 : 0); } // http://howardhinnant.github.io/date_algorithms.html#days_from_civil -function daysSinceEpoch(y: i32, m: i32, d: i32): i64 { - y -= i32(m <= 2); - let era = floorDiv(y, YEARS_PER_EPOCH); - let yoe = y - era * YEARS_PER_EPOCH; // [0, 399] - let doy = (153 * (m + (m > 2 ? -3 : 9)) + 2) / 5 + d - 1; // [0, 365] +function daysSinceEpoch(year: i32, month: i32, day: i32): i64 { + year -= i32(month <= 2); + let era = floorDiv(year, YEARS_PER_EPOCH); + let yoe = year - era * YEARS_PER_EPOCH; // [0, 399] + let doy = (153 * (month + (month > 2 ? -3 : 9)) + 2) / 5 + day - 1; // [0, 365] let doe = yoe * 365 + yoe / 4 - yoe / 100 + doy; // [0, 146096] return (era * 146097 + doe - EPOCH_OFFSET); } @@ -360,8 +357,9 @@ function daysSinceEpoch(y: i32, m: i32, d: i32): i64 { function dayOfWeek(year: i32, month: i32, day: i32): i32 { const tab = memory.data([0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]); - year -= i32(month < 3); - year += floorDiv(year, 4) - floorDiv(year, 100) + floorDiv(year, YEARS_PER_EPOCH); + year -= i32(month <= 2); + const cent = floorDiv(year >> 2, 100 >> 2); + year += (year >> 2) - cent + (cent >> 2); month = load(tab + month - 1); return euclidRem(year + month + day, 7); } diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 69c2f16c5e..f0af4387e1 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -171,21 +171,21 @@ (elem $0 (i32.const 1)) (export "memory" (memory $0)) (export "_start" (func $~start)) - (func $~lib/date/daysSinceEpoch (param $y i32) (param $m i32) (param $d i32) (result i64) + (func $~lib/date/daysSinceEpoch (param $year i32) (param $month i32) (param $day i32) (result i64) (local $a i32) (local $b i32) (local $era i32) (local $yoe i32) (local $doy i32) (local $doe i32) - local.get $y - local.get $m + local.get $year + local.get $month i32.const 2 i32.le_s i32.sub - local.set $y + local.set $year block $~lib/date/floorDiv|inlined.0 (result i32) - local.get $y + local.get $year local.set $a i32.const 400 local.set $b @@ -206,15 +206,15 @@ br $~lib/date/floorDiv|inlined.0 end local.set $era - local.get $y + local.get $year local.get $era i32.const 400 i32.mul i32.sub local.set $yoe i32.const 153 - local.get $m - local.get $m + local.get $month + local.get $month i32.const 2 i32.gt_s if (result i32) @@ -228,7 +228,7 @@ i32.add i32.const 5 i32.div_u - local.get $d + local.get $day i32.add i32.const 1 i32.sub @@ -309,7 +309,6 @@ (local $dm1 i32) (local $n1 i32) (local $year i32) - (local $mo i32) block $~lib/date/floorDiv|inlined.0 (result i64) local.get $ms local.set $a @@ -398,10 +397,6 @@ i32.add local.set $year local.get $n1 - i32.const 16 - i32.shr_u - local.set $mo - local.get $n1 i32.const 65535 i32.and i32.const 2141 @@ -409,22 +404,29 @@ i32.const 1 i32.add global.set $~lib/date/_day + local.get $n1 + i32.const 16 + i32.shr_u local.get $dm1 i32.const 306 i32.ge_u - if - local.get $mo + if (result i32) i32.const 12 - i32.sub - local.set $mo - local.get $year - i32.const 1 - i32.add - local.set $year + else + i32.const 0 end - local.get $mo + i32.sub global.set $~lib/date/_month local.get $year + local.get $dm1 + i32.const 306 + i32.ge_u + if (result i32) + i32.const 1 + else + i32.const 0 + end + i32.add return ) (func $~lib/date/Date#set:year (param $this i32) (param $year i32) @@ -2705,24 +2707,24 @@ (func $~lib/date/dayOfWeek (param $year i32) (param $month i32) (param $day i32) (result i32) (local $a i32) (local $b i32) - (local $a|5 i32) - (local $b|6 i32) - (local $a|7 i32) - (local $b|8 i32) - (local $a|9 i32) - (local $b|10 i32) + (local $cent i32) + (local $a|6 i32) + (local $b|7 i32) (local $m i32) local.get $year local.get $month - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub local.set $year - local.get $year block $~lib/date/floorDiv|inlined.2 (result i32) local.get $year + i32.const 2 + i32.shr_s local.set $a - i32.const 4 + i32.const 100 + i32.const 2 + i32.shr_s local.set $b local.get $a local.get $a @@ -2740,49 +2742,16 @@ i32.div_s br $~lib/date/floorDiv|inlined.2 end - block $~lib/date/floorDiv|inlined.3 (result i32) - local.get $year - local.set $a|5 - i32.const 100 - local.set $b|6 - local.get $a|5 - local.get $a|5 - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|6 - i32.const 1 - i32.sub - else - i32.const 0 - end - i32.sub - local.get $b|6 - i32.div_s - br $~lib/date/floorDiv|inlined.3 - end + local.set $cent + local.get $year + local.get $year + i32.const 2 + i32.shr_s + local.get $cent i32.sub - block $~lib/date/floorDiv|inlined.4 (result i32) - local.get $year - local.set $a|7 - i32.const 400 - local.set $b|8 - local.get $a|7 - local.get $a|7 - i32.const 0 - i32.lt_s - if (result i32) - local.get $b|8 - i32.const 1 - i32.sub - else - i32.const 0 - end - i32.sub - local.get $b|8 - i32.div_s - br $~lib/date/floorDiv|inlined.4 - end + local.get $cent + i32.const 2 + i32.shr_s i32.add i32.add local.set $year @@ -2799,11 +2768,11 @@ i32.add local.get $day i32.add - local.set $a|9 + local.set $a|6 i32.const 7 - local.set $b|10 - local.get $a|9 - local.get $b|10 + local.set $b|7 + local.get $a|6 + local.get $b|7 i32.rem_s local.set $m local.get $m @@ -2811,7 +2780,7 @@ i32.const 0 i32.lt_s if (result i32) - local.get $b|10 + local.get $b|7 else i32.const 0 end @@ -3886,7 +3855,7 @@ if i32.const 32 i32.const 80 - i32.const 131 + i32.const 130 i32.const 35 call $~lib/builtins/abort unreachable @@ -3940,7 +3909,7 @@ if i32.const 32 i32.const 80 - i32.const 143 + i32.const 142 i32.const 28 call $~lib/builtins/abort unreachable @@ -8004,7 +7973,7 @@ if i32.const 32 i32.const 80 - i32.const 50 + i32.const 49 i32.const 33 call $~lib/builtins/abort unreachable @@ -8133,7 +8102,7 @@ if i32.const 32 i32.const 80 - i32.const 74 + i32.const 73 i32.const 13 call $~lib/builtins/abort unreachable @@ -8316,7 +8285,7 @@ if i32.const 32 i32.const 80 - i32.const 96 + i32.const 95 i32.const 21 call $~lib/builtins/abort unreachable @@ -8782,14 +8751,19 @@ (local $162 i32) (local $163 i32) (local $164 i32) + (local $165 i32) + (local $166 i32) + (local $167 i32) + (local $168 i32) + (local $169 i32) global.get $~lib/memory/__stack_pointer - i32.const 436 + i32.const 456 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 436 + i32.const 456 memory.fill block $~lib/date/Date.UTC|inlined.0 (result i64) i32.const 1970 @@ -8838,7 +8812,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8904,7 +8878,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -8970,7 +8944,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -9036,7 +9010,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -9102,7 +9076,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -9168,7 +9142,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -9234,7 +9208,7 @@ if i32.const 32 i32.const 80 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable @@ -9284,11 +9258,11 @@ local.tee $58 i32.store offset=4 local.get $58 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.0 end @@ -9304,11 +9278,11 @@ unreachable end local.get $57 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 local.get $56 i64.const 1 i64.add @@ -9320,11 +9294,11 @@ local.tee $59 i32.store offset=12 local.get $59 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.1 end @@ -9353,11 +9327,11 @@ local.tee $61 i32.store offset=20 local.get $61 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.0 end @@ -9378,11 +9352,11 @@ local.tee $62 i32.store offset=24 local.get $62 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -9405,11 +9379,11 @@ local.tee $63 i32.store offset=28 local.get $63 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.0 end @@ -9425,11 +9399,11 @@ unreachable end local.get $60 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 22 i32.eq @@ -9443,11 +9417,11 @@ unreachable end local.get $60 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 9 i32.eq @@ -9461,11 +9435,11 @@ unreachable end local.get $60 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 43 i32.eq @@ -9479,11 +9453,11 @@ unreachable end local.get $60 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 706 i32.eq @@ -9508,11 +9482,11 @@ local.tee $65 i32.store offset=36 local.get $65 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.1 end @@ -9533,11 +9507,11 @@ local.tee $66 i32.store offset=40 local.get $66 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -9560,11 +9534,11 @@ local.tee $67 i32.store offset=44 local.get $67 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.1 end @@ -9580,11 +9554,11 @@ unreachable end local.get $64 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 1 i32.eq @@ -9598,11 +9572,11 @@ unreachable end local.get $64 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 3 i32.eq @@ -9616,11 +9590,11 @@ unreachable end local.get $64 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 11 i32.eq @@ -9634,11 +9608,11 @@ unreachable end local.get $64 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 274 i32.eq @@ -9658,11 +9632,11 @@ local.tee $68 i32.store offset=48 local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 984 i32.eq @@ -9676,19 +9650,19 @@ unreachable end local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 12 i32.eq @@ -9702,19 +9676,19 @@ unreachable end local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 568 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 568 i32.eq @@ -9728,11 +9702,11 @@ unreachable end local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 0 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.2 (result i64) @@ -9741,11 +9715,11 @@ local.tee $69 i32.store offset=52 local.get $69 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.2 end @@ -9761,11 +9735,11 @@ unreachable end local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 999 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.3 (result i64) @@ -9774,11 +9748,11 @@ local.tee $70 i32.store offset=56 local.get $70 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.3 end @@ -9794,19 +9768,19 @@ unreachable end local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2000 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 0 i32.eq @@ -9825,11 +9799,11 @@ local.tee $71 i32.store offset=60 local.get $71 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.4 end @@ -9845,19 +9819,19 @@ unreachable end local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const -2000 call $~lib/date/Date#setUTCMilliseconds local.get $68 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 0 i32.eq @@ -9876,11 +9850,11 @@ local.tee $72 i32.store offset=64 local.get $72 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.5 end @@ -9902,11 +9876,11 @@ local.tee $73 i32.store offset=68 local.get $73 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 31 i32.eq @@ -9920,19 +9894,19 @@ unreachable end local.get $73 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCSeconds local.get $73 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 12 i32.eq @@ -9946,19 +9920,19 @@ unreachable end local.get $73 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 50 call $~lib/date/Date#setUTCSeconds local.get $73 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 50 i32.eq @@ -9972,11 +9946,11 @@ unreachable end local.get $73 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 0 call $~lib/date/Date#setUTCSeconds block $~lib/date/Date#getTime|inlined.6 (result i64) @@ -9985,11 +9959,11 @@ local.tee $74 i32.store offset=72 local.get $74 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.6 end @@ -10005,11 +9979,11 @@ unreachable end local.get $73 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 59 call $~lib/date/Date#setUTCSeconds block $~lib/date/Date#getTime|inlined.7 (result i64) @@ -10018,11 +9992,11 @@ local.tee $75 i32.store offset=76 local.get $75 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.7 end @@ -10044,11 +10018,11 @@ local.tee $76 i32.store offset=80 local.get $76 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 45 i32.eq @@ -10062,19 +10036,19 @@ unreachable end local.get $76 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCMinutes local.get $76 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 12 i32.eq @@ -10088,19 +10062,19 @@ unreachable end local.get $76 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 50 call $~lib/date/Date#setUTCMinutes local.get $76 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 50 i32.eq @@ -10114,11 +10088,11 @@ unreachable end local.get $76 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 0 call $~lib/date/Date#setUTCMinutes block $~lib/date/Date#getTime|inlined.8 (result i64) @@ -10127,11 +10101,11 @@ local.tee $77 i32.store offset=84 local.get $77 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.8 end @@ -10147,11 +10121,11 @@ unreachable end local.get $76 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 59 call $~lib/date/Date#setUTCMinutes block $~lib/date/Date#getTime|inlined.9 (result i64) @@ -10160,11 +10134,11 @@ local.tee $78 i32.store offset=88 local.get $78 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.9 end @@ -10186,11 +10160,11 @@ local.tee $79 i32.store offset=92 local.get $79 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 17 i32.eq @@ -10204,19 +10178,19 @@ unreachable end local.get $79 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCHours local.get $79 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 12 i32.eq @@ -10230,19 +10204,19 @@ unreachable end local.get $79 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2 call $~lib/date/Date#setUTCHours local.get $79 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 2 i32.eq @@ -10256,11 +10230,11 @@ unreachable end local.get $79 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 0 call $~lib/date/Date#setUTCHours block $~lib/date/Date#getTime|inlined.10 (result i64) @@ -10269,11 +10243,11 @@ local.tee $80 i32.store offset=96 local.get $80 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.10 end @@ -10289,11 +10263,11 @@ unreachable end local.get $79 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 23 call $~lib/date/Date#setUTCHours block $~lib/date/Date#getTime|inlined.11 (result i64) @@ -10302,11 +10276,11 @@ local.tee $81 i32.store offset=100 local.get $81 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.11 end @@ -10333,11 +10307,11 @@ local.tee $83 i32.store offset=108 local.get $83 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.2 end @@ -10358,11 +10332,11 @@ local.tee $84 i32.store offset=112 local.get $84 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10380,11 +10354,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 12 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getUTCDate|inlined.2 (result i32) @@ -10393,11 +10367,11 @@ local.tee $85 i32.store offset=116 local.get $85 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.2 end @@ -10413,11 +10387,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getUTCDate|inlined.3 (result i32) @@ -10426,11 +10400,11 @@ local.tee $86 i32.store offset=120 local.get $86 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.3 end @@ -10446,62 +10420,62 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 30 call $~lib/date/Date#setUTCDate local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 0 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/date/Date#setUTCMonth@varargs local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 31 call $~lib/date/Date#setUTCDate local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2024 call $~lib/date/Date#setUTCFullYear local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 1 i32.const 1 global.set $~argumentsLength @@ -10513,11 +10487,11 @@ local.tee $87 i32.store offset=124 local.get $87 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10535,27 +10509,27 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 1 call $~lib/date/Date#setUTCDate local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 29 call $~lib/date/Date#setUTCDate local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 1 i32.const 1 global.set $~argumentsLength @@ -10567,11 +10541,11 @@ local.tee $88 i32.store offset=128 local.get $88 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.12 end @@ -10592,11 +10566,11 @@ local.tee $89 i32.store offset=132 local.get $89 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -10619,11 +10593,11 @@ local.tee $90 i32.store offset=136 local.get $90 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.4 end @@ -10639,11 +10613,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 3 i32.eq @@ -10657,11 +10631,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 11 i32.eq @@ -10675,11 +10649,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 274 i32.eq @@ -10699,11 +10673,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 20 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.13 (result i64) @@ -10712,11 +10686,11 @@ local.tee $91 i32.store offset=140 local.get $91 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.13 end @@ -10732,11 +10706,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 1 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.14 (result i64) @@ -10745,11 +10719,11 @@ local.tee $92 i32.store offset=144 local.get $92 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.14 end @@ -10765,11 +10739,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 1000 call $~lib/date/Date#setUTCMilliseconds block $~lib/date/Date#getTime|inlined.15 (result i64) @@ -10778,11 +10752,11 @@ local.tee $93 i32.store offset=148 local.get $93 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.15 end @@ -10798,11 +10772,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 60 i32.const 60 i32.mul @@ -10815,11 +10789,11 @@ local.tee $94 i32.store offset=152 local.get $94 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.16 end @@ -10835,11 +10809,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 60 i32.const 60 i32.mul @@ -10854,11 +10828,11 @@ local.tee $95 i32.store offset=156 local.get $95 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.17 end @@ -10874,11 +10848,11 @@ unreachable end local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 60 i32.const 60 i32.mul @@ -10893,11 +10867,11 @@ local.tee $96 i32.store offset=160 local.get $96 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.18 end @@ -10919,11 +10893,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const -2208 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.19 (result i64) @@ -10932,11 +10906,11 @@ local.tee $97 i32.store offset=164 local.get $97 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.19 end @@ -10958,11 +10932,11 @@ local.tee $82 i32.store offset=104 local.get $82 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2208 call $~lib/date/Date#setUTCDate block $~lib/date/Date#getTime|inlined.20 (result i64) @@ -10971,11 +10945,11 @@ local.tee $98 i32.store offset=168 local.get $98 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.20 end @@ -10998,25 +10972,25 @@ local.tee $99 i32.store offset=172 local.get $99 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year local.get $99 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month local.get $99 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.0 @@ -11042,25 +11016,25 @@ local.tee $100 i32.store offset=176 local.get $100 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year local.get $100 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month local.get $100 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.1 @@ -11088,25 +11062,25 @@ local.tee $101 i32.store offset=180 local.get $101 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year local.get $101 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month local.get $101 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.2 @@ -11132,25 +11106,25 @@ local.tee $102 i32.store offset=184 local.get $102 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year local.get $102 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month local.get $102 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.3 @@ -11174,25 +11148,25 @@ local.tee $103 i32.store offset=188 local.get $103 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year local.get $103 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month local.get $103 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.4 @@ -11218,25 +11192,25 @@ local.tee $104 i32.store offset=192 local.get $104 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year local.get $104 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month local.get $104 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.5 @@ -11264,25 +11238,25 @@ local.tee $105 i32.store offset=196 local.get $105 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year local.get $105 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month local.get $105 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.6 @@ -11308,25 +11282,25 @@ local.tee $106 i32.store offset=200 local.get $106 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year local.get $106 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month local.get $106 - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day call $~lib/date/dayOfWeek br $~lib/date/Date#getUTCDay|inlined.7 @@ -11342,63 +11316,273 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i64.const 7899943856218720 - call $~lib/date/Date#constructor - local.tee $107 - i32.store offset=204 - block $~lib/date/Date#getUTCMonth|inlined.5 (result i32) + block $~lib/date/Date#getUTCDay|inlined.8 (result i32) global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const -8640000000000000 + call $~lib/date/Date#constructor + local.tee $107 + i32.store offset=204 local.get $107 - local.tee $108 - i32.store offset=208 - local.get $108 - local.set $164 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $107 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month - i32.const 1 - i32.sub - br $~lib/date/Date#getUTCMonth|inlined.5 + local.get $107 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.8 end - i32.const 3 + i32.const 2 i32.eq i32.eqz if i32.const 0 i32.const 128 - i32.const 201 + i32.const 197 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 - i32.const 10 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/date/Date#setUTCMonth@varargs - block $~lib/date/Date#getUTCMonth|inlined.6 (result i32) + block $~lib/date/Date#getUTCDay|inlined.9 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $109 - i32.store offset=212 - local.get $109 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=8 - local.get $164 - call $~lib/date/Date#get:month - i32.const 1 + i32.const 0 + i64.const -62183116800000 + call $~lib/date/Date#constructor + local.tee $108 + i32.store offset=208 + local.get $108 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $108 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $108 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.9 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.10 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 0 + call $~lib/date/Date#constructor + local.tee $109 + i32.store offset=212 + local.get $109 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $109 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $109 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.10 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.11 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 1709164800000 + call $~lib/date/Date#constructor + local.tee $110 + i32.store offset=216 + local.get $110 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $110 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $110 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.11 + end + i32.const 4 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $~lib/date/Date#getUTCDay|inlined.12 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 8640000000000000 + call $~lib/date/Date#constructor + local.tee $111 + i32.store offset=220 + local.get $111 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:year + local.get $111 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + local.get $111 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:day + call $~lib/date/dayOfWeek + br $~lib/date/Date#getUTCDay|inlined.12 + end + i32.const 6 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i64.const 7899943856218720 + call $~lib/date/Date#constructor + local.tee $112 + i32.store offset=224 + block $~lib/date/Date#getUTCMonth|inlined.5 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $112 + local.tee $113 + i32.store offset=228 + local.get $113 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + i32.const 1 + i32.sub + br $~lib/date/Date#getUTCMonth|inlined.5 + end + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 207 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $112 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + i32.const 10 + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/date/Date#setUTCMonth@varargs + block $~lib/date/Date#getUTCMonth|inlined.6 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $112 + local.tee $114 + i32.store offset=232 + local.get $114 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=8 + local.get $169 + call $~lib/date/Date#get:month + i32.const 1 i32.sub br $~lib/date/Date#getUTCMonth|inlined.6 end @@ -11408,17 +11592,17 @@ if i32.const 0 i32.const 128 - i32.const 203 + i32.const 209 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $164 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -11426,15 +11610,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getUTCMonth|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $110 - i32.store offset=216 - local.get $110 - local.set $164 + local.get $112 + local.tee $115 + i32.store offset=236 + local.get $115 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -11446,22 +11630,22 @@ if i32.const 0 i32.const 128 - i32.const 205 + i32.const 211 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getTime|inlined.21 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $111 - i32.store offset=220 - local.get $111 - local.set $164 + local.get $112 + local.tee $116 + i32.store offset=240 + local.get $116 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.21 end @@ -11471,17 +11655,17 @@ if i32.const 0 i32.const 128 - i32.const 206 + i32.const 212 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $164 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 0 i32.const 1 global.set $~argumentsLength @@ -11489,15 +11673,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getTime|inlined.22 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $112 - i32.store offset=224 local.get $112 - local.set $164 + local.tee $117 + i32.store offset=244 + local.get $117 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.22 end @@ -11507,17 +11691,17 @@ if i32.const 0 i32.const 128 - i32.const 209 + i32.const 215 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $164 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 11 i32.const 1 global.set $~argumentsLength @@ -11525,15 +11709,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getTime|inlined.23 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $113 - i32.store offset=228 - local.get $113 - local.set $164 + local.get $112 + local.tee $118 + i32.store offset=248 + local.get $118 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.23 end @@ -11543,17 +11727,17 @@ if i32.const 0 i32.const 128 - i32.const 211 + i32.const 217 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $164 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const -1 i32.const 1 global.set $~argumentsLength @@ -11561,15 +11745,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getUTCMonth|inlined.8 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $114 - i32.store offset=232 - local.get $114 - local.set $164 + local.get $112 + local.tee $119 + i32.store offset=252 + local.get $119 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -11581,22 +11765,22 @@ if i32.const 0 i32.const 128 - i32.const 215 + i32.const 221 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getTime|inlined.24 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $115 - i32.store offset=236 - local.get $115 - local.set $164 + local.get $112 + local.tee $120 + i32.store offset=256 + local.get $120 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.24 end @@ -11606,17 +11790,17 @@ if i32.const 0 i32.const 128 - i32.const 216 + i32.const 222 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $107 - local.set $164 + local.get $112 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 12 i32.const 1 global.set $~argumentsLength @@ -11624,15 +11808,15 @@ call $~lib/date/Date#setUTCMonth@varargs block $~lib/date/Date#getUTCMonth|inlined.9 (result i32) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $116 - i32.store offset=240 - local.get $116 - local.set $164 + local.get $112 + local.tee $121 + i32.store offset=260 + local.get $121 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -11644,22 +11828,22 @@ if i32.const 0 i32.const 128 - i32.const 218 + i32.const 224 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getTime|inlined.25 (result i64) global.get $~lib/memory/__stack_pointer - local.get $107 - local.tee $117 - i32.store offset=244 - local.get $117 - local.set $164 + local.get $112 + local.tee $122 + i32.store offset=264 + local.get $122 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.25 end @@ -11669,7 +11853,7 @@ if i32.const 0 i32.const 128 - i32.const 219 + i32.const 225 i32.const 3 call $~lib/builtins/abort unreachable @@ -11678,19 +11862,19 @@ i32.const 0 i64.const 7941202527925698 call $~lib/date/Date#constructor - local.tee $118 - i32.store offset=248 + local.tee $123 + i32.store offset=268 block $~lib/date/Date#getUTCFullYear|inlined.3 (result i32) global.get $~lib/memory/__stack_pointer - local.get $118 - local.tee $119 - i32.store offset=252 - local.get $119 - local.set $164 + local.get $123 + local.tee $124 + i32.store offset=272 + local.get $124 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.3 end @@ -11700,30 +11884,30 @@ if i32.const 0 i32.const 128 - i32.const 225 + i32.const 231 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $118 - local.set $164 + local.get $123 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 1976 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.4 (result i32) global.get $~lib/memory/__stack_pointer - local.get $118 - local.tee $120 - i32.store offset=256 - local.get $120 - local.set $164 + local.get $123 + local.tee $125 + i32.store offset=276 + local.get $125 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.4 end @@ -11733,30 +11917,30 @@ if i32.const 0 i32.const 128 - i32.const 227 + i32.const 233 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $118 - local.set $164 + local.get $123 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 20212 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer - local.get $118 - local.tee $121 - i32.store offset=260 - local.get $121 - local.set $164 + local.get $123 + local.tee $126 + i32.store offset=280 + local.get $126 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.5 end @@ -11766,30 +11950,30 @@ if i32.const 0 i32.const 128 - i32.const 229 + i32.const 235 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $118 - local.set $164 + local.get $123 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 71 call $~lib/date/Date#setUTCFullYear block $~lib/date/Date#getUTCFullYear|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer - local.get $118 - local.tee $122 - i32.store offset=264 - local.get $122 - local.set $164 + local.get $123 + local.tee $127 + i32.store offset=284 + local.get $127 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.6 end @@ -11799,7 +11983,7 @@ if i32.const 0 i32.const 128 - i32.const 231 + i32.const 237 i32.const 3 call $~lib/builtins/abort unreachable @@ -11808,27 +11992,27 @@ i32.const 0 i64.const -62167219200000 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2672 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 237 + i32.const 243 i32.const 3 call $~lib/builtins/abort unreachable @@ -11839,27 +12023,27 @@ i64.const 1 i64.sub call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2752 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 239 + i32.const 245 i32.const 3 call $~lib/builtins/abort unreachable @@ -11868,27 +12052,27 @@ i32.const 0 i64.const -62127219200000 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2832 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 241 + i32.const 247 i32.const 3 call $~lib/builtins/abort unreachable @@ -11897,27 +12081,27 @@ i32.const 0 i64.const 1231231231020 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2912 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 243 + i32.const 249 i32.const 3 call $~lib/builtins/abort unreachable @@ -11926,27 +12110,27 @@ i32.const 0 i64.const 1231231231456 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 2992 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 245 + i32.const 251 i32.const 3 call $~lib/builtins/abort unreachable @@ -11955,27 +12139,27 @@ i32.const 0 i64.const 322331231231020 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 3072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 247 + i32.const 253 i32.const 3 call $~lib/builtins/abort unreachable @@ -11984,27 +12168,27 @@ i32.const 0 i64.const 253402300799999 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 3152 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 249 + i32.const 255 i32.const 3 call $~lib/builtins/abort unreachable @@ -12013,27 +12197,27 @@ i32.const 0 i64.const 253402300800000 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 3232 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 251 + i32.const 257 i32.const 3 call $~lib/builtins/abort unreachable @@ -12042,27 +12226,27 @@ i32.const 0 i64.const -62847038769226 call $~lib/date/Date#constructor - local.tee $123 - i32.store offset=268 - local.get $123 - local.set $164 + local.tee $128 + i32.store offset=288 + local.get $128 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 3312 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 253 + i32.const 259 i32.const 3 call $~lib/builtins/abort unreachable @@ -12071,27 +12255,27 @@ i32.const 0 i64.const -61536067200000 call $~lib/date/Date#constructor - local.tee $124 - i32.store offset=276 - local.get $124 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.tee $129 + i32.store offset=296 + local.get $129 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toDateString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 4240 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 259 + i32.const 265 i32.const 3 call $~lib/builtins/abort unreachable @@ -12100,27 +12284,27 @@ i32.const 0 i64.const 1580601600000 call $~lib/date/Date#constructor - local.tee $124 - i32.store offset=276 - local.get $124 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.tee $129 + i32.store offset=296 + local.get $129 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toDateString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 4304 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 261 + i32.const 267 i32.const 3 call $~lib/builtins/abort unreachable @@ -12129,27 +12313,27 @@ i32.const 0 i64.const -62183116800000 call $~lib/date/Date#constructor - local.tee $124 - i32.store offset=276 - local.get $124 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.tee $129 + i32.store offset=296 + local.get $129 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toDateString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 4368 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 264 + i32.const 270 i32.const 3 call $~lib/builtins/abort unreachable @@ -12158,27 +12342,27 @@ i32.const 0 i64.const -61536067200000 call $~lib/date/Date#constructor - local.tee $125 - i32.store offset=280 - local.get $125 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.tee $130 + i32.store offset=300 + local.get $130 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toTimeString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 4480 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 270 + i32.const 276 i32.const 3 call $~lib/builtins/abort unreachable @@ -12187,27 +12371,27 @@ i32.const 0 i64.const 253402300799999 call $~lib/date/Date#constructor - local.tee $125 - i32.store offset=280 - local.get $125 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.tee $130 + i32.store offset=300 + local.get $130 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toTimeString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 4528 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 273 + i32.const 279 i32.const 3 call $~lib/builtins/abort unreachable @@ -12216,27 +12400,27 @@ i32.const 0 i64.const -61536067200000 call $~lib/date/Date#constructor - local.tee $126 - i32.store offset=284 - local.get $126 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.tee $131 + i32.store offset=304 + local.get $131 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toUTCString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 5424 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 279 + i32.const 285 i32.const 3 call $~lib/builtins/abort unreachable @@ -12245,27 +12429,27 @@ i32.const 0 i64.const 1580741613467 call $~lib/date/Date#constructor - local.tee $126 - i32.store offset=284 - local.get $126 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.tee $131 + i32.store offset=304 + local.get $131 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toUTCString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 5504 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 281 + i32.const 287 i32.const 3 call $~lib/builtins/abort unreachable @@ -12274,27 +12458,27 @@ i32.const 0 i64.const -62183116800000 call $~lib/date/Date#constructor - local.tee $126 - i32.store offset=284 - local.get $126 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.tee $131 + i32.store offset=304 + local.get $131 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toUTCString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 5584 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 284 + i32.const 290 i32.const 3 call $~lib/builtins/abort unreachable @@ -12302,19 +12486,19 @@ global.get $~lib/memory/__stack_pointer i32.const 5664 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.26 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $128 - i32.store offset=292 - local.get $128 - local.set $164 + local.get $132 + local.tee $133 + i32.store offset=312 + local.get $133 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.26 end @@ -12324,7 +12508,7 @@ if i32.const 0 i32.const 128 - i32.const 291 + i32.const 297 i32.const 3 call $~lib/builtins/abort unreachable @@ -12332,19 +12516,19 @@ global.get $~lib/memory/__stack_pointer i32.const 5936 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.27 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $129 - i32.store offset=296 - local.get $129 - local.set $164 + local.get $132 + local.tee $134 + i32.store offset=316 + local.get $134 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.27 end @@ -12354,7 +12538,7 @@ if i32.const 0 i32.const 128 - i32.const 293 + i32.const 299 i32.const 3 call $~lib/builtins/abort unreachable @@ -12362,19 +12546,19 @@ global.get $~lib/memory/__stack_pointer i32.const 5984 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.28 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $130 - i32.store offset=300 - local.get $130 - local.set $164 + local.get $132 + local.tee $135 + i32.store offset=320 + local.get $135 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.28 end @@ -12384,7 +12568,7 @@ if i32.const 0 i32.const 128 - i32.const 295 + i32.const 301 i32.const 3 call $~lib/builtins/abort unreachable @@ -12392,19 +12576,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6032 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.29 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $131 - i32.store offset=304 - local.get $131 - local.set $164 + local.get $132 + local.tee $136 + i32.store offset=324 + local.get $136 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.29 end @@ -12414,7 +12598,7 @@ if i32.const 0 i32.const 128 - i32.const 299 + i32.const 305 i32.const 3 call $~lib/builtins/abort unreachable @@ -12422,19 +12606,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6096 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.30 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $132 - i32.store offset=308 local.get $132 - local.set $164 + local.tee $137 + i32.store offset=328 + local.get $137 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.30 end @@ -12444,7 +12628,7 @@ if i32.const 0 i32.const 128 - i32.const 303 + i32.const 309 i32.const 3 call $~lib/builtins/abort unreachable @@ -12452,19 +12636,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6176 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.31 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $133 - i32.store offset=312 - local.get $133 - local.set $164 + local.get $132 + local.tee $138 + i32.store offset=332 + local.get $138 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.31 end @@ -12474,7 +12658,7 @@ if i32.const 0 i32.const 128 - i32.const 307 + i32.const 313 i32.const 3 call $~lib/builtins/abort unreachable @@ -12482,19 +12666,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6256 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 - block $~lib/date/Date#getTime|inlined.32 (result i64) - global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $134 - i32.store offset=316 - local.get $134 - local.set $164 + local.tee $132 + i32.store offset=308 + block $~lib/date/Date#getTime|inlined.32 (result i64) + global.get $~lib/memory/__stack_pointer + local.get $132 + local.tee $139 + i32.store offset=336 + local.get $139 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.32 end @@ -12504,7 +12688,7 @@ if i32.const 0 i32.const 128 - i32.const 311 + i32.const 317 i32.const 3 call $~lib/builtins/abort unreachable @@ -12512,19 +12696,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6336 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.33 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $135 - i32.store offset=320 - local.get $135 - local.set $164 + local.get $132 + local.tee $140 + i32.store offset=340 + local.get $140 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.33 end @@ -12534,7 +12718,7 @@ if i32.const 0 i32.const 128 - i32.const 315 + i32.const 321 i32.const 3 call $~lib/builtins/abort unreachable @@ -12542,19 +12726,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6416 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.34 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $136 - i32.store offset=324 - local.get $136 - local.set $164 + local.get $132 + local.tee $141 + i32.store offset=344 + local.get $141 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.34 end @@ -12564,7 +12748,7 @@ if i32.const 0 i32.const 128 - i32.const 319 + i32.const 325 i32.const 3 call $~lib/builtins/abort unreachable @@ -12572,19 +12756,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6480 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.35 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $137 - i32.store offset=328 - local.get $137 - local.set $164 + local.get $132 + local.tee $142 + i32.store offset=348 + local.get $142 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.35 end @@ -12594,7 +12778,7 @@ if i32.const 0 i32.const 128 - i32.const 323 + i32.const 329 i32.const 3 call $~lib/builtins/abort unreachable @@ -12602,19 +12786,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6560 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.36 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $138 - i32.store offset=332 - local.get $138 - local.set $164 + local.get $132 + local.tee $143 + i32.store offset=352 + local.get $143 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.36 end @@ -12624,7 +12808,7 @@ if i32.const 0 i32.const 128 - i32.const 327 + i32.const 333 i32.const 3 call $~lib/builtins/abort unreachable @@ -12632,19 +12816,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6640 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.37 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $139 - i32.store offset=336 - local.get $139 - local.set $164 + local.get $132 + local.tee $144 + i32.store offset=356 + local.get $144 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.37 end @@ -12654,7 +12838,7 @@ if i32.const 0 i32.const 128 - i32.const 331 + i32.const 337 i32.const 3 call $~lib/builtins/abort unreachable @@ -12662,19 +12846,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6720 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.38 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $140 - i32.store offset=340 - local.get $140 - local.set $164 + local.get $132 + local.tee $145 + i32.store offset=360 + local.get $145 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.38 end @@ -12684,7 +12868,7 @@ if i32.const 0 i32.const 128 - i32.const 335 + i32.const 341 i32.const 3 call $~lib/builtins/abort unreachable @@ -12692,19 +12876,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6800 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.39 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $141 - i32.store offset=344 - local.get $141 - local.set $164 + local.get $132 + local.tee $146 + i32.store offset=364 + local.get $146 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.39 end @@ -12714,7 +12898,7 @@ if i32.const 0 i32.const 128 - i32.const 339 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable @@ -12722,19 +12906,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6896 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.40 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $142 - i32.store offset=348 - local.get $142 - local.set $164 + local.get $132 + local.tee $147 + i32.store offset=368 + local.get $147 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.40 end @@ -12744,7 +12928,7 @@ if i32.const 0 i32.const 128 - i32.const 342 + i32.const 348 i32.const 3 call $~lib/builtins/abort unreachable @@ -12752,19 +12936,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6928 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.41 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $143 - i32.store offset=352 - local.get $143 - local.set $164 + local.get $132 + local.tee $148 + i32.store offset=372 + local.get $148 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.41 end @@ -12774,7 +12958,7 @@ if i32.const 0 i32.const 128 - i32.const 345 + i32.const 351 i32.const 3 call $~lib/builtins/abort unreachable @@ -12782,19 +12966,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6960 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.42 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $144 - i32.store offset=356 - local.get $144 - local.set $164 + local.get $132 + local.tee $149 + i32.store offset=376 + local.get $149 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.42 end @@ -12804,7 +12988,7 @@ if i32.const 0 i32.const 128 - i32.const 348 + i32.const 354 i32.const 3 call $~lib/builtins/abort unreachable @@ -12812,19 +12996,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6992 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.43 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $145 - i32.store offset=360 - local.get $145 - local.set $164 + local.get $132 + local.tee $150 + i32.store offset=380 + local.get $150 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.43 end @@ -12834,7 +13018,7 @@ if i32.const 0 i32.const 128 - i32.const 351 + i32.const 357 i32.const 3 call $~lib/builtins/abort unreachable @@ -12842,19 +13026,19 @@ global.get $~lib/memory/__stack_pointer i32.const 5664 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.44 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $146 - i32.store offset=364 - local.get $146 - local.set $164 + local.get $132 + local.tee $151 + i32.store offset=384 + local.get $151 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.44 end @@ -12864,7 +13048,7 @@ if i32.const 0 i32.const 128 - i32.const 354 + i32.const 360 i32.const 3 call $~lib/builtins/abort unreachable @@ -12872,19 +13056,19 @@ global.get $~lib/memory/__stack_pointer i32.const 7040 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.45 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $147 - i32.store offset=368 - local.get $147 - local.set $164 + local.get $132 + local.tee $152 + i32.store offset=388 + local.get $152 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.45 end @@ -12894,7 +13078,7 @@ if i32.const 0 i32.const 128 - i32.const 357 + i32.const 363 i32.const 3 call $~lib/builtins/abort unreachable @@ -12902,19 +13086,19 @@ global.get $~lib/memory/__stack_pointer i32.const 6032 call $~lib/date/Date.fromString - local.tee $127 - i32.store offset=288 + local.tee $132 + i32.store offset=308 block $~lib/date/Date#getTime|inlined.46 (result i64) global.get $~lib/memory/__stack_pointer - local.get $127 - local.tee $148 - i32.store offset=372 - local.get $148 - local.set $164 + local.get $132 + local.tee $153 + i32.store offset=392 + local.get $153 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.46 end @@ -12924,7 +13108,7 @@ if i32.const 0 i32.const 128 - i32.const 360 + i32.const 366 i32.const 3 call $~lib/builtins/abort unreachable @@ -12933,25 +13117,25 @@ i32.const 0 i64.const -8640000000000000 call $~lib/date/Date#constructor - local.tee $149 - i32.store offset=376 + local.tee $154 + i32.store offset=396 global.get $~lib/memory/__stack_pointer i32.const 0 i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $150 - i32.store offset=380 + local.tee $155 + i32.store offset=400 block $~lib/date/Date#getTime|inlined.47 (result i64) global.get $~lib/memory/__stack_pointer - local.get $149 - local.tee $151 - i32.store offset=384 - local.get $151 - local.set $164 + local.get $154 + local.tee $156 + i32.store offset=404 + local.get $156 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.47 end @@ -12961,22 +13145,22 @@ if i32.const 0 i32.const 128 - i32.const 378 + i32.const 384 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getTime|inlined.48 (result i64) global.get $~lib/memory/__stack_pointer - local.get $150 - local.tee $152 - i32.store offset=388 - local.get $152 - local.set $164 + local.get $155 + local.tee $157 + i32.store offset=408 + local.get $157 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:epochMillis br $~lib/date/Date#getTime|inlined.48 end @@ -12986,22 +13170,22 @@ if i32.const 0 i32.const 128 - i32.const 379 + i32.const 385 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCFullYear|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer - local.get $149 - local.tee $153 - i32.store offset=392 - local.get $153 - local.set $164 + local.get $154 + local.tee $158 + i32.store offset=412 + local.get $158 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.7 end @@ -13011,22 +13195,22 @@ if i32.const 0 i32.const 128 - i32.const 381 + i32.const 387 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCFullYear|inlined.8 (result i32) global.get $~lib/memory/__stack_pointer - local.get $150 - local.tee $154 - i32.store offset=396 - local.get $154 - local.set $164 + local.get $155 + local.tee $159 + i32.store offset=416 + local.get $159 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.8 end @@ -13036,22 +13220,22 @@ if i32.const 0 i32.const 128 - i32.const 382 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.10 (result i32) global.get $~lib/memory/__stack_pointer - local.get $149 - local.tee $155 - i32.store offset=400 - local.get $155 - local.set $164 + local.get $154 + local.tee $160 + i32.store offset=420 + local.get $160 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -13063,22 +13247,22 @@ if i32.const 0 i32.const 128 - i32.const 384 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.11 (result i32) global.get $~lib/memory/__stack_pointer - local.get $150 - local.tee $156 - i32.store offset=404 - local.get $156 - local.set $164 + local.get $155 + local.tee $161 + i32.store offset=424 + local.get $161 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -13090,22 +13274,22 @@ if i32.const 0 i32.const 128 - i32.const 385 + i32.const 391 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer - local.get $149 - local.tee $157 - i32.store offset=408 - local.get $157 - local.set $164 + local.get $154 + local.tee $162 + i32.store offset=428 + local.get $162 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.5 end @@ -13115,22 +13299,22 @@ if i32.const 0 i32.const 128 - i32.const 387 + i32.const 393 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer - local.get $150 - local.tee $158 - i32.store offset=412 - local.get $158 - local.set $164 + local.get $155 + local.tee $163 + i32.store offset=432 + local.get $163 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.6 end @@ -13140,53 +13324,53 @@ if i32.const 0 i32.const 128 - i32.const 388 + i32.const 394 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $149 - local.set $164 + local.get $154 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 7104 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 390 + i32.const 396 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $150 - local.set $164 + local.get $155 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 7184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 391 + i32.const 397 i32.const 3 call $~lib/builtins/abort unreachable @@ -13197,27 +13381,27 @@ i64.const 1 i64.sub call $~lib/date/Date#constructor - local.tee $159 - i32.store offset=416 + local.tee $164 + i32.store offset=436 global.get $~lib/memory/__stack_pointer i32.const 0 i64.const -8640000000000000 i64.const 1 i64.add call $~lib/date/Date#constructor - local.tee $160 - i32.store offset=420 + local.tee $165 + i32.store offset=440 block $~lib/date/Date#getUTCFullYear|inlined.9 (result i32) global.get $~lib/memory/__stack_pointer - local.get $160 - local.tee $161 - i32.store offset=424 - local.get $161 - local.set $164 + local.get $165 + local.tee $166 + i32.store offset=444 + local.get $166 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:year br $~lib/date/Date#getUTCFullYear|inlined.9 end @@ -13227,22 +13411,22 @@ if i32.const 0 i32.const 128 - i32.const 396 + i32.const 402 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCMonth|inlined.12 (result i32) global.get $~lib/memory/__stack_pointer - local.get $160 - local.tee $162 - i32.store offset=428 - local.get $162 - local.set $164 + local.get $165 + local.tee $167 + i32.store offset=448 + local.get $167 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:month i32.const 1 i32.sub @@ -13254,22 +13438,22 @@ if i32.const 0 i32.const 128 - i32.const 397 + i32.const 403 i32.const 3 call $~lib/builtins/abort unreachable end block $~lib/date/Date#getUTCDate|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer - local.get $160 - local.tee $163 - i32.store offset=432 - local.get $163 - local.set $164 + local.get $165 + local.tee $168 + i32.store offset=452 + local.get $168 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#get:day br $~lib/date/Date#getUTCDate|inlined.7 end @@ -13279,17 +13463,17 @@ if i32.const 0 i32.const 128 - i32.const 398 + i32.const 404 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $160 - local.set $164 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCHours i32.const 0 i32.eq @@ -13297,17 +13481,17 @@ if i32.const 0 i32.const 128 - i32.const 399 + i32.const 405 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $160 - local.set $164 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMinutes i32.const 0 i32.eq @@ -13315,17 +13499,17 @@ if i32.const 0 i32.const 128 - i32.const 400 + i32.const 406 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $160 - local.set $164 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCSeconds i32.const 0 i32.eq @@ -13333,17 +13517,17 @@ if i32.const 0 i32.const 128 - i32.const 401 + i32.const 407 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $160 - local.set $164 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 call $~lib/date/Date#getUTCMilliseconds i32.const 1 i32.eq @@ -13351,59 +13535,59 @@ if i32.const 0 i32.const 128 - i32.const 402 + i32.const 408 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $159 - local.set $164 - global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 local.get $164 + local.set $169 + global.get $~lib/memory/__stack_pointer + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 7264 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 404 + i32.const 410 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $160 - local.set $164 + local.get $165 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 - i32.store offset=272 - local.get $164 + local.get $169 + i32.store offset=292 + local.get $169 call $~lib/date/Date#toISOString - local.set $164 + local.set $169 global.get $~lib/memory/__stack_pointer - local.get $164 + local.get $169 i32.store offset=8 - local.get $164 + local.get $169 i32.const 7344 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 128 - i32.const 405 + i32.const 411 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 436 + i32.const 456 i32.add global.set $~lib/memory/__stack_pointer ) diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index b5fe4f437c..ada5d9f64a 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -317,7 +317,7 @@ if i32.const 1056 i32.const 1104 - i32.const 131 + i32.const 130 i32.const 35 call $~lib/builtins/abort unreachable @@ -529,7 +529,7 @@ if i32.const 1056 i32.const 1104 - i32.const 50 + i32.const 49 i32.const 33 call $~lib/builtins/abort unreachable @@ -607,7 +607,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - block $__inlined_func$~lib/string/String#charCodeAt$386 + block $__inlined_func$~lib/string/String#charCodeAt$401 local.get $3 local.get $2 i32.const 20 @@ -623,7 +623,7 @@ global.set $~lib/memory/__stack_pointer i32.const -1 local.set $0 - br $__inlined_func$~lib/string/String#charCodeAt$386 + br $__inlined_func$~lib/string/String#charCodeAt$401 end local.get $2 local.get $3 @@ -666,7 +666,7 @@ if i32.const 1056 i32.const 1104 - i32.const 74 + i32.const 73 i32.const 13 call $~lib/builtins/abort unreachable @@ -798,7 +798,7 @@ if i32.const 1056 i32.const 1104 - i32.const 96 + i32.const 95 i32.const 21 call $~lib/builtins/abort unreachable @@ -895,7 +895,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - block $__inlined_func$~lib/string/String#substr$387 (result i32) + block $__inlined_func$~lib/string/String#substr$402 (result i32) i32.const 3 local.get $2 i32.const 20 @@ -937,7 +937,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 - br $__inlined_func$~lib/string/String#substr$387 + br $__inlined_func$~lib/string/String#substr$402 end global.get $~lib/memory/__stack_pointer local.get $8 @@ -987,7 +987,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store - block $__inlined_func$~lib/string/String#padEnd$388 + block $__inlined_func$~lib/string/String#padEnd$403 i32.const 1868 i32.load i32.const -2 @@ -1003,7 +1003,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#padEnd$388 + br $__inlined_func$~lib/string/String#padEnd$403 end global.get $~lib/memory/__stack_pointer i32.const 6 @@ -1562,7 +1562,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store - block $__inlined_func$~lib/string/String#padStart$384 + block $__inlined_func$~lib/string/String#padStart$399 i32.const 1868 i32.load i32.const -2 @@ -1581,7 +1581,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#padStart$384 + br $__inlined_func$~lib/string/String#padStart$399 end global.get $~lib/memory/__stack_pointer local.get $5 @@ -1761,7 +1761,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - block $__inlined_func$~lib/string/String#concat$385 + block $__inlined_func$~lib/string/String#concat$400 local.get $4 i32.const 20 i32.sub @@ -1780,7 +1780,7 @@ global.set $~lib/memory/__stack_pointer i32.const 3456 local.set $1 - br $__inlined_func$~lib/string/String#concat$385 + br $__inlined_func$~lib/string/String#concat$400 end global.get $~lib/memory/__stack_pointer local.get $1 @@ -2820,7 +2820,7 @@ if i32.const 1056 i32.const 1104 - i32.const 143 + i32.const 142 i32.const 28 call $~lib/builtins/abort unreachable @@ -3975,7 +3975,7 @@ local.get $1 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$376 + block $__inlined_func$~lib/rt/itcms/Object#unlink$391 local.get $0 i32.load offset=4 i32.const -4 @@ -3999,7 +3999,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$376 + br $__inlined_func$~lib/rt/itcms/Object#unlink$391 end local.get $0 i32.load offset=8 @@ -4308,6 +4308,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 76 i32.sub @@ -4331,99 +4332,91 @@ i32.const 28 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 5824 i32.const 28 memory.copy - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 48 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.const 6256 i32.const 48 memory.copy - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load offset=8 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u local.get $0 i32.load - local.tee $5 - local.get $3 - i32.const 3 - i32.lt_s - i32.sub local.tee $6 - i32.const 3 + local.get $4 + i32.const 2 + i32.le_s + i32.sub + local.tee $7 + i32.const 2 + i32.shr_s + local.tee $8 + i32.const 24 i32.const 0 - local.get $6 + local.get $8 i32.const 0 i32.lt_s - local.tee $7 - select - i32.sub - i32.const 4 - i32.div_s - local.get $6 - i32.const 99 - i32.const 0 - local.get $7 select i32.sub - i32.const 100 + i32.const 25 i32.div_s - i32.sub - local.get $6 - i32.const 399 + local.set $1 + i32.const 7 i32.const 0 + local.get $4 + i32.const 1579 + i32.add + i32.load8_u local.get $7 - select + local.get $8 + local.get $1 i32.sub - i32.const 400 - i32.div_s + local.get $1 + i32.const 2 + i32.shr_s i32.add - local.get $6 i32.add i32.add - local.get $4 + local.get $5 i32.add i32.const 7 i32.rem_s - local.tee $6 + local.tee $1 i32.const 0 i32.lt_s select - local.get $6 + local.get $1 i32.add - local.set $6 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 31 i32.shr_s local.tee $7 - local.get $5 + local.get $6 local.get $7 i32.add i32.xor @@ -4432,25 +4425,25 @@ local.tee $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $4 i32.const 1 i32.sub i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - local.get $6 i32.const 2 i32.shl i32.add @@ -4458,10 +4451,10 @@ local.tee $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 2 call $~lib/date/stringify - local.tee $3 + local.tee $2 i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4481,7 +4474,7 @@ call $~lib/date/Date#getUTCMinutes i32.const 2 call $~lib/date/stringify - local.tee $6 + local.tee $5 i32.store offset=32 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4497,19 +4490,19 @@ local.get $1 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=48 global.get $~lib/memory/__stack_pointer i32.const 1616 i32.const 3456 - local.get $5 + local.get $6 i32.const 0 i32.lt_s select - local.tee $5 + local.tee $6 i32.store offset=52 global.get $~lib/memory/__stack_pointer local.get $7 @@ -4518,7 +4511,7 @@ local.get $4 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=64 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4540,39 +4533,39 @@ i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=72 i32.const 6372 - local.get $3 + local.get $2 i32.store i32.const 6368 - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=72 i32.const 6376 - local.get $2 + local.get $3 i32.store i32.const 6368 - local.get $2 + local.get $3 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=72 i32.const 6380 - local.get $5 + local.get $6 i32.store i32.const 6368 - local.get $5 + local.get $6 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -4605,13 +4598,13 @@ i32.const 6368 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=72 i32.const 6400 - local.get $6 + local.get $5 i32.store i32.const 6368 - local.get $6 + local.get $5 i32.const 1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -4644,6 +4637,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 52 i32.sub @@ -4667,21 +4661,21 @@ i32.const 28 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.const 4640 i32.const 28 memory.copy - local.get $2 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 48 i32.const 5 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.const 5072 i32.const 48 memory.copy - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -4694,66 +4688,58 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $1 - i32.const 1579 - i32.add - i32.load8_u local.get $0 i32.load local.tee $0 local.get $1 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $5 - i32.const 3 + local.tee $6 + i32.const 2 + i32.shr_s + local.tee $7 + i32.const 24 i32.const 0 - local.get $5 + local.get $7 i32.const 0 i32.lt_s - local.tee $6 - select - i32.sub - i32.const 4 - i32.div_s - local.get $5 - i32.const 99 - i32.const 0 - local.get $6 select i32.sub - i32.const 100 + i32.const 25 i32.div_s - i32.sub - local.get $5 - i32.const 399 + local.set $2 + i32.const 7 i32.const 0 + local.get $1 + i32.const 1579 + i32.add + i32.load8_u local.get $6 - select + local.get $7 + local.get $2 i32.sub - i32.const 400 - i32.div_s + local.get $2 + i32.const 2 + i32.shr_s i32.add - local.get $5 i32.add i32.add - local.get $4 + local.get $5 i32.add i32.const 7 i32.rem_s - local.tee $5 + local.tee $2 i32.const 0 i32.lt_s select - local.get $5 + local.get $2 i32.add - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.const 31 @@ -4768,10 +4754,10 @@ local.tee $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 local.get $1 i32.const 1 i32.sub @@ -4782,11 +4768,11 @@ local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $3 local.get $2 - local.get $5 i32.const 2 i32.shl i32.add @@ -4794,7 +4780,7 @@ local.tee $2 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 2 call $~lib/date/stringify local.tee $3 @@ -5409,7 +5395,6 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) local.get $0 i64.const 86399999 i64.const 0 @@ -5427,19 +5412,19 @@ i32.add i32.const 3 i32.or - local.tee $1 + local.tee $2 i32.const 146096 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.lt_s select i32.sub i32.const 146097 i32.div_s - local.set $2 - local.get $1 + local.set $1 local.get $2 + local.get $1 i32.const 146097 i32.mul i32.sub @@ -5452,26 +5437,12 @@ i32.wrap_i64 i32.const 11758980 i32.div_u - local.tee $4 + local.tee $2 i32.const 2141 i32.mul i32.const 197913 i32.add - local.set $3 - local.get $0 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.get $2 - i32.const 100 - i32.mul - i32.add - local.set $1 - local.get $3 - i32.const 16 - i32.shr_u - local.set $2 - local.get $3 + local.tee $3 i32.const 65535 i32.and i32.const 2141 @@ -5479,22 +5450,28 @@ i32.const 1 i32.add global.set $~lib/date/_day - local.get $4 + local.get $3 + i32.const 16 + i32.shr_u + i32.const 12 + i32.const 0 + local.get $2 i32.const 306 i32.ge_u - if - local.get $2 - i32.const 12 - i32.sub - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - end - local.get $2 + local.tee $2 + select + i32.sub global.set $~lib/date/_month + local.get $0 + i64.const 32 + i64.shr_u + i32.wrap_i64 local.get $1 + i32.const 100 + i32.mul + i32.add + local.get $2 + i32.add ) (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) (local $1 i32) @@ -5653,7 +5630,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$363 + block $__inlined_func$~lib/rt/itcms/__renew$378 i32.const 1073741820 local.get $2 i32.const 1 @@ -5696,7 +5673,7 @@ i32.store offset=16 local.get $2 local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$363 + br $__inlined_func$~lib/rt/itcms/__renew$378 end local.get $3 local.get $4 @@ -6823,8 +6800,10 @@ (local $1 i64) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 436 + i32.const 456 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6840,7 +6819,7 @@ end global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 436 + i32.const 456 memory.fill block $folding-inner0 i32.const 1970 @@ -8352,7 +8331,6 @@ i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8362,6 +8340,24 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 i32.const 7 i32.const 0 local.get $0 @@ -8371,40 +8367,161 @@ i32.add i32.load8_u local.get $2 - local.get $3 - i32.const 3 - i32.lt_s + local.get $4 + local.get $5 i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s local.tee $0 - i32.const 3 i32.const 0 + i32.lt_s + select + local.get $0 + i32.add + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 1467763199999 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=176 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 + local.get $0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select - i32.sub - i32.const 100 - i32.div_s + local.get $4 + local.get $5 i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s + local.tee $0 + i32.const 0 + i32.lt_s + select local.get $0 - i32.const 399 + i32.add + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 188 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 1467849599999 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=180 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $2 + local.get $4 + i32.const 0 + i32.lt_s select i32.sub - i32.const 400 + i32.const 25 i32.div_s - i32.add + local.set $5 + i32.const 7 + i32.const 0 local.get $0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u + local.get $2 + local.get $4 + local.get $5 + i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add i32.add i32.add i32.add @@ -8421,22 +8538,21 @@ if i32.const 0 i32.const 1152 - i32.const 187 + i32.const 189 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1467763199999 + i64.const 1467849600000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=176 + i32.store offset=184 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8446,6 +8562,24 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 i32.const 7 i32.const 0 local.get $0 @@ -8455,40 +8589,87 @@ i32.add i32.load8_u local.get $2 - local.get $3 - i32.const 3 - i32.lt_s + local.get $4 + local.get $5 i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s local.tee $0 - i32.const 3 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s - local.tee $2 select - i32.sub + local.get $0 + i32.add i32.const 4 - i32.div_s + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 1468022400000 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=188 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 - i32.const 99 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $2 + local.get $4 + i32.const 0 + i32.lt_s select i32.sub - i32.const 100 + i32.const 25 i32.div_s - i32.sub - local.get $0 - i32.const 399 + local.set $5 + i32.const 7 i32.const 0 + local.get $0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8500,27 +8681,26 @@ select local.get $0 i32.add - i32.const 2 + i32.const 6 i32.ne if i32.const 0 i32.const 1152 - i32.const 188 + i32.const 192 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1467849599999 + i64.const 1468022399999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=180 + i32.store offset=192 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8530,6 +8710,24 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 i32.const 7 i32.const 0 local.get $0 @@ -8539,40 +8737,87 @@ i32.add i32.load8_u local.get $2 - local.get $3 - i32.const 3 - i32.lt_s + local.get $4 + local.get $5 i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s local.tee $0 - i32.const 3 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s - local.tee $2 select - i32.sub - i32.const 4 - i32.div_s local.get $0 - i32.const 99 + i32.add + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 1468108799999 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=196 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $2 + local.get $4 + i32.const 0 + i32.lt_s select i32.sub - i32.const 100 + i32.const 25 i32.div_s - i32.sub - local.get $0 - i32.const 399 + local.set $5 + i32.const 7 i32.const 0 + local.get $0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8584,27 +8829,26 @@ select local.get $0 i32.add - i32.const 3 + i32.const 6 i32.ne if i32.const 0 i32.const 1152 - i32.const 189 + i32.const 194 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1467849600000 + i64.const 1468108800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=184 + i32.store offset=200 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8614,6 +8858,24 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 + i32.const 0 + local.get $4 + i32.const 0 + i32.lt_s + select + i32.sub + i32.const 25 + i32.div_s + local.set $5 i32.const 7 i32.const 0 local.get $0 @@ -8623,40 +8885,85 @@ i32.add i32.load8_u local.get $2 - local.get $3 - i32.const 3 - i32.lt_s + local.get $4 + local.get $5 i32.sub + local.get $5 + i32.const 2 + i32.shr_s + i32.add + i32.add + i32.add + i32.add + i32.const 7 + i32.rem_s local.tee $0 - i32.const 3 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s - local.tee $2 select - i32.sub - i32.const 4 - i32.div_s local.get $0 - i32.const 99 + i32.add + if + i32.const 0 + i32.const 1152 + i32.const 195 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const -8640000000000000 + call $~lib/date/Date#constructor + local.tee $0 + i32.store offset=204 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $3 + i32.const 2 + i32.le_s + i32.sub + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $2 + local.get $4 + i32.const 0 + i32.lt_s select i32.sub - i32.const 100 + i32.const 25 i32.div_s - i32.sub - local.get $0 - i32.const 399 + local.set $5 + i32.const 7 i32.const 0 + local.get $0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8668,27 +8975,26 @@ select local.get $0 i32.add - i32.const 4 + i32.const 2 i32.ne if i32.const 0 i32.const 1152 - i32.const 190 + i32.const 197 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1468022400000 + i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=188 + i32.store offset=208 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8698,49 +9004,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8752,27 +9049,26 @@ select local.get $0 i32.add - i32.const 6 + i32.const 4 i32.ne if i32.const 0 i32.const 1152 - i32.const 192 + i32.const 198 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1468022399999 + i64.const 0 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=192 + i32.store offset=212 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8782,49 +9078,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8836,27 +9123,26 @@ select local.get $0 i32.add - i32.const 5 + i32.const 4 i32.ne if i32.const 0 i32.const 1152 - i32.const 193 + i32.const 199 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1468108799999 + i64.const 1709164800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=196 + i32.store offset=216 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8866,49 +9152,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -8920,27 +9197,26 @@ select local.get $0 i32.add - i32.const 6 + i32.const 4 i32.ne if i32.const 0 i32.const 1152 - i32.const 194 + i32.const 200 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i64.const 1468108800000 + i64.const 8640000000000000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=200 + i32.store offset=220 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -8950,49 +9226,40 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - i32.const 7 - i32.const 0 - local.get $0 - i32.load offset=8 - local.get $3 - i32.const 1579 - i32.add - i32.load8_u - local.get $2 local.get $3 - i32.const 3 - i32.lt_s + i32.const 2 + i32.le_s i32.sub - local.tee $0 - i32.const 3 + local.tee $2 + i32.const 2 + i32.shr_s + local.tee $4 + i32.const 24 i32.const 0 - local.get $0 + local.get $4 i32.const 0 i32.lt_s - local.tee $2 select i32.sub - i32.const 4 + i32.const 25 i32.div_s - local.get $0 - i32.const 99 + local.set $5 + i32.const 7 i32.const 0 - local.get $2 - select - i32.sub - i32.const 100 - i32.div_s - i32.sub local.get $0 - i32.const 399 - i32.const 0 + i32.load offset=8 + local.get $3 + i32.const 1579 + i32.add + i32.load8_u local.get $2 - select + local.get $4 + local.get $5 i32.sub - i32.const 400 - i32.div_s + local.get $5 + i32.const 2 + i32.shr_s i32.add - local.get $0 i32.add i32.add i32.add @@ -9004,10 +9271,12 @@ select local.get $0 i32.add + i32.const 6 + i32.ne if i32.const 0 i32.const 1152 - i32.const 195 + i32.const 201 i32.const 3 call $~lib/builtins/abort unreachable @@ -9016,10 +9285,10 @@ i64.const 7899943856218720 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=204 + i32.store offset=224 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=208 + i32.store offset=228 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9030,7 +9299,7 @@ if i32.const 0 i32.const 1152 - i32.const 201 + i32.const 207 i32.const 3 call $~lib/builtins/abort unreachable @@ -9045,7 +9314,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=212 + i32.store offset=232 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9056,7 +9325,7 @@ if i32.const 0 i32.const 1152 - i32.const 203 + i32.const 209 i32.const 3 call $~lib/builtins/abort unreachable @@ -9071,7 +9340,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=216 + i32.store offset=236 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9082,14 +9351,14 @@ if i32.const 0 i32.const 1152 - i32.const 205 + i32.const 211 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=220 + i32.store offset=240 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9100,7 +9369,7 @@ if i32.const 0 i32.const 1152 - i32.const 206 + i32.const 212 i32.const 3 call $~lib/builtins/abort unreachable @@ -9115,7 +9384,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=224 + i32.store offset=244 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9126,7 +9395,7 @@ if i32.const 0 i32.const 1152 - i32.const 209 + i32.const 215 i32.const 3 call $~lib/builtins/abort unreachable @@ -9141,7 +9410,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=228 + i32.store offset=248 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9152,7 +9421,7 @@ if i32.const 0 i32.const 1152 - i32.const 211 + i32.const 217 i32.const 3 call $~lib/builtins/abort unreachable @@ -9167,7 +9436,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=232 + i32.store offset=252 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9178,14 +9447,14 @@ if i32.const 0 i32.const 1152 - i32.const 215 + i32.const 221 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=236 + i32.store offset=256 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9196,7 +9465,7 @@ if i32.const 0 i32.const 1152 - i32.const 216 + i32.const 222 i32.const 3 call $~lib/builtins/abort unreachable @@ -9211,7 +9480,7 @@ call $~lib/date/Date#setUTCMonth@varargs global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=240 + i32.store offset=260 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9222,14 +9491,14 @@ if i32.const 0 i32.const 1152 - i32.const 218 + i32.const 224 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=244 + i32.store offset=264 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9240,7 +9509,7 @@ if i32.const 0 i32.const 1152 - i32.const 219 + i32.const 225 i32.const 3 call $~lib/builtins/abort unreachable @@ -9249,10 +9518,10 @@ i64.const 7941202527925698 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=248 + i32.store offset=268 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=252 + i32.store offset=272 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9263,7 +9532,7 @@ if i32.const 0 i32.const 1152 - i32.const 225 + i32.const 231 i32.const 3 call $~lib/builtins/abort unreachable @@ -9276,7 +9545,7 @@ call $~lib/date/Date#setUTCFullYear global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=256 + i32.store offset=276 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9287,7 +9556,7 @@ if i32.const 0 i32.const 1152 - i32.const 227 + i32.const 233 i32.const 3 call $~lib/builtins/abort unreachable @@ -9300,7 +9569,7 @@ call $~lib/date/Date#setUTCFullYear global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=260 + i32.store offset=280 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9311,7 +9580,7 @@ if i32.const 0 i32.const 1152 - i32.const 229 + i32.const 235 i32.const 3 call $~lib/builtins/abort unreachable @@ -9324,7 +9593,7 @@ call $~lib/date/Date#setUTCFullYear global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=264 + i32.store offset=284 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9335,7 +9604,7 @@ if i32.const 0 i32.const 1152 - i32.const 231 + i32.const 237 i32.const 3 call $~lib/builtins/abort unreachable @@ -9344,10 +9613,10 @@ i64.const -62167219200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9361,7 +9630,7 @@ if i32.const 0 i32.const 1152 - i32.const 237 + i32.const 243 i32.const 3 call $~lib/builtins/abort unreachable @@ -9370,10 +9639,10 @@ i64.const -62167219200001 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9387,7 +9656,7 @@ if i32.const 0 i32.const 1152 - i32.const 239 + i32.const 245 i32.const 3 call $~lib/builtins/abort unreachable @@ -9396,10 +9665,10 @@ i64.const -62127219200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9413,7 +9682,7 @@ if i32.const 0 i32.const 1152 - i32.const 241 + i32.const 247 i32.const 3 call $~lib/builtins/abort unreachable @@ -9422,10 +9691,10 @@ i64.const 1231231231020 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9439,7 +9708,7 @@ if i32.const 0 i32.const 1152 - i32.const 243 + i32.const 249 i32.const 3 call $~lib/builtins/abort unreachable @@ -9448,10 +9717,10 @@ i64.const 1231231231456 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9465,7 +9734,7 @@ if i32.const 0 i32.const 1152 - i32.const 245 + i32.const 251 i32.const 3 call $~lib/builtins/abort unreachable @@ -9474,10 +9743,10 @@ i64.const 322331231231020 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9491,7 +9760,7 @@ if i32.const 0 i32.const 1152 - i32.const 247 + i32.const 253 i32.const 3 call $~lib/builtins/abort unreachable @@ -9500,10 +9769,10 @@ i64.const 253402300799999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9517,7 +9786,7 @@ if i32.const 0 i32.const 1152 - i32.const 249 + i32.const 255 i32.const 3 call $~lib/builtins/abort unreachable @@ -9526,10 +9795,10 @@ i64.const 253402300800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9543,7 +9812,7 @@ if i32.const 0 i32.const 1152 - i32.const 251 + i32.const 257 i32.const 3 call $~lib/builtins/abort unreachable @@ -9552,10 +9821,10 @@ i64.const -62847038769226 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=268 + i32.store offset=288 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -9569,7 +9838,7 @@ if i32.const 0 i32.const 1152 - i32.const 253 + i32.const 259 i32.const 3 call $~lib/builtins/abort unreachable @@ -9578,10 +9847,10 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=276 + i32.store offset=296 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toDateString local.set $0 @@ -9595,7 +9864,7 @@ if i32.const 0 i32.const 1152 - i32.const 259 + i32.const 265 i32.const 3 call $~lib/builtins/abort unreachable @@ -9604,10 +9873,10 @@ i64.const 1580601600000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=276 + i32.store offset=296 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toDateString local.set $0 @@ -9621,7 +9890,7 @@ if i32.const 0 i32.const 1152 - i32.const 261 + i32.const 267 i32.const 3 call $~lib/builtins/abort unreachable @@ -9630,10 +9899,10 @@ i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=276 + i32.store offset=296 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toDateString local.set $0 @@ -9647,7 +9916,7 @@ if i32.const 0 i32.const 1152 - i32.const 264 + i32.const 270 i32.const 3 call $~lib/builtins/abort unreachable @@ -9656,10 +9925,10 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=280 + i32.store offset=300 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toTimeString local.set $0 @@ -9673,7 +9942,7 @@ if i32.const 0 i32.const 1152 - i32.const 270 + i32.const 276 i32.const 3 call $~lib/builtins/abort unreachable @@ -9682,10 +9951,10 @@ i64.const 253402300799999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=280 + i32.store offset=300 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toTimeString local.set $0 @@ -9699,7 +9968,7 @@ if i32.const 0 i32.const 1152 - i32.const 273 + i32.const 279 i32.const 3 call $~lib/builtins/abort unreachable @@ -9708,10 +9977,10 @@ i64.const -61536067200000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=284 + i32.store offset=304 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toUTCString local.set $0 @@ -9725,7 +9994,7 @@ if i32.const 0 i32.const 1152 - i32.const 279 + i32.const 285 i32.const 3 call $~lib/builtins/abort unreachable @@ -9734,10 +10003,10 @@ i64.const 1580741613467 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=284 + i32.store offset=304 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toUTCString local.set $0 @@ -9751,7 +10020,7 @@ if i32.const 0 i32.const 1152 - i32.const 281 + i32.const 287 i32.const 3 call $~lib/builtins/abort unreachable @@ -9760,10 +10029,10 @@ i64.const -62183116800000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=284 + i32.store offset=304 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toUTCString local.set $0 @@ -9777,7 +10046,7 @@ if i32.const 0 i32.const 1152 - i32.const 284 + i32.const 290 i32.const 3 call $~lib/builtins/abort unreachable @@ -9786,10 +10055,10 @@ i32.const 6688 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=292 + i32.store offset=312 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9800,7 +10069,7 @@ if i32.const 0 i32.const 1152 - i32.const 291 + i32.const 297 i32.const 3 call $~lib/builtins/abort unreachable @@ -9809,10 +10078,10 @@ i32.const 6960 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=296 + i32.store offset=316 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9823,7 +10092,7 @@ if i32.const 0 i32.const 1152 - i32.const 293 + i32.const 299 i32.const 3 call $~lib/builtins/abort unreachable @@ -9832,10 +10101,10 @@ i32.const 7008 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=300 + i32.store offset=320 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9846,7 +10115,7 @@ if i32.const 0 i32.const 1152 - i32.const 295 + i32.const 301 i32.const 3 call $~lib/builtins/abort unreachable @@ -9855,10 +10124,10 @@ i32.const 7056 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=304 + i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9869,7 +10138,7 @@ if i32.const 0 i32.const 1152 - i32.const 299 + i32.const 305 i32.const 3 call $~lib/builtins/abort unreachable @@ -9878,10 +10147,10 @@ i32.const 7120 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=308 + i32.store offset=328 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9892,7 +10161,7 @@ if i32.const 0 i32.const 1152 - i32.const 303 + i32.const 309 i32.const 3 call $~lib/builtins/abort unreachable @@ -9901,10 +10170,10 @@ i32.const 7200 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=312 + i32.store offset=332 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9915,7 +10184,7 @@ if i32.const 0 i32.const 1152 - i32.const 307 + i32.const 313 i32.const 3 call $~lib/builtins/abort unreachable @@ -9924,10 +10193,10 @@ i32.const 7280 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=316 + i32.store offset=336 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9938,7 +10207,7 @@ if i32.const 0 i32.const 1152 - i32.const 311 + i32.const 317 i32.const 3 call $~lib/builtins/abort unreachable @@ -9947,10 +10216,10 @@ i32.const 7360 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=320 + i32.store offset=340 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9961,7 +10230,7 @@ if i32.const 0 i32.const 1152 - i32.const 315 + i32.const 321 i32.const 3 call $~lib/builtins/abort unreachable @@ -9970,10 +10239,10 @@ i32.const 7440 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=324 + i32.store offset=344 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -9984,7 +10253,7 @@ if i32.const 0 i32.const 1152 - i32.const 319 + i32.const 325 i32.const 3 call $~lib/builtins/abort unreachable @@ -9993,10 +10262,10 @@ i32.const 7504 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=328 + i32.store offset=348 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10007,7 +10276,7 @@ if i32.const 0 i32.const 1152 - i32.const 323 + i32.const 329 i32.const 3 call $~lib/builtins/abort unreachable @@ -10016,10 +10285,10 @@ i32.const 7584 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=332 + i32.store offset=352 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10030,7 +10299,7 @@ if i32.const 0 i32.const 1152 - i32.const 327 + i32.const 333 i32.const 3 call $~lib/builtins/abort unreachable @@ -10039,10 +10308,10 @@ i32.const 7664 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=336 + i32.store offset=356 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10053,7 +10322,7 @@ if i32.const 0 i32.const 1152 - i32.const 331 + i32.const 337 i32.const 3 call $~lib/builtins/abort unreachable @@ -10062,10 +10331,10 @@ i32.const 7744 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=340 + i32.store offset=360 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10076,7 +10345,7 @@ if i32.const 0 i32.const 1152 - i32.const 335 + i32.const 341 i32.const 3 call $~lib/builtins/abort unreachable @@ -10085,10 +10354,10 @@ i32.const 7824 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=344 + i32.store offset=364 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10099,7 +10368,7 @@ if i32.const 0 i32.const 1152 - i32.const 339 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable @@ -10108,10 +10377,10 @@ i32.const 7920 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=348 + i32.store offset=368 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10122,7 +10391,7 @@ if i32.const 0 i32.const 1152 - i32.const 342 + i32.const 348 i32.const 3 call $~lib/builtins/abort unreachable @@ -10131,10 +10400,10 @@ i32.const 7952 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=352 + i32.store offset=372 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10145,7 +10414,7 @@ if i32.const 0 i32.const 1152 - i32.const 345 + i32.const 351 i32.const 3 call $~lib/builtins/abort unreachable @@ -10154,10 +10423,10 @@ i32.const 7984 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=356 + i32.store offset=376 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10168,7 +10437,7 @@ if i32.const 0 i32.const 1152 - i32.const 348 + i32.const 354 i32.const 3 call $~lib/builtins/abort unreachable @@ -10177,10 +10446,10 @@ i32.const 8016 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=360 + i32.store offset=380 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10191,7 +10460,7 @@ if i32.const 0 i32.const 1152 - i32.const 351 + i32.const 357 i32.const 3 call $~lib/builtins/abort unreachable @@ -10200,10 +10469,10 @@ i32.const 6688 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=364 + i32.store offset=384 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10214,7 +10483,7 @@ if i32.const 0 i32.const 1152 - i32.const 354 + i32.const 360 i32.const 3 call $~lib/builtins/abort unreachable @@ -10223,10 +10492,10 @@ i32.const 8064 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=368 + i32.store offset=388 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10237,7 +10506,7 @@ if i32.const 0 i32.const 1152 - i32.const 357 + i32.const 363 i32.const 3 call $~lib/builtins/abort unreachable @@ -10246,10 +10515,10 @@ i32.const 7056 call $~lib/date/Date.fromString local.tee $0 - i32.store offset=288 + i32.store offset=308 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=372 + i32.store offset=392 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10260,7 +10529,7 @@ if i32.const 0 i32.const 1152 - i32.const 360 + i32.const 366 i32.const 3 call $~lib/builtins/abort unreachable @@ -10269,15 +10538,15 @@ i64.const -8640000000000000 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=376 + i32.store offset=396 global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor local.tee $2 - i32.store offset=380 + i32.store offset=400 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=384 + i32.store offset=404 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10288,14 +10557,14 @@ if i32.const 0 i32.const 1152 - i32.const 378 + i32.const 384 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=388 + i32.store offset=408 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10306,14 +10575,14 @@ if i32.const 0 i32.const 1152 - i32.const 379 + i32.const 385 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=392 + i32.store offset=412 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10324,14 +10593,14 @@ if i32.const 0 i32.const 1152 - i32.const 381 + i32.const 387 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=396 + i32.store offset=416 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10342,14 +10611,14 @@ if i32.const 0 i32.const 1152 - i32.const 382 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=400 + i32.store offset=420 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10360,14 +10629,14 @@ if i32.const 0 i32.const 1152 - i32.const 384 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=404 + i32.store offset=424 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10378,14 +10647,14 @@ if i32.const 0 i32.const 1152 - i32.const 385 + i32.const 391 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=408 + i32.store offset=428 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -10396,14 +10665,14 @@ if i32.const 0 i32.const 1152 - i32.const 387 + i32.const 393 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=412 + i32.store offset=432 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10414,14 +10683,14 @@ if i32.const 0 i32.const 1152 - i32.const 388 + i32.const 394 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -10435,14 +10704,14 @@ if i32.const 0 i32.const 1152 - i32.const 390 + i32.const 396 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=272 + i32.store offset=292 local.get $2 call $~lib/date/Date#toISOString local.set $0 @@ -10456,7 +10725,7 @@ if i32.const 0 i32.const 1152 - i32.const 391 + i32.const 397 i32.const 3 call $~lib/builtins/abort unreachable @@ -10465,15 +10734,15 @@ i64.const 8639999999999999 call $~lib/date/Date#constructor local.tee $0 - i32.store offset=416 + i32.store offset=436 global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 call $~lib/date/Date#constructor local.tee $2 - i32.store offset=420 + i32.store offset=440 global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=424 + i32.store offset=444 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10484,14 +10753,14 @@ if i32.const 0 i32.const 1152 - i32.const 396 + i32.const 402 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=428 + i32.store offset=448 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10502,14 +10771,14 @@ if i32.const 0 i32.const 1152 - i32.const 397 + i32.const 403 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=432 + i32.store offset=452 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 @@ -10520,7 +10789,7 @@ if i32.const 0 i32.const 1152 - i32.const 398 + i32.const 404 i32.const 3 call $~lib/builtins/abort unreachable @@ -10533,7 +10802,7 @@ if i32.const 0 i32.const 1152 - i32.const 399 + i32.const 405 i32.const 3 call $~lib/builtins/abort unreachable @@ -10546,7 +10815,7 @@ if i32.const 0 i32.const 1152 - i32.const 400 + i32.const 406 i32.const 3 call $~lib/builtins/abort unreachable @@ -10559,7 +10828,7 @@ if i32.const 0 i32.const 1152 - i32.const 401 + i32.const 407 i32.const 3 call $~lib/builtins/abort unreachable @@ -10574,14 +10843,14 @@ if i32.const 0 i32.const 1152 - i32.const 402 + i32.const 408 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=272 + i32.store offset=292 local.get $0 call $~lib/date/Date#toISOString local.set $0 @@ -10595,14 +10864,14 @@ if i32.const 0 i32.const 1152 - i32.const 404 + i32.const 410 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=272 + i32.store offset=292 local.get $2 call $~lib/date/Date#toISOString local.set $0 @@ -10616,20 +10885,20 @@ if i32.const 0 i32.const 1152 - i32.const 405 + i32.const 411 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 436 + i32.const 456 i32.add global.set $~lib/memory/__stack_pointer return end i32.const 1056 i32.const 1104 - i32.const 36 + i32.const 35 i32.const 26 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/date.ts b/tests/compiler/std/date.ts index 8fddc31121..27fbe5186b 100644 --- a/tests/compiler/std/date.ts +++ b/tests/compiler/std/date.ts @@ -177,7 +177,7 @@ assert(date.getTime() == 314240591274); } -// Date#setUTCDay ////////////////////////////////////////////////////////////////////////////////// +// Date#getUTCDay ////////////////////////////////////////////////////////////////////////////////// { // tests from test262 const july6: i64 = 1467763200000; @@ -193,6 +193,12 @@ assert(new Date(july9 - 1).getUTCDay() == 5); assert(new Date(july9 + dayMs - 1).getUTCDay() == 6); assert(new Date(july9 + dayMs ).getUTCDay() == 0); + + assert(new Date(-8640000000000000).getUTCDay() == 2); // -271821-04-20 + assert(new Date(-62183116800000).getUTCDay() == 4); // -000001-07-01 + assert(new Date(0).getUTCDay() == 4); // 1970-01-01 + assert(new Date(1709164800000).getUTCDay() == 4); // 2024-02-29 + assert(new Date(8640000000000000).getUTCDay() == 6); // +275760-09-13 } // Date#setUTCMonth //////////////////////////////////////////////////////////////////////////////// From b6bda05c29c9eb7d07d7f6cb2703508483b30493 Mon Sep 17 00:00:00 2001 From: Max Graey Date: Tue, 21 Jul 2026 19:01:49 +0300 Subject: [PATCH 86/86] chore: Update Binaryen and other dependencies (#3035) --- package-lock.json | 197 +++++++++++++++++++++++----------------------- package.json | 8 +- 2 files changed, 104 insertions(+), 101 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7f82e65b3..535ad8a747 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "130.0.0-nightly.20260702", + "binaryen": "131.0.0-nightly.20260721", "long": "^5.2.4" }, "bin": { @@ -18,15 +18,15 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@types/node": "^26.1.0", + "@types/node": "^26.1.1", "as-float": "^1.0.1", "diff": "^9.0.0", "esbuild": "^0.28.1", - "eslint": "^10.2.1", + "eslint": "^10.7.0", "glob": "^13.0.6", "globals": "^17.7.0", "typescript": "^6.0.3", - "typescript-eslint": "^8.59.0" + "typescript-eslint": "^8.65.0" }, "engines": { "node": ">=20", @@ -524,9 +524,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.5.tgz", - "integrity": "sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", + "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -581,9 +581,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz", - "integrity": "sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -668,9 +668,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.1.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.0.tgz", - "integrity": "sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==", + "version": "26.1.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", + "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", "dev": true, "license": "MIT", "dependencies": { @@ -678,17 +678,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.0.tgz", - "integrity": "sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz", + "integrity": "sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.59.0", - "@typescript-eslint/type-utils": "8.59.0", - "@typescript-eslint/utils": "8.59.0", - "@typescript-eslint/visitor-keys": "8.59.0", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/type-utils": "8.65.0", + "@typescript-eslint/utils": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -701,15 +701,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.59.0", + "@typescript-eslint/parser": "^8.65.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { @@ -717,16 +717,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.0.tgz", - "integrity": "sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.65.0.tgz", + "integrity": "sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.59.0", - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/typescript-estree": "8.59.0", - "@typescript-eslint/visitor-keys": "8.59.0", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "debug": "^4.4.3" }, "engines": { @@ -742,14 +742,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.0.tgz", - "integrity": "sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.65.0.tgz", + "integrity": "sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.59.0", - "@typescript-eslint/types": "^8.59.0", + "@typescript-eslint/tsconfig-utils": "^8.65.0", + "@typescript-eslint/types": "^8.65.0", "debug": "^4.4.3" }, "engines": { @@ -764,14 +764,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.0.tgz", - "integrity": "sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz", + "integrity": "sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/visitor-keys": "8.59.0" + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -782,9 +782,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.0.tgz", - "integrity": "sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.65.0.tgz", + "integrity": "sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==", "dev": true, "license": "MIT", "engines": { @@ -799,15 +799,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.0.tgz", - "integrity": "sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz", + "integrity": "sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/typescript-estree": "8.59.0", - "@typescript-eslint/utils": "8.59.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/utils": "8.65.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -824,9 +824,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.0.tgz", - "integrity": "sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", + "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", "dev": true, "license": "MIT", "engines": { @@ -838,16 +838,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.0.tgz", - "integrity": "sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.65.0.tgz", + "integrity": "sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.59.0", - "@typescript-eslint/tsconfig-utils": "8.59.0", - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/visitor-keys": "8.59.0", + "@typescript-eslint/project-service": "8.65.0", + "@typescript-eslint/tsconfig-utils": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -866,16 +866,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.0.tgz", - "integrity": "sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.65.0.tgz", + "integrity": "sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.59.0", - "@typescript-eslint/types": "8.59.0", - "@typescript-eslint/typescript-estree": "8.59.0" + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -890,13 +890,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.0.tgz", - "integrity": "sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", + "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.59.0", + "@typescript-eslint/types": "8.65.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -978,9 +978,9 @@ } }, "node_modules/binaryen": { - "version": "130.0.0-nightly.20260702", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-130.0.0-nightly.20260702.tgz", - "integrity": "sha512-Xy4enW4kgtuf43s/vK4wVrO33K4raeJ4j7cb/qHhSGp8l/+/bap3nyVlvlY6g3pKvaRyGLqrrUnvt0EgBU+50Q==", + "version": "131.0.0-nightly.20260721", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-131.0.0-nightly.20260721.tgz", + "integrity": "sha512-AAQIkhfbYXh4FBObwBrlO+5L+6Rp6OOMOjh6AdT0M+GLNLyrwKWgtW+EzmizNgx9CWDfTJPfDtKoZi62QESbtg==", "license": "Apache-2.0", "bin": { "wasm-as": "bin/wasm-as", @@ -995,9 +995,9 @@ } }, "node_modules/brace-expansion": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", - "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", + "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", "dev": true, "license": "MIT", "dependencies": { @@ -1113,18 +1113,21 @@ } }, "node_modules/eslint": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.2.1.tgz", - "integrity": "sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.7.0.tgz", + "integrity": "sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==", "dev": true, "license": "MIT", + "workspaces": [ + "packages/*" + ], "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", - "@eslint/config-helpers": "^0.5.5", + "@eslint/config-helpers": "^0.6.0", "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.1", + "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -1679,9 +1682,9 @@ } }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -1712,9 +1715,9 @@ } }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { @@ -1748,9 +1751,9 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, "license": "MIT", "dependencies": { @@ -1805,16 +1808,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.59.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.59.0.tgz", - "integrity": "sha512-BU3ONW9X+v90EcCH9ZS6LMackcVtxRLlI3XrYyqZIwVSHIk7Qf7bFw1z0M9Q0IUxhTMZCf8piY9hTYaNEIASrw==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.65.0.tgz", + "integrity": "sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.59.0", - "@typescript-eslint/parser": "8.59.0", - "@typescript-eslint/typescript-estree": "8.59.0", - "@typescript-eslint/utils": "8.59.0" + "@typescript-eslint/eslint-plugin": "8.65.0", + "@typescript-eslint/parser": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/utils": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index 117483ece2..869f93b294 100644 --- a/package.json +++ b/package.json @@ -25,20 +25,20 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "130.0.0-nightly.20260702", + "binaryen": "131.0.0-nightly.20260721", "long": "^5.2.4" }, "devDependencies": { "@eslint/js": "^10.0.1", - "@types/node": "^26.1.0", + "@types/node": "^26.1.1", "as-float": "^1.0.1", "diff": "^9.0.0", "esbuild": "^0.28.1", - "eslint": "^10.2.1", + "eslint": "^10.7.0", "glob": "^13.0.6", "globals": "^17.7.0", "typescript": "^6.0.3", - "typescript-eslint": "^8.59.0" + "typescript-eslint": "^8.65.0" }, "type": "module", "exports": {